/* WordPress-specific adaptations layered after the approved v2 CSS. */
.nav-links,
.drawer-links,
.footer-links {
  list-style: none;
}

.nav-links > li,
.drawer-links > li,
.footer-links > li {
  margin: 0;
  padding: 0;
}

.footer-links {
  margin: 0;
  padding: 0;
}

.image-placeholder {
  min-height: 18rem;
  width: 100%;
  background:
    linear-gradient(135deg, rgba(26, 77, 143, .08), rgba(74, 125, 106, .14)),
    var(--paper-3);
  border: 1px dashed var(--line-2);
}

.form-embed > :first-child {
  margin-top: 0;
}

.form-embed > :last-child {
  margin-bottom: 0;
}

.form-embed .form-field > .wpcf7-form-control-wrap {
  display: block;
}

.form-embed .wpcf7-form {
  display: flex;
  flex-direction: column;
  gap: clamp(1.4118rem, 3vw, 2rem);
}

.form-embed .form-field input,
.form-embed .form-field textarea {
  display: block;
}

.form-embed .form-field textarea {
  height: 5.6471rem;
}

.form-embed .seg .wpcf7-form-control-wrap,
.form-embed .seg .wpcf7-radio {
  display: contents;
}

.form-embed .seg .wpcf7-list-item {
  margin: 0;
  position: relative;
}

.form-embed .seg .wpcf7-list-item label {
  cursor: pointer;
  position: relative;
}

.form-embed .seg .wpcf7-list-item input {
  cursor: pointer;
  inset: 0;
  opacity: 0;
  position: absolute;
}

.form-embed .seg .wpcf7-list-item-label {
  background: var(--paper);
  border: 1.5px solid var(--line-2);
  border-radius: 999px;
  color: var(--ink-70);
  display: inline-flex;
  font-family: var(--ff-sans);
  font-size: .88rem;
  padding: .5294rem 1.0588rem;
  transition: all .2s var(--ease);
}

.form-embed .seg .wpcf7-list-item:has(input:checked) .wpcf7-list-item-label {
  background: var(--ink-2);
  border-color: var(--ink-2);
  color: var(--paper);
}

.form-embed .seg .wpcf7-list-item input:focus-visible + .wpcf7-list-item-label {
  box-shadow: 0 0 0 3px rgba(26, 77, 143, .18);
}

.form-embed .consent {
  display: block;
}

.form-embed .consent .wpcf7-form-control-wrap,
.form-embed .consent .wpcf7-acceptance,
.form-embed .consent .wpcf7-list-item {
  display: block;
  margin: 0;
}

.form-embed .consent label {
  align-items: start;
  cursor: pointer;
  display: grid;
  gap: .8235rem;
  grid-template-columns: auto 1fr;
}

.form-embed .consent .wpcf7-list-item-label {
  color: var(--ink-70);
  font-size: .88rem;
  line-height: 1.55;
}

.form-embed .form-submit {
  position: relative;
}

.form-embed .form-submit .wpcf7-submit {
  padding-inline-end: calc(1.5294rem + .2941rem);
}

.form-embed .form-submit .wpcf7-spinner {
  display: none;
  margin: 0;
}

.form-embed .wpcf7-form.submitting .form-submit .wpcf7-spinner {
  display: inline-block;
}

body.admin-bar .nav {
  top: 32px;
}

@media (max-width: 782px) {
  body.admin-bar .nav {
    top: 46px;
  }
}

/* Native InnerBlocks content --------------------------------------------- */
.acf-innerblocks-container,
.wp-block-group {
  min-width: 0;
}

/* Preserve the intrinsic sizing used by the approved card grid. */
.reasons-grid > .reason {
  min-width: auto;
}

/* Let the existing 5:4 detail-media ratio size empty image placeholders. */
.detail-media .image-placeholder {
  min-height: 0;
}

.contact-hero-blocks,
.cta-blocks {
  display: contents;
}

.np-link-block {
  display: contents;
}

.wp-block-image {
  margin: 0;
}

@media (max-width: 560px) {
  /* Match the line box created by the original inline contact labels. */
  .quick-contact .item {
    min-height: 4.0692rem;
  }
}

