@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-border-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial}}}@layer theme{:root,:host{--font-sans:ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--spacing:.25rem;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.absolute{position:absolute}.relative{position:relative}.static{position:static}.start{inset-inline-start:var(--spacing)}.end{inset-inline-end:var(--spacing)}.block{display:block}.contents{display:contents}.hidden{display:none}.inline{display:inline}.table{display:table}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.border{border-style:var(--tw-border-style);border-width:1px}.italic{font-style:italic}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.\[hostname\:port\]{hostname:port}}:root{--blue:#5caad4;--blue-deep:#5caad4;--blue-pale:#eaf6fb;--brand-dark:#123f55;--ink:#183746;--ink-soft:#52616b;--cream:#f7f4ef;--white:#fff;--line:#17273224;--shadow:0 24px 70px #1b3d5021;--radius:28px;--font-display:"Iowan Old Style", "Baskerville", "Times New Roman", serif;--font-body:"Avenir Next", Avenir, "Segoe UI", Helvetica, Arial, sans-serif;--ease-editorial:cubic-bezier(.22, 1, .36, 1);--ease-spring:linear(0, .004, .016, .035, .063, .098, .141, .191, .247, .308, .373, .441, .509, .577, .644, .707, .765, .819, .865, .904, .936, .96, .978, .99, .997, 1.001, 1.002, 1);--motion-fast:.18s;--motion-medium:.42s;--pointer-x:50%;--pointer-y:50%}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:108px}body{background:var(--cream);color:var(--ink);font-family:var(--font-body);margin:0;font-size:16px;line-height:1.65;overflow-x:hidden}body.menu-open{overflow:hidden}img{max-width:100%;display:block}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}button,a{-webkit-tap-highlight-color:transparent}button,a,input,select,textarea{outline-offset:4px}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #5caad47a}h1,h2,h3,p{margin-top:0}h1,h2,h3{text-wrap:balance}h1,h2{font-family:var(--font-display);letter-spacing:-.045em;font-weight:500;line-height:.98}h1{font-size:clamp(3.1rem,5.4vw,5.6rem)}h2{font-size:clamp(2.35rem,4.2vw,4.35rem)}h3{font-size:1.35rem;line-height:1.2}.shell{width:min(1240px,100% - clamp(48px,6vw,96px));margin-inline:auto}.section-pad{padding:clamp(104px,8vw,128px) 0}.skip-link{z-index:1000;background:var(--blue-deep);color:#fff;border-radius:10px;padding:10px 16px;position:fixed;top:-100px;left:20px}.skip-link:focus{top:14px}.scroll-progress{z-index:500;pointer-events:none;height:3px;position:fixed;inset:0 0 auto}.scroll-progress-bar{width:100%;height:100%;transform:scaleX(var(--scroll-progress,0));transform-origin:0;background:linear-gradient(90deg,#fff,#dff4ff);display:block;box-shadow:0 1px 8px #ffffff80}.eyebrow{color:var(--blue-deep);letter-spacing:.16em;text-transform:uppercase;align-items:center;gap:10px;font-size:.74rem;font-weight:800;line-height:1.3;display:flex}.eyebrow:before{content:"";background:currentColor;width:24px;height:2px}.eyebrow-light{color:#fff}.button{isolation:isolate;border:1px solid var(--blue-deep);background:var(--blue-deep);color:#fff;min-height:54px;transition:transform .45s var(--ease-editorial), scale var(--motion-fast) var(--ease-spring), box-shadow .45s var(--ease-editorial), color .3s ease, background .3s ease;border-radius:999px;justify-content:center;align-items:center;gap:9px;padding:0 25px;font-weight:600;line-height:1;display:inline-flex;position:relative;overflow:hidden}.button:before{content:"";z-index:-1;pointer-events:none;width:28%;transition:transform .75s var(--ease-editorial);background:linear-gradient(90deg,#0000,#ffffff3d,#0000);position:absolute;top:-60%;bottom:-60%;left:-45%;transform:translate(-220%)rotate(13deg)}.button:hover{background:var(--blue);border-color:var(--blue);transform:translateY(-3px);box-shadow:0 16px 36px #5caad452}.button:hover:before{transform:translate(620%)rotate(13deg)}.button svg{transition:transform .45s var(--ease-editorial)}.button:hover svg{transform:translate(3px,-1px)}.button-small{min-height:44px;padding:0 18px;font-size:.88rem}.button-ghost{color:var(--blue-deep);background:0 0}.button-ghost:hover{color:#fff;background:var(--blue-deep);border-color:var(--blue-deep)}.button-white{color:var(--ink);background:#fff;border-color:#fff}.button-white:hover{color:var(--blue);background:#fff;border-color:#fff}.text-link{transition:gap var(--motion-medium) var(--ease-editorial), scale var(--motion-fast) var(--ease-spring);border-bottom:1px solid;align-items:center;gap:8px;padding-bottom:5px;font-weight:600;line-height:1.2;display:inline-flex}.text-link:hover{gap:12px}.is-pressing{scale:.975}.treatment-row.is-pressing{scale:.993}.text-link svg,.treatment-row svg,.footer-contact a svg{transition:transform .4s var(--ease-editorial)}.text-link:hover svg,.treatment-row:hover .row-arrow,.footer-contact a:hover svg{transform:translate(4px)}.site-header{z-index:100;background:var(--blue);color:#fff;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);border-bottom:1px solid #fff3;padding:14px 0;transition:background .35s,border-color .35s,box-shadow .35s;position:sticky;top:0}.site-header:after{content:"";pointer-events:none;background:linear-gradient(90deg,#ffffffe6 0 12%,#ffffff29 42% 100%);height:2px;position:absolute;bottom:-1px;left:0;right:0}.site-header.is-scrolled{background:var(--blue);border-color:#ffffff52;box-shadow:0 12px 34px #123f5533}.header-inner{align-items:center;gap:28px;width:min(1320px,100% - 40px);margin:auto;display:flex}.brand{align-items:center;gap:11px;margin-right:auto;display:inline-flex}.brand img{object-fit:contain;object-position:center;width:50px;height:50px;transition:rotate .5s var(--ease-editorial), scale .5s var(--ease-editorial), box-shadow .5s ease;border:2px solid #fff;border-radius:50%;box-shadow:0 7px 20px #092d3f38}.brand:hover img{rotate:-5deg;scale:1.06;box-shadow:0 11px 28px #092d3f4d}.brand-copy{line-height:1.1;display:grid}.brand-copy strong{color:#fff;font-family:var(--font-display);letter-spacing:.03em;font-size:1.05rem}.brand-copy small{color:#ffffffd1;letter-spacing:.1em;text-transform:uppercase;font-size:.68rem;font-weight:700}.desktop-nav{align-items:center;gap:25px;display:flex}.desktop-nav a{color:#ffffffe6;transition:color .25s ease, translate .35s var(--ease-editorial);font-size:.87rem;font-weight:600;position:relative}.desktop-nav a:hover,.desktop-nav a.active{color:#fff;translate:0 -2px}.desktop-nav a:after{content:"";background:#fff;height:2px;transition:right .2s;position:absolute;bottom:-9px;left:0;right:100%}.desktop-nav a:hover:after,.desktop-nav a.active:after{right:0}.header-cta{color:var(--blue-deep);background:#fff;border-color:#fff}.header-cta:hover{color:var(--blue);background:#fff;border-color:#fff}.menu-toggle{color:#fff;cursor:pointer;width:46px;height:46px;transition:rotate .55s var(--ease-editorial), scale var(--motion-fast) var(--ease-spring), border-color .3s ease, background .3s ease, color .3s ease;background:#ffffff1a;border:1px solid #ffffffb8;border-radius:50%;justify-content:center;align-items:center;display:none}.menu-toggle:hover{color:var(--blue-deep);background:#fff;border-color:#fff}.menu-toggle.is-open{rotate:90deg}.mobile-menu-wrap{display:none}.home-hero{background:radial-gradient(circle at 5% 22%,#5caad41a,#0000 31%);padding:58px 0 0;position:relative;overflow:hidden}.home-hero:before{content:"";pointer-events:none;border:80px solid #5caad41c;border-radius:50%;width:560px;height:560px;position:absolute;top:120px;left:-250px}.home-hero-grid{grid-template-columns:.92fr 1.08fr;align-items:center;gap:64px;display:grid}.home-hero-copy{z-index:2;padding:44px 0 60px;position:relative}.home-hero-copy h1{margin:24px 0 26px}.home-hero-copy h1 em{color:var(--blue-deep);font-weight:500}.hero-lead{color:var(--ink-soft);max-width:640px;font-size:1.13rem;line-height:1.75}.hero-actions{flex-wrap:wrap;gap:12px;margin:34px 0;display:flex}.hero-actions .button,.hero-actions .button-ghost{border-color:var(--blue-deep);background:var(--blue-deep);color:#fff}.hero-actions .button:hover{border-color:var(--blue);background:var(--blue)}.hero-mini-proof{align-items:center;gap:16px;padding-top:15px;display:flex}.hero-mini-proof p{color:var(--ink-soft);margin:0;font-size:.82rem;line-height:1.45}.hero-mini-proof strong{color:var(--ink)}.avatar-stack{display:flex}.avatar-stack img{object-fit:cover;border:3px solid #fff;border-radius:50%;width:44px;height:44px;margin-left:-10px;box-shadow:0 4px 14px #123f5524}.avatar-stack img:first-child{margin-left:0}.home-hero-media{min-height:660px;position:relative}.home-hero-media:before{content:"";background:var(--blue);border-radius:48% 48% 28px 28px;position:absolute;inset:4% -14% 0 5%;transform:rotate(3deg)}.home-hero-media picture,.home-hero-media picture img{height:100%}.home-hero-media picture{border-radius:46% 46% 24px 24px;position:absolute;inset:0;overflow:hidden}.home-hero-media picture img{object-fit:cover;object-position:center;width:100%;box-shadow:var(--shadow);transition:transform 1.1s var(--ease-editorial);border-radius:46% 46% 24px 24px;position:relative}.home-hero-media:hover picture img{transform:scale(1.025)}.hero-price-card{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#fffffff0;border:2px solid #5caad46b;border-radius:18px;min-width:205px;padding:20px 25px;display:grid;position:absolute;bottom:45px;left:-38px;box-shadow:0 24px 62px #123f552e}.hero-price-card span,.hero-price-card small{color:var(--ink-soft);text-transform:uppercase;letter-spacing:.08em;font-size:.74rem}.hero-price-card strong{color:var(--blue-deep);font-family:var(--font-display);white-space:nowrap;font-variant-numeric:tabular-nums;font-size:2.25rem;line-height:1.1}.hero-roundel{background:var(--blue);border:6px solid #fff;border-radius:50%;place-items:center;width:112px;height:112px;display:grid;position:absolute;top:72px;right:18px;overflow:hidden;box-shadow:0 18px 44px #123f5533}.hero-roundel img{object-fit:contain;object-position:center;border-radius:50%;width:100%;height:100%;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.trust-strip{z-index:4;border:1px solid #5caad44d;border-top:4px solid var(--blue);background:linear-gradient(#fff,#f9fdff);border-radius:22px;grid-template-columns:repeat(4,1fr);margin-top:50px;display:grid;position:relative;box-shadow:0 20px 55px #123f551a}.trust-strip>div{border-right:1px solid var(--line);transition:background-color .32s ease, translate .45s var(--ease-editorial);align-items:center;gap:13px;padding:22px 28px;display:flex}.trust-strip>div:hover{background:var(--blue-pale);translate:0 -3px}.trust-strip>div:last-child{border-right:0}.trust-strip strong{font-family:var(--font-display);color:var(--blue-deep);transition:scale .45s var(--ease-spring);font-size:2rem;line-height:1}.trust-strip>div:hover strong{scale:1.08}.trust-strip span{color:var(--ink-soft);font-size:.78rem;line-height:1.35}.statement-grid{grid-template-columns:80px 1.05fr .75fr;align-items:start;gap:48px;display:grid}.section-number{color:var(--blue-deep);font:500 1rem var(--font-body);letter-spacing:.12em;padding-top:8px}.statement-grid h2{max-width:690px;margin:16px 0 0}.statement-body{color:var(--ink-soft);padding-top:35px}.statement-body p{margin-bottom:22px}.statement-body .text-link{color:var(--ink);margin-top:8px}.advantage-section{background:#fff}.section-heading{margin-bottom:54px}.section-heading h2{max-width:800px;margin:16px 0 18px}.section-heading>p:not(.eyebrow){max-width:600px;color:var(--ink-soft);font-size:1.05rem}.section-heading.centered{text-align:center;flex-direction:column;align-items:center;display:flex}.section-heading.centered .eyebrow{justify-content:center}.section-heading.centered h2,.section-heading.centered>p:not(.eyebrow){margin-left:auto;margin-right:auto}.feature-grid{grid-template-columns:repeat(3,1fr);gap:20px;display:grid}.feature-card{border:1px solid var(--line);border-radius:var(--radius);background:var(--cream);min-height:340px;transition:translate .55s var(--ease-editorial), border-color .35s ease, box-shadow .55s var(--ease-editorial);padding:34px;position:relative;overflow:hidden}.feature-card:before{content:"";pointer-events:none;background:radial-gradient(260px circle at var(--pointer-x) var(--pointer-y), #5caad430, transparent 68%);opacity:0;transition:opacity .35s;position:absolute;inset:0}.feature-card:hover{border-color:#5caad48c;translate:0 -7px;box-shadow:0 24px 55px #1b3d501c}.feature-card:hover:before{opacity:1}.feature-card:after{content:"";border:32px solid #5caad41f;border-radius:50%;width:180px;height:180px;position:absolute;bottom:-90px;right:-90px}.card-index{color:#91a1aa;letter-spacing:.14em;font-size:.72rem;font-weight:800;position:absolute;top:27px;right:28px}.icon-tile,.icon-chip{color:var(--blue-deep);background:var(--blue-pale);transition:transform .5s var(--ease-editorial), color .3s ease, background-color .3s ease, box-shadow .5s ease;border-radius:16px;place-items:center;display:grid}.icon-tile{width:58px;height:58px;margin-bottom:54px}.icon-tile svg{width:27px;height:27px}.feature-card:hover .icon-tile,.info-card:hover .icon-tile{color:#fff;background:var(--blue);transform:translateY(-5px)rotate(-6deg)scale(1.06);box-shadow:0 12px 26px #5caad44d}.feature-card h3{margin-bottom:14px}.feature-card p{color:var(--ink-soft);margin:0}.future-section{background:var(--blue);color:#fff;overflow:hidden}.future-grid{grid-template-columns:.85fr 1fr;align-items:center;gap:90px;display:grid}.future-image{position:relative}.future-image:before{content:"";border:1px solid #bceaff59;border-radius:48% 48% 20px 20px;position:absolute;inset:-24px 30px 25px -24px}.future-image img{aspect-ratio:.82;object-fit:cover;border-radius:48% 48% 20px 20px;width:100%;position:relative}.floating-caption{color:var(--ink);box-shadow:var(--shadow);background:#fff;border-radius:999px;align-items:center;gap:9px;padding:13px 18px;font-size:.8rem;font-weight:600;display:flex;position:absolute;bottom:35px;right:-40px}.future-copy h2{margin:20px 0 28px}.future-copy>p:not(.eyebrow){color:#ffffffe6;max-width:650px;font-size:1.04rem}.future-points{flex-wrap:wrap;gap:10px;margin:30px 0 36px;display:flex}.future-points span{color:#fff;transition:translate .4s var(--ease-editorial), border-color .3s ease, background-color .3s ease;border:1px solid #ffffff57;border-radius:12px;align-items:center;gap:8px;padding:10px 13px;font-size:.8rem;display:inline-flex}.future-points span:hover{background:#ffffff12;border-color:#bceaff8c;translate:0 -3px}.future-points svg{color:#fff;width:17px}.split-heading{grid-template-columns:1fr .55fr;align-items:end;gap:70px;display:grid}.split-heading h2{margin-bottom:0}.treatment-list{border-top:1px solid var(--line)}.treatment-row{border-bottom:1px solid var(--line);min-height:94px;transition:padding .45s var(--ease-editorial), background .35s ease, color .35s ease;grid-template-columns:70px 54px 1fr auto;align-items:center;gap:22px;display:grid}.treatment-row:hover{background:#fff;padding:0 20px}.treatment-number{color:#9aa6ad;letter-spacing:.1em;font-size:.75rem}.icon-line{background:var(--blue-pale);width:42px;height:42px;color:var(--blue-deep);transition:rotate .5s var(--ease-editorial), scale .5s var(--ease-spring), color .3s ease, background-color .3s ease;border-radius:50%;place-items:center;display:grid}.icon-line svg{width:20px}.treatment-row:hover .icon-line{color:#fff;background:var(--blue-deep);rotate:-8deg;scale:1.08}.treatment-row strong{font-family:var(--font-display);transition:translate .45s var(--ease-editorial);font-size:clamp(1.4rem,3vw,2.15rem);font-weight:500}.treatment-row:hover strong{translate:5px}.row-arrow{color:var(--blue-deep)}.method-section{background:var(--blue-pale)}.method-grid{grid-template-columns:.75fr .8fr .85fr;align-items:center;gap:60px;display:grid}.method-copy h2{margin:17px 0 23px}.method-copy>p:not(.eyebrow){color:var(--ink-soft)}.method-steps{margin:0;padding:0;list-style:none}.method-steps li{transition:translate .42s var(--ease-editorial), border-color .3s ease;border-bottom:1px solid #1727321f;grid-template-columns:48px 1fr;gap:14px;padding:20px 0;display:grid}.method-steps li:hover{border-color:#5caad48c;translate:7px}.method-steps li>span{color:var(--blue-deep);letter-spacing:.12em;font-size:.75rem;font-weight:800}.method-steps strong{margin-bottom:3px;display:block}.method-steps p{color:var(--ink-soft);margin:0;font-size:.87rem}.method-image img{object-fit:cover;border-radius:180px 180px 24px 24px;width:100%;min-height:510px}.space-gallery{grid-template-rows:250px 250px;grid-template-columns:1.25fr .75fr .75fr;gap:16px;display:grid}.space-gallery figure{transition:translate .6s var(--ease-editorial), box-shadow .6s var(--ease-editorial);border-radius:20px;margin:0;overflow:hidden}.space-gallery figure:hover{translate:0 -5px;box-shadow:0 24px 46px #17273229}.space-gallery img{object-fit:cover;width:100%;height:100%;transition:transform .9s var(--ease-editorial)}.space-gallery figure:hover img{transform:scale(1.035)}.gallery-main{grid-row:span 2}.gallery-wide{grid-column:span 2}.page-hero{padding:76px 0 92px;overflow:hidden}.page-hero-grid{grid-template-columns:.93fr .78fr;align-items:center;gap:90px;display:grid}.page-hero-copy h1{max-width:780px;margin:20px 0 25px;font-size:clamp(3rem,4.8vw,5rem);line-height:1.02}.page-hero-lead{max-width:670px;color:var(--ink-soft);font-size:1.1rem}.page-hero-copy .text-link{margin-top:15px}.page-hero-media{position:relative}.page-hero-media:before{content:"";border:1px solid #5caad46b;border-radius:48% 48% 24px 24px;position:absolute;inset:-28px -28px 35px 35px}.page-hero-media{overflow:visible}.page-hero-media img{aspect-ratio:.86;object-fit:cover;width:100%;box-shadow:var(--shadow);transition:transform 1s var(--ease-editorial);border-radius:48% 48% 24px 24px;position:relative}.page-hero-media:hover img{transform:scale(1.018)}.image-badge{background:var(--blue);color:#fff;max-width:190px;box-shadow:var(--shadow);border-radius:16px;padding:17px 19px;font-size:.82rem;line-height:1.35;position:absolute;bottom:38px;left:-42px}.corner-mark{background:var(--blue);border:5px solid #fff;border-radius:50%;place-items:center;width:74px;height:74px;display:grid;position:absolute;top:32px;right:18px;overflow:hidden;box-shadow:0 14px 34px #123f552e}.corner-mark img{object-fit:contain;object-position:center;border-radius:50%;width:100%;height:100%;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.content-section{padding:clamp(92px,7vw,112px) 0}.content-section.white{background:#fff}.content-section.blue-pale{background:var(--blue-pale)}.two-col{grid-template-columns:1fr 1fr;align-items:center;gap:80px;display:grid}.two-col.align-start{align-items:start}.content-copy h2{margin:16px 0 25px}.content-copy>p:not(.eyebrow){color:var(--ink-soft)}.rounded-image{object-fit:cover;border-radius:30px;width:100%;min-height:560px}.arched-image{object-fit:cover;border-radius:240px 240px 28px 28px;width:100%;min-height:620px}.quote-box{background:var(--blue);color:#fff;border-radius:24px;padding:34px}.quote-box blockquote{font-family:var(--font-display);margin:0;font-size:clamp(1.7rem,3vw,2.7rem);line-height:1.15}.quote-box p{color:#ffffffe0;text-transform:uppercase;letter-spacing:.12em;margin:18px 0 0;font-size:.8rem}.check-list{margin:28px 0;padding:0;list-style:none}.check-list li{border-bottom:1px solid var(--line);transition:translate .4s var(--ease-editorial), border-color .3s ease;gap:12px;padding:14px 0;display:flex}.check-list li:hover{border-color:#5caad47a;translate:6px}.check-list svg{color:var(--blue-deep);flex:none;margin-top:3px}.card-grid{grid-template-columns:repeat(3,1fr);gap:20px;display:grid}.info-card{border:1px solid var(--line);transition:translate .55s var(--ease-editorial), border-color .35s ease, box-shadow .55s var(--ease-editorial);background:#fff;border-radius:24px;padding:31px;position:relative;overflow:hidden}.info-card:before,.comparison-card:before,.lead-form:before{content:"";pointer-events:none;background:radial-gradient(300px circle at var(--pointer-x) var(--pointer-y), #5caad424, transparent 68%);opacity:0;transition:opacity .35s;position:absolute;inset:0}.info-card:hover{border-color:#5caad473;translate:0 -6px;box-shadow:0 22px 50px #1b3d501a}.info-card:hover:before,.comparison-card:hover:before,.lead-form:hover:before{opacity:1}.info-card .icon-tile{margin-bottom:30px}.info-card p{color:var(--ink-soft);margin-bottom:0}.number-card{background:var(--blue);color:#fff;transition:translate .55s var(--ease-editorial), box-shadow .55s var(--ease-editorial);border-radius:24px;padding:35px;position:relative;overflow:hidden}.number-card:before{content:"";pointer-events:none;background:radial-gradient(280px circle at var(--pointer-x) var(--pointer-y), #fff3, transparent 70%);opacity:0;transition:opacity .35s;position:absolute;inset:0}.number-card:hover{translate:0 -6px;box-shadow:0 24px 58px #1727323d}.number-card:hover:before{opacity:1}.number-card>span{color:#fff;font-family:var(--font-display);transition:translate .5s var(--ease-editorial), scale .5s var(--ease-spring);margin-bottom:50px;font-size:3rem;line-height:1;display:block}.number-card:hover>span{translate:5px -4px;scale:1.06}.number-card p{color:#ffffffe0;margin:0}.timeline{gap:0;display:grid;position:relative}.timeline:before{content:"";background:#5caad473;width:1px;position:absolute;top:0;bottom:0;left:24px}.timeline-item{grid-template-columns:49px 1fr;gap:24px;padding:0 0 40px;display:grid;position:relative}.timeline-dot{background:var(--blue);color:#fff;z-index:1;width:49px;height:49px;transition:scale .45s var(--ease-spring), background-color .3s ease, box-shadow .45s ease;border-radius:50%;place-items:center;font-size:.72rem;font-weight:800;display:grid}.timeline-item:hover .timeline-dot{background:var(--blue);scale:1.1;box-shadow:0 0 0 7px #5caad429}.timeline-item h3{transition:color .25s ease, translate .4s var(--ease-editorial);margin:4px 0 8px}.timeline-item:hover h3{color:var(--blue-deep);translate:4px}.timeline-item p{color:var(--ink-soft);margin:0}.faq-list{border-top:1px solid var(--line)}.faq-list details{border-bottom:1px solid var(--line);padding:0}.faq-list summary{cursor:pointer;transition:color .3s ease, padding .45s var(--ease-editorial);justify-content:space-between;gap:20px;padding:25px 0;font-weight:600;list-style:none;display:flex}.faq-list summary span{min-width:0}.faq-list summary:hover{color:var(--blue-deep);padding-inline:8px}.faq-list summary::-webkit-details-marker{display:none}.faq-list summary:after{content:"+";color:var(--blue-deep);transition:rotate .45s var(--ease-editorial), scale .45s var(--ease-spring);font-size:1.35rem;font-weight:500}.faq-list summary:hover:after{scale:1.16}.faq-list details[open] summary:after{content:"−"}.faq-list details p{max-width:800px;color:var(--ink-soft);margin:0;padding:0 0 25px}.cta-band{padding-top:40px}.cta-panel{background:var(--blue);color:#fff;transition:box-shadow .55s var(--ease-editorial);border-radius:34px;grid-template-columns:1fr auto;align-items:center;gap:50px;padding:72px;display:grid;position:relative;overflow:hidden}.cta-panel:hover{box-shadow:0 30px 75px #5caad452}.cta-panel:before{content:"";border:55px solid #ffffff17;border-radius:50%;width:360px;height:360px;position:absolute;top:-190px;right:-110px}.cta-panel>*{position:relative}.cta-panel h2{max-width:780px;margin:15px 0}.cta-panel p:not(.eyebrow){color:#ffffffe6;max-width:670px;margin:0}.cta-orbit{background:#fff;border:4px solid #ffffffd6;border-radius:50%;place-items:center;width:62px;height:62px;display:grid;position:absolute;top:34px;right:29%;overflow:hidden;box-shadow:0 12px 28px #123f552e}.cta-orbit img{object-fit:contain;object-position:center;border-radius:50%;width:100%;height:100%;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.site-footer{background:var(--blue);color:#fff;margin-top:30px;padding:86px 0 25px}.footer-top{grid-template-columns:1.25fr .65fr 1fr 1.1fr;gap:60px;padding-bottom:64px;display:grid}.footer-brand img{object-fit:contain;object-position:center;border-radius:50%;width:98px;height:98px;margin-bottom:22px}.footer-brand p,.footer-action p{color:#ffffffe0;max-width:290px}.footer-title{color:#fff;letter-spacing:.15em;text-transform:uppercase;margin-bottom:20px;font-size:.74rem;font-weight:800}.footer-nav,.footer-contact{flex-direction:column;align-items:flex-start;gap:11px;display:flex}.footer-nav a,.footer-contact a,.footer-contact span{color:#fffffff0;font-size:.9rem}.footer-nav a,.footer-contact a{transition:color .25s ease, translate .4s var(--ease-editorial)}.footer-nav a:hover,.footer-contact a:hover{color:#fff;translate:4px}.footer-contact a,.footer-contact span{align-items:center;gap:8px;display:flex}.footer-bottom{color:#ffffffc7;border-top:1px solid #ffffff52;justify-content:space-between;gap:30px;padding-top:24px;font-size:.75rem;display:flex}.footer-legal-links{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:18px;display:inline-flex}.footer-legal-links a:hover,.privacy-settings-button:hover{color:#fff}.privacy-settings-button{color:inherit;cursor:pointer;font-size:inherit;line-height:inherit;background:0 0;border:0;align-items:center;gap:6px;padding:0;transition:color .25s;display:inline-flex}.floating-whatsapp{z-index:90;background:var(--blue);color:#fff;min-height:50px;transition:transform .45s var(--ease-editorial), scale var(--motion-fast) var(--ease-spring), box-shadow .45s ease, background-color .3s ease;border:2px solid #fff;border-radius:999px;align-items:center;gap:9px;padding:0 18px;font-size:.8rem;font-weight:600;display:flex;position:fixed;bottom:22px;right:22px;box-shadow:0 15px 35px #123f553d}.floating-whatsapp:before{content:"";z-index:-1;border-radius:inherit;border:2px solid #5caad494;animation:4s ease-out infinite whatsapp-ring;position:absolute;inset:-2px}.floating-whatsapp:hover{background:var(--blue-deep);transform:translateY(-4px);box-shadow:0 20px 45px #17273252}.floating-whatsapp svg{width:20px}.privacy-bar{z-index:300;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);width:min(1120px,100% - 44px);min-height:92px;color:var(--ink);animation:privacy-bar-in .65s var(--ease-editorial) both;background:#fffffff5;border:1px solid #5caad447;border-radius:19px;grid-template-columns:minmax(360px,1fr) auto auto;align-items:center;gap:24px;margin-inline:auto;padding:17px 54px 17px 20px;display:grid;position:fixed;bottom:22px;left:22px;right:22px;box-shadow:0 20px 60px #0922303d}.privacy-bar-copy{align-items:center;gap:14px;min-width:0;display:flex}.privacy-bar-mark{background:var(--blue);color:#fff;border-radius:13px;flex:none;place-items:center;width:43px;height:43px;display:grid}.privacy-bar:hover .privacy-bar-mark{animation:privacy-shield-pop .55s var(--ease-editorial) both}.privacy-bar-copy .eyebrow{margin:0 0 3px;font-size:.59rem}.privacy-bar-copy .eyebrow:before{width:15px}.privacy-bar-copy h2{font-family:var(--font-body);letter-spacing:-.015em;margin:0 0 3px;font-size:.98rem;font-weight:850;line-height:1.2}.privacy-bar-copy p:last-child{color:var(--ink-soft);margin:0;font-size:.72rem;line-height:1.45}.privacy-bar-links{color:var(--blue-deep);white-space:nowrap;gap:14px;font-size:.7rem;font-weight:600;display:inline-flex}.privacy-bar-links a{border-bottom:1px solid #5caad473}.privacy-bar-actions{white-space:nowrap;align-items:center;gap:9px;display:flex}.privacy-bar-actions .button{cursor:pointer;border:0;min-height:42px;padding:0 17px;font-size:.74rem;font-weight:600}.privacy-bar-necessary{border:1px solid var(--line);min-height:42px;color:var(--ink);cursor:pointer;transition:scale var(--motion-fast) var(--ease-spring), border-color .3s ease, background-color .3s ease;background:#fff;border-radius:999px;padding:0 14px;font-size:.7rem;font-weight:600}.privacy-bar-necessary:hover{background:var(--blue-pale);border-color:#5caad480}.privacy-bar-close{background:var(--cream);width:31px;height:31px;color:var(--ink-soft);cursor:pointer;transition:rotate .45s var(--ease-editorial), scale var(--motion-fast) var(--ease-spring), color .25s ease, background-color .25s ease;border:0;border-radius:50%;place-items:center;padding:0;display:grid;position:absolute;top:10px;right:10px}.privacy-bar-close:hover{color:var(--ink);background:var(--blue-pale);rotate:90deg}.privacy-bar :focus-visible,.privacy-settings-button:focus-visible{outline-offset:3px;outline:3px solid #5caad494}@keyframes privacy-bar-in{0%{opacity:0;transform:translateY(28px)}}@keyframes privacy-shield-pop{50%{transform:translateY(-3px)rotate(-6deg)scale(1.08)}}@media (max-width:980px){.privacy-bar{grid-template-columns:1fr auto;gap:13px 18px;padding:15px 48px 15px 17px}.privacy-bar-copy{grid-column:1/-1}.privacy-bar-links{padding-left:57px}}.not-found-page{background:radial-gradient(circle at 50% 42%, white 0 18%, var(--cream) 58%);place-items:center;min-height:calc(100svh - 80px);padding:clamp(80px,10vw,130px) 0;display:grid;position:relative;overflow:hidden}.not-found-page:before,.not-found-page:after{content:"";pointer-events:none;border:1px solid #5caad43d;border-radius:50%;position:absolute}.not-found-page:before{width:440px;height:440px;top:12%;left:-260px}.not-found-page:after{width:300px;height:300px;bottom:6%;right:-170px}.not-found-wrap{z-index:1;text-align:center;max-width:900px;position:relative}.not-found-code{color:#5caad433;font:500 clamp(7.5rem, 17vw, 13rem)/.72 var(--font-display);letter-spacing:-.08em;margin-bottom:-12px}.not-found-wrap .eyebrow{justify-content:center}.not-found-wrap h1{max-width:850px;margin:20px auto 24px;font-size:clamp(3rem,5vw,5.4rem)}.not-found-lead{max-width:650px;color:var(--ink-soft);margin:0 auto;font-size:1.02rem}.not-found-actions{flex-wrap:wrap;justify-content:center;gap:11px;margin:32px 0 34px;display:flex}.not-found-links{color:var(--ink-soft);flex-wrap:wrap;justify-content:center;gap:10px 24px;font-size:.8rem;font-weight:600;display:flex}.not-found-links a{border-bottom:1px solid #17273240;align-items:center;gap:6px;display:inline-flex}.lead-form{border:1px solid var(--line);box-shadow:var(--shadow);background:#fff;border-radius:30px;padding:clamp(28px,5vw,52px);position:relative;overflow:hidden}.lead-form>*{position:relative}.form-heading{align-items:flex-start;gap:17px;display:flex}.form-heading .icon-chip{flex:none;width:45px;height:45px}.form-heading h2{margin:8px 0 0;font-size:clamp(2.15rem,3.5vw,3.3rem)}.form-intro{max-width:680px;color:var(--ink-soft);margin:18px 0 32px}.form-grid{grid-template-columns:1fr 1fr;gap:20px;display:grid}.lead-form label{color:var(--ink);gap:8px;font-size:.82rem;font-weight:750;display:grid}.field-label{color:var(--ink);transition:color .25s ease, translate .35s var(--ease-editorial);align-items:baseline;gap:4px;line-height:1.35;display:inline-flex}.lead-form label:focus-within .field-label{color:var(--blue-deep);translate:3px}.required-mark{color:var(--blue-deep);font-size:1rem;font-weight:900;line-height:1}.optional-mark{color:#7d8b94;letter-spacing:.08em;text-transform:uppercase;margin-left:auto;font-size:.64rem;font-weight:750}.lead-form input,.lead-form select,.lead-form textarea{width:100%;color:var(--ink);background:#fbfcfc;border:1px solid #d5dfe4;border-radius:13px;outline:none;padding:14px 15px;transition:border .2s,box-shadow .2s,background-color .2s}.lead-form input:focus,.lead-form select:focus,.lead-form textarea:focus{border-color:var(--blue);box-shadow:0 0 0 4px #5caad429}.lead-form input[aria-invalid=true],.lead-form select[aria-invalid=true],.lead-form textarea[aria-invalid=true]{background:snow;border-color:#b33c3c}.lead-form input[aria-invalid=true]:focus,.lead-form select[aria-invalid=true]:focus,.lead-form textarea[aria-invalid=true]:focus{box-shadow:0 0 0 4px #b33c3c1f}.lead-form textarea{resize:vertical}.field-help{color:#71818b;font-size:.69rem;font-weight:500;line-height:1.4}.field-error{color:#9b2e2e;animation:feedback-in .38s var(--ease-editorial) both;align-items:flex-start;gap:6px;font-size:.72rem;font-weight:700;line-height:1.4;display:flex}.field-error svg{flex:none;margin-top:1px}.form-validation-summary{color:#812727;animation:feedback-in .42s var(--ease-editorial) both;background:#fff0f0;border:1px solid #9b2e2e2e;border-radius:14px;align-items:flex-start;gap:10px;margin:-8px 0 24px;padding:14px 15px;display:flex}.form-validation-summary>svg{flex:none;margin-top:1px}.form-validation-summary strong,.form-validation-summary span{display:block}.form-validation-summary strong{font-size:.8rem}.form-validation-summary span{color:#9b2e2e;margin-top:2px;font-size:.74rem;line-height:1.45}.field-wide{grid-column:1/-1}.form-hp{clip:rect(0 0 0 0)!important;clip-path:inset(50%)!important;white-space:nowrap!important;width:1px!important;height:1px!important;position:absolute!important;overflow:hidden!important}.privacy-summary{background:#f7fbfd;border:1px solid #d5dfe4;border-radius:16px;grid-template-columns:1fr 1fr;gap:0;margin:26px 0 0;display:grid;overflow:hidden}.privacy-summary>div{border-bottom:1px solid #d5dfe4;border-right:1px solid #d5dfe4;padding:15px 17px}.privacy-summary>div:nth-child(2n){border-right:0}.privacy-summary>div:nth-last-child(-n+2){border-bottom:0}.privacy-summary dt{color:var(--blue-deep);letter-spacing:.1em;text-transform:uppercase;font-size:.68rem;font-weight:850}.privacy-summary dd{color:var(--ink-soft);margin:5px 0 0;font-size:.78rem;line-height:1.45}.privacy-summary a{color:var(--ink);text-underline-offset:2px;text-decoration:underline}.consent-block{margin:24px 0}.consent-row{align-items:start;margin:0;line-height:1.45;color:var(--ink-soft)!important;grid-template-columns:18px 1fr!important;font-weight:500!important}.consent-row input{width:17px;height:17px;accent-color:var(--blue-deep);margin:3px 0 0}.consent-row a{color:var(--ink);text-decoration:underline}.consent-block .field-error{margin:8px 0 0 26px}.consent-block.has-error{background:snow;border:1px solid #9b2e2e2e;border-radius:13px;padding:12px 13px}.sr-only{clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important;width:1px!important;height:1px!important;margin:-1px!important;padding:0!important;position:absolute!important;overflow:hidden!important}.form-submit{cursor:pointer;border:0}.form-submit:disabled{cursor:wait;opacity:.74;transform:none}.form-spinner{animation:.8s linear infinite form-spin}.form-status{animation:feedback-in .48s var(--ease-editorial) both;border-radius:13px;align-items:flex-start;gap:9px;margin:18px 0 0;padding:13px 15px;font-weight:700;line-height:1.45;display:flex}.form-status svg{flex:none;width:20px;margin-top:1px}.form-status.success{color:#146242;background:#eaf8f1}.form-status.preview{color:var(--ink);background:var(--blue-pale)}.form-status.error{color:#9b2e2e;background:#fff0f0}@keyframes form-spin{to{transform:rotate(360deg)}}@keyframes feedback-in{0%{opacity:0;transform:translateY(-7px)scale(.985)}}.comparison-wrap{grid-template-columns:1fr 1fr;gap:22px;max-width:980px;margin:0 auto;display:grid}.comparison-card{transition:translate .55s var(--ease-editorial), box-shadow .55s var(--ease-editorial);border-radius:28px;padding:42px;position:relative;overflow:hidden}.comparison-card>*{position:relative}.comparison-card:hover{translate:0 -6px;box-shadow:0 24px 54px #1b3d501f}.comparison-card.muted{background:var(--cream);border:1px solid var(--line)}.comparison-card.accent{background:var(--blue-deep);color:#fff;box-shadow:var(--shadow)}.comparison-label{color:var(--blue-deep);letter-spacing:.15em;text-transform:uppercase;font-size:.72rem;font-weight:800}.comparison-card.accent .comparison-label{color:#fff}.comparison-card h3{font-family:var(--font-display);font-size:2rem;font-weight:500}.comparison-card ul{margin:24px 0 0;padding-left:20px}.comparison-card li{color:var(--ink-soft);margin:12px 0}.comparison-card.accent li{color:#ffffffe6}.service-grid{grid-template-columns:repeat(2,1fr);gap:24px;display:grid}.service-card{border:1px solid var(--line);background:var(--cream);min-height:340px;transition:translate .55s var(--ease-editorial), box-shadow .55s var(--ease-editorial), border-color .35s ease;border-radius:26px;grid-template-columns:.82fr 1fr;scroll-margin-top:120px;display:grid;position:relative;overflow:hidden}.service-card:before{content:"";z-index:2;pointer-events:none;background:radial-gradient(320px circle at var(--pointer-x) var(--pointer-y), #5caad424, transparent 68%);opacity:0;transition:opacity .35s;position:absolute;inset:0}.service-card:hover:before{opacity:1}.service-card:target{border-color:var(--blue);box-shadow:0 0 0 5px #5caad429, var(--shadow)}.service-card:hover{border-color:#5caad47a;translate:0 -5px;box-shadow:0 22px 55px #1b3d501c}.service-image{overflow:hidden}.service-image img{object-fit:cover;width:100%;height:100%;transition:transform .9s var(--ease-editorial)}.service-card:hover .service-image img{transform:scale(1.04)}.service-copy{flex-direction:column;justify-content:center;padding:31px;display:flex}.service-meta{color:var(--blue-deep);justify-content:space-between;align-items:center;margin-bottom:45px;display:flex}.service-meta span{letter-spacing:.12em;font-size:.72rem;font-weight:800}.service-meta svg{width:25px;transition:rotate .5s var(--ease-editorial), scale .5s var(--ease-spring)}.service-card:hover .service-meta svg{rotate:-8deg;scale:1.1}.service-copy h3{font-family:var(--font-display);font-size:2rem;font-weight:500}.service-copy p{color:var(--ink-soft);margin:0}.results-section{background:var(--cream);overflow:hidden}.results-carousel{position:relative}.results-carousel-controls{justify-content:flex-end;gap:9px;margin:-30px 0 22px;display:flex}.results-carousel-controls button{width:46px;height:46px;color:var(--blue);cursor:pointer;transition:transform .35s var(--ease-editorial), background-color .25s ease, color .25s ease, box-shadow .35s ease;background:#fff;border:1px solid #5caad480;border-radius:50%;place-items:center;padding:0;display:grid}.results-carousel-controls button:hover{background:var(--blue);color:#fff;transform:translateY(-3px);box-shadow:0 12px 28px #5caad440}.results-carousel-controls svg{width:19px}.results-carousel-track{overscroll-behavior-inline:contain;scroll-snap-type:inline mandatory;scrollbar-width:none;grid-auto-columns:calc(33.3333% - 12px);grid-auto-flow:column;gap:18px;padding:3px 1px 16px;scroll-padding-inline:1px;display:grid;overflow-x:auto}.results-carousel-track::-webkit-scrollbar{display:none}.result-slide{background:var(--blue-pale);scroll-snap-align:start;border-radius:26px;height:470px;margin:0;position:relative;overflow:hidden;box-shadow:0 18px 44px #1b3d501a}.result-slide img{object-fit:cover;width:100%;height:100%;transition:transform .8s var(--ease-editorial)}.result-slide:hover img{transform:scale(1.035)}.result-slide:after{content:"";pointer-events:none;background:linear-gradient(#0000,#123f55c7);position:absolute;inset:44% 0 0}.result-slide figcaption{z-index:1;color:#fff;gap:4px;display:grid;position:absolute;bottom:22px;left:24px;right:24px}.result-slide figcaption span{letter-spacing:.14em;font-size:.68rem;font-weight:700}.result-slide figcaption strong{font-family:var(--font-display);font-size:1.6rem;font-weight:500;line-height:1.05}.specialist-section{background:var(--blue);color:#fff}.specialist-section .content-copy>p:not(.eyebrow){color:#ffffffe6}.specialist-stats{border:1px solid #ffffff24;border-radius:24px;grid-template-columns:1fr 1fr;display:grid;overflow:hidden}.specialist-stats>div{transition:background-color .35s ease, translate .45s var(--ease-editorial);border-bottom:1px solid #ffffff24;border-right:1px solid #ffffff24;padding:28px}.specialist-stats>div:hover{background:#ffffff0f;translate:0 -3px}.specialist-stats>div:nth-child(2n){border-right:0}.specialist-stats>div:nth-child(n+3){border-bottom:0}.specialist-stats strong{color:#fff;letter-spacing:.12em;margin-bottom:28px;font-size:.7rem;display:block}.specialist-stats span{font-family:var(--font-display);font-size:1.5rem;display:block}.specialist-stats p{color:#ffffffd6;margin:6px 0 0;font-size:.82rem}.learning-grid{grid-template-columns:repeat(3,1fr)}.authority-section{background:#fff}.authority-grid{grid-template-columns:1.12fr .8fr;align-items:center;gap:84px;display:grid}.authority-gallery{grid-template-columns:1.08fr .8fr;gap:16px;min-height:650px;display:grid;position:relative}.authority-gallery figure{box-shadow:var(--shadow);border-radius:26px;margin:0;overflow:hidden}.authority-gallery img{object-fit:cover;width:100%;height:100%;transition:transform .9s var(--ease-editorial)}.authority-gallery figure:hover img{transform:scale(1.03)}.authority-awards{height:590px}.authority-team{height:500px;margin-top:115px!important}.support-flow{grid-template-columns:repeat(3,1fr);gap:10px;margin-top:32px;display:grid}.support-flow>div{transition:translate .45s var(--ease-editorial), box-shadow .45s ease;background:#fff;border-radius:15px;padding:18px}.support-flow>div:hover{translate:0 -5px;box-shadow:0 16px 34px #1b3d501a}.support-flow span{color:var(--blue-deep);text-transform:uppercase;letter-spacing:.1em;font-size:.68rem;font-weight:800;display:block}.support-flow strong{margin:8px 0 4px;display:block}.support-flow p{margin:0;font-size:.78rem}.quote-large{flex-direction:column;justify-content:flex-end;min-height:430px;padding:50px;display:flex}.investment-highlight{background:var(--blue);color:#fff;padding:70px 0}.investment-highlight-grid{grid-template-columns:.65fr 1fr .75fr;align-items:center;gap:55px;display:grid}.investment-highlight-grid h2{margin:15px 0 0;font-size:clamp(2.5rem,4.5vw,4.4rem)}.investment-highlight-grid>p{color:#ffffffe6}.price-display{justify-items:start;display:grid}.price-display span,.price-display small{color:#ffffffe6;text-transform:uppercase;letter-spacing:.12em;font-size:.7rem}.price-display strong{color:#fff;font-family:var(--font-display);white-space:nowrap;font-variant-numeric:tabular-nums;transition:scale .6s var(--ease-spring), text-shadow .5s ease;transform-origin:0;margin:6px 0;font-size:clamp(3.3rem,6vw,5.5rem);line-height:.95}.price-display:hover strong{text-shadow:0 12px 34px #123f5538;scale:1.045}.contact-hero{background:linear-gradient(150deg, var(--blue-pale) 0 44%, var(--cream) 44%);padding:80px 0 110px}.contact-hero-grid{grid-template-columns:.73fr 1.15fr;align-items:center;gap:80px;display:grid}.contact-intro h1{margin:20px 0 26px;font-size:clamp(3rem,5vw,5rem)}.contact-intro>p:not(.eyebrow){color:var(--ink-soft);font-size:1.05rem}.contact-proof{gap:16px;margin-top:36px;display:grid}.contact-proof>div{transition:translate .42s var(--ease-editorial);grid-template-columns:43px 1fr;align-items:center;gap:14px;display:grid}.contact-proof>div:hover{translate:6px}.contact-proof svg{width:43px;height:43px;color:var(--blue-deep);transition:rotate .45s var(--ease-editorial), scale .45s var(--ease-spring), color .3s ease, background-color .3s ease;background:#fff;border-radius:12px;padding:10px}.contact-proof>div:hover svg{color:#fff;background:var(--blue-deep);rotate:-6deg;scale:1.08}.contact-proof span{color:var(--ink-soft);font-size:.82rem;display:grid}.contact-proof strong{color:var(--ink)}.franchise-direct-contact{width:fit-content;color:var(--brand-dark);transition:transform .4s var(--ease-editorial), box-shadow .4s ease;background:#fff;border:1px solid #5caad461;border-radius:16px;align-items:center;gap:13px;margin-top:30px;padding:14px 17px;display:flex}.franchise-direct-contact:hover{transform:translateY(-3px);box-shadow:0 16px 35px #123f551a}.franchise-direct-contact>svg{background:var(--blue);color:#fff;border-radius:50%;width:38px;height:38px;padding:9px}.franchise-direct-contact span{display:grid}.franchise-direct-contact small{color:var(--ink-soft);font-size:.68rem}.franchise-direct-contact strong{font-size:.92rem}.legal-wrap{max-width:880px}.legal-wrap h1{margin:22px 0 12px;font-size:clamp(3rem,5vw,5rem)}.legal-updated{color:var(--ink-soft);margin-bottom:60px}.legal-wrap h2{font-family:var(--font-display);letter-spacing:-.02em;margin:40px 0 14px;font-size:2rem}.legal-wrap p{color:var(--ink-soft)}.legal-wrap a{color:var(--blue-deep);text-underline-offset:3px;text-decoration:underline}.legal-notice-card{background:var(--blue-pale);border:1px solid #5caad457;border-radius:20px;margin:0 0 48px;padding:28px 30px}.legal-notice-card strong{color:var(--ink)}.legal-notice-card p{margin:8px 0 0}.legal-pending{background:#fff8e8;border-left:4px solid #d99b2b;border-radius:0 12px 12px 0;padding:18px 20px}@view-transition{navigation:auto}::view-transition-old(root){animation:.28s both page-out}::view-transition-new(root){animation:page-in .62s var(--ease-editorial) both}.motion-ready .reveal-item{will-change:opacity, transform, filter}.motion-ready .reveal-item:not(.is-visible){opacity:0;filter:blur(6px);transform:translateY(28px)scale(.985)}.motion-ready .reveal-item.is-visible{opacity:1;filter:none;will-change:auto;transform:none}.hero-roundel{animation:10s ease-in-out infinite roundel-drift}.cta-orbit{animation:5s ease-in-out infinite orbit-float}@keyframes page-out{to{opacity:0;transform:scale(.992)}}@keyframes page-in{0%{opacity:0;transform:translateY(12px)}}@keyframes roundel-drift{0%,to{transform:rotate(-3deg)translateY(0)}50%{transform:rotate(4deg)translateY(-8px)}}@keyframes orbit-float{0%,to{transform:translateY(0)rotate(0)}50%{transform:translateY(-10px)rotate(10deg)}}@keyframes whatsapp-ring{0%,72%{opacity:0;transform:scale(1)}78%{opacity:.55}to{opacity:0;transform:scale(1.28)}}@media (max-width:1080px){.shell{width:min(980px,100% - 48px)}.section-pad{padding:98px 0}.content-section{padding:94px 0}.desktop-nav{display:none}.menu-toggle{display:inline-flex}.header-cta{margin-left:auto}.mobile-menu-wrap{visibility:hidden;opacity:0;pointer-events:none;background:#17273240;height:calc(100vh - 79px);transition:opacity .25s,visibility .25s;display:block;position:fixed;inset:79px 0 auto;overflow:hidden}.mobile-menu-wrap.is-open{visibility:visible;opacity:1;pointer-events:auto}.mobile-nav{background:var(--cream);width:min(100%,480px);height:100%;color:var(--brand-dark);opacity:0;transition:opacity .45s var(--ease-editorial), transform .55s var(--ease-editorial);padding:40px 34px;position:absolute;top:0;right:0;overflow-y:auto;transform:translate(42px)}.is-open .mobile-nav{opacity:1;transform:translate(0)}.mobile-nav>*{--menu-order:0;opacity:0;transition:opacity .34s ease, transform .48s var(--ease-editorial);transform:translate(18px)}.is-open .mobile-nav>*{opacity:1;transition-delay:calc(90ms + var(--menu-order) * 45ms);transform:translate(0)}.mobile-nav>:nth-child(2){--menu-order:1}.mobile-nav>:nth-child(3){--menu-order:2}.mobile-nav>:nth-child(4){--menu-order:3}.mobile-nav>:nth-child(5){--menu-order:4}.mobile-nav>:nth-child(6){--menu-order:5}.mobile-nav>:nth-child(7){--menu-order:6}.mobile-nav>:nth-child(8){--menu-order:7}.mobile-nav>a:not(.button){border-bottom:1px solid var(--line);color:var(--brand-dark);font:500 1.8rem/1 var(--font-display);grid-template-columns:32px 1fr auto;align-items:center;gap:12px;padding:19px 0;display:grid}.mobile-nav>a:not(.button):hover,.mobile-nav>a:not(.button):focus-visible{color:var(--blue-deep)}.mobile-nav>a>span{color:#6f818c;font:800 .68rem/1 var(--font-body)}.mobile-nav>a.active{color:var(--blue-deep)}.mobile-menu-cta{width:100%;margin-top:30px}.mobile-menu-note{text-align:center;color:var(--ink-soft);margin-top:22px;font-size:.78rem}.home-hero-grid{grid-template-columns:1fr 1fr;gap:36px}.home-hero-media{min-height:570px}.future-grid{gap:60px}.method-grid{grid-template-columns:1fr 1fr}.method-image{grid-column:1/-1}.method-image img{aspect-ratio:1.8;border-radius:28px;min-height:480px}.page-hero-grid{gap:60px}.footer-top{grid-template-columns:1fr 1fr}}@media (max-width:900px){.shell{width:min(760px,100% - 48px)}.section-pad{padding:92px 0}.content-section{padding:88px 0}.home-hero{padding-top:38px}.home-hero-grid{flex-direction:column;gap:28px;display:flex}.home-hero-copy{text-align:center;max-width:720px;padding:34px 0 20px}.home-hero-copy .eyebrow,.hero-actions,.hero-mini-proof{justify-content:center}.hero-lead{margin-inline:auto}.home-hero-media{width:min(92%,640px);min-height:620px;margin-inline:auto}.trust-strip{grid-template-columns:1fr 1fr}.trust-strip>div{border-bottom:1px solid var(--line);text-align:center;justify-content:center}.trust-strip>div:nth-child(2){border-right:0}.trust-strip>div:nth-child(n+3){border-bottom:0}.statement-grid{grid-template-columns:56px 1fr;gap:28px}.statement-body{grid-column:2;padding-top:0}.feature-grid,.card-grid{grid-template-columns:repeat(2,1fr)}.feature-card:last-child:nth-child(odd),.card-grid>:last-child:nth-child(odd){grid-column:1/-1}.future-grid,.two-col,.page-hero-grid,.contact-hero-grid{grid-template-columns:1fr;gap:58px}.future-copy{order:-1}.future-copy,.page-hero-copy,.contact-intro{text-align:center;max-width:720px;margin-inline:auto}.future-copy .eyebrow,.page-hero-copy .eyebrow,.contact-intro .eyebrow{justify-content:center}.future-copy>p:not(.eyebrow),.page-hero-lead{margin-inline:auto}.future-points{justify-content:center}.future-image{width:min(82%,600px);margin-inline:auto}.method-grid{grid-template-columns:1fr 1fr;gap:44px}.method-image{grid-column:1/-1}.page-hero{padding:68px 0 90px}.page-hero-media{width:min(76%,560px);margin-inline:auto}.service-grid{grid-template-columns:1fr}.service-card{min-height:360px}.authority-grid{grid-template-columns:1fr;gap:52px}.authority-gallery{width:min(100%,760px);margin-inline:auto}.authority-grid .content-copy{text-align:center;max-width:720px}.authority-grid .content-copy .eyebrow{justify-content:center}.two-col>.rounded-image,.two-col>.arched-image{order:-1;width:min(82%,620px);margin-inline:auto}.content-copy{max-width:760px;margin-inline:auto}.contact-hero{background:linear-gradient(165deg, var(--blue-pale) 0 35%, var(--cream) 35%);padding:72px 0 96px}.contact-proof{text-align:left;max-width:440px;margin-inline:auto}.franchise-direct-contact{text-align:left;margin-inline:auto}.investment-highlight-grid{text-align:center;grid-template-columns:1fr;gap:34px}.investment-highlight-grid .eyebrow{justify-content:center}.price-display{justify-items:center}.faq-layout{gap:44px}.faq-heading{text-align:center;width:100%;max-width:720px;margin-inline:auto}.faq-heading .eyebrow{justify-content:center}.faq-heading h2{max-width:15ch;margin:16px auto 0}.faq-layout .faq-list{text-align:left;width:100%}.cta-panel{grid-template-columns:1fr;gap:34px;padding:58px}.cta-panel .button{justify-self:start}}@media (max-width:760px){body{font-size:15px}.shell{width:min(100% - 36px,580px)}.section-pad,.content-section{padding:80px 0}h1{font-size:clamp(2.9rem,14vw,4.4rem)}h2{font-size:clamp(2.25rem,10.5vw,3.3rem)}.site-header{padding:10px 0}.header-inner{gap:10px;width:calc(100% - 28px)}.brand img{width:46px;height:46px}.brand-copy strong{font-size:.85rem}.brand-copy small{font-size:.56rem}.header-cta{display:none}.menu-toggle{width:43px;height:43px;margin-left:auto}.mobile-menu-wrap{height:calc(100vh - 67px);inset:67px 0 auto}.mobile-nav{text-align:center;width:100%;padding:35px 22px}.mobile-nav .eyebrow{justify-content:center}.mobile-nav>a:not(.button){text-align:left;grid-template-columns:30px 1fr 30px;font-size:1.75rem}.home-hero{padding-top:30px}.home-hero-grid{flex-direction:column;gap:20px;display:flex}.home-hero-copy{text-align:center;padding:26px 0 22px}.home-hero-copy .eyebrow{justify-content:center}.home-hero-copy h1{margin:20px 0}.hero-lead{font-size:1rem}.hero-actions{flex-direction:column;align-items:stretch;max-width:340px;margin:28px auto}.hero-mini-proof{text-align:center;flex-direction:column;justify-content:center}.home-hero-media{width:100%;min-height:500px;margin-top:8px}.home-hero-media:before{inset:4% -8% 0 3%}.home-hero-media picture img{border-radius:46% 46% 22px 22px}.hero-price-card{text-align:center;min-width:200px;bottom:18px;left:50%;transform:translate(-50%)}.hero-price-card:hover{transform:translate(-50%)}.hero-roundel{border-width:5px;width:86px;height:86px;top:54px;left:12px;right:auto}.trust-strip{grid-template-columns:1fr 1fr;margin-top:32px}.trust-strip>div{border-bottom:1px solid var(--line);text-align:center;flex-direction:column;justify-content:center;gap:6px;padding:18px 12px}.trust-strip>div:nth-child(2){border-right:0}.trust-strip>div:nth-child(3),.trust-strip>div:nth-child(4){border-bottom:0}.statement-grid{text-align:center;grid-template-columns:1fr;justify-items:center;gap:18px}.statement-grid>div:nth-child(2){width:100%}.statement-grid h2{margin-left:auto;margin-right:auto}.section-number{justify-self:center}.statement-grid .eyebrow{justify-content:center}.statement-body{grid-column:auto;width:100%;max-width:430px;margin-inline:auto;padding-top:8px}.feature-grid,.card-grid{grid-template-columns:1fr}.feature-card{text-align:center;min-height:290px;padding:28px}.feature-card:last-child:nth-child(odd),.card-grid>:last-child:nth-child(odd){grid-column:auto}.feature-card .icon-tile{margin:20px auto 38px}.future-grid,.two-col{text-align:center;grid-template-columns:1fr;gap:52px}.future-copy .eyebrow,.content-copy .eyebrow{justify-content:center}.future-copy{order:-1}.future-points{justify-content:center}.future-image img{aspect-ratio:.9}.floating-caption{z-index:2;text-align:center;border-radius:12px;justify-content:center;width:fit-content;max-width:calc(100% - 28px);margin:12px auto 0;padding:9px 14px;font-size:.72rem;line-height:1.25;position:relative;bottom:auto;right:auto;transform:none}.split-heading{text-align:center;grid-template-columns:1fr;gap:15px}.split-heading .eyebrow{justify-content:center}.split-heading>p{margin-inline:auto}.results-carousel-controls{justify-content:center;margin:-6px 0 18px}.results-carousel-track{grid-auto-columns:84%;gap:14px}.result-slide{height:430px}.treatment-row{text-align:left;grid-template-columns:32px 42px 1fr 22px;gap:10px;min-height:80px}.treatment-row:hover{padding:0 5px}.treatment-row strong{font-size:1.28rem}.method-grid{text-align:center;grid-template-columns:1fr;gap:38px}.method-copy .eyebrow{justify-content:center}.method-steps{text-align:left}.method-image{grid-column:auto}.method-image img{aspect-ratio:.9;border-radius:160px 160px 22px 22px;min-height:400px}.space-gallery{grid-template-rows:270px 190px 190px;grid-template-columns:1fr 1fr}.gallery-main{grid-area:auto/span 2}.gallery-wide{grid-column:span 2}.page-hero{padding:50px 0 72px}.page-hero-grid{text-align:center;flex-direction:column;gap:54px;display:flex}.page-hero-copy .eyebrow{justify-content:center}.page-hero-copy h1{font-size:clamp(2.9rem,12vw,3.8rem)}.page-hero-media{width:88%}.page-hero-media img{aspect-ratio:.88}.image-badge{width:max-content;max-width:90%;bottom:-24px;left:50%;transform:translate(-50%)}.corner-mark{top:30px;right:8px}.two-col>.rounded-image,.two-col>.arched-image{order:-1}.rounded-image,.arched-image{min-height:480px}.card-grid .info-card,.number-card{text-align:center}.authority-gallery{grid-template-columns:1.05fr .8fr;gap:10px;min-height:470px}.authority-gallery figure{border-radius:20px}.authority-awards{height:430px}.authority-team{height:350px;margin-top:72px!important}.info-card .icon-tile{margin-inline:auto}.timeline{text-align:left}.faq-layout{gap:38px}.faq-heading h2{max-width:11ch}.faq-layout .faq-list summary{text-align:left;grid-template-columns:minmax(0,1fr) 24px;align-items:start;gap:14px;padding:22px 0;line-height:1.4;display:grid}.faq-layout .faq-list summary:hover{padding-inline:0}.faq-layout .faq-list summary:after{justify-self:end;line-height:1}.faq-layout .faq-list details p{text-align:left;padding-right:38px}.cta-panel{text-align:center;grid-template-columns:1fr;gap:30px;padding:50px 24px}.cta-panel .eyebrow{justify-content:center}.cta-panel .button{width:100%}.cta-orbit{display:none}.site-footer{padding-top:65px}.footer-top{text-align:center;grid-template-columns:1fr;gap:42px}.footer-brand,.footer-nav,.footer-contact,.footer-action{flex-direction:column;align-items:center;display:flex}.footer-brand img{margin-inline:auto}.footer-brand p,.footer-action p{margin-left:auto;margin-right:auto}.footer-bottom{text-align:center;flex-direction:column;align-items:center;gap:8px}.footer-legal-links{justify-content:center}.privacy-bar{text-align:center;border-radius:17px;grid-template-columns:1fr;gap:11px;width:calc(100% - 20px);min-height:0;padding:17px 16px 14px;bottom:10px;left:10px;right:10px}.privacy-bar-copy{flex-direction:column;grid-column:auto;gap:8px;padding-inline:22px}.privacy-bar-mark{border-radius:12px;width:38px;height:38px}.privacy-bar-copy .eyebrow{justify-content:center}.privacy-bar-copy h2{font-size:.92rem}.privacy-bar-copy p:last-child{max-width:340px;font-size:.68rem}.privacy-bar-links{justify-content:center;padding-left:0}.privacy-bar-actions{justify-content:center}.privacy-bar-actions .button,.privacy-bar-necessary{flex:1 1 0;min-height:40px;padding-inline:12px}.privacy-bar-close{top:8px;right:8px}.floating-whatsapp{justify-content:center;width:52px;height:52px;min-height:0;padding:0;bottom:14px;right:14px}.floating-whatsapp span{display:none}.lead-form{border-radius:24px;padding:30px 20px}.form-heading{gap:12px}.form-heading .icon-chip{width:43px;height:43px}.form-heading h2{margin-top:7px;font-size:clamp(2.35rem,11.5vw,3.05rem);line-height:.98}.form-intro{margin:16px 0 26px;line-height:1.62}.form-validation-summary{text-align:left;margin:-4px 0 22px}.form-grid{grid-template-columns:1fr;gap:18px}.field-wide{grid-column:auto}.lead-form label{gap:7px;font-size:.86rem}.lead-form input,.lead-form select,.lead-form textarea{min-height:54px;padding:14px;font-size:16px}.lead-form textarea{min-height:124px}.field-error{font-size:.75rem}.privacy-summary{text-align:left;grid-template-columns:1fr}.privacy-summary>div{border-right:0;border-bottom:1px solid #d5dfe4!important}.privacy-summary>div:last-child{border-bottom:0!important}.privacy-summary>div{padding:13px 14px}.form-heading{text-align:center;flex-direction:column;align-items:center}.form-heading .eyebrow{justify-content:center}.form-intro{text-align:center}.consent-block{text-align:left;margin:21px 0}.consent-row input{width:19px;height:19px}.consent-block .field-error{margin-left:28px}.form-submit{width:100%}.comparison-wrap,.service-grid{grid-template-columns:1fr}.comparison-card{text-align:center;padding:30px}.service-card{grid-template-columns:1fr}.service-image{aspect-ratio:1.35}.service-copy{text-align:center}.service-meta{margin-bottom:25px}.learning-grid,.support-flow{grid-template-columns:1fr}.specialist-stats{text-align:center;grid-template-columns:1fr}.specialist-stats>div{border-right:0;border-bottom:1px solid #ffffff24!important}.specialist-stats>div:last-child{border-bottom:0!important}.investment-highlight-grid{text-align:center;grid-template-columns:1fr;gap:30px}.price-display{justify-items:center}.investment-highlight-grid .eyebrow{justify-content:center}.contact-hero{background:linear-gradient(170deg, var(--blue-pale) 0 27%, var(--cream) 27%);padding:55px 0 80px}.contact-hero-grid{grid-template-columns:1fr;gap:50px}.contact-intro{text-align:center}.contact-intro .eyebrow{justify-content:center}.contact-proof{text-align:left;max-width:360px;margin-left:auto;margin-right:auto}.franchise-direct-contact{text-align:left;margin-inline:auto}.not-found-page{min-height:calc(100svh - 66px);padding:70px 0 90px}.not-found-code{font-size:clamp(6.8rem,34vw,9.5rem)}.not-found-wrap h1{font-size:clamp(3rem,14vw,4.6rem)}.not-found-lead{font-size:.92rem}.not-found-actions{margin-inline:auto;flex-direction:column;max-width:340px;margin-top:28px;margin-bottom:30px}.not-found-actions .button{width:100%}.not-found-links{flex-direction:column;align-items:center}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important}.motion-ready .reveal-item{opacity:1!important;filter:none!important;transform:translate(0)scale(1)rotate(0)!important}.is-pressing{scale:1!important}.floating-whatsapp:before{display:none}}.desktop-nav{gap:clamp(11px,1.25vw,19px)}.desktop-nav a{font-size:clamp(.72rem,.8vw,.82rem)}.header-inner{gap:20px;width:min(1380px,100% - 36px)}.header-cta{white-space:nowrap;padding-inline:15px;font-size:.78rem}.mobile-expansion-link{width:100%;color:var(--brand-dark);background:0 0;border-color:#123f5557;margin-top:12px}.page-hero-actions{flex-wrap:wrap;align-items:center;gap:22px;margin-top:30px;display:flex}.page-hero-copy .page-hero-actions .text-link{margin-top:0}.brand-hero{background:linear-gradient(145deg, var(--cream) 0 72%, var(--blue-pale) 72%);padding:clamp(44px,5vw,72px) 0 clamp(48px,5vw,76px);position:relative;overflow:hidden}.brand-hero:before{content:"";pointer-events:none;border:92px solid #5caad41a;border-radius:50%;width:650px;height:650px;position:absolute;top:-330px;left:-300px}.brand-hero-grid{grid-template-columns:1.05fr .8fr;align-items:center;gap:clamp(46px,6vw,92px);display:grid}.brand-hero-copy{z-index:2;position:relative}.brand-hero-copy h1{max-width:780px;margin:0 0 22px;font-size:clamp(3.25rem,5vw,5.25rem)}.brand-hero-copy h1 em{color:var(--blue);font-weight:inherit}.brand-hero-phrase{color:var(--brand-dark);font:500 clamp(1.12rem, 1.45vw, 1.38rem)/1.35 var(--font-display);flex-wrap:wrap;gap:8px 20px;margin-bottom:8px;display:flex}.brand-hero-phrase span+span:before{content:"·";color:var(--blue);margin-right:20px}.brand-hero-copy .hero-lead{max-width:610px;color:var(--ink-soft);margin-bottom:20px;font-size:1rem;line-height:1.55}.brand-hero-authority{border-left:3px solid var(--blue);gap:5px;max-width:610px;padding:12px 0 12px 17px;display:grid}.brand-hero-authority strong{color:var(--brand-dark);letter-spacing:.01em;font-size:.92rem}.brand-hero-authority strong span{color:var(--blue);padding-inline:4px}.brand-hero-authority>span{color:var(--blue-deep);letter-spacing:.08em;text-transform:uppercase;font-size:.76rem;font-weight:700}.brand-hero-copy .hero-actions{align-items:center;margin:28px 0 0}.hero-secondary-link{border-bottom:1px solid var(--blue-deep);color:var(--blue-deep);transition:color .25s ease, gap .35s var(--ease-editorial);align-items:center;gap:8px;padding:10px 2px 7px;font-size:.87rem;font-weight:600;display:inline-flex}.hero-secondary-link:hover{color:var(--blue);border-color:var(--blue);gap:12px}.brand-hero-media{justify-self:end;width:min(100%,535px);margin:0;position:relative}.brand-hero-media:before{content:"";pointer-events:none;border:1px solid #5caad48c;border-radius:48% 48% 28px 28px;position:absolute;inset:-17px -18px 54px 24px}.brand-hero-media>img{z-index:1;aspect-ratio:1;object-fit:cover;object-position:42% 50%;width:100%;height:auto;box-shadow:var(--shadow);border-radius:48% 48% 24px 24px;display:block;position:relative}.brand-hero-media figcaption{z-index:2;color:var(--ink-soft);justify-content:space-between;gap:20px;padding:15px 4px 0 20px;display:flex;position:relative}.brand-hero-media figcaption span{letter-spacing:.1em;text-transform:uppercase;font-size:.7rem;font-weight:800}.brand-hero-media figcaption strong{color:var(--brand-dark);font-size:.78rem;font-weight:600}.professional-pathways{background:var(--blue);color:#fff;padding:20px 0}.professional-pathways-inner{grid-template-columns:.74fr 1fr 1.15fr;align-items:stretch;gap:14px;display:grid}.professional-pathways-heading{align-content:center;gap:5px;padding-right:18px;display:grid}.professional-pathways-heading span{color:#ffffffc7;letter-spacing:.13em;text-transform:uppercase;font-size:.66rem;font-weight:800}.professional-pathways-heading strong{max-width:230px;font:500 1.32rem/1.15 var(--font-display)}.professional-pathway-link{min-height:82px;transition:transform .4s var(--ease-editorial), background .3s ease;background:#ffffff1a;border:1px solid #ffffff47;border-radius:18px;grid-template-columns:auto 1fr auto;align-items:center;gap:13px;padding:15px 18px;display:grid}.professional-pathway-link:hover{background:#ffffff29;transform:translateY(-3px)}.professional-pathway-link>svg:first-child{background:#ffffff24;border-radius:12px;width:38px;height:38px;padding:9px}.professional-pathway-link>span{gap:3px;display:grid}.professional-pathway-link small{color:#ffffffbf;letter-spacing:.12em;text-transform:uppercase;font-size:.64rem;font-weight:800}.professional-pathway-link strong{font-size:.83rem;line-height:1.25}.professional-pathway-link>svg:last-child{width:18px}.professional-pathway-expansion{color:var(--blue-deep);background:#fff}.professional-pathway-expansion:hover{background:var(--blue-pale)}.professional-pathway-expansion>svg:first-child{background:var(--blue-pale);color:var(--blue)}.professional-pathway-expansion small{color:var(--blue-deep)}.service-showcase{background:#fff}.service-showcase-grid{grid-template-columns:repeat(4,1fr);gap:16px;display:grid}.service-showcase-card{border:1px solid var(--line);background:var(--cream);min-height:365px;transition:transform .55s var(--ease-editorial), border-color .35s ease, box-shadow .55s var(--ease-editorial);border-radius:24px;flex-direction:column;padding:30px;display:flex;position:relative;overflow:hidden}.service-showcase-card:after{content:"";border:28px solid #5caad41f;border-radius:50%;width:170px;height:170px;position:absolute;bottom:-84px;right:-84px}.service-showcase-card:hover{border-color:#5caad48c;transform:translateY(-7px);box-shadow:0 22px 50px #123f551c}.service-showcase-card .icon-tile{margin:12px 0 42px}.service-showcase-card h3{max-width:220px;margin-bottom:12px}.service-showcase-card p{color:var(--ink-soft);font-size:.87rem}.card-link{z-index:1;color:var(--blue-deep);align-items:center;gap:7px;margin-top:auto;font-size:.78rem;font-weight:700;display:inline-flex;position:relative}.centered-action{justify-content:center;margin-top:42px;display:flex}.results-home{background:var(--blue-pale)}.home-centers{background:var(--blue);color:#fff}.home-centers-grid{grid-template-columns:.7fr 1.3fr;align-items:center;gap:clamp(55px,7vw,100px);display:grid}.home-centers-copy h2{margin:17px 0 22px}.home-centers-copy>p:not(.eyebrow){color:#ffffffd9}.home-centers-copy .button{margin-top:17px}.location-grid{grid-template-columns:repeat(2,1fr);gap:18px;display:grid}.location-card{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);min-height:290px;transition:transform .45s var(--ease-editorial), background .35s ease;background:#ffffff1a;border:1px solid #ffffff47;border-radius:26px;padding:34px}.location-card:hover{background:#ffffff29;transform:translateY(-6px)}.location-kicker{letter-spacing:.14em;text-transform:uppercase;font-size:.68rem;font-weight:800}.location-card h3{color:#fff;font:500 2.5rem/1 var(--font-display);margin:62px 0 10px}.location-card p{color:#ffffffd1;font-size:.86rem}.location-actions{gap:18px;margin-top:28px;display:flex}.location-actions a{border-bottom:1px solid #ffffffa6;align-items:center;gap:7px;padding-bottom:4px;font-size:.74rem;font-weight:700;display:inline-flex}.location-status{color:#fff;border:1px solid #ffffff57;border-radius:999px;width:fit-content;margin-top:28px;padding:9px 12px;font-size:.72rem;font-weight:700;display:inline-flex}.authority-home-grid{grid-template-columns:1.05fr .85fr;align-items:center;gap:clamp(60px,8vw,110px);display:grid}.authority-home-media{position:relative}.authority-home-media>img{object-fit:cover;object-position:42% center;border-radius:28px 190px 28px 28px;width:100%;height:570px}.authority-stamp{background:var(--blue);color:#fff;max-width:205px;box-shadow:var(--shadow);border-radius:16px;align-items:center;gap:10px;padding:15px 18px;font-size:.74rem;font-weight:700;line-height:1.35;display:flex;position:absolute;bottom:40px;right:-30px}.authority-home-copy h2{margin:17px 0 24px}.authority-home-copy>p:not(.eyebrow){color:var(--ink-soft)}.authority-home-copy .text-link{margin-top:13px}.brand-lines{background:#fff}.brand-lines-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;max-width:940px;margin-inline:auto;display:grid}.brand-line-card{border:1px solid var(--line);background:var(--cream);min-height:380px;transition:transform .5s var(--ease-editorial), box-shadow .5s var(--ease-editorial);border-radius:28px;flex-direction:column;padding:34px;display:flex}.brand-line-card:hover{transform:translateY(-7px);box-shadow:0 22px 48px #123f551c}.brand-line-card>svg{background:var(--blue-pale);width:42px;height:42px;color:var(--blue);border-radius:13px;padding:10px}.brand-line-card>span{color:var(--blue);letter-spacing:.14em;text-transform:uppercase;margin-top:50px;font-size:.69rem;font-weight:800}.brand-line-card h3{font:500 2.15rem/1 var(--font-display);margin:8px 0 14px}.brand-line-card p{color:var(--ink-soft)}.brand-line-card strong{align-items:center;gap:8px;margin-top:auto;font-size:.78rem;display:inline-flex}.brand-line-details{flex-wrap:wrap;gap:7px;margin:6px 0 28px;display:flex}.brand-line-details span{color:#fff;border:1px solid #ffffff52;border-radius:999px;padding:7px 10px;font-size:.67rem;font-weight:700}.brand-line-expansion{background:var(--blue);color:#fff;border-color:var(--blue)}.brand-line-expansion>svg{color:#fff;background:#ffffff29}.brand-line-expansion>span,.brand-line-expansion p{color:#ffffffd9}.services-intro{text-align:center;background:#fff}.services-intro-inner{max-width:850px}.services-intro-inner .eyebrow{justify-content:center}.services-intro-inner h2{margin:18px auto 22px}.services-intro-inner>p:last-child{max-width:680px;color:var(--ink-soft);margin-inline:auto}.service-detail-section{background:#fff;padding-bottom:110px}.service-detail-grid{gap:24px;display:grid}.service-detail-card{border:1px solid var(--line);background:var(--cream);border-radius:30px;grid-template-columns:.8fr 1.2fr;min-height:500px;scroll-margin-top:110px;display:grid;overflow:hidden}.service-detail-card:nth-child(2n){grid-template-columns:1.2fr .8fr}.service-detail-card:nth-child(2n)>img{order:2}.service-detail-card>img{object-fit:cover;width:100%;height:100%;min-height:500px}.service-detail-copy{flex-direction:column;justify-content:center;padding:clamp(36px,5vw,68px);display:flex}.service-detail-top{color:var(--blue);justify-content:space-between;align-items:center;margin-bottom:35px;display:flex}.service-detail-top span{letter-spacing:.14em;font-size:.72rem;font-weight:800}.service-detail-top svg{background:var(--blue-pale);border-radius:12px;width:38px;height:38px;padding:9px}.service-detail-copy h2{margin:13px 0 22px;font-size:clamp(2.25rem,3.4vw,3.65rem)}.service-detail-copy>p:not(.eyebrow){color:var(--ink-soft)}.service-detail-copy .text-link{align-self:flex-start;margin-top:14px}.service-detail-card:not(.has-media){grid-template-columns:1fr;min-height:390px}.service-detail-card:not(.has-media) .service-detail-copy{max-width:880px}.centers-section{background:#fff}.center-cards{gap:28px;display:grid}.center-card{border:1px solid var(--line);background:var(--cream);border-radius:30px;grid-template-columns:1.05fr .95fr;display:grid;overflow:hidden}.center-card:nth-child(2n) .center-card-media{order:2}.center-card-media{min-height:510px;position:relative;overflow:hidden}.center-card-media img{object-fit:cover;width:100%;height:100%;transition:transform .9s var(--ease-editorial)}.center-card:hover .center-card-media img{transform:scale(1.025)}.center-card-media span{width:48px;height:48px;color:var(--blue);background:#fff;border-radius:50%;place-items:center;font-size:.72rem;font-weight:800;display:grid;position:absolute;top:24px;left:24px}.center-card-copy{flex-direction:column;justify-content:center;padding:clamp(40px,6vw,78px);display:flex}.center-card-copy h2{margin:14px 0 25px}.center-card-copy address{color:var(--ink-soft);gap:12px;font-style:normal;display:flex}.center-card-copy address svg{color:var(--blue);flex:none;margin-top:4px}.center-card-actions{flex-wrap:wrap;gap:10px;margin:34px 0 20px;display:flex}.center-phone{width:fit-content;color:var(--ink-soft);align-items:center;gap:8px;font-size:.82rem;display:inline-flex}.future-city{background:var(--brand-dark);color:#fff}.future-city-inner{grid-template-columns:1fr auto auto;align-items:end;gap:50px;display:grid}.future-city-inner h2{margin:16px 0}.future-city-inner p:not(.eyebrow){color:#ffffffc7;margin:0}.future-city-announcement{background:#ffffff1a;border:1px solid #ffffff47;border-radius:18px;grid-template-columns:auto auto;align-items:center;column-gap:9px;padding:17px 20px;display:grid}.future-city-announcement svg{color:var(--blue);grid-row:1/3}.future-city-announcement span{color:#ffffffb8;letter-spacing:.11em;text-transform:uppercase;font-size:.66rem;font-weight:700}.future-city-announcement strong{font:500 1.8rem/1.1 var(--font-display)}.text-link-light{color:#fff}.story-intro{background:#fff}.story-intro-grid{grid-template-columns:.8fr 1.2fr;gap:90px;display:grid}.story-intro-title h2{margin:17px 0 0}.story-prose{color:var(--ink-soft);font-size:1.05rem}.story-prose p{margin-bottom:24px}.story-timeline{background:var(--blue-pale)}.story-timeline-grid{background:#5caad440;border:1px solid #5caad440;border-radius:26px;grid-template-columns:repeat(4,1fr);gap:1px;display:grid;overflow:hidden}.story-timeline-grid article{background:#fff;min-height:320px;padding:32px}.story-timeline-grid span{color:var(--blue);letter-spacing:.14em;font-size:.72rem;font-weight:800}.story-timeline-grid h3{font-family:var(--font-display);margin:70px 0 14px;font-size:1.75rem;font-weight:500}.story-timeline-grid p{color:var(--ink-soft);font-size:.84rem}.new-generation-section{background:var(--blue);color:#fff}.new-generation-grid{grid-template-columns:1.1fr .8fr;align-items:center;gap:clamp(55px,8vw,105px);display:grid}.new-generation-media{position:relative}.new-generation-media img{object-fit:cover;object-position:40% center;border-radius:26px 170px 26px 26px;width:100%;height:570px}.new-generation-media span{color:var(--blue);background:#fff;border-radius:14px;align-items:center;gap:9px;padding:14px 17px;font-size:.76rem;font-weight:800;display:flex;position:absolute;bottom:30px;right:-25px}.new-generation-copy h2{margin:17px 0 24px}.new-generation-copy>p:not(.eyebrow){color:#ffffffd6}.new-generation-copy .button{margin-top:16px}.story-video-section{background:#fff}.story-video-grid{grid-template-columns:1fr .7fr;align-items:center;gap:clamp(55px,8vw,110px);display:grid}.story-video-copy h2{margin:17px 0 24px}.story-video-copy>p:not(.eyebrow){color:var(--ink-soft)}.story-video-points{flex-wrap:wrap;gap:10px;margin-top:30px;display:flex}.story-video-points span{background:var(--blue-pale);color:var(--blue-deep);border-radius:999px;align-items:center;gap:7px;padding:10px 13px;font-size:.73rem;font-weight:700;display:inline-flex}.story-video-points svg{width:16px}.story-video-media{border:1px solid #5caad457;border-radius:180px 180px 28px 28px;width:min(100%,440px);margin-inline:auto;padding:12px}.story-video-media video{background:var(--brand-dark);border-radius:168px 168px 20px 20px;width:100%;max-height:680px;display:block}.awards-section{background:var(--cream)}.awards-grid{grid-template-columns:repeat(3,1fr);gap:18px;display:grid}.awards-grid figure{background:#fff;border-radius:24px;margin:0;overflow:hidden}.awards-grid img{aspect-ratio:4/5;object-fit:cover;width:100%;height:auto;transition:transform .8s var(--ease-editorial)}.awards-grid figure:hover img{transform:scale(1.025)}.awards-grid figcaption{color:var(--ink-soft);padding:17px 20px;font-size:.78rem}.story-conclusion{background:#fff}.story-conclusion-inner{text-align:center;max-width:880px}.story-conclusion-inner .eyebrow{justify-content:center}.story-conclusion-inner h2{margin:17px 0 25px}.story-conclusion-inner>p:not(.eyebrow){color:var(--ink-soft)}.story-conclusion-inner .text-link{margin-top:15px}.academy-proof{background:#fff}.academy-proof-grid{border:1px solid var(--line);border-radius:24px;grid-template-columns:repeat(4,1fr);display:grid;overflow:hidden}.academy-proof-grid>div{border-right:1px solid var(--line);text-align:center;place-items:center;min-height:190px;padding:25px;display:grid}.academy-proof-grid>div:last-child{border-right:0}.academy-proof-grid svg{color:var(--blue)}.academy-proof-grid strong{color:var(--blue);font:500 2.35rem/1 var(--font-display);margin:12px 0 2px}.academy-proof-grid span{color:var(--ink-soft);font-size:.76rem}.academy-method{background:var(--blue-pale)}.academy-method-grid{grid-template-columns:.9fr 1.1fr;align-items:center;gap:clamp(55px,8vw,105px);display:grid}.academy-method-copy h2{margin:17px 0 25px}.academy-method-copy>p:not(.eyebrow){color:var(--ink-soft)}.academy-method-copy .button{margin-top:18px}.academy-method-cards{gap:14px;display:grid}.academy-method-cards article{background:#fff;border-radius:22px;padding:28px;box-shadow:0 12px 32px #123f550f}.academy-method-cards svg{color:var(--blue)}.academy-method-cards h3{margin:18px 0 8px}.academy-method-cards p{color:var(--ink-soft);margin:0;font-size:.86rem}.academy-stage{background:var(--brand-dark);color:#fff}.academy-stage-grid{grid-template-columns:.75fr 1fr;align-items:center;gap:clamp(60px,8vw,110px);display:grid}.academy-stage-grid>img{object-fit:cover;object-position:center 28%;border-radius:170px 170px 24px 24px;width:100%;height:610px}.academy-stage-grid h2{margin:17px 0 25px}.academy-stage-grid p{color:#ffffffd1}.academy-stage-grid .text-link{margin-top:16px}.academy-gallery{background:#fff}.academy-gallery-grid{grid-template-columns:.75fr 1.25fr;gap:20px;display:grid}.academy-gallery-grid figure{background:var(--cream);border-radius:26px;margin:0;overflow:hidden}.academy-gallery-grid img{object-fit:cover;width:100%;height:530px}.academy-gallery-grid figure:last-child img{object-position:40% center}.academy-gallery-grid figcaption{color:var(--ink-soft);padding:18px 22px;font-size:.8rem}@media (max-width:1080px){.brand-hero-grid{grid-template-columns:1fr .78fr;gap:42px}.brand-hero-copy h1{font-size:clamp(3rem,5.8vw,4.35rem)}.professional-pathways-inner{grid-template-columns:.62fr 1fr 1.12fr}.service-showcase-grid{grid-template-columns:repeat(2,1fr)}.service-showcase-card{min-height:330px}.story-timeline-grid{grid-template-columns:repeat(2,1fr)}.desktop-nav{display:none}.menu-toggle{display:inline-flex}}@media (max-width:900px){.brand-hero-grid,.home-centers-grid,.authority-home-grid,.story-intro-grid,.new-generation-grid,.story-video-grid,.academy-method-grid,.academy-stage-grid{grid-template-columns:1fr}.brand-hero-copy,.home-centers-copy,.authority-home-copy,.story-intro-title,.story-prose,.new-generation-copy,.story-video-copy,.academy-method-copy,.academy-stage-grid>div{text-align:center;max-width:720px;margin-inline:auto}.brand-hero-copy .eyebrow,.home-centers-copy .eyebrow,.authority-home-copy .eyebrow,.story-intro-title .eyebrow,.new-generation-copy .eyebrow,.story-video-copy .eyebrow,.academy-method-copy .eyebrow,.academy-stage-grid .eyebrow{justify-content:center}.brand-hero-copy .hero-lead{margin-inline:auto}.brand-hero-media{width:min(90%,680px);margin-inline:auto}.brand-hero-authority{text-align:left;margin-inline:auto}.professional-pathways-inner{grid-template-columns:repeat(2,1fr)}.professional-pathways-heading{text-align:center;grid-column:1/-1;padding:0 0 4px}.professional-pathways-heading strong{max-width:none}.home-centers-copy .button{margin-top:22px}.location-status{margin-inline:auto}.authority-home-media{width:min(92%,680px);margin-inline:auto}.brand-lines-grid{grid-template-columns:1fr}.brand-line-card{min-height:320px}.service-detail-card,.service-detail-card:nth-child(2n),.center-card{grid-template-columns:1fr}.service-detail-card:nth-child(2n)>img,.center-card:nth-child(2n) .center-card-media{order:0}.service-detail-card>img{min-height:480px;max-height:640px}.center-card-media{min-height:430px}.center-card-copy{text-align:center}.center-card-copy .eyebrow,.center-card-copy address,.center-card-actions{justify-content:center}.center-phone{margin-inline:auto}.future-city-inner{text-align:center;grid-template-columns:1fr;place-items:center}.future-city-inner .eyebrow{justify-content:center}.new-generation-media,.academy-stage-grid>img{width:min(90%,680px);margin-inline:auto}.story-video-points{justify-content:center}.academy-proof-grid{grid-template-columns:repeat(2,1fr)}.academy-proof-grid>div:nth-child(2){border-right:0}.academy-proof-grid>div:nth-child(-n+2){border-bottom:1px solid var(--line)}}@media (max-width:760px){.page-hero-actions{flex-direction:column;justify-content:center;gap:18px}.page-hero-actions .button{width:min(100%,340px)}.brand-hero{background:linear-gradient(160deg, var(--cream) 0 76%, var(--blue-pale) 76%);padding:30px 0 32px}.brand-hero-grid{gap:28px}.brand-hero-copy{text-align:center;width:min(100%,365px);margin-inline:auto}.brand-hero-copy h1{max-width:9.5em;margin:0 auto 18px;font-size:clamp(2.42rem,10.9vw,3.2rem);line-height:1}.brand-hero-phrase{justify-content:center;gap:4px 9px;max-width:330px;margin:0 auto 8px;font-size:1.03rem}.brand-hero-phrase span+span:before{margin-right:9px}.brand-hero-copy .hero-lead{max-width:310px;margin:0 auto 15px;font-size:.9rem;line-height:1.45}.brand-hero-authority{text-align:center;border:1px solid #5caad473;border-left:0;border-right:0;max-width:340px;margin:0 auto;padding:11px 8px}.brand-hero-authority strong{font-size:.79rem;line-height:1.45}.brand-hero-authority>span{letter-spacing:.06em;font-size:.64rem}.brand-hero-copy .hero-actions{flex-flow:column;justify-content:center;align-items:center;gap:11px;max-width:330px;margin:20px auto 0}.brand-hero-copy .hero-actions .button{width:min(100%,270px);min-height:48px;padding-inline:18px;font-size:.82rem}.hero-secondary-link{flex-shrink:0;font-size:.8rem}.brand-hero-media{width:min(100%,390px);margin:0 auto}.brand-hero-media:before{inset:-10px -12px 48px 14px}.brand-hero-media>img{border-radius:44% 44% 20px 20px}.brand-hero-media figcaption{text-align:center;flex-direction:column;align-items:center;gap:4px;padding:13px 10px 0}.brand-hero-media figcaption span{font-size:.61rem}.brand-hero-media figcaption strong{font-size:.7rem}.professional-pathways{padding:25px 0}.professional-pathways-inner{grid-template-columns:1fr;gap:10px}.professional-pathways-heading{text-align:center;grid-column:auto;width:min(100%,340px);margin-inline:auto;padding:0 12px 8px}.professional-pathways-heading strong{max-width:310px;margin-inline:auto;font-size:1.2rem}.professional-pathway-link{min-height:74px;padding:12px 15px}.service-showcase-grid,.location-grid,.story-timeline-grid,.awards-grid,.academy-proof-grid,.academy-gallery-grid{grid-template-columns:1fr}.service-showcase-card{text-align:center;min-height:300px}.service-showcase-card .icon-tile{margin:12px auto 34px}.service-showcase-card h3{margin-inline:auto}.card-link{justify-content:center}.location-card{text-align:center;min-height:250px;padding:28px}.location-card h3{margin-top:48px}.location-actions{justify-content:center}.authority-home-media>img{border-radius:24px 130px 24px 24px;height:480px}.authority-stamp{max-width:185px;bottom:20px;right:8px}.brand-line-card{text-align:center;align-items:center;min-height:310px;padding:30px}.brand-line-card>span{margin-top:35px}.service-detail-section{padding-bottom:80px}.service-detail-card{border-radius:24px}.service-detail-card>img{height:420px;min-height:360px}.service-detail-copy{text-align:center;padding:32px 24px 38px}.service-detail-copy .eyebrow{justify-content:center}.service-detail-copy .text-link{align-self:center}.service-detail-top{margin-bottom:25px}.center-card{border-radius:24px}.center-card-media{min-height:320px}.center-card-copy{padding:36px 24px 42px}.center-card-actions{flex-direction:column}.center-card-actions .button{width:100%}.story-intro-grid{gap:35px}.story-prose{font-size:1rem}.story-timeline-grid{background:0 0;border:0;gap:14px}.story-timeline-grid article{text-align:center;border:1px solid #5caad440;border-radius:22px;min-height:270px}.story-timeline-grid h3{margin-top:48px}.new-generation-media img{border-radius:22px 120px 22px 22px;height:450px}.new-generation-media span{bottom:16px;right:8px}.story-video-media{width:min(92%,390px)}.awards-grid img{aspect-ratio:3/4;height:auto}.academy-proof-grid>div{border-right:0;border-bottom:1px solid var(--line);min-height:165px}.academy-proof-grid>div:last-child{border-bottom:0}.academy-stage-grid>img{height:520px}.academy-gallery-grid img{height:430px}.mobile-expansion-link{margin-top:12px}}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}

/* ------------------------------------------------------------------------
   Añadidos propios — todo lo anterior es la hoja original del sitio.
   El aviso del formulario no existía en el CSS porque React lo pintaba
   con sus propias clases.
   ------------------------------------------------------------------------ */
.form-aviso {
  margin: 14px 0 0;
  padding: 11px 14px;
  border-radius: 12px;
  font-size: .8rem;
  line-height: 1.45;
  background: var(--blue-pale);
  color: var(--ink);
  border: 1px solid #5caad447;
}

.form-aviso[data-error="si"] {
  background: #fdf1ec;
  border-color: #d8825c66;
}

.results-carousel-controls button[disabled] {
  opacity: .35;
  cursor: default;
  pointer-events: none;
}

/* El botón del carrusel solo asigna la posición; la suavidad la pone el
   navegador aquí, y desaparece sola si el usuario pide menos movimiento. */
@media (prefers-reduced-motion: no-preference) {
  .results-carousel-track { scroll-behavior: smooth; }
}

/* ------------------------------------------------------------------------
   Página de ciudad (/centros/<ciudad>/)
   Sección 6 de estructura-web.md. Todo se apoya en los tokens de :root
   para que herede la misma paleta, radios y sombras que el resto.
   ------------------------------------------------------------------------ */

/* Migas de pan */
.migas {
  padding: 26px 0 0;
  font-size: .78rem;
}
.migas ol {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 0;
  padding: 0;
  list-style: none;
  color: var(--ink-soft);
}
.migas li + li::before {
  content: "/";
  margin-right: 8px;
  opacity: .45;
}
.migas a {
  color: var(--ink-soft);
  text-decoration: none;
  border-bottom: 1px solid transparent;
  transition: color var(--motion-fast) ease, border-color var(--motion-fast) ease;
}
.migas a:hover {
  color: var(--blue-deep);
  border-bottom-color: #5caad473;
}
.migas [aria-current="page"] {
  color: var(--ink);
  font-weight: 600;
}

/* Ficha del centro y mapa, uno al lado del otro */
.ciudad-datos {
  display: grid;
  grid-template-columns: minmax(0, 5fr) minmax(0, 6fr);
  gap: 34px;
  align-items: stretch;
}
.ciudad-ficha {
  background: var(--white);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  padding: 38px 36px;
  box-shadow: var(--shadow);
}
.ciudad-ficha h2 {
  margin: 6px 0 18px;
}
.ciudad-ficha address {
  font-style: normal;
  font-family: var(--font-display);
  font-size: 1.25rem;
  line-height: 1.4;
  color: var(--ink);
  margin-bottom: 26px;
}
.ciudad-datos-lista {
  display: grid;
  gap: 1px;
  margin: 0 0 28px;
  background: var(--line);
  border-radius: 18px;
  overflow: hidden;
}
.ciudad-datos-lista > div {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: 6px 16px;
  padding: 14px 18px;
  background: var(--cream);
}
.ciudad-datos-lista dt {
  font-size: .7rem;
  letter-spacing: .12em;
  text-transform: uppercase;
  font-weight: 700;
  color: var(--ink-soft);
}
.ciudad-datos-lista dd {
  margin: 0;
  font-size: .92rem;
  color: var(--ink);
  text-align: right;
}
.ciudad-acciones {
  display: flex;
  flex-wrap: wrap;
  gap: 11px;
}

/* El mapa no se carga solo: lo pide quien quiere verlo */
.ciudad-mapa {
  border-radius: var(--radius);
  overflow: hidden;
  min-height: 340px;
  background: var(--blue-pale);
  display: grid;
}
.mapa-consentimiento {
  place-content: center;
  justify-items: center;
  text-align: center;
  gap: 10px;
  display: grid;
  padding: 40px 28px;
}
.mapa-consentimiento p {
  margin: 0;
  max-width: 34ch;
  color: var(--ink-soft);
  font-size: .86rem;
  line-height: 1.5;
}
.mapa-consentimiento p strong {
  color: var(--ink);
  font-size: .95rem;
}
.mapa-consentimiento .button { margin-top: 6px; }
.ciudad-mapa iframe {
  border: 0;
  width: 100%;
  height: 100%;
  min-height: 340px;
  display: block;
}

/* Rejilla de tratamientos */
.ciudad-tratos {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
  gap: 16px;
  margin-top: 38px;
}
.ciudad-trato {
  position: relative;
  display: block;
  padding: 26px 28px 30px;
  background: var(--white);
  border: 1px solid var(--line);
  border-radius: 22px;
  text-decoration: none;
  color: inherit;
  transition: transform var(--motion-medium) var(--ease-editorial),
              box-shadow var(--motion-medium) ease,
              border-color var(--motion-fast) ease;
}
.ciudad-trato:hover {
  transform: translateY(-4px);
  box-shadow: 0 18px 44px #1b3d501a;
  border-color: #5caad473;
}
.ciudad-trato h3 {
  font-family: var(--font-display);
  font-size: 1.22rem;
  font-weight: 500;
  line-height: 1.2;
  margin: 0 0 8px;
  padding-right: 26px;
}
.ciudad-trato p {
  margin: 0;
  font-size: .87rem;
  line-height: 1.5;
  color: var(--ink-soft);
}
.ciudad-trato-flecha {
  position: absolute;
  top: 26px;
  right: 26px;
  color: var(--blue);
  transition: transform var(--motion-medium) var(--ease-editorial);
}
.ciudad-trato:hover .ciudad-trato-flecha { transform: translate(3px, -3px); }

/* Equipo */
.ciudad-equipo-section { background: var(--cream); }
.ciudad-equipo {
  display: grid;
  /* Tope de ancho: con solo dos fichas, 1fr las estiraba al doble que
     las tarjetas de tratamiento y rompia el ritmo de la pagina */
  grid-template-columns: repeat(auto-fit, minmax(255px, 320px));
  justify-content: center;
  gap: 22px;
  margin-top: 38px;
}
.ciudad-persona {
  background: var(--white);
  border: 1px solid var(--line);
  border-radius: 22px;
  padding: 26px 28px 30px;
}
.ciudad-persona-foto {
  width: 76px;
  height: 76px;
  border-radius: 50%;
  background: var(--blue-pale);
  border: 1px solid var(--line);
  margin-bottom: 18px;
}
.ciudad-persona h3 {
  font-family: var(--font-display);
  font-size: 1.2rem;
  font-weight: 500;
  margin: 0 0 4px;
}
.ciudad-persona-tecnicas {
  font-size: .7rem;
  letter-spacing: .12em;
  text-transform: uppercase;
  font-weight: 700;
  color: var(--blue-deep);
  margin: 0 0 12px;
}
.ciudad-persona p:last-child {
  margin: 0;
  font-size: .87rem;
  line-height: 1.55;
  color: var(--ink-soft);
}

/* Reseñas: estado vacío honesto, no relleno inventado */
.ciudad-resenas-vacio {
  margin-top: 32px;
  padding: 34px 30px;
  border: 1px dashed #5caad473;
  border-radius: 22px;
  background: var(--blue-pale);
  text-align: center;
}
.ciudad-resenas-vacio p {
  margin: 0 auto;
  max-width: 58ch;
  color: var(--ink-soft);
  font-size: .9rem;
  line-height: 1.6;
}

/* Cómo llegar */
.ciudad-llegar {
  display: grid;
  grid-template-columns: minmax(0, 6fr) minmax(0, 5fr);
  gap: 40px;
  align-items: center;
}
.ciudad-llegar-lista {
  margin: 22px 0 0;
  padding: 0;
  list-style: none;
  display: grid;
  gap: 12px;
}
.ciudad-llegar-lista li {
  padding-left: 18px;
  position: relative;
  font-size: .92rem;
  line-height: 1.55;
  color: var(--ink-soft);
}
.ciudad-llegar-lista li::before {
  content: "";
  position: absolute;
  left: 0;
  top: .62em;
  width: 7px;
  height: 1px;
  background: var(--blue);
}
.ciudad-llegar-lista strong { color: var(--ink); }
.ciudad-llegar-media img {
  width: 100%;
  height: 100%;
  max-height: 420px;
  object-fit: cover;
  border-radius: var(--radius);
  box-shadow: var(--shadow);
}

@media (max-width: 900px) {
  .ciudad-datos,
  .ciudad-llegar { grid-template-columns: 1fr; }
  .ciudad-ficha { padding: 30px 24px; }
  .ciudad-mapa { min-height: 260px; }
  .ciudad-llegar-media { order: -1; }
}

/* ------------------------------------------------------------------------
   Páginas de servicio y de curso (secciones 4 y 5 de estructura-web.md)
   ------------------------------------------------------------------------ */

/* Texto corrido: ancho de lectura, no de pantalla */
.prosa {
  max-width: 68ch;
}
.prosa p {
  font-size: 1.02rem;
  line-height: 1.72;
  color: var(--ink-soft);
  margin: 0 0 18px;
}
.prosa p:last-child { margin-bottom: 0; }
.prosa .eyebrow { margin-bottom: 14px; }

/* Las técnicas de una familia */
.tecnicas-section { background: var(--cream); }
.tecnicas-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
  gap: 20px;
  margin-top: 38px;
}
.tecnica {
  background: var(--white);
  border: 1px solid var(--line);
  border-radius: 22px;
  padding: 30px 32px 32px;
}
.tecnica h3 {
  font-family: var(--font-display);
  font-size: 1.42rem;
  font-weight: 500;
  line-height: 1.15;
  margin: 0 0 14px;
}
.tecnica p {
  margin: 0 0 12px;
  font-size: .92rem;
  line-height: 1.65;
  color: var(--ink-soft);
}
.tecnica p:last-child { margin: 0; }

/* Ficha de datos: precio, duración, contraindicaciones */
.ficha-tecnica {
  display: grid;
  gap: 1px;
  background: var(--line);
  border: 1px solid var(--line);
  border-radius: 22px;
  overflow: hidden;
  margin: 38px auto 0;
  max-width: 780px;
}
.ficha-tecnica > div {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1.6fr);
  gap: 6px 24px;
  padding: 18px 24px;
  background: var(--white);
  align-items: baseline;
}
.ficha-tecnica dt {
  font-size: .72rem;
  letter-spacing: .12em;
  text-transform: uppercase;
  font-weight: 700;
  color: var(--ink-soft);
}
.ficha-tecnica dd {
  margin: 0;
  font-size: .95rem;
  line-height: 1.55;
  color: var(--ink);
}

