/* Shared audit refinements. The scene, typography and cobalt identity remain intact. */
html { scroll-padding-top: 94px; scroll-behavior: smooth; }
body { color: var(--text); }
[hidden] { display: none !important; }
:focus-visible { outline: 3px solid #B5CAFF; outline-offset: 5px; }
.skip:focus { z-index: 10001; }
.nav a[aria-current="page"] { color: #B5CAFF; }
.menu-open { overflow: hidden; }
.motion-toggle {
  position: fixed; right: 18px; bottom: 18px; z-index: 800;
  min-height: 44px; padding: 10px 16px; border: 1px solid #64789C;
  border-radius: 24px; background: #101A2D; color: #E6EDFF;
  box-shadow: 0 4px 22px #0006; font: 500 12px var(--font-body); cursor: pointer;
}
.motion-toggle:disabled { cursor: default; opacity: 1; }
.footer { padding-bottom: 90px; }
.footer__links { display: flex; flex-wrap: wrap; gap: 12px 24px; }
.footer a:not(.footer__brand), .text-link, .privacy-link { text-decoration: underline; text-underline-offset: 4px; }
.text-link { color: #B5CAFF; display: inline-block; padding-block: 10px; }
.privacy-link { display: inline-block; font-size: 13px; color: var(--muted); margin-top: 22px; }
.btn--primary, .space-page .btn--primary { background: linear-gradient(105deg, #3159D7, #1E40C8 50%, #2F57D9); color: #FFF; }
.btn { min-height: 44px; }
.reveal, .reveal--flip, .hero__title .reveal-word, .r-line > span, .step { opacity: 1; transform: none; }
.will-reveal { transform: translateY(18px); }
.reveal.will-reveal:not(.pillar-card):not(.step):not(.cta__card) { opacity: 0; }
.hero { min-height: min(850px, 100svh); padding-top: 132px; padding-bottom: 80px; }
.hero__sub { max-width: 560px; color: #CCD5E8; }
.hero__actions { flex-wrap: wrap; }
.statement { min-height: 0; padding-block: clamp(60px, 8vw, 100px); }
.statement__text { font-size: clamp(2.7rem, 6vw, 5rem); }
.section.pillars { padding-top: 65px; padding-bottom: 36px; }
.pillars .section__head { margin-bottom: 35px; }
.pillars .section__title { font-size: clamp(2.4rem, 4.7vw, 4rem); }
.pillars-belief { max-width: 640px; }
.pillars-closing { padding-top: 24px; }
.pillar-card__body { min-height: 0; }
.pillar-stage { padding-top: 28px; padding-bottom: 24px; }
.pf-caption { display: block; max-width: 700px; margin-inline: auto; text-align: center; line-height: 1.7; }
.pf-caption::before, .pf-caption::after { display: none; }
#pillar-figure-3d { touch-action: pan-y; max-height: 620px; }
.process, .approach { padding-block: 65px; }
.process .section__head, .approach .section__head { margin-bottom: 28px; }
.process-track { display: none; }
.step { transition: border-color .2s; }
.steps { perspective: none; }
.process-closing { margin-top: 24px; }
.cta { padding-block: 65px; }
.cta__card, .sp-cta__card { padding-block: clamp(35px, 5vw, 65px); }

/* Service information stays visible. Native details hold optional depth. */
.svc-hero { min-height: 0; padding-bottom: 56px; }
.svc-hero__title { font-size: clamp(3rem, 6.5vw, 6rem); }
.svc-hero__desc { max-width: 650px; }
.service-jumps { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 28px; }
.service-jumps a { padding: 11px 18px; border: 1px solid var(--border-2); border-radius: 30px; background: #101A2D; color: #D5E1FF; }
.service-catalog { max-width: var(--maxw); margin: 0 auto; padding: 25px clamp(20px, 5vw, 56px) 55px; display: grid; gap: 24px; }
.service-offer {
  scroll-margin-top: 94px; display: grid; grid-template-columns: .85fr 1.15fr; gap: 28px 56px;
  padding: clamp(28px, 4vw, 48px); border: 1px solid var(--border-2); border-radius: 24px;
  background-color: #101A2D;
  background-image: linear-gradient(135deg, #9DB4FF21, transparent 40%), linear-gradient(180deg, #6E97FF12, transparent 60%);
  box-shadow: inset 0 1px #D6E2FF33, 0 20px 45px -32px #000A;
}
.service-offer__number { color: #A9BFF9; font: 500 13px var(--font-display); letter-spacing: .16em; }
.service-offer h2 { font-size: clamp(2.5rem, 4vw, 4rem); margin: 12px 0 16px; }
.service-offer p { color: var(--muted); max-width: 50ch; line-height: 1.75; }
.service-offer h3 { font: 500 13px var(--font-body); text-transform: uppercase; letter-spacing: .12em; color: #B5CAFF; margin-bottom: 12px; }
.service-links { list-style: none; padding: 0; margin: 0; }
.service-links li { border-bottom: 1px solid var(--border); }
.service-links a { display: flex; gap: 20px; justify-content: space-between; align-items: center; min-height: 48px; padding: 12px 0; color: #F5F8FF; }
.service-links a::after { content: '↗'; color: #A9BFF9; }
.service-links a:hover { color: #B5CAFF; }
.service-detail { grid-column: 1 / -1; border-top: 1px solid var(--border); padding-top: 16px; }
.service-detail summary { cursor: pointer; padding: 8px 0; color: #D6E2FF; min-height: 44px; }
.service-detail ul { margin: 12px 0 0; padding-left: 20px; columns: 2; column-gap: 45px; color: var(--muted); }
.service-detail li { margin-bottom: 10px; break-inside: avoid; line-height: 1.6; }
.service-offer__contact { margin-top: 16px; }
.ab-hero__heading { font-size: clamp(2.8rem, 6vw, 5rem); margin-bottom: 26px; }
.ab-hero__quote { font-size: clamp(1.4rem, 2.8vw, 2.4rem); }
.ab-story, .ab-values { padding-block: 60px; }
.legacy-notice { max-width: 760px; margin: 0 auto 32px; padding: 20px; border: 1px solid var(--border-2); border-radius: 16px; }
.simple-page { max-width: 900px; margin: 0 auto; padding: 145px 24px 75px; min-height: 65vh; }
.simple-page h1 { font-size: clamp(2.8rem, 6vw, 5rem); line-height: 1.05; margin-bottom: 24px; }
.simple-page p { color: var(--muted); margin-block: 18px; line-height: 1.8; }
.simple-page h2 { font: 600 1.5rem var(--font-display); margin-top: 32px; }
.simple-page a:not(.btn) { color: #B5CAFF; text-decoration: underline; text-underline-offset: 4px; }

html[data-motion="paused"] *, html[data-motion="paused"] *::before, html[data-motion="paused"] *::after {
  animation-play-state: paused !important; transition: none !important; scroll-behavior: auto !important;
}
html[data-motion="paused"] { scroll-behavior: auto; }
html[data-motion="paused"] .will-reveal { opacity: 1 !important; transform: none; }
html[data-motion="paused"] .cursor, html[data-motion="paused"] .cursor-dot { display: none; }
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
  html { scroll-behavior: auto; }
}
@media (max-width: 760px) {
  .hero { min-height: 0; padding-top: 116px; }
  .hero__title { font-size: clamp(3.4rem, 12vw, 5.4rem); }
  .hero__sub { font-size: 1rem; }
  .hero__actions { gap: 12px; }
  .hero__actions .btn { padding: 14px 20px; font-size: 14px; }
  .hero__scroll { display: none; }
  .statement { padding-block: 30px 45px; }
  .section.pillars { padding-top: 40px; }
  .pillar-stage { padding-inline: 0; }
  .pf-caption-wrap { padding-inline: 24px; }
  #pillar-figure-3d { height: 490px; }
  .service-offer { grid-template-columns: 1fr; gap: 22px; }
  .service-detail ul { columns: 1; }
  .svc-hero { padding-top: 118px; }
  .service-jumps { gap: 8px; }
  .service-jumps a { font-size: 13px; padding: 10px 14px; }
  .motion-toggle { right: 12px; bottom: 12px; }
}
/* Keep the offer and next step close to the opening headline. */
@media (min-width: 761px) {
  .hero { padding-top: 112px; padding-bottom: 46px; }
  .hero__content { max-width: 690px; }
  .hero__eyebrow { margin-bottom: 20px; }
  .hero__title { font-size: clamp(3.25rem, min(7.5vw, 10svh), 6.5rem); margin-bottom: 22px; }
  .hero__title .line:nth-child(3), .hero__title .line:nth-child(4) { display: inline-block; }
  .hero__title .line:nth-child(3) { margin-right: .17em; }
  .hero__sub { font-size: 1.03rem; max-width: 530px; margin-bottom: 24px; }
  .hero__scroll { display: none; }
}
.booking-layout { display: grid; grid-template-columns: .78fr 1.22fr; gap: 50px; max-width: 1180px; }
.booking-intro h1 { font-size: clamp(2.6rem, 5vw, 4.7rem); }
.booking-intro { align-self: start; }
.booking-form { color-scheme: dark; color: #E5EDFF; background: #101A2D; background-image: linear-gradient(135deg, #9DB4FF17, transparent 40%); border: 1px solid #526581; border-radius: 24px; padding: clamp(22px, 3vw, 36px); box-shadow: 0 24px 80px #00000030; }
.booking-form-column { min-width: 0; }
.booking-fields { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }
.form-field { display: flex; flex-direction: column; gap: 8px; }
.form-field--wide { grid-column: 1 / -1; }
.booking-form label, .booking-form legend { color: #E5EDFF; font-size: 14px; font-weight: 500; }
.booking-form input, .booking-form select, .booking-form textarea { box-sizing: border-box; min-width: 0; width: 100%; min-height: 46px; padding: 12px; border: 1px solid #5B6F91; border-radius: 8px; background: #080F20; color: #F5F8FF; font: 400 16px var(--font-body); }
.booking-form input::placeholder, .booking-form textarea::placeholder { color: #A7B6D0; opacity: 1; }
.booking-form :focus-visible { outline-color: #B9CDFF; }
.booking-form a.privacy-link, .booking-form .btn--ghost { color: #B9CDFF; }
.booking-form .ai-suggestion { color: #E5EDFF; }
.booking-form .privacy-link:hover { color: #F5F8FF; }
.booking-form textarea { resize: vertical; min-height: 140px; }
.booking-form [aria-invalid="true"] { border-color: #FFB9B9; }
.booking-form .field-error { color: #FFB9B9; font-size: 13px; }
.booking-form .form-hint { font-size: 13px; color: #BCC8DE; margin: 0; }
.booking-form fieldset { border: 0; padding: 0; margin: 24px 0 0; min-width: 0; }
.booking-form legend { margin-bottom: 12px; font-size: 17px; }
.booking-form .btn { margin-top: 22px; justify-content: center; white-space: normal; }
.booking-form .btn:disabled { cursor: not-allowed; opacity: .65; }
.booking-status { padding: 14px; border: 1px solid #526581; background: #16243E; border-radius: 12px; margin-bottom: 22px; color: #D6E2FF; font-size: 14px; line-height: 1.65; }
.booking-status[data-kind="error"] { border-color: #B8727C; background: #341D2D; color: #FFD0D0; }
.booking-status[data-kind="success"] { border-color: #79BAAA; background: #13322F; color: #BAF3DC; }
.booking-honeypot { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
.booking-form .privacy-link { margin-top: 0; }
.brief-templates { display: grid; gap: 12px; margin: 2px 0 6px; }
.brief-template-options { display: flex; flex-wrap: wrap; gap: 8px; }
.brief-template, .brief-tool { appearance: none; font: 500 13px var(--font-body); color: #E5EDFF; cursor: pointer; }
.brief-template { min-height: 44px; padding: 9px 12px; background: #16284C; border: 1px solid #526DA5; border-radius: 12px; text-align: left; }
.brief-template:hover { background: #233D70; border-color: #9DB4FF; }
.brief-template:active { background: #294D96; }
.brief-tools { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 16px; }
.brief-tool { min-height: 44px; padding: 8px 0; border: 0; background: none; color: #B9CDFF; text-decoration: underline; text-underline-offset: 4px; }
.brief-tool:disabled { opacity: .55; cursor: default; }
#brief::selection { background: #3563D4; color: white; }
.booking-contact { padding-top: 28px; }
.booking-contact h2 { margin: 0 0 16px; font-size: 18px; color: #E7EDFC; }
.booking-contact__links { display: grid; gap: 12px; grid-template-columns: repeat(3, 1fr); }
.booking-contact__button { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 5px; min-width: 0; min-height: 98px; padding: 16px 10px; border: 1px solid transparent; border-radius: 16px; font: 600 14px var(--font-body); transition: transform .22s ease, box-shadow .22s ease, background .22s ease; }
.booking-contact__button svg { width: 22px; height: 22px; margin-bottom: 3px; }
.booking-contact__button small { font-size: 11px; font-weight: 400; overflow-wrap: anywhere; text-align: center; }
.booking-contact a.booking-contact__button { text-decoration: none; }
.booking-contact a.booking-contact__button--email { background: #2F57E6; color: #FFFFFF; border-color: #5D7CF3; }
.booking-contact a.booking-contact__button--call { background: #D8DDE5; color: #202A39; border-color: #EFF2F6; }
.booking-contact a.booking-contact__button--whatsapp { background: #25D366; color: #072D18; border-color: #68E497; }
.booking-contact__button:focus-visible { outline: 3px solid #FFFFFF; outline-offset: 4px; }
@media (hover:hover) {
  .booking-contact__button:hover { transform: translateY(-4px); box-shadow: 0 12px 28px #00000038; }
  .booking-contact a.booking-contact__button--email:hover { background: #2547CD; }
  .booking-contact a.booking-contact__button--call:hover { background: #EEF1F6; }
  .booking-contact a.booking-contact__button--whatsapp:hover { background: #46E583; }
}
@media (max-width: 480px) {
  .booking-contact__links { grid-template-columns: 1fr; }
  .booking-contact__button { min-height: 66px; flex-direction: row; justify-content: flex-start; flex-wrap: wrap; padding: 14px 18px; gap: 10px; }
  .booking-contact__button svg { margin: 0; }
  .booking-contact__button small { margin-left: auto; font-size: 11px; }
}
html[data-motion="paused"] .booking-contact__button { transition: none; transform: none; }
@media (prefers-reduced-motion: reduce) { .booking-contact__button { transition: none; } .booking-contact__button:hover { transform: none; } }
.ai-panel { margin-top: 18px; }
.ai-panel label { display: flex; gap: 10px; align-items: start; }
.ai-panel input { width: 18px; min-height: 18px; flex-shrink: 0; }
.ai-suggestion { white-space: pre-wrap; }
.review-draft { border-left: 3px solid #9DB4FF; padding: 12px 18px; background: #101A2D; }
.sector-line { color: #BAC4D8; max-width: 740px; margin: 28px auto 0; text-align: center; line-height: 1.7; }
@media(max-width: 800px) { .booking-layout { grid-template-columns: 1fr; gap: 22px; } }
@media(max-width: 480px) { .booking-fields { grid-template-columns: 1fr; } }

.hero__content::before { content: ""; position: absolute; inset: -25px -15px; z-index: -1; pointer-events: none; background: radial-gradient(ellipse at 25% 60%, #07091088, transparent 75%); }
.svc-hero { display: block; }
.service-jumps { max-width: 1180px; margin-inline: auto; }
.service-scope-note { color: #BAC4D8; font-size: 14px; line-height: 1.65; margin: 0 0 18px; }
.service-faq { max-width: 1180px; margin: 0 auto; padding: 48px 24px 72px; }
.service-faq h2 { font-size: clamp(30px, 4vw, 48px); margin: 12px 0 28px; }
.service-faq details { border-top: 1px solid #344866; padding: 18px 12px; background: linear-gradient(90deg, #070910e6, #07091099 75%, transparent); }
.service-faq summary { color: #E5EDFF; font-size: 17px; font-weight: 500; cursor: pointer; padding: 4px 0; }
.service-faq details p { color: #BAC4D8; max-width: 760px; line-height: 1.75; margin: 14px 0 0; }
.service-faq > a { display: inline-block; margin-top: 18px; }

/* Keep booking navigation consistently readable against the scene. */
.space-page.page--booking .nav, .space-page.page--booking .nav.is-scrolled { background: rgba(7,9,16,.94); }

/* Guided consultation: the same short questions can be used in WhatsApp. */
.booking-progress { margin: 0 0 24px; }
.booking-progress p { color: #D6E2FF; font: 600 13px var(--font-body); margin: 0 0 12px; scroll-margin-top: 105px; }
.booking-progress__track { height: 5px; overflow: hidden; border-radius: 9px; background: #2A3D5C; }
.booking-progress__track span { display: block; width: 20%; height: 100%; background: #3159D7; }
.booking-form [data-booking-step] > .form-field { margin-top: 18px; }
.booking-form fieldset.booking-question { padding-bottom: 22px; border-bottom: 1px solid #344866; }
.booking-form .booking-question legend { font-size: 15px; line-height: 1.5; }
.booking-answers { display: flex; flex-wrap: wrap; gap: 10px; }
.booking-form .booking-answer { position: relative; display: block; cursor: pointer; }
.booking-form .booking-answer input { position: absolute; inset: 0; opacity: 0; min-height: 0; width: 100%; height: 100%; cursor: pointer; }
.booking-answer span { display: block; min-width: 68px; min-height: 46px; padding: 11px 17px; border: 1px solid #5B6F91; border-radius: 10px; color: #E5EDFF; background: #080F20; text-align: center; }
.booking-answer input:checked + span { color: #FFF; background: #2F57D9; border-color: #2547CD; }
.booking-answer input:focus-visible + span { outline: 3px solid #B9CDFF; outline-offset: 4px; }
.booking-answer input[aria-invalid="true"] + span { border-color: #FFB9B9; }
.booking-answer:hover span { border-color: #B9CDFF; }
.booking-step-nav { display: flex; align-items: center; justify-content: space-between; gap: 14px; margin-top: 8px; }
.booking-step-nav #booking-next { margin-left: auto; }
.booking-form .booking-step-nav .btn--ghost { border-color: #5B6F91; }
.booking-form #booking-submit { width: 100%; }
.booking-promise { font-size: 14px !important; }

/* Clear, readable legal pages within the existing space palette. */
.legal-page { max-width: 920px; }
.legal-page ul { padding-left: 22px; color: var(--muted); }
.legal-page li { padding-left: 4px; margin-block: 14px; line-height: 1.8; }
.legal-page strong { color: #E7EDFC; }
.legal-page h2[id] { scroll-margin-top: 100px; }
.legal-page .btn { white-space: normal; }
.legal-table-wrap { overflow-x: auto; margin-block: 20px; }
.legal-table { width: 100%; border-collapse: collapse; font-size: 14px; color: #BAC4D8; }
.legal-table th, .legal-table td { padding: 16px; border: 1px solid #34425D; text-align: left; vertical-align: top; line-height: 1.6; }
.legal-table th { color: #E7EDFC; background: #101A2D; font-weight: 500; }
.legal-table th[scope="row"] { overflow-wrap: anywhere; }
.preference-card { padding: 24px; background: #101A2D; border: 1px solid #526581; border-radius: 18px; }
.preference-card label { display: flex; align-items: flex-start; gap: 14px; min-height: 44px; cursor: pointer; color: #E7EDFC; }
.preference-card input { width: 22px; height: 22px; flex-shrink: 0; accent-color: #3D6BFF; margin-top: 3px; }
.preference-card p { font-size: 14px; }
.preference-card [role="status"]:empty { display: none; }
.booking-calendar { padding: 28px; border: 1px solid #526581; border-radius: 24px; background: #101A2D; margin-top: 24px; }
.booking-calendar h2 { margin-top: 0; scroll-margin-top: 110px; line-height: 1.2; }
.booking-calendar .btn { white-space: normal; justify-content: center; }
.booking-calendar .form-hint { font-size: 13px; line-height: 1.7; }
.footer__links { flex-wrap: wrap; }
@media (max-width: 480px) {
  .legal-table th, .legal-table td { padding: 12px 9px; font-size: 12px; }
  .booking-calendar, .preference-card { padding: 22px; }
}

/* Inline mentions retain the joined, two-weight logo wordmark. */
.brand-wordmark { font-family: var(--font-display); font-weight: 700; letter-spacing: -.01em; white-space: nowrap; text-transform: none; }
.brand-wordmark > span { font-weight: 500; color: var(--muted); }