.photo > .wp-block-image,
.rphoto > .wp-block-image,
.about-photo-frame,
.founder-photo-frame,
.about-photo-frame > .wp-block-image,
.founder-photo-frame > .wp-block-image,
.parcours-photo .j-img > .wp-block-image {
  height: 100%;
  width: 100%;
}

/*
 * WordPress emits its flow-layout reset after the theme styles. Scope every
 * v2 spacing helper to its actual parent so the approved margins win without
 * introducing a global block gap.
 */
.about-copy > .about-link,
.wp-block-group.about-link {
  margin-block-start: 1.5294rem;
}

.detail-body > .detail-link,
.wp-block-group.detail-link {
  margin-block-start: 1.4118rem;
}

.detail--flush {
  border-top: none;
}

.detail--top-flush {
  padding-top: 0;
}

.detail-body > .detail-actions,
.wp-block-group.detail-actions {
  display: flex;
  flex-wrap: wrap;
  gap: .8235rem;
  margin-block-start: 1.4118rem;
}

.detail-body > .detail-title,
.wp-block-heading.detail-title {
  margin-block-start: .8235rem;
}

.detail-body > .detail-arrow-list,
.detail-body > .arrow-list.detail-list,
.wp-block-list.detail-arrow-list,
.wp-block-list.arrow-list.detail-list {
  margin-block-start: 1.2941rem;
}

/* Existing saved blocks used detail-list as a spacing helper on arrow lists. */
.arrow-list.detail-list li {
  padding-inline-start: 0;
}

.arrow-list.detail-list li::before,
.arrow-list.detail-arrow-list li::before {
  border: 0;
  border-radius: 0;
  height: auto;
  inset: auto;
  position: static;
  width: auto;
}

.sec-head--tight {
  margin-bottom: 0;
}

.contact-form-main > .contact-form-title,
.wp-block-heading.contact-form-title {
  margin-block-start: .8235rem;
  max-width: 18ch;
}

.page-hero--compact {
  padding-bottom: clamp(1.6471rem, 3.5vw, 2.5882rem);
}

.contact-page-hero {
  padding-bottom: clamp(1.6471rem, 3.5vw, 2.5882rem);
}

.legal.wp-block-group {
  padding-bottom: 1.1765rem;
}

/* Restore v2 margins lost to the generated .is-layout-flow child reset. */
.hero-copy > .hero-actions,
.wp-block-group.hero-actions {
  margin-block-start: 2rem;
}

.hero-copy > .hero-meta,
.wp-block-group.hero-meta {
  margin-block-start: 2.5882rem;
}

.svc-comp .svc-comp-body .svc-comp-tag,
.wp-block-paragraph.svc-comp-tag {
  margin-block-end: .2941rem;
}

.reasons-grid .reason .rphoto,
.wp-block-group.rphoto {
  margin-block-start: -2px;
}

.motif-grid .motif .mk {
  margin-block-start: .5294rem;
}

.founder-copy > .founder-q,
.wp-block-paragraph.founder-q {
  margin-block-start: 1.7647rem;
}

.founder-copy > .founder-by,
.wp-block-paragraph.founder-by {
  margin-block-start: .9412rem;
}

.detail-body > .note-inline,
.wp-block-group.note-inline {
  margin-block-start: 1.6471rem;
}

.journey-col > .j-cta,
.wp-block-group.j-cta {
  margin-block-start: clamp(1.4118rem, 3vw, 2.3529rem);
}

.detail-body > .whatis-mini,
.wp-block-group.whatis-mini {
  margin-block-start: 1.6471rem;
}

.cta .container > .cta-actions,
.wp-block-group.cta-actions {
  margin-block-start: 2.2353rem;
}

.contact-form-main > .form-embed,
.wp-block-group.form-embed {
  margin-block-start: .4706rem;
}

.contact-grid .after-card .photo {
  margin-block-start: -.2353rem;
}

.after-card > .after-list,
.wp-block-list.after-list {
  margin-block-start: .8235rem;
}

.legal > .legal-section:not(:first-of-type),
.wp-block-group.legal-section:not(:first-of-type) {
  margin-block-start: 2.3529rem;
}

/* Keep top-level InnerBlocks spacing deterministic inside Gutenberg too. */
.wp-block-group.sec-head:not(.sec-head--tight) {
  margin-block-end: clamp(2.3529rem, 4.5vw, 3.8824rem);
}