/* Preguntas frecuentes */
.faq-section { background: var(--cream); }
.faq-lista {
  display: grid;
  gap: 12px;
  margin: 38px auto 0;
  max-width: 820px;
}
.faq-item {
  background: var(--white);
  border: 1px solid var(--line);
  border-radius: 18px;
  padding: 4px 24px;
  transition: border-color var(--motion-fast) ease;
}
.faq-item[open] { border-color: #5caad473; }
.faq-item summary {
  cursor: pointer;
  list-style: none;
  padding: 18px 30px 18px 0;
  position: relative;
  font-family: var(--font-display);
  font-size: 1.12rem;
  line-height: 1.3;
  color: var(--ink);
}
.faq-item summary::-webkit-details-marker { display: none; }
.faq-item summary::after {
  content: "+";
  position: absolute;
  right: 0;
  top: 50%;
  transform: translateY(-50%);
  font-family: var(--font-body);
  font-size: 1.3rem;
  color: var(--blue);
  transition: rotate var(--motion-medium) var(--ease-editorial);
}
.faq-item[open] summary::after { rotate: 45deg; }
.faq-item summary:focus-visible {
  outline: 3px solid #5caad494;
  outline-offset: 3px;
  border-radius: 8px;
}
.faq-item > p {
  margin: 0 0 20px;
  font-size: .94rem;
  line-height: 1.68;
  color: var(--ink-soft);
  max-width: 66ch;
}

@media (max-width: 700px) {
  .ficha-tecnica > div { grid-template-columns: 1fr; }
  .tecnica { padding: 24px 22px 26px; }
}

/* ------------------------------------------------------------------------
   Selector de centro: el botón de una página de servicio no puede llevar a
   un número concreto, porque el tratamiento se hace en los tres.
   ------------------------------------------------------------------------ */
.elige-centro {
  border: 1px solid var(--line);
  border-radius: var(--radius);
  padding: 34px 32px 30px;
  max-width: 420px;
  width: calc(100% - 36px);
  background: var(--white);
  color: var(--ink);
  box-shadow: var(--shadow);
  /* Un dialogo modal se centra con el fixed + inset + margin auto que le
     da el navegador. Ponerle position:relative para anclar el boton de
     cerrar mataba las tres cosas y lo dejaba arriba a la izquierda. El
     fixed ya sirve de referencia para ese boton absoluto. */
  position: fixed;
  inset: 0;
  margin: auto;
  height: fit-content;
}
.elige-centro::backdrop {
  background: #123f5578;
  -webkit-backdrop-filter: blur(3px);
  backdrop-filter: blur(3px);
}
.elige-centro h2 {
  font-family: var(--font-display);
  font-size: 1.62rem;
  font-weight: 500;
  line-height: 1.15;
  margin: 4px 0 6px;
}
.elige-centro .elige-centro-pie {
  margin: 0 0 22px;
  font-size: .86rem;
  color: var(--ink-soft);
}
.elige-centro-cerrar {
  position: absolute;
  top: 16px;
  right: 16px;
  margin: 0;
}
.elige-centro-cerrar button {
  width: 31px;
  height: 31px;
  border: 0;
  border-radius: 50%;
  background: var(--cream);
  color: var(--ink-soft);
  cursor: pointer;
  display: grid;
  place-items: center;
  transition: rotate .45s var(--ease-editorial), background-color .25s ease;
}
.elige-centro-cerrar button:hover {
  background: var(--blue-pale);
  color: var(--ink);
  rotate: 90deg;
}
.elige-centro-lista {
  display: grid;
  gap: 10px;
}
.elige-centro-lista a {
  display: grid;
  gap: 2px;
  padding: 15px 18px;
  border: 1px solid var(--line);
  border-radius: 16px;
  text-decoration: none;
  color: inherit;
  transition: border-color var(--motion-fast) ease,
              background-color var(--motion-fast) ease,
              transform var(--motion-fast) var(--ease-spring);
}
.elige-centro-lista a:hover {
  border-color: #5caad473;
  background: var(--blue-pale);
  transform: translateY(-2px);
}
.elige-centro-lista strong {
  font-family: var(--font-display);
  font-size: 1.16rem;
  font-weight: 500;
}
.elige-centro-lista span {
  font-size: .82rem;
  color: var(--ink-soft);
}
.elige-centro :focus-visible {
  outline: 3px solid #5caad494;
  outline-offset: 3px;
}

/* ------------------------------------------------------------------------
   Portado de public/landing/estilo.css — la landing de franquicia.
   Mismo sistema de tokens, así que entra sin retoques.
   ------------------------------------------------------------------------ */

/* ── Hero ── */
/* El hero de la web trae 58px de relleno superior para despegarse de la
   cabecera. Aquí la cabecera ya es una franja sólida y ese relleno solo
   abría una banda vacía nada más entrar. */
.landing-hero {padding-top: 0;}
.landing-hero h1 em {font-style: italic; color: var(--blue-deep, #5caad4);}
/* ── Sello de premios, bajo el botón del hero ── */
.hero-premios {display: flex;
  align-items: center;
  gap: 9px;
  margin: 16px 0 0;
  font-size: .92rem;
  font-weight: 600;
  color: var(--ink-soft, #52616b);}
.hero-premios svg {flex: 0 0 auto; color: var(--blue-deep, #5caad4);}
.landing-hero .home-hero-copy {text-align: center;}
.landing-hero .hero-lead {margin-inline: auto;}
.landing-hero .hero-actions,
  .landing-hero .hero-premios {justify-content: center;}
/* Los "Sin..." se centran como bloque, no línea a línea: con las cuatro
     de anchos distintos, centrar cada una dejaba los círculos bailando
     (64, 43, 78, 59px). Así el bloque queda centrado y las marcas forman
     una columna limpia. */
  .landing-hero .without-list {width: max-content;
    max-width: 100%;
    margin-inline: auto;
    justify-items: start;}
.landing-hero .without-list li {display: inline-flex;
    align-items: flex-start;
    gap: 11px;
    padding-left: 0;
    text-align: left;}
.landing-hero .without-list li:before {position: static;
    flex: 0 0 auto;
    margin-top: .26em;}
/* ── Los WITHOUT ──
   Cada línea rompe una objeción antes de que aparezca. Van en fila justo
   encima de la banda de datos: fuera de la columna de texto el hero
   respira, y aquí se leen de un vistazo antes de las cifras. */
.sin-fila {margin-bottom: clamp(26px, 3vw, 40px);}
.without-list {margin: 0;
  padding: 0;
  list-style: none;
  display: grid;
  /* auto-fit: pasa de 4 a 2 y a 1 columna sola, sin puntos de corte */
  grid-template-columns: repeat(auto-fit, minmax(228px, 1fr));
  gap: 12px clamp(18px, 2.4vw, 34px);}
.without-list li {position: relative;
  padding-left: 30px;
  color: var(--ink-soft, #52616b);
  font-size: .98rem;
  line-height: 1.45;}
.without-list li:before {content: "";
  position: absolute; left: 0; top: .34em;
  width: 18px; height: 18px;
  border-radius: 50%;
  border: 1.5px solid var(--blue-deep, #5caad4);
  background: linear-gradient(currentColor, currentColor) center/9px 1.5px no-repeat;
  color: var(--blue-deep, #5caad4);}
/* ══════════════ CIERRE CON FORMULARIO ══════════════
   El formulario es el mismo de /contacto/ y hereda todos sus estilos de la
   hoja del sitio: aquí solo se coloca. */
.cierre-form {background: var(--cream-deep, #efe9e0);}
/* ── Fondos alternos, para que las secciones no se fundan una con otra ── */
.services-section, .compare-section {background: var(--cream-deep, #efe9e0);}

@media (max-width: 760px) {
  .without-list li {font-size: .94rem;}
}

/* El bloque "el centro por dentro" va dentro de la misma sección que la
   ficha y el mapa. Separación interna, no un section-pad entero: dos
   rellenos seguidos abrían un hueco de casi 200px. */
.ciudad-llegar-seguido {
  margin-top: clamp(48px, 5vw, 72px);
}

/* Foto en las tarjetas de tratamiento de las páginas de centro.
   Proporción fija para que las siete tarjetas midan igual aunque las
   fotos originales vengan con encuadres distintos. */
.ciudad-trato-con-foto {
  padding-top: 0;
  overflow: hidden;
}
.trato-foto {
  display: block;
  aspect-ratio: 4 / 3;
  margin: -1px -29px 20px;   /* sangra hasta el borde de la tarjeta */
  background: var(--blue-pale);
  overflow: hidden;
}
.trato-foto img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform .8s var(--ease-editorial);
}
.ciudad-trato-con-foto:hover .trato-foto img {
  transform: scale(1.04);
}
/* Sin foto propia todavía: un bloque neutro, no la imagen de otra técnica */
.trato-foto-vacia {
  background: repeating-linear-gradient(
    -45deg, var(--blue-pale), var(--blue-pale) 10px, #ffffff 10px, #ffffff 20px);
}
.ciudad-trato-con-foto h3,
.ciudad-trato-con-foto p {
  padding-inline: 0;
}
.ciudad-trato-con-foto .ciudad-trato-flecha {
  top: auto;
  bottom: 26px;
}

/* ------------------------------------------------------------------------
   Páginas de centro: estructura de landing de conversión
   ------------------------------------------------------------------------ */

/* Botón al cierre de cada bloque, empujando al formulario de arriba */
.seccion-cta {
  display: flex;
  justify-content: center;
  margin-top: clamp(32px, 4vw, 48px);
}

/* Formulario: copy a la izquierda, campos a la derecha */
.form-bloque {
  display: grid;
  grid-template-columns: minmax(0, 5fr) minmax(0, 6fr);
  gap: clamp(28px, 4vw, 52px);
  align-items: start;
}
.form-bloque-copy h2 { margin: 0 0 14px; }
.form-bloque-copy > p {
  margin: 0 0 22px;
  color: var(--ink-soft);
  line-height: 1.6;
  max-width: 46ch;
}
.form-bloque-copy .without-list { margin-bottom: 20px; }

.form-bloque .lead-form {
  background: var(--white);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  padding: clamp(26px, 3vw, 36px);
  box-shadow: var(--shadow);
}
.form-bloque .form-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(210px, 1fr));
  gap: 16px;
  margin-bottom: 18px;
}
.form-bloque .field-wide { grid-column: 1 / -1; }
.form-bloque label { display: grid; gap: 6px; }
.form-bloque .field-label {
  font-size: .72rem;
  letter-spacing: .1em;
  text-transform: uppercase;
  font-weight: 700;
  color: var(--ink-soft);
}
.form-bloque input[type="text"],
.form-bloque input[type="tel"],
.form-bloque select {
  width: 100%;
  padding: 12px 14px;
  border: 1px solid var(--line);
  border-radius: 12px;
  background: var(--cream);
  font: inherit;
  color: var(--ink);
  transition: border-color var(--motion-fast) ease, background-color var(--motion-fast) ease;
}
.form-bloque input:focus,
.form-bloque select:focus {
  outline: none;
  border-color: #5caad4;
  background: var(--white);
}
.form-bloque .consent-row {
  grid-template-columns: auto 1fr;
  align-items: start;
  gap: 10px;
  font-size: .82rem;
  line-height: 1.5;
  color: var(--ink-soft);
  margin-bottom: 20px;
}
.form-bloque .consent-row input { margin-top: 3px; }
.form-bloque .form-submit { width: 100%; justify-content: center; }
.form-hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }

/* Premios */
.premios-fila {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 18px;
  margin-top: 38px;
}
.premios-fila figure { margin: 0; }
.premios-fila img {
  width: 100%;
  aspect-ratio: 3 / 4;
  object-fit: cover;
  border-radius: 20px;
  box-shadow: 0 18px 44px #1b3d501a;
}

@media (max-width: 860px) {
  .form-bloque { grid-template-columns: 1fr; }
}

/* Sobre la franja azul (.investment-highlight) los botones normales
   desaparecen: el primario es azul sobre azul y el ghost tiene el borde
   azul. Aquí se invierten. */
.investment-highlight .seccion-cta .button {
  background: var(--white);
  color: var(--blue-deep);
  border-color: var(--white);
}
.investment-highlight .seccion-cta .button:hover {
  background: var(--cream);
  color: var(--brand-dark);
}
.investment-highlight .seccion-cta .button-ghost {
  background: transparent;
  color: var(--white);
  border: 1px solid #ffffff8c;
}
.investment-highlight .seccion-cta .button-ghost:hover {
  background: #ffffff1f;
  border-color: var(--white);
}

/* Las fotos de premios son planos generales: recortadas al centro se
   quedaban en piernas y manos. Se favorece la parte alta. */
.premios-fila img {
  aspect-ratio: 4 / 5;
  object-position: center 22%;
}

.dato-pendiente { display: none; }

/* ------------------------------------------------------------------------
   Landing de anuncios (landingmadrid.ohmybrows.es)
   Cabecera y pie mínimos: desde aquí solo se sale escribiendo.
   ------------------------------------------------------------------------ */
.landing-cabecera {
  background: var(--blue);
  color: #fff;
  padding: 14px 0;
}
.landing-cabecera .shell {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
}
.landing-marca {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  font-family: var(--font-display);
  font-size: 1.1rem;
  letter-spacing: .04em;
}
.landing-marca img {
  border-radius: 50%;
  background: #fff;
  padding: 3px;
}
.landing-cabecera .button {
  background: #fff;
  color: var(--blue-deep);
  border-color: #fff;
}
.landing-cabecera .button:hover { background: var(--cream); }

/* El hero de la landing no necesita despegarse de una cabecera alta */
.landing-sola .landing-hero { padding-top: clamp(28px, 4vw, 48px); }

.landing-pie {
  background: var(--brand-dark);
  color: #ffffffb8;
  padding: 26px 0;
  font-size: .8rem;
}
.landing-pie .shell {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 10px 20px;
}
.landing-pie a {
  color: #fff;
  text-decoration: none;
  margin-left: 16px;
  border-bottom: 1px solid #ffffff4d;
}
.landing-pie a:hover { border-bottom-color: #fff; }

/* La banda de cierre con el formulario dentro: es el último punto de
   conversión y no tiene sentido pedir un clic más para llegar a él. */
.cta-band-form .cta-form-panel {
  display: grid;
  grid-template-columns: minmax(0, 5fr) minmax(0, 6fr);
  gap: clamp(28px, 4vw, 52px);
  align-items: center;
  background: var(--blue);
  border-radius: var(--radius);
  padding: clamp(30px, 4vw, 54px);
  color: #fff;
}
.cta-form-copy h2 { margin: 16px 0 12px; color: #fff; }
.cta-form-copy > p { color: #ffffffdb; margin: 0 0 20px; max-width: 42ch; }
.cta-form-copy .without-list { margin-bottom: 22px; }
.cta-form-copy .without-list li { color: #ffffffdb; }
.cta-band-form .cta-orbit { margin: 0; }
.cta-band-form .lead-form {
  background: var(--white);
  border-radius: var(--radius);
  padding: clamp(24px, 3vw, 34px);
  box-shadow: 0 24px 70px #0f2e3f3d;
}
.cta-band-form .form-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
  gap: 16px;
  margin-bottom: 18px;
}
.cta-band-form .field-wide { grid-column: 1 / -1; }
.cta-band-form label { display: grid; gap: 6px; }
.cta-band-form .field-label {
  font-size: .72rem; letter-spacing: .1em; text-transform: uppercase;
  font-weight: 700; color: var(--ink-soft);
}
.cta-band-form input[type="text"],
.cta-band-form input[type="tel"],
.cta-band-form select {
  width: 100%; padding: 12px 14px; border: 1px solid var(--line);
  border-radius: 12px; background: var(--cream); font: inherit; color: var(--ink);
}
.cta-band-form .consent-row {
  grid-template-columns: auto 1fr; align-items: start; gap: 10px;
  font-size: .82rem; line-height: 1.5; color: var(--ink-soft); margin-bottom: 20px;
}
.cta-band-form .form-submit { width: 100%; justify-content: center; }

@media (max-width: 860px) {
  .cta-band-form .cta-form-panel { grid-template-columns: 1fr; }
}

/* ------------------------------------------------------------------------
   Bloques de landing: imagen grande a un lado, argumento al otro.
   Es lo que faltaba: la página estaba resuelta con rejillas de tarjetas de
   texto, que informan pero no convierten.
   ------------------------------------------------------------------------ */
.fondo-crema { background: var(--cream); }

.bloque-media-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: clamp(30px, 5vw, 70px);
  align-items: center;
}
.bloque-media.invertido .bloque-media-foto { order: 2; }

.bloque-media-foto {
  margin: 0;
  border-radius: var(--radius);
  overflow: hidden;
  box-shadow: var(--shadow);
  background: var(--blue-pale);
}
.bloque-media-foto img {
  width: 100%;
  aspect-ratio: 4 / 5;
  object-fit: cover;
  display: block;
  transition: transform 1.1s var(--ease-editorial);
}
.bloque-media-foto:hover img { transform: scale(1.03); }

.bloque-media-copy h2 { margin: 0 0 16px; }
.bloque-media-copy p {
  margin: 0 0 14px;
  font-size: 1rem;
  line-height: 1.68;
  color: var(--ink-soft);
  max-width: 52ch;
}

.lista-marcada {
  list-style: none;
  margin: 22px 0 0;
  padding: 0;
  display: grid;
  gap: 12px;
}
.lista-marcada li {
  position: relative;
  padding-left: 30px;
  font-size: .95rem;
  line-height: 1.55;
  color: var(--ink-soft);
}
.lista-marcada li::before {
  content: "";
  position: absolute;
  left: 0;
  top: .42em;
  width: 16px;
  height: 16px;
  border-radius: 50%;
  background: var(--blue);
  box-shadow: inset 0 0 0 4px #fff;
}
.lista-marcada strong { color: var(--ink); font-weight: 650; }

.bloque-media .seccion-cta { justify-content: flex-start; }

/* Autoridad: foto ancha y cifras debajo del argumento */
.autoridad-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: clamp(30px, 5vw, 64px);
  align-items: center;
}
.autoridad-foto {
  margin: 0;
  border-radius: var(--radius);
  overflow: hidden;
  box-shadow: var(--shadow);
}
.autoridad-foto img {
  width: 100%;
  aspect-ratio: 3 / 2;
  object-fit: cover;
  display: block;
}
.autoridad-copy h2 { margin: 0 0 14px; }
.autoridad-copy > p { color: var(--ink-soft); line-height: 1.68; max-width: 48ch; }
.cifras-fila {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(120px, 1fr));
  gap: 1px;
  background: var(--line);
  border: 1px solid var(--line);
  border-radius: 20px;
  overflow: hidden;
  margin: 26px 0 0;
}
.cifras-fila > div { background: var(--white); padding: 18px 16px; }
.cifras-fila dt {
  font-family: var(--font-display);
  font-size: 1.9rem;
  line-height: 1;
  color: var(--blue-deep);
}
.cifras-fila dd {
  margin: 6px 0 0;
  font-size: .78rem;
  color: var(--ink-soft);
  line-height: 1.35;
}
.autoridad-copy .seccion-cta { justify-content: flex-start; }

/* Pasos de la primera visita, con foto y número */
.pasos-foto {
  list-style: none;
  margin: 40px 0 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
  gap: 22px;
  counter-reset: paso;
}
.pasos-foto > li {
  background: var(--white);
  border: 1px solid var(--line);
  border-radius: 22px;
  overflow: hidden;
  padding-bottom: 24px;
}
.pasos-foto figure { margin: 0 0 18px; position: relative; }
.pasos-foto img {
  width: 100%;
  /* Cuadradas, no apaisadas: el material esta hecho en vertical con el
     movil y un 4:3 se llevaba media cara por delante. */
  aspect-ratio: 1 / 1;
  object-fit: cover;
  display: block;
}
.paso-num {
  position: absolute;
  bottom: -18px;
  left: 22px;
  width: 38px;
  height: 38px;
  border-radius: 50%;
  background: var(--blue);
  color: #fff;
  display: grid;
  place-items: center;
  font-family: var(--font-display);
  font-size: 1.1rem;
  border: 3px solid #fff;
}
.pasos-foto h3 {
  font-family: var(--font-display);
  font-size: 1.2rem;
  font-weight: 500;
  margin: 16px 24px 8px;
}
.pasos-foto p {
  margin: 0 24px;
  font-size: .9rem;
  line-height: 1.55;
  color: var(--ink-soft);
}
.paso-precio {
  margin: 26px auto 0;
  max-width: 560px;
  text-align: center;
  padding: 18px 24px;
  border: 1px dashed #5caad473;
  border-radius: 18px;
  background: var(--blue-pale);
  font-size: .92rem;
}
.paso-precio strong { display: block; color: var(--ink); }
.paso-precio span { color: var(--ink-soft); }

@media (max-width: 880px) {
  .bloque-media-grid,
  .autoridad-grid { grid-template-columns: 1fr; }
  .bloque-media.invertido .bloque-media-foto { order: 0; }
  .bloque-media .seccion-cta,
  .autoridad-copy .seccion-cta { justify-content: center; }
}

/* ------------------------------------------------------------------------
   Ritmo de las páginas de centro (body.pagina-centro)

   Dos cosas que estaban mal y solo se ven midiendo:

   1. .fondo-crema usaba var(--cream), que es EXACTAMENTE el color del body.
      No alternaba nada: ocho secciones seguidas formaban una sola losa
      crema. Ahora la alternancia es crema / blanco / crema oscuro.

   2. Los rellenos no eran uniformes. .home-hero trae "padding: 58px 0 0",
      que por ser atajo pone el inferior a 0 y gana a .section-pad; y
      .investment-highlight y .cta-band traen los suyos. Aquí se igualan
      todos al ritmo de .section-pad.
   ------------------------------------------------------------------------ */
.fondo-blanco { background: var(--white); }
.fondo-alterno { background: #efe9e0; }

/* Alternancia, en el orden en que van las secciones */
.pagina-centro .results-section { background: var(--white); }
.pagina-centro .faq-section { background: var(--white); }

/* Relleno uniforme: el mismo que da .section-pad en cada anchura */
.pagina-centro .landing-hero { padding-bottom: clamp(104px, 8vw, 128px); }
.pagina-centro .investment-highlight.section-pad,
.pagina-centro .cta-band.section-pad { padding: clamp(104px, 8vw, 128px) 0; }

@media (max-width: 1180px) {
  .pagina-centro .landing-hero { padding-bottom: 98px; }
  .pagina-centro .investment-highlight.section-pad,
  .pagina-centro .cta-band.section-pad { padding: 98px 0; }
}
@media (max-width: 760px) {
  .pagina-centro .landing-hero { padding-bottom: 92px; }
  .pagina-centro .investment-highlight.section-pad,
  .pagina-centro .cta-band.section-pad { padding: 92px 0; }
}

/* ------------------------------------------------------------------------
   Equilibrio del hero en las páginas de centro

   Tres cosas que salieron al medirlo:

   1. El sello del logo se metía bajo la cabecera. La rejilla centra las dos
      columnas; cuanto más ancha es la pantalla, menos líneas ocupa el
      titular, más sube la columna de la imagen y el sello acababa detrás de
      la barra. Se recupera un relleno superior que despeje.
   2. El titular llegaba a siete líneas y 566 px de alto. El remate
      "con valoración gratis" pasa a una línea menor: sigue estando, pero
      deja de inflar el bloque.
   3. La imagen ocupaba la mitad exacta. Se le da menos y al texto más.
   ------------------------------------------------------------------------ */
.pagina-centro .landing-hero { padding-top: clamp(34px, 4vw, 64px); }

.pagina-centro .home-hero-grid {
  grid-template-columns: minmax(0, 1.12fr) minmax(0, 0.88fr);
  align-items: start;
}
.pagina-centro .home-hero-media { min-height: 0; }
.pagina-centro .home-hero-media picture { position: relative; inset: auto; }
.pagina-centro .home-hero-media picture img { height: auto; aspect-ratio: 4 / 5; }
.pagina-centro .home-hero-media::before { inset: 4% -10% 0 5%; }

.pagina-centro h1 {
  font-size: clamp(2.3rem, 4.2vw, 3.9rem);
  line-height: 1.06;
}
.h1-remate {
  display: block;
  margin-top: 10px;
  font-family: var(--font-body);
  font-size: clamp(.95rem, 1.3vw, 1.15rem);
  font-weight: 600;
  letter-spacing: .02em;
  color: var(--blue-deep);
}

@media (max-width: 900px) {
  .pagina-centro .home-hero-grid { grid-template-columns: 1fr; }
}

/* El .cta-orbit original es absoluto respecto al .cta-panel. Al montar la
   banda de cierre con el formulario dentro dejó de tener ese contenedor y
   se posicionaba contra el documento: aparecía flotando arriba del todo de
   la página, medio tapado por la cabecera. Aquí va en flujo normal. */
.cta-band-form .cta-orbit {
  position: static;
  margin: 0 0 4px;
  inset: auto;
}

/* ------------------------------------------------------------------------
   Hero de las páginas de centro: composición

   Lo que estaba mal, medido:
   - El texto venía centrado (heredado del hero de la landing de franquicia).
   - La imagen ocupaba 517 px y su borde derecho coincidía con el del
     contenedor: cero aire a ese lado, mientras que a la izquierda sí tenía.
   - La forma azul de detrás salía 52 px fuera por la derecha.
   ------------------------------------------------------------------------ */
.pagina-centro .home-hero-copy,
.pagina-centro .home-hero-copy h1,
.pagina-centro .home-hero-copy .hero-lead,
.pagina-centro .home-hero-copy .h1-remate,
.pagina-centro .home-hero-copy .hero-premios {
  text-align: left;
}
.pagina-centro .hero-actions,
.pagina-centro .hero-premios {
  justify-content: flex-start;
}

/* La imagen: más pequeña y con el mismo aire por los cuatro costados */
.pagina-centro .home-hero-grid {
  grid-template-columns: minmax(0, 1.25fr) minmax(0, 0.75fr);
  align-items: center;
  column-gap: clamp(32px, 4vw, 64px);
}
.pagina-centro .home-hero-media {
  width: min(100%, 380px);
  justify-self: center;
  margin: 0 auto;
}
.pagina-centro .home-hero-media picture img { aspect-ratio: 4 / 5; }
/* Sin sangrado: la forma de detrás se queda dentro del hueco de la imagen */
.pagina-centro .home-hero-media::before { inset: 5% -6% 0 6%; }
.pagina-centro .corner-mark { width: 62px; height: 62px; top: 18px; right: -10px; }

@media (max-width: 900px) {
  .pagina-centro .home-hero-media { width: min(92%, 420px); }
}

/* El .hero-lead viene con márgenes automáticos que lo centraban: se quedaba
   49px más adentro que el titular. Se conserva el ancho de lectura, pero
   anclado a la izquierda como el resto de la columna. */
.pagina-centro .home-hero-copy .hero-lead {
  margin-left: 0;
  margin-right: 0;
  max-width: 44ch;
}

/* ------------------------------------------------------------------------
   RESPONSIVE — repaso de las páginas de centro (body.pagina-centro)

   Estas páginas se compusieron para pantalla ancha y nunca se habían mirado
   en móvil, que es de donde va a venir casi todo el tráfico de Ads. Lo que
   salió al medirlas a 375, 768 y 960 px.
   ------------------------------------------------------------------------ */

/* 1 · Los campos nunca por debajo de 16px — el fallo más caro
   ------------------------------------------------------------------------
   Los dos formularios heredaban el tamaño del cuerpo (15px en móvil) y los
   campos quedaban en 13,76px. Safari en iOS amplía la página al enfocar un
   campo con letra menor de 16px, y no la devuelve al salir: la persona se
   queda con la landing ampliada y descolocada justo cuando iba a escribir.
   En una página cuyo único objetivo es ese formulario, no hay defecto peor. */
/* Sin media query: el zoom de Safari no es cosa solo del movil. En iPadOS
   la ventana declara 768px o mas y el navegador amplia igual al enfocar un
   campo de menos de 16px. La hoja original ya lo arreglaba, pero dentro del
   breakpoint de 760px, asi que entre 761px y el escritorio quedaba a medias.
   La especificidad iguala a la regla original de cada campo (que trae
   "font: inherit") y gana por ir despues. */
.lead-form input,
.lead-form select,
.lead-form textarea,
.form-bloque input[type="text"],
.form-bloque input[type="tel"],
.form-bloque input[type="email"],
.form-bloque select,
.cta-band-form input[type="text"],
.cta-band-form input[type="tel"],
.cta-band-form input[type="email"],
.cta-band-form select { font-size: 16px; }

@media (max-width: 900px) {
  .form-bloque input[type="text"],
  .form-bloque input[type="tel"],
  .form-bloque select,
  .cta-band-form input[type="text"],
  .cta-band-form input[type="tel"],
  .cta-band-form select {
    min-height: 50px;
    padding: 13px 14px;
  }
}

/* 2 · El panel de cierre acumulaba tres rellenos
   ------------------------------------------------------------------------
   Contenedor (18px) + panel azul (30px) + ficha blanca (24px) = 72px por
   lado. Los campos se quedaban en 230px de 375. */
@media (max-width: 620px) {
  .cta-band-form .cta-form-panel { padding: 24px 16px; }
  .cta-band-form .lead-form { padding: 20px 18px; }
  .form-bloque .lead-form { padding: 22px 18px; }
}

/* 3 · El hero en tabletas (760–900px)
   ------------------------------------------------------------------------
   Al bajar de 900px el hero deja de ser rejilla y pasa a flex en columna,
   pero conserva align-items:center. En flex vertical eso no centra: encoge
   cada pieza a su contenido. El texto se quedaba en 429px de 705 flotando
   en mitad del contenedor, con 138px muertos a cada lado. */
@media (max-width: 900px) {
  .pagina-centro .home-hero-grid { align-items: stretch; }
  .pagina-centro .home-hero-copy { width: 100%; max-width: none; }
  .pagina-centro .home-hero-media { align-self: center; }
}

/* 4 · Rejillas de cuatro con fila huérfana
   ------------------------------------------------------------------------
   Entre 880 y 1180px cabían tres de los cuatro pasos y tres de las cuatro
   cifras: el cuarto caía solo en la fila siguiente. Mejor de dos en dos.
   Las cifras viven dentro de una columna, así que quien manda es el ancho
   de esa columna y no el de la ventana: consulta de contenedor. */
@media (max-width: 1100px) {
  .pasos-foto { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 620px) {
  .pasos-foto { grid-template-columns: 1fr; }
}

.autoridad-copy { container-type: inline-size; }
@container (max-width: 560px) {
  .cifras-fila { grid-template-columns: repeat(2, 1fr); }
}

/* 5 · Ritmo vertical en móvil
   ------------------------------------------------------------------------
   Las catorce secciones mantenían 80–92px de relleno arriba y abajo: unos
   2.400px de hueco en una página que ya medía 17.000. Se aprieta a 56. */
@media (max-width: 620px) {
  .pagina-centro main > section { padding-top: 56px; padding-bottom: 56px; }
  .pagina-centro main > section.home-hero { padding-top: 22px; padding-bottom: 48px; }
  .pagina-centro .investment-highlight.section-pad,
  .pagina-centro .cta-band.section-pad { padding: 56px 0; }
  .pagina-centro .landing-hero { padding-bottom: 48px; }
}

/* 6 · Premios
   ------------------------------------------------------------------------
   Tres fotos verticales 3/4 a ancho completo sumaban 1.308px: dos pantallas
   enteras de premios. El recorte apaisado cuenta lo mismo en la mitad. */
@media (max-width: 620px) {
  .premios-fila img { aspect-ratio: 4 / 3; }
  .premios-fila { gap: 14px; }
}

/* 7 · Botones a ancho completo en móvil
   ------------------------------------------------------------------------
   Iban al ancho de su texto (187–286px) y quedaban descolgados a la
   izquierda. A ancho de columna son un objetivo mucho más fácil de acertar
   con el pulgar. */
@media (max-width: 560px) {
  .hero-actions .button,
  .seccion-cta .button {
    width: 100%;
    max-width: 420px;
    justify-content: center;
  }
}

/* 8 · Objetivos táctiles en móvil (todo el sitio, no solo los centros)
   ------------------------------------------------------------------------
   Enlaces de 19 a 25px de alto apilados unos sobre otros: las acciones de
   las tarjetas de centro, las columnas del pie y la barra de cookies. Con
   el pulgar se falla constantemente. No se tocan los enlaces que van dentro
   de un párrafo, que se leen y se pulsan en su renglón. */
@media (max-width: 760px) {
  .location-actions a,
  .center-phone,
  .footer-nav a,
  .footer-contact a,
  .footer-legal-links a,
  .privacy-bar-links a,
  .hero-secondary-link {
    display: inline-flex;
    align-items: center;
    min-height: 44px;
  }
  .privacy-settings-button { min-height: 44px; }
  .privacy-bar-close { min-width: 44px; min-height: 44px; }
}

/* 9 · El resto de acciones que se quedaban cortas
   ------------------------------------------------------------------------
   Enlaces que son la acción principal de su tarjeta o de su cabecera, no
   texto corrido: merecen el mismo objetivo que un botón. Las migas suben
   menos, que son ayuda de orientación y van en fila. El enlace a la
   política dentro de la frase de consentimiento se deja como está: se lee
   en su renglón y agrandarlo rompería la frase. */
@media (max-width: 760px) {
  .page-hero-actions a,
  .service-detail-copy > a {
    display: inline-flex;
    align-items: center;
    min-height: 44px;
  }
  .migas a {
    display: inline-flex;
    align-items: center;
    min-height: 34px;
  }
}

/* 10 · Ritmo vertical en pantalla grande
   ------------------------------------------------------------------------
   Cada sección ponía clamp(104px, 8vw, 128px) arriba y abajo: a 1440px son
   115 por lado, o sea 230px fijos de vacío entre una sección y la
   siguiente, catorce veces. Se ve sobre todo donde una sección acaba en un
   botón centrado y la siguiente abre con un titular centrado: dos bloques
   de texto separados por un tercio de pantalla en blanco.

   El móvil ya estaba apretado a 56px más arriba; esto es de 621px para
   arriba. Se usa una variable para que las tres reglas que traen relleno
   propio —el hero, la franja azul y la banda de cierre— no se desfasen. */
/* El ritmo lo manda una sola variable para todo el sitio; ver el bloque 11
   al final, donde se aplica a cada tipo de seccion. */
:root { --ritmo: clamp(60px, 5vw, 84px); }
@media (max-width: 620px) { :root { --ritmo: 56px; } }

@media (min-width: 621px) {
  .pagina-centro main > section {
    padding-top: var(--ritmo);
    padding-bottom: var(--ritmo);
  }
  .pagina-centro main > section.home-hero { padding-top: 48px; }
  .pagina-centro .landing-hero { padding-bottom: var(--ritmo); }
  .pagina-centro .investment-highlight.section-pad,
  .pagina-centro .cta-band.section-pad { padding: var(--ritmo) 0; }
}

/* 11 · Ritmo vertical del resto del sitio
   ------------------------------------------------------------------------
   El ajuste de espacios se hizo solo en las páginas de centro, así que las
   otras veintidós seguían con 115px por lado: 230px de vacío entre una
   sección y la siguiente. Medido a 1440px, el relleno se comía el 34% de
   /academia/curso-labios/, el 32% del blog y el 29% de las de servicio,
   frente al 17% de la landing de Madrid ya ajustada.

   Ahora manda --ritmo en todo el sitio. Las secciones que traen relleno
   propio se enumeran una a una porque su selector pesa más que .section-pad
   y, si no, seguirían a lo suyo. Los heros conservan un remate superior
   menor: van pegados a la cabecera y no necesitan el mismo aire.
   ------------------------------------------------------------------------ */
.section-pad { padding: var(--ritmo) 0; }
.content-section { padding: var(--ritmo) 0; }

/* Heros: menos arriba, el ritmo normal abajo */
.page-hero { padding: 64px 0 var(--ritmo); }
.contact-hero { padding: 64px 0 var(--ritmo); }

/* Las que traen su propio relleno y ganan por especificidad */
.cta-band.section-pad { padding-bottom: var(--ritmo); }
.service-detail-section { padding-bottom: var(--ritmo); }
.content-section.faq-section { padding: var(--ritmo) 0; }

@media (max-width: 620px) {
  .page-hero,
  .contact-hero { padding-top: 40px; }
}

/* 12 · Las dos costuras que quedaban
   ------------------------------------------------------------------------
   La banda de cierre parece azul, pero el azul está en un panel interior:
   la sección hereda el crema del cuerpo. En la home venía justo detrás de
   las preguntas frecuentes, que también son crema, así que el último tramo
   —el que lleva el formulario— se fundía con el anterior.

   Se resuelve por vecindad y no con una clase suelta: si la banda va detrás
   de algo crema, se pone en blanco. Donde ya hay corte, no cambia nada. */
.cta-band { background: var(--white); }
/* salvo que lo anterior ya sea blanco, y entonces el corte lo da el crema */
.fondo-blanco + .cta-band,
.story-conclusion + .cta-band,
/* al ocultar la seccion de cursos, la galeria quedo pegada a la banda */
.academy-gallery + .cta-band { background: var(--cream); }

/* En el indice de servicios las dos secciones ya eran blancas */
.services-intro + .service-detail-section { background: var(--cream); }

/* 13 · Tabletas: la franja que nadie había mirado
   ------------------------------------------------------------------------
   Medida la landing de Madrid a 768px, ocupaba 15.716px de alto: casi lo
   mismo que a 375px (16.163). Una tableta no debería hacer scroll como un
   móvil, y las dos causas eran de libro.

   1. El carrusel salta de una tarjeta a ancho casi completo (hasta 760px) a
      tres de golpe. A 768 eso deja tarjetas de 222px de ancho por 470 de
      alto: una proporción de 0,47 sobre fotos que son 0,75, así que
      object-fit se comía los lados de cada cara. Dos por vista devuelve el
      encuadre a 0,73, que es casi el original.

   2. Al apilarse el bloque de foto y texto, la foto pasa a ancho completo:
      705px con proporción 4:5 son 881px de alto, más del doble que en
      móvil. Cinco bloques así son 4.400px de fotos. Se le pone tope y se
      centra: el texto sigue a ancho completo, que es donde se lee.
   ------------------------------------------------------------------------ */
/*
 * La tarjeta tiene el alto fijo (430 en movil, 470 arriba) y el ancho en
 * porcentaje, asi que al ensanchar la pantalla se va volviendo apaisada
 * sobre fotos que son verticales: a 600px salian 459x430, ratio 1,07, y
 * object-fit recortaba la cara por arriba y por abajo. El min() le pone
 * techo al ancho para que la proporcion no se dispare.
 */
@media (max-width: 760px) {
  .results-carousel-track { grid-auto-columns: min(84%, 330px); }
}
@media (min-width: 761px) and (max-width: 1000px) {
  .results-carousel-track { grid-auto-columns: min(calc(50% - 9px), 360px); }
}

@media (max-width: 880px) {
  .bloque-media-foto,
  .autoridad-foto {
    max-width: 460px;
    margin-inline: auto;
  }
}

/* 14 · Que el alto de la tarjeta lo mande la foto, no un número fijo
   ------------------------------------------------------------------------
   .result-slide trae height:470px (430 en móvil) y la imagen va al 100% con
   object-fit:cover. Como el ancho sí escala con la pantalla, la proporción
   cambiaba en cada anchura —0,52 a 320px, 1,07 a 600— y el recorte se
   comía un trozo distinto de cada cara según el móvil de quien mirase.

   Los casos son 1125x1500, o sea 3:4 exacto. Dejando que el alto salga de
   ahí, la proporción es la misma siempre y no se recorta nada. El pie sigue
   colocándose encima, que va en posición absoluta.

   De 1000px para arriba se respeta el diseño original con alto fijo. */
@media (max-width: 1000px) {
  .result-slide { height: auto; }
  .result-slide img { height: auto; aspect-ratio: 3 / 4; }
}

/* 15 · Carrusel de las páginas de centro, sin pies
   ------------------------------------------------------------------------
   Aquí las tarjetas ya no llevan texto encima. El degradado oscuro del
   :after estaba solo para que ese texto se leyera sobre la foto; sin texto,
   lo único que hace es ensuciar la mitad inferior de cada cara. La home y
   /servicios/ sí conservan sus pies numerados, por eso va acotado. */
.pagina-centro .result-slide:after { content: none; }

/* 16 · El aire de arriba del hero
   ------------------------------------------------------------------------
   Entre el borde de la cabecera y el titular había 116px, porque se sumaban
   dos rellenos: los 48 de la sección y los 44 que la columna de texto trae
   de origen. Se deja uno solo. El sello del logo sobre la foto se vigila
   aparte: la rejilla centra las dos columnas, así que al subir el texto
   sube también la imagen y ese sello puede acabar bajo la barra. */
@media (min-width: 621px) {
  .pagina-centro main > section.home-hero { padding-top: 40px; }
  .pagina-centro .home-hero-copy { padding-top: 0; }
}

/* Los cuatro "Sin..." del hero: o los cuatro en fila, o dos por dos. La
   rejilla original es auto-fit con minmax(228px), y entre 900 y 1180px
   caben justo tres, así que el cuarto se quedaba solo en la fila de abajo. */
@media (min-width: 621px) and (max-width: 1180px) {
  .pagina-centro .sin-fila .without-list { grid-template-columns: repeat(2, 1fr); }
}

/* 17 · El botón "Ver centros" del pie
   ------------------------------------------------------------------------
   Estaba pegado al párrafo, a cero píxeles: la frase terminaba y el botón
   empezaba en el mismo renglón siguiente, sin respiro. El título de la
   columna ya deja 20px con su texto, así que el botón usa la misma medida
   para que la columna tenga un ritmo y no dos. */
.footer-action .button { margin-top: 22px; }

/* Al unificar los dos formularios, el de arriba pasó a ser .cta-band —y por
   tanto blanco— justo entre el carrusel y el bloque de autoridad, que
   también lo son: tres blancos seguidos. Va en crema, que el panel azul de
   dentro se recorta igual de bien sobre uno que sobre otro. */
.pagina-centro .results-section + .cta-band { background: var(--cream); }

/* 18 · Fuera la foto del hero cuando el hero se apila
   ------------------------------------------------------------------------
   En pantalla ancha la foto acompaña al titular: van uno al lado del otro y
   la columna de texto no pierde nada. Por debajo de 900px el hero pasa a
   columna y esa foto deja de acompañar: se convierte en un bloque de 390px
   —más la forma azul de detrás y el sello— metido entre el botón y el resto
   de la página, empujando el formulario más abajo todavía.

   Y encima no es la foto del centro que anuncia cada página: es una foto
   genérica. Cuando haya una de cada local se puede revisar, pero entonces
   valdrá la pena por lo que enseña, no por rellenar.
   ------------------------------------------------------------------------ */
@media (max-width: 900px) {
  .pagina-centro .home-hero-media { display: none; }
}

/* 19 · Jerarquía de los textos del hero
   ------------------------------------------------------------------------
   Medido en móvil, antes de tocar nada:

     h1 del hero ............ 36,8px  peso 500
     h2 de cualquier sección  39,4px  peso 500   <- más grande que el h1
     "cada día" ............. 36,8px  peso 500
     lead ................... 16px    peso 400
     "Premiadas en..." ...... 14,7px  peso 600
     bullets ................ 15,0px  peso 400

   Dos cosas mal. Una, el titular de la página era MENOR que el de cualquier
   sección de dentro. Y dos, dentro del h1 iban al mismo tamaño tres cosas
   que no hacen lo mismo: la promesa, el acento y el descriptor con la
   ciudad. Sin escalones, seis líneas seguidas se leen como un muro y no hay
   por dónde entrar.

   Ahora hay tres niveles dentro del titular y el h1 vuelve a ser lo más
   grande de la página.
   ------------------------------------------------------------------------ */
.pagina-centro .home-hero-copy h1 {
  font-size: clamp(2.6rem, 6.4vw, 4.1rem);
  line-height: 1.04;
  letter-spacing: -0.015em;
}

/* 1 · la promesa manda */
.pagina-centro .h1-promesa { display: block; }

/* 2 · el descriptor sostiene, no compite: es la línea que lleva la técnica
      y la ciudad, y se entiende mejor un escalón por debajo */
.pagina-centro .h1-donde {
  display: block;
  font-size: 0.6em;
  line-height: 1.16;
  margin-top: 0.34em;
  color: var(--ink-soft);
  letter-spacing: 0;
}

/* 3 · el remate, el escalón más bajo */
.pagina-centro .h1-remate {
  display: block;
  margin-top: 0.7em;
}

/* Y el h2 de sección deja de pasarle por encima al h1 */
.pagina-centro .section-heading h2,
.pagina-centro .bloque-media-copy h2,
.pagina-centro .cta-form-copy h2 {
  font-size: clamp(1.9rem, 4vw, 2.5rem);
  line-height: 1.12;
}

/* El aval de los premios se lee como lo que es —una credencial, no un
   párrafo más— y deja de competir con los bullets, que estaban a 0,3px */
.pagina-centro .hero-premios {
  font-size: 0.78rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--blue-deep);
}

/* 20 · El bloque de los "Sin..." como sección propia
   ------------------------------------------------------------------------
   Era un remate pegado al hero, dentro de su misma sección. Es un argumento
   entero —los cinco dolores del plan— y se lee mejor con su propio aire y
   su propio fondo. El alterno lo separa del crema del hero por arriba y del
   blanco del carrusel por abajo.

   La sección respira menos que las demás: son cuatro líneas, no un bloque
   de contenido, y con el ritmo completo quedaba un vacío enorme. */
.pagina-centro .sin-seccion { padding-top: calc(var(--ritmo) * 0.62); padding-bottom: calc(var(--ritmo) * 0.62); }
.pagina-centro .sin-seccion .without-list { gap: 14px clamp(18px, 3vw, 40px); }

/* 21 · El hero, centrado cuando se queda sin la foto al lado
   ------------------------------------------------------------------------
   Con la foto al lado, el texto alineado a la izquierda hace columna contra
   ella. Sin foto —de 900px para abajo— esa alineación deja toda la mitad
   derecha descolgada, sobre todo en el titular, donde ninguna línea llega
   al borde. Centrado, el bloque se compone solo.

   Los bullets no: en una lista con icono, centrar el texto rompe la
   columna que forman los iconos y cuesta más leerla. Se centra el conjunto,
   no cada línea. */
@media (max-width: 900px) {
  .pagina-centro .home-hero-copy,
  .pagina-centro .home-hero-copy h1,
  .pagina-centro .home-hero-copy .h1-promesa,
  .pagina-centro .home-hero-copy .h1-donde,
  .pagina-centro .home-hero-copy .h1-remate,
  .pagina-centro .home-hero-copy .hero-lead,
  .pagina-centro .home-hero-copy .hero-premios { text-align: center; }

  .pagina-centro .hero-actions,
  .pagina-centro .hero-premios { justify-content: center; }

  .pagina-centro .home-hero-copy .hero-lead { margin-inline: auto; }
  .pagina-centro .hero-actions .button { margin-inline: auto; }

  /* La lista, centrada como bloque; cada línea sigue a la izquierda */
  .pagina-centro .sin-seccion .without-list {
    width: fit-content;
    max-width: 100%;
    margin-inline: auto;
  }
}

/* 22 · Fuera las flechas del carrusel en táctil, y menos aire alrededor
   ------------------------------------------------------------------------
   En una pantalla táctil el carrusel se mueve con el dedo, y el trozo de la
   tarjeta siguiente que asoma ya avisa de que hay más. Las flechas ahí no
   aportan y cuestan 64px de alto entre botones y margen, más los 66 que las
   separaban del titular: 130px de nada antes de llegar a las fotos.

   De 901px para arriba se quedan: ahí no hay dedo que deslice.

   Quien navegue con teclado no pierde nada: la pista lleva tabindex="0" y
   se recorre con las flechas del teclado como cualquier scroller.

   El margen del encabezado también baja. 54px debajo de cada titular en una
   pantalla de 375 son medio dedo de vacío en cada sección. */
@media (max-width: 900px) {
  .results-carousel-controls { display: none; }
  .section-heading { margin-bottom: 30px; }
}

/* 23 · Los formularios en móvil
   ------------------------------------------------------------------------
   Tres cosas, medidas en la página de centro a 375px.

   1. El punto de cada "Sin..." es un círculo azul dibujado con ::before.
      Sobre crema se ve; dentro del panel azul es azul sobre azul, así que
      quedaban 30px de sangría y nada dentro. Ahí va en blanco.

   2. La casilla del consentimiento medía 19x54px. La regla original de los
      campos pone min-height:54px a TODOS los inputs de la ficha, y una
      casilla no es un campo de texto: quedaba estirada y sin alinearse con
      el renglón al que acompaña.

   3. El texto del consentimiento iba a 13,12px. Es el único texto de la
      página que hay que leer antes de aceptar algo, y era el más pequeño. */
.cta-form-copy .without-list li::before {
  border-color: #ffffff8c;
  background: #ffffff2e;
}

.lead-form input[type="checkbox"] {
  min-height: 0;
  width: 22px;
  height: 22px;
  padding: 0;
  flex: 0 0 auto;
  accent-color: var(--blue);
}

@media (max-width: 900px) {
  .lead-form .consent-row {
    font-size: 0.875rem;
    line-height: 1.5;
    /* Junto a la PRIMERA linea, no centrada con el bloque entero: el texto
       ocupa tres renglones y centrada quedaba flotando en mitad de ellos. */
    align-items: start;
  }
  .lead-form .consent-row input[type="checkbox"] { margin-top: 0; }
}

/* 24 · Las tarjetas de /servicios/, todas del mismo alto
   ------------------------------------------------------------------------
   La foto iba a height:100% de la tarjeta, y el alto de la tarjeta lo marca
   el texto. Como el de eyeliner es más corto que los otros tres, su tarjeta
   se quedaba en 502px frente a 662: una fila visiblemente más baja en medio
   de las demás.

   Ahora manda la foto. En escritorio con proporción 3:4, que es la de los
   archivos, así que además deja de recortar; al apilarse con altura fija,
   porque ahí la foto ocupa todo el ancho y un 3:4 daría 937px de alto. */
@media (min-width: 1081px) {
  .service-detail-card > img {
    height: auto;
    aspect-ratio: 3 / 4;
    min-height: 0;
    max-height: none;
  }
}

@media (min-width: 761px) and (max-width: 1080px) {
  .service-detail-card > img { height: 640px; min-height: 0; max-height: none; }
}

@media (max-width: 760px) {
  .service-detail-card > img { height: 420px; min-height: 0; max-height: none; }
}

/* 25 · El formulario de GoHighLevel dentro del panel azul
   ------------------------------------------------------------------------
   El formulario propio era una ficha blanca con su relleno y su sombra. El
   de GHL viene con su propio fondo y su propio relleno dentro del iframe,
   así que aquí solo hace falta la ficha: si le añadimos relleno otra vez,
   se ve un marco blanco alrededor de otro marco blanco.

   La altura la ajusta el script de GHL por mensaje; el min-height evita el
   salto de maquetación mientras carga. */
.ghl-form {
  background: var(--white);
  border-radius: var(--radius);
  overflow: hidden;
  box-shadow: 0 24px 70px #0f2e3f3d;
}
.ghl-form iframe {
  display: block;
  width: 100%;
  min-height: 520px;
  border: 0;
}

/* En el formulario de arriba la ficha va sobre crema y no sobre el azul:
   allí la sombra cantaría menos y el borde ayuda a recortarla */
.form-bloque .ghl-form { box-shadow: var(--shadow); border: 1px solid var(--line); }

@media (max-width: 620px) {
  .ghl-form iframe { min-height: 560px; }
}

/* 26 · El bloque provisional de WhatsApp
   ------------------------------------------------------------------------
   Ocupa el hueco de la ficha del formulario en las ciudades que todavía no
   tienen el suyo en GoHighLevel, así que hereda su aspecto: misma ficha,
   mismo radio, misma sombra. Si se viera distinto, la página parecería dos
   páginas cosidas. */
.wa-provisional {
  background: var(--white);
  border-radius: var(--radius);
  padding: clamp(28px, 4vw, 40px);
  box-shadow: 0 24px 70px #0f2e3f3d;
  text-align: center;
}
.wa-provisional-titulo {
  font-family: var(--font-display);
  font-size: clamp(1.4rem, 2.4vw, 1.8rem);
  color: var(--ink);
  margin: 0 0 10px;
}
.wa-provisional > p {
  color: var(--ink-soft);
  line-height: 1.6;
  margin: 0 auto 22px;
  max-width: 34ch;
}
.wa-provisional .button {
  width: 100%;
  max-width: 340px;
  justify-content: center;
}
.wa-provisional-tel { margin: 18px auto 0; font-size: 0.9rem; }
.wa-provisional-tel a { color: var(--blue-deep); font-weight: 600; }

/* El de arriba va sobre crema: borde en vez de tanta sombra */
.form-bloque .wa-provisional { box-shadow: var(--shadow); border: 1px solid var(--line); }