.wp-block-list.spheres-list {
  margin-block-start: clamp(1.2941rem, 3vw, 2.2353rem);
}

.wp-block-group.faq {
  margin-block-start: clamp(1.2941rem, 3vw, 2.3529rem);
}

.wp-block-group.ask-more {
  margin-block-start: 1.5294rem;
}

/* The source label was inline; its anonymous line box was 1.7rem tall. */
.quick-contact .item > p.k {
  line-height: 1.7rem;
}

.page-hero > .container > .lead {
  max-width: 66ch;
}

.page-hero--compact > .container > .lead {
  max-width: 52ch;
}

.founder-portrait img {
  object-position: center 28%;
}

.spheres-list .sphere .sphere-title {
  color: var(--ink);
  font-family: var(--ff-serif);
  font-size: clamp(1.18rem, 1.5vw, 1.4rem);
  font-weight: 500;
  letter-spacing: -.01em;
  line-height: 1.15;
}

.svc-comp-body p.svc-comp-tag {
  color: var(--ink-2);
  font-family: var(--ff-mono);
  font-size: .62rem;
  letter-spacing: .12em;
  line-height: 1.6;
  max-width: none;
  text-transform: uppercase;
}

.whatis-mini p.eyebrow {
  font-size: .66rem;
  line-height: 1.7;
}

.note-inline p.lbl {
  line-height: 1.7;
}

.after-list li > span:last-child {
  color: var(--ink);
  font-size: .95rem;
  line-height: 1.42;
}

.cta .container {
  position: relative;
  z-index: 1;
}

.np-motion .reveal.anim.d1 { animation-delay: .09s; }
.np-motion .reveal.anim.d2 { animation-delay: .18s; }
.np-motion .reveal.anim.d3 { animation-delay: .27s; }
.np-motion .reveal.anim.d4 { animation-delay: .36s; }

.parcours-photo .j-img > .wp-block-image img {
  height: 100%;
  object-fit: cover;
  width: 100%;
}

.j-step p.j-dur {
  color: var(--acc-g);
  font-family: var(--ff-mono);
  font-size: .66rem;
  letter-spacing: .05em;
  line-height: 1.7;
  margin-top: .5882rem;
  max-width: none;
}

.journey-col > .journey {
  margin-block-start: clamp(1.7647rem, 3.5vw, 2.9412rem) !important;
}

.j-img-tag {
  display: none;
}

/* FAQ uses the native Details block, with the approved visual treatment. */
details.faq-item {
  border-bottom: 1px solid var(--line);
}

details.faq-item > summary {
  align-items: center;
  background: none;
  border: 0;
  color: var(--ink);
  cursor: pointer;
  display: flex;
  font-family: var(--ff-serif);
  font-size: clamp(1.15rem, 1.7vw, 1.4rem);
  font-weight: 500;
  gap: 1.1765rem;
  justify-content: space-between;
  letter-spacing: -.01em;
  line-height: normal;
  list-style: none;
  padding: 1.5294rem .2353rem;
  text-align: left;
  transition: color .2s;
  width: 100%;
}

details.faq-item > summary::-webkit-details-marker {
  display: none;
}

details.faq-item > summary::after {
  align-items: center;
  border: 1.5px solid var(--line-2);
  border-radius: 50%;
  box-sizing: border-box;
  color: var(--ink-2);
  content: "+";
  display: flex;
  flex: 0 0 1.8824rem;
  font-family: var(--ff-mono);
  font-size: 1.1rem;
  height: 1.8824rem;
  justify-content: center;
  transition: background .3s var(--ease), color .3s, border-color .3s;
  width: 1.8824rem;
}

details.faq-item > summary:hover {
  color: var(--ink-2);
}

details.faq-item[open] > summary::after {
  background: var(--ink-2);
  border-color: var(--ink-2);
  color: var(--paper);
  content: "−";
}

details.faq-item .faq-answer.inner {
  color: var(--ink-70);
  font-size: 1.06rem;
  line-height: 1.7;
  max-width: 64ch;
  overflow: hidden;
  padding: 0 .2353rem 1.5294rem;
}

details.faq-item .faq-answer.inner strong {
  color: var(--ink);
  font-weight: 600;
}
