.public-body { overflow-x: hidden; }
.public-body.is-locked { overflow: hidden; }
.skip-link { position: fixed; top: 12px; left: 12px; z-index: 200; padding: 10px 14px; transform: translateY(-150%); border-radius: 12px; background: var(--text-primary); color: #fff; }
.back-to-top { position: fixed; right: max(22px, env(safe-area-inset-right)); bottom: max(22px, env(safe-area-inset-bottom)); z-index: 70; min-width: 50px; height: 50px; display: flex; align-items: center; justify-content: center; gap: 0; padding: 0 15px; transform: translateY(18px) scale(.86); visibility: hidden; opacity: 0; border: 1px solid rgba(255,255,255,.7); border-radius: 999px; background: rgba(82,65,52,.92); color: #fff; box-shadow: 0 14px 34px rgba(49,35,26,.2); backdrop-filter: blur(14px); cursor: pointer; pointer-events: none; transition: opacity .24s ease, transform .24s ease, visibility .24s, background .2s ease; }
.back-to-top.is-visible { transform: translateY(0) scale(1); visibility: visible; opacity: 1; pointer-events: auto; }
.back-to-top:hover { transform: translateY(-3px); background: #d98f53; box-shadow: 0 17px 36px rgba(179,106,52,.27); }
.back-to-top:focus-visible { outline: 3px solid rgba(222,158,104,.42); outline-offset: 4px; }
.back-to-top svg { width: 20px; height: 20px; }
.back-to-top span { max-width: 0; overflow: hidden; opacity: 0; font-size: .7rem; font-weight: 750; white-space: nowrap; transition: max-width .2s ease, margin .2s ease, opacity .2s ease; }
.back-to-top:hover span, .back-to-top:focus-visible span { max-width: 54px; margin-left: 7px; opacity: 1; }
.skip-link:focus { transform: translateY(0); }
.landing-container { width: min(calc(100% - 48px), 1240px); margin-inline: auto; }
.landing-section { padding: clamp(88px, 10vw, 152px) 0; }
.landing-eyebrow { margin: 0 0 18px; color: var(--primary-hover); font-size: clamp(1.23rem, 1.5vw, 1.41rem); font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.landing-eyebrow.light { color: rgba(255,255,255,.7); }
.section-intro { max-width: 720px; margin-bottom: clamp(42px, 6vw, 72px); }
.section-intro h2 { margin: 0 0 18px; font-size: clamp(2.1rem, 4.4vw, 4.4rem); line-height: 1.04; letter-spacing: -.055em; }
.section-intro > p:not(.landing-eyebrow), .section-intro-row > p { max-width: 560px; margin: 0; color: var(--text-secondary); line-height: 1.75; }
.section-intro-row { max-width: none; display: grid; grid-template-columns: 1fr .6fr; align-items: end; gap: 40px; }
.section-intro-row h2 { max-width: 720px; margin-bottom: 0; }
.reveal { opacity: 0; transform: translateY(24px); transition: opacity 700ms ease-out var(--delay, 0ms), transform 700ms ease-out var(--delay, 0ms); }
.reveal.is-visible { opacity: 1; transform: translateY(0); }

.public-header { position: fixed; inset: 0 0 auto; z-index: 80; padding: 14px 0; color: #fff; transition: padding var(--transition), background var(--transition), color var(--transition), box-shadow var(--transition); }
.public-header.is-scrolled { padding: 7px 0; background: rgba(250,248,245,.94); color: var(--text-primary); box-shadow: 0 1px 0 var(--border); backdrop-filter: blur(18px); }
.public-nav-shell { width: min(calc(100% - 48px), 1420px); min-height: 128px; display: flex; align-items: center; gap: 42px; margin-inline: auto; transition: min-height var(--transition); }
.public-header.is-scrolled .public-nav-shell { min-height: 92px; }
.public-logo { width: 220px; height: 130px; flex: none; overflow: hidden; transition: width var(--transition), height var(--transition); }
.public-logo img { width: 220px; height: 220px; max-width: none; transform: translateY(-36px); object-fit: contain; filter: drop-shadow(0 7px 16px rgba(0,0,0,.16)); transition: width var(--transition), height var(--transition), transform var(--transition), filter var(--transition); }
.public-header.is-scrolled .public-logo { width: 160px; height: 94px; }
.public-header.is-scrolled .public-logo img { width: 160px; height: 160px; transform: translateY(-27px); filter: none; }
.public-nav { display: flex; align-items: center; gap: 30px; margin-left: auto; }
.public-nav a { position: relative; padding: 10px 0; font-size: 1.32rem; font-weight: 650; }
.public-nav a::after { content: ""; position: absolute; right: 0; bottom: 2px; left: 0; height: 1px; transform: scaleX(0); transform-origin: right; background: currentColor; transition: transform var(--transition); }
.public-nav a:hover::after { transform: scaleX(1); transform-origin: left; }
.public-nav .public-nav-login { padding: 11px 16px; border: 1px solid currentColor; border-radius: 999px; }
.public-nav .public-nav-login::after { display: none; }
.public-nav .public-nav-login:hover { background: rgba(255,255,255,.12); }
.public-header.is-scrolled .public-nav .public-nav-login:hover { background: var(--primary-soft); }
.nav-cta { min-height: 54px; padding: 13px 19px; font-size: 1.125rem; }
.nav-cta svg { width: 19px; }
.public-menu-toggle { display: none; width: 44px; height: 44px; place-items: center; margin-left: auto; border: 1px solid rgba(255,255,255,.3); border-radius: 14px; background: rgba(255,255,255,.08); color: inherit; cursor: pointer; }
.public-header.is-scrolled .public-menu-toggle { border-color: var(--border); background: #fff; }

.landing-hero { min-height: 100svh; position: relative; display: grid; align-items: end; overflow: hidden; background: #2f3a3d; color: #fff; }
.hero-media, .hero-overlay { position: absolute; inset: 0; }
.hero-media { will-change: transform; }
.hero-media img, .hero-media video { width: 100%; height: 112%; object-fit: cover; object-position: center 34%; }
.hero-overlay { background: linear-gradient(90deg, rgba(27,33,35,.75) 0%, rgba(30,35,36,.4) 48%, rgba(30,35,36,.12) 78%), linear-gradient(0deg, rgba(22,27,29,.7), transparent 55%); }
.hero-content { position: relative; z-index: 2; padding-top: 210px; padding-bottom: clamp(110px, 12vh, 150px); }
.hero-kicker { display: flex; align-items: center; gap: 12px; margin: 0 0 20px; color: rgba(255,255,255,.78); font-size: 1.035rem; font-weight: 700; letter-spacing: .09em; text-transform: uppercase; }
.hero-kicker span { width: 30px; height: 1px; background: var(--primary); }
.hero-content h1 { max-width: 970px; margin: 0; font-size: clamp(3rem, 7vw, 7.2rem); font-weight: 600; line-height: .96; letter-spacing: -.064em; text-wrap: balance; }
.hero-copy { max-width: 640px; margin: 28px 0 0; color: rgba(255,255,255,.75); font-size: clamp(.95rem, 1.3vw, 1.12rem); line-height: 1.75; }
.hero-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 34px; }
.hero-actions .button { min-height: 52px; }
.button-glass { border-color: rgba(255,255,255,.35); background: rgba(255,255,255,.09); color: #fff; backdrop-filter: blur(12px); }
.button-glass:hover { background: rgba(255,255,255,.17); }
.button-glass svg { width: 17px; }
.scroll-cue { position: absolute; right: clamp(24px, 5vw, 74px); bottom: 34px; z-index: 2; display: flex; align-items: center; gap: 10px; color: rgba(255,255,255,.72); font-size: .67rem; letter-spacing: .1em; text-transform: uppercase; }
.scroll-cue svg { width: 18px; animation: scrollCue 1.5s ease-in-out infinite; }
@keyframes scrollCue { 50% { transform: translateY(5px); } }

.why-section { background: var(--background); }
.why-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); border-top: 1px solid var(--border); border-left: 1px solid var(--border); }
.why-card { min-height: 320px; position: relative; padding: 32px; border-right: 1px solid var(--border); border-bottom: 1px solid var(--border); transition: background var(--transition), transform var(--transition), box-shadow var(--transition); }
.why-card:hover { z-index: 1; transform: translateY(-4px); background: #fff; box-shadow: var(--shadow-card); }
.why-icon { width: 52px; height: 52px; display: grid; place-items: center; border-radius: 18px; background: var(--primary-soft); color: var(--primary-hover); }
.why-icon svg { width: 23px; }
.why-number { position: absolute; top: 34px; right: 30px; color: #b2ada7; font-family: var(--font-heading); font-size: .72rem; }
.why-card h3 { margin: 76px 0 12px; font-size: 1.17rem; }
.why-card p { margin: 0; color: var(--text-secondary); font-size: .87rem; line-height: 1.7; }

.cinema-section { padding: 0 clamp(16px, 3vw, 46px); background: var(--background); }
.cinema-media { height: min(78vw, 760px); min-height: 520px; position: relative; overflow: hidden; border-radius: clamp(24px, 3.5vw, 48px); background: #263238; }
.cinema-media video { width: 100%; height: 100%; object-fit: cover; }
.cinema-overlay { position: absolute; inset: 0; display: flex; flex-direction: column; justify-content: flex-end; padding: clamp(30px, 5vw, 74px); background: linear-gradient(0deg, rgba(26,31,32,.72), transparent 70%); color: #fff; }
.cinema-label { margin-bottom: 12px; color: rgba(255,255,255,.65); font-size: .68rem; font-weight: 700; letter-spacing: .13em; text-transform: uppercase; }
.cinema-overlay h2 { max-width: 760px; margin: 0; font-size: clamp(2rem, 4.2vw, 4.4rem); line-height: 1.05; letter-spacing: -.05em; }
.round-play { position: absolute; right: clamp(28px, 5vw, 70px); bottom: clamp(28px, 5vw, 70px); width: 68px; height: 68px; display: grid; place-items: center; border: 1px solid rgba(255,255,255,.45); border-radius: 50%; background: rgba(255,255,255,.13); color: #fff; cursor: pointer; backdrop-filter: blur(12px); transition: transform var(--transition), background var(--transition); }
.round-play:hover { transform: scale(1.06); background: #fff; color: var(--text-primary); }

.services-section { background: #fff; }
.services-grid { display: grid; grid-template-columns: repeat(6, 1fr); gap: 22px; }
.service-card { grid-column: span 2; min-width: 0; }
.service-card:nth-child(4), .service-card:nth-child(5) { grid-column: span 3; }
.service-image { position: relative; display: block; overflow: hidden; aspect-ratio: 4 / 4.7; border-radius: var(--radius-card); background: var(--surface-soft); }
.service-card:nth-child(4) .service-image, .service-card:nth-child(5) .service-image { aspect-ratio: 4 / 3.2; }
.service-image img { width: 100%; height: 100%; object-fit: cover; transition: transform 500ms ease-out, filter 500ms ease-out; }
.service-card:hover .service-image img { transform: scale(1.045); filter: saturate(.9); }
.service-index { position: absolute; top: 18px; left: 18px; width: 38px; height: 38px; display: grid; place-items: center; border-radius: 50%; background: rgba(255,255,255,.84); color: var(--text-secondary); font-size: .66rem; font-weight: 700; backdrop-filter: blur(10px); }
.service-body { padding: 22px 4px 0; }
.service-body > p { margin: 0 0 7px; color: var(--primary-hover); font-size: .69rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; }
.service-body h3 { margin: 0 0 10px; font-size: 1.4rem; letter-spacing: -.03em; }
.service-copy { color: var(--text-secondary); font-size: .84rem; line-height: 1.65; }
.service-links { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-top: 18px; padding-top: 14px; border-top: 1px solid var(--border); }
.service-links > a:first-child { display: inline-flex; align-items: center; gap: 7px; font-size: .75rem; font-weight: 700; }
.service-links svg { width: 15px; }
.service-book { width: 38px; height: 38px; display: grid; place-items: center; border-radius: 13px; background: var(--surface-soft); color: var(--primary-hover); }

.parallax-section { min-height: 76vh; position: relative; display: grid; place-items: center; overflow: hidden; background: var(--parallax-image) center / cover fixed; color: #fff; }
.parallax-overlay { position: absolute; inset: 0; background: linear-gradient(90deg, rgba(29,43,47,.78), rgba(29,43,47,.34)); }
.parallax-section .landing-container { position: relative; z-index: 1; }
.parallax-section h2 { max-width: 980px; margin: 0; font-size: clamp(2.8rem, 6.7vw, 7rem); line-height: .98; letter-spacing: -.065em; }
.parallax-section .landing-container > p:last-child { max-width: 540px; margin: 24px 0 0; color: rgba(255,255,255,.73); line-height: 1.7; }

.profile-section { background: var(--surface-soft); }
.profile-grid { display: grid; grid-template-columns: minmax(0, .95fr) minmax(0, 1.05fr); align-items: center; gap: clamp(50px, 8vw, 110px); }
.profile-visual { position: relative; }
.profile-visual > img, .profile-placeholder { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; border-radius: 32px; }
.profile-visual > img { object-position: 32% center; }
.profile-placeholder { position: relative; display: grid; place-items: center; overflow: hidden; background: linear-gradient(145deg, #dcebef, #fff 46%, #ecd2bc); }
.profile-placeholder::before { content: ""; position: absolute; width: 70%; aspect-ratio: 1; border: 1px solid rgba(47,43,40,.12); border-radius: 50%; }
.profile-placeholder span { font-family: var(--font-heading); font-size: clamp(7rem, 16vw, 13rem); font-weight: 500; color: rgba(47,43,40,.16); }
.profile-placeholder svg { position: absolute; right: 14%; bottom: 14%; color: var(--primary-hover); }
.profile-visual blockquote { position: absolute; right: -38px; bottom: 30px; width: min(78%, 390px); margin: 0; padding: 24px; border-radius: 20px; background: rgba(255,255,255,.92); box-shadow: var(--shadow-float); color: var(--text-primary); font-family: var(--font-heading); font-size: .92rem; line-height: 1.55; backdrop-filter: blur(12px); }
.profile-content h2 { margin: 0; font-size: clamp(2.7rem, 5.4vw, 5.5rem); line-height: 1; letter-spacing: -.06em; }
.profile-title { margin: 12px 0 28px; color: var(--primary-hover); font-weight: 650; }
.profile-bio, .profile-approach { color: var(--text-secondary); line-height: 1.8; }
.profile-bio { font-size: 1.03rem; }
.profile-tabs { margin-top: 30px; border-top: 1px solid #ddd4ca; }
.profile-tabs details { border-bottom: 1px solid #ddd4ca; }
.profile-tabs summary { display: flex; align-items: center; justify-content: space-between; padding: 18px 0; cursor: pointer; list-style: none; font-family: var(--font-heading); font-weight: 700; }
.profile-tabs summary::-webkit-details-marker { display: none; }
.profile-tabs summary svg { width: 17px; transition: transform var(--transition); }
.profile-tabs details[open] summary svg { transform: rotate(45deg); }
.profile-tabs ul { display: flex; flex-wrap: wrap; gap: 8px; margin: 0; padding: 0 0 18px; list-style: none; }
.profile-tabs li { padding: 7px 10px; border-radius: 999px; background: #fff; color: var(--text-secondary); font-size: .74rem; }
.profile-approach { margin-top: 24px; padding-left: 18px; border-left: 2px solid var(--primary); font-size: .87rem; }

.gallery-section { background: #fff; }
.masonry-grid { columns: 3 300px; column-gap: 18px; }
.gallery-item { width: 100%; position: relative; display: block; break-inside: avoid; overflow: hidden; margin: 0 0 18px; padding: 0; border: 0; border-radius: var(--radius-card); background: var(--surface-soft); cursor: zoom-in; text-align: left; }
.gallery-item:nth-child(3n+1) img { aspect-ratio: 4 / 5; }
.gallery-item:nth-child(3n+2) img { aspect-ratio: 4 / 3; }
.gallery-item:nth-child(3n) img { aspect-ratio: 1; }
.gallery-item img { width: 100%; object-fit: cover; transition: transform 500ms ease-out; }
.gallery-item:hover img { transform: scale(1.05); }
.gallery-item span { position: absolute; inset: auto 14px 14px; display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 13px 15px; border-radius: 15px; transform: translateY(10px); opacity: 0; background: rgba(255,255,255,.88); backdrop-filter: blur(12px); transition: opacity var(--transition), transform var(--transition); }
.gallery-item:hover span, .gallery-item:focus-visible span { transform: translateY(0); opacity: 1; }
.gallery-item span strong { font-size: .74rem; }
.gallery-item span svg { width: 16px; }

.stories-section { background: var(--background); }
.phone-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(18px, 3vw, 34px); }
.phone-card { position: relative; overflow: hidden; aspect-ratio: 9 / 15.5; padding: 0; border: 7px solid #fff; border-radius: 38px; background: #d8d1ca; box-shadow: var(--shadow-card); cursor: pointer; }
.phone-card video { width: 100%; height: 100%; object-fit: cover; transition: transform 500ms ease-out; }
.phone-card:hover video { transform: scale(1.035); }
.phone-overlay { position: absolute; inset: 0; display: flex; flex-direction: column; padding: 20px; background: linear-gradient(0deg, rgba(24,28,29,.7), transparent 56%); color: #fff; text-align: left; }
.phone-duration { align-self: flex-end; padding: 6px 9px; border-radius: 999px; background: rgba(0,0,0,.25); font-size: .65rem; backdrop-filter: blur(8px); }
.phone-play { width: 56px; height: 56px; display: grid; place-items: center; margin: auto; border: 1px solid rgba(255,255,255,.48); border-radius: 50%; background: rgba(255,255,255,.12); backdrop-filter: blur(10px); transition: transform var(--transition), background var(--transition); }
.phone-card:hover .phone-play { transform: scale(1.08); background: rgba(255,255,255,.2); }
.phone-play svg { width: 20px; fill: currentColor; }
.phone-title { display: grid; gap: 6px; }
.phone-title strong { font-family: var(--font-heading); font-size: 1.15rem; }
.phone-title small { color: rgba(255,255,255,.7); font-size: .72rem; line-height: 1.5; }

.testimonials-section { overflow: hidden; padding: clamp(88px, 10vw, 150px) 0; background: #26373c; color: #fff; }
.review-heading { display: flex; align-items: flex-end; justify-content: space-between; gap: 36px; margin-bottom: 52px; }
.testimonials-section .section-intro { margin-bottom: 0; }
.testimonials-section .section-intro h2 { color: #fff; }
.google-review-proof { min-width: 270px; display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 14px; padding: 16px 18px; border: 1px solid rgba(255,255,255,.14); border-radius: 20px; background: rgba(255,255,255,.07); color: #fff; transition: transform .2s ease, background .2s ease; }
.google-review-proof:hover { transform: translateY(-3px); background: rgba(255,255,255,.11); }
.google-review-score { display: grid; place-items: center; width: 58px; height: 58px; border-radius: 16px; background: #fff; color: #26373c; font-family: var(--font-heading); font-size: 1.35rem; font-weight: 800; }
.google-review-proof strong, .google-review-proof small { display: block; }
.google-review-proof strong { font-size: .78rem; }
.google-review-proof small { margin-top: 4px; color: rgba(255,255,255,.62); font-size: .69rem; }
.google-review-proof > svg { width: 18px; color: var(--warning); }
.testimonial-viewport { overflow: hidden; }
.testimonial-track { width: max-content; display: flex; gap: 18px; padding-inline: 24px; animation: testimonialScroll 78s linear infinite; }
.testimonial-track:hover { animation-play-state: paused; }
@keyframes testimonialScroll { to { transform: translateX(calc(-50% - 9px)); } }
.testimonial-card { width: min(430px, 84vw); padding: 30px; border: 1px solid rgba(255,255,255,.11); border-radius: var(--radius-card); background: rgba(255,255,255,.06); backdrop-filter: blur(12px); }
.stars { display: flex; gap: 3px; color: var(--warning); }
.stars svg { width: 15px; height: 15px; fill: currentColor; }
.testimonial-card blockquote { min-height: 130px; margin: 24px 0 30px; color: rgba(255,255,255,.88); font-family: var(--font-heading); font-size: 1.08rem; line-height: 1.65; }
.testimonial-person { display: flex; align-items: center; gap: 12px; }
.testimonial-person > span { width: 42px; height: 42px; display: grid; place-items: center; border-radius: 50%; background: var(--primary); font-weight: 800; }
.testimonial-person strong, .testimonial-person small { display: block; }
.testimonial-person strong { font-size: .8rem; }
.testimonial-person small { margin-top: 3px; color: rgba(255,255,255,.55); font-size: .7rem; }

.process-section { background: #fff; }
.process-timeline { display: grid; grid-template-columns: repeat(5, 1fr); margin: 0; padding: 0; list-style: none; counter-reset: process; }
.process-timeline li { position: relative; padding: 0 24px; border-left: 1px solid var(--border); }
.process-timeline li:last-child { border-right: 1px solid var(--border); }
.process-icon { width: 52px; height: 52px; display: grid; place-items: center; margin-bottom: 60px; border-radius: 18px; background: var(--secondary-soft); color: #4c8499; }
.process-icon svg { width: 22px; }
.process-count { color: #b4aea8; font-size: .68rem; font-weight: 700; }
.process-timeline h3 { margin: 10px 0; font-size: 1rem; }
.process-timeline p { margin: 0; color: var(--text-secondary); font-size: .78rem; line-height: 1.6; }

.faq-section { background: var(--surface-soft); }
.faq-grid { display: grid; grid-template-columns: minmax(0, .75fr) minmax(0, 1.25fr); gap: clamp(52px, 9vw, 130px); }
.faq-grid .section-intro { position: sticky; top: 120px; align-self: start; margin: 0; }
.faq-grid .section-intro h2 { font-size: clamp(2.2rem, 4.4vw, 4.1rem); }
.faq-list { border-top: 1px solid #ddd4ca; }
.faq-list .ui-accordion { border-color: #ddd4ca; }
.text-arrow { display: inline-flex; align-items: center; gap: 7px; margin-top: 24px; color: var(--primary-hover); font-size: .8rem; font-weight: 700; }
.text-arrow svg { width: 15px; }

.final-cta { min-height: 600px; position: relative; display: grid; place-items: center; overflow: hidden; padding: 100px 0; background: linear-gradient(140deg, #38525b, #6f9aaa 58%, #d09261); color: #fff; text-align: center; }
.final-cta .landing-container { position: relative; z-index: 1; }
.final-cta h2 { max-width: 950px; margin: 0 auto; font-size: clamp(2.8rem, 6.4vw, 6.5rem); line-height: .98; letter-spacing: -.065em; }
.final-cta p:not(.landing-eyebrow) { max-width: 600px; margin: 24px auto 0; color: rgba(255,255,255,.72); line-height: 1.7; }
.final-cta .hero-actions { justify-content: center; }
.button-light { background: #fff; color: var(--text-primary); }
.button-light:hover { background: var(--background); }
.button-outline-light { border-color: rgba(255,255,255,.38); background: transparent; color: #fff; }
.button-outline-light:hover { background: rgba(255,255,255,.12); }
.cta-orb { position: absolute; border: 1px solid rgba(255,255,255,.14); border-radius: 50%; }
.orb-one { width: 560px; height: 560px; top: -300px; right: -100px; }
.orb-two { width: 380px; height: 380px; bottom: -230px; left: -80px; }

.public-footer { padding: 74px 0 24px; background: #202b2e; color: rgba(255,255,255,.68); }
.footer-grid { display: grid; grid-template-columns: 1.5fr repeat(3, 1fr); gap: 50px; }
.footer-logo { width: 180px; height: 106px; display: block; overflow: hidden; }
.footer-brand img { width: 180px; height: 180px; max-width: none; transform: translateY(-30px); filter: none; opacity: .9; }
.footer-brand p { max-width: 270px; margin: 18px 0 0; font-size: .78rem; line-height: 1.7; }
.footer-grid h3 { margin: 0 0 18px; color: #fff; font-size: .82rem; }
.footer-grid > div:not(.footer-brand) { display: flex; flex-direction: column; align-items: flex-start; gap: 10px; }
.footer-grid a, .footer-grid p { margin: 0; font-size: .74rem; line-height: 1.65; }
.footer-grid a:hover { color: #fff; }
.footer-bottom { display: flex; justify-content: space-between; gap: 20px; margin-top: 64px; padding-top: 20px; border-top: 1px solid rgba(255,255,255,.1); font-size: .66rem; }
.footer-bottom span:last-child { display: flex; gap: 22px; }

.request-header { position: relative; z-index: 20; border-bottom: 1px solid var(--border); background: rgba(250,248,245,.94); backdrop-filter: blur(18px); }
.request-nav { width: min(calc(100% - 48px), 1240px); min-height: 112px; display: flex; align-items: center; justify-content: space-between; gap: 24px; margin-inline: auto; }
.request-logo { width: 168px; height: 98px; overflow: hidden; }
.request-logo img { width: 168px; height: 168px; max-width: none; transform: translateY(-28px); }
.request-back { display: inline-flex; align-items: center; gap: 9px; color: var(--text-secondary); font-size: .82rem; font-weight: 700; }
.request-back svg { width: 17px; }
.request-page { min-height: calc(100svh - 113px); position: relative; overflow: hidden; padding: clamp(56px, 7vw, 100px) 0; background: radial-gradient(circle at 8% 12%, rgba(141,183,200,.18), transparent 28%), radial-gradient(circle at 94% 88%, rgba(216,155,103,.16), transparent 30%), var(--background); }
.request-orb { position: absolute; border: 1px solid rgba(216,155,103,.18); border-radius: 50%; pointer-events: none; }
.request-orb-one { top: -220px; right: -160px; width: 540px; height: 540px; }
.request-orb-two { bottom: -260px; left: -180px; width: 460px; height: 460px; }
.request-shell { width: min(calc(100% - 48px), 1240px); position: relative; z-index: 1; display: grid; grid-template-columns: minmax(0,.82fr) minmax(560px,1.18fr); align-items: start; gap: clamp(52px, 8vw, 116px); margin-inline: auto; }
.request-intro { position: sticky; top: 40px; padding-top: 24px; }
.request-intro h1 { max-width: 620px; margin: 0; font-size: clamp(2.5rem, 5vw, 4.9rem); line-height: 1.02; letter-spacing: -.055em; }
.request-intro > p:not(.landing-eyebrow) { max-width: 560px; margin: 26px 0 0; color: var(--text-secondary); line-height: 1.75; }
.request-assurances { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 32px; }
.request-assurances span { display: inline-flex; align-items: center; gap: 8px; padding: 10px 12px; border: 1px solid var(--border); border-radius: 999px; background: rgba(255,255,255,.72); color: var(--text-secondary); font-size: .72rem; font-weight: 700; }
.request-assurances svg { width: 16px; color: var(--primary-hover); }
.request-contact-card { width: min(100%, 400px); display: grid; gap: 7px; margin-top: 44px; padding: 20px; border: 1px solid var(--border); border-radius: 20px; background: #fff; box-shadow: var(--shadow-card); }
.request-contact-card span { color: var(--text-secondary); font-size: .7rem; }
.request-contact-card strong { font-family: var(--font-heading); font-size: 1.15rem; }
.request-contact-card a { display: inline-flex; align-items: center; gap: 7px; margin-top: 5px; color: #568ca2; font-size: .76rem; font-weight: 800; }
.request-contact-card svg { width: 15px; }
.request-form-card { min-height: 640px; padding: clamp(26px, 4vw, 48px); border: 1px solid rgba(236,231,225,.94); border-radius: 30px; background: rgba(255,255,255,.94); box-shadow: 0 26px 80px rgba(47,43,40,.11); }
.request-form-heading { display: flex; align-items: center; gap: 16px; margin-bottom: 30px; padding-bottom: 24px; border-bottom: 1px solid var(--border); }
.request-form-heading > span { width: 46px; height: 46px; display: grid; place-items: center; flex: none; border-radius: 15px; background: var(--primary-soft); color: var(--primary-hover); font-weight: 800; }
.request-form-heading h2 { margin: 0 0 4px; font-size: 1.3rem; }
.request-form-heading p { margin: 0; color: var(--text-secondary); font-size: .76rem; }
.request-form { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 20px; }
.request-span-2 { grid-column: span 2; }
.request-consent { display: flex; align-items: flex-start; gap: 11px; color: var(--text-secondary); font-size: .76rem; line-height: 1.55; cursor: pointer; }
.request-consent input { width: 20px; height: 20px; min-height: 0; flex: none; margin-top: 1px; accent-color: var(--primary); }
.request-submit { width: 100%; min-height: 56px; }
.request-honeypot { position: absolute; left: -10000px; width: 1px; height: 1px; overflow: hidden; }
.request-success { min-height: 540px; display: grid; align-content: center; justify-items: center; text-align: center; }
.request-success > span { width: 74px; height: 74px; display: grid; place-items: center; margin-bottom: 26px; border-radius: 24px; background: #e9f7ed; color: #3d8352; }
.request-success > span svg { width: 32px; }
.request-success h2 { max-width: 500px; margin: 0; font-size: clamp(2rem, 4vw, 3.3rem); line-height: 1.08; letter-spacing: -.045em; }
.request-success > p:not(.landing-eyebrow) { max-width: 460px; margin: 18px 0 28px; color: var(--text-secondary); line-height: 1.7; }

/* Search-friendly public service pages */
.service-page-header { position: relative; z-index: 20; border-bottom: 1px solid var(--border); background: rgba(250,248,245,.96); }
.service-page-nav { min-height: 112px; display: flex; align-items: center; gap: 34px; }
.service-page-logo { width: 172px; height: 98px; overflow: hidden; flex: 0 0 auto; }
.service-page-logo img { width: 172px; height: 172px; transform: translateY(-29px); object-fit: contain; }
.service-page-nav nav { display: flex; align-items: center; gap: 28px; margin-left: auto; }
.service-page-nav nav a { color: var(--text-secondary); font-size: .86rem; font-weight: 700; }
.service-page-nav > .button { min-height: 48px; }
.service-page { background: var(--background); }
.service-detail-hero { padding: clamp(72px, 8vw, 118px) 0 clamp(82px, 9vw, 132px); overflow: hidden; }
.service-detail-grid { display: grid; grid-template-columns: minmax(0,1.02fr) minmax(420px,.98fr); align-items: center; gap: clamp(52px, 8vw, 112px); }
.breadcrumbs { display: flex; align-items: center; flex-wrap: wrap; gap: 7px; margin-bottom: 42px; color: var(--text-muted); font-size: .76rem; font-weight: 650; }
.breadcrumbs a:hover { color: var(--primary-hover); }
.breadcrumbs svg { width: 13px; }
.service-detail-copy h1 { max-width: 760px; margin: 0; font-size: clamp(3rem, 5.5vw, 6.2rem); line-height: .98; letter-spacing: -.06em; text-wrap: balance; }
.service-detail-lead { max-width: 650px; margin: 30px 0 0; color: var(--text-secondary); font-size: clamp(1rem, 1.35vw, 1.18rem); line-height: 1.75; }
.service-detail-facts { display: grid; grid-template-columns: repeat(3,1fr); gap: 1px; margin-top: 46px; overflow: hidden; border: 1px solid var(--border); border-radius: 22px; background: var(--border); }
.service-detail-facts span { min-width: 0; display: grid; grid-template-columns: 28px 1fr; grid-template-rows: auto auto; align-items: center; gap: 2px 8px; padding: 18px 16px; background: #fff; }
.service-detail-facts svg { width: 20px; grid-row: 1 / 3; color: var(--primary-hover); }
.service-detail-facts strong { font-size: .8rem; }
.service-detail-facts small { overflow: hidden; color: var(--text-muted); font-size: .66rem; text-overflow: ellipsis; white-space: nowrap; }
.service-detail-media { min-height: 650px; position: relative; margin: 0; overflow: hidden; border-radius: 38% 38% 28px 28px; background: var(--surface); box-shadow: 0 28px 70px rgba(61,47,37,.15); }
.service-detail-media::after { content: ""; position: absolute; inset: 0; box-shadow: inset 0 0 0 1px rgba(255,255,255,.22); pointer-events: none; }
.service-detail-media img { width: 100%; height: 100%; position: absolute; inset: 0; object-fit: cover; }
.service-detail-media figcaption { position: absolute; right: 22px; bottom: 22px; padding: 10px 14px; border-radius: 999px; background: rgba(255,255,255,.86); color: var(--text-secondary); font-size: .68rem; font-weight: 750; backdrop-filter: blur(10px); }
.service-approach-section { background: #fff; }
.service-benefit-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 18px; }
.service-benefit-card { min-height: 290px; position: relative; padding: 30px; border: 1px solid var(--border); border-radius: 26px; background: var(--background); }
.service-benefit-card > span { color: var(--primary-hover); font-size: .72rem; font-weight: 800; letter-spacing: .1em; }
.service-benefit-card h3 { margin: 78px 0 12px; font-size: clamp(1.35rem, 2vw, 2rem); }
.service-benefit-card p { margin: 0; color: var(--text-secondary); line-height: 1.7; }
.service-flow-section { background: var(--surface); }
.service-flow-grid { display: grid; grid-template-columns: minmax(0,.84fr) minmax(440px,1.16fr); gap: clamp(50px, 9vw, 130px); }
.service-flow-list { margin: 0; padding: 0; list-style: none; }
.service-flow-list li { display: grid; grid-template-columns: 54px 1fr; gap: 22px; padding: 25px 0; border-bottom: 1px solid var(--border); }
.service-flow-list li > span { width: 48px; height: 48px; display: grid; place-items: center; border-radius: 50%; background: #fff; color: var(--primary-hover); font-size: .75rem; font-weight: 800; }
.service-flow-list h3 { margin: 3px 0 8px; font-size: 1.32rem; }
.service-flow-list p { margin: 0; color: var(--text-secondary); line-height: 1.65; }
.related-services-section { background: #fff; }
.related-service-grid { display: grid; grid-template-columns: repeat(4,1fr); gap: 14px; }
.related-service-card { min-height: 360px; position: relative; display: flex; align-items: flex-end; overflow: hidden; padding: 24px; border-radius: 24px; color: #fff; }
.related-service-card::after { content: ""; position: absolute; inset: 25% 0 0; background: linear-gradient(transparent,rgba(25,30,31,.82)); }
.related-service-card img { width: 100%; height: 100%; position: absolute; inset: 0; object-fit: cover; transition: transform 500ms ease; }
.related-service-card:hover img { transform: scale(1.04); }
.related-service-card > span, .related-service-card > svg { position: relative; z-index: 1; }
.related-service-card > span { display: grid; gap: 4px; }
.related-service-card small { color: rgba(255,255,255,.72); }
.related-service-card strong { font-size: 1.15rem; }
.related-service-card > svg { width: 20px; margin-left: auto; }
.service-final-cta { min-height: 560px; }
.service-page-footer { padding: 28px 0; background: #273438; color: rgba(255,255,255,.7); }
.service-page-footer .landing-container { display: flex; align-items: center; gap: 24px; font-size: .75rem; }
.service-page-footer .landing-container > :last-child { margin-left: auto; }
.service-page-footer a { color: #fff; font-weight: 700; }

.public-modal { position: fixed; inset: 0; z-index: 150; display: grid; place-items: center; padding: 28px; }
.public-modal[hidden] { display: none; }
.public-modal-backdrop { position: absolute; inset: 0; background: rgba(25,28,29,.86); backdrop-filter: blur(14px); }
.public-modal section { width: min(1080px, 100%); max-height: calc(100vh - 56px); position: relative; z-index: 1; display: grid; place-items: center; outline: 0; }
.public-modal section > button { position: absolute; top: 12px; right: 12px; z-index: 2; width: 44px; height: 44px; display: grid; place-items: center; border: 0; border-radius: 50%; background: rgba(255,255,255,.9); cursor: pointer; }
.public-modal section > img, .public-modal section > video { max-width: 100%; max-height: calc(100vh - 56px); border-radius: 24px; background: #000; object-fit: contain; }
.video-modal section { aspect-ratio: 16 / 9; }
.video-modal video { width: 100%; height: 100%; }

@media (max-width: 1024px) {
    .public-nav { gap: 18px; }
    .why-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .services-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .service-card, .service-card:nth-child(4), .service-card:nth-child(5) { grid-column: span 1; }
    .service-image, .service-card:nth-child(4) .service-image, .service-card:nth-child(5) .service-image { aspect-ratio: 4 / 4.2; }
    .profile-grid { gap: 54px; }
    .profile-visual blockquote { right: -20px; }
    .process-timeline { grid-template-columns: repeat(3, 1fr); gap: 40px 0; }
    .process-timeline li:nth-child(4) { border-left: 1px solid var(--border); }
    .footer-grid { grid-template-columns: 1.3fr repeat(2, 1fr); }
    .request-shell { grid-template-columns: 1fr; }
    .request-intro { position: static; padding-top: 0; }
    .request-contact-card { margin-top: 30px; }
    .service-page-nav nav { display: none; }
    .service-page-nav > .button { margin-left: auto; }
    .service-detail-grid { grid-template-columns: 1fr 420px; gap: 44px; }
    .service-detail-media { min-height: 560px; }
    .related-service-grid { grid-template-columns: repeat(2,1fr); }
}

@media (max-width: 1180px) {
    .public-nav { position: fixed; inset: 0; z-index: 1; width: 100vw; min-width: 100vw; display: flex; flex-direction: column; justify-content: center; gap: 24px; padding: max(108px, env(safe-area-inset-top)) 24px max(36px, env(safe-area-inset-bottom)); transform: translateY(-102%); visibility: hidden; opacity: 0; overflow-y: auto; overscroll-behavior: contain; background: #faf8f5; color: var(--text-primary); pointer-events: none; transition: transform var(--transition), opacity var(--transition), visibility 0s linear var(--transition); }
    .public-nav.is-open { transform: translateY(0); visibility: visible; opacity: 1; pointer-events: auto; transition-delay: 0s; }
    .public-nav a { font-family: var(--font-heading); font-size: 1.75rem; }
    .public-nav .public-nav-login { padding: 10px 18px; border: 0; }
    .public-logo, .public-menu-toggle { position: relative; z-index: 2; }
    .public-menu-toggle { display: grid; transform: translateY(7px); }
    .nav-cta { display: none; }
    .public-body.is-locked .public-header { color: var(--text-primary); background: var(--background); box-shadow: none; backdrop-filter: none; -webkit-backdrop-filter: none; }
    .public-header:has(.public-nav.is-open) .public-logo img { filter: none; }
}

@media (max-width: 820px) {
    .landing-container, .public-nav-shell { width: min(calc(100% - 32px), 1240px); }
    .public-header, .public-header.is-scrolled { padding: 7px 0; }
    .public-nav-shell, .public-header.is-scrolled .public-nav-shell { min-height: 84px; }
    .public-logo, .public-header.is-scrolled .public-logo { width: 144px; height: 84px; }
    .public-logo img, .public-header.is-scrolled .public-logo img { width: 144px; height: 144px; transform: translateY(-24px); filter: drop-shadow(0 5px 12px rgba(0,0,0,.14)); }
    .public-nav { gap: 20px; padding-top: max(116px, calc(env(safe-area-inset-top) + 92px)); }
    .public-nav a { font-size: 1.6rem; }
    .public-menu-toggle { transform: translateY(8px); }
    .hero-overlay { background: linear-gradient(0deg, rgba(25,30,31,.78), rgba(25,30,31,.16) 74%); }
    .hero-content h1 { font-size: clamp(3rem, 12vw, 5rem); }
    .section-intro-row, .profile-grid, .faq-grid { grid-template-columns: 1fr; }
    .section-intro-row { align-items: start; gap: 20px; }
    .cinema-media { min-height: 480px; }
    .round-play { width: 58px; height: 58px; }
    .profile-visual { width: min(90%, 560px); }
    .profile-visual blockquote { right: -10%; }
    .phone-grid { grid-template-columns: repeat(3, 76vw); overflow-x: auto; padding: 4px 2px 20px; scroll-snap-type: x mandatory; scrollbar-width: none; }
    .phone-card { scroll-snap-align: center; }
    .faq-grid .section-intro { position: static; }
    .footer-grid { grid-template-columns: repeat(2, 1fr); }
    .parallax-section { background-attachment: scroll; }
    .service-page-nav { min-height: 92px; }
    .service-page-logo { width: 142px; height: 84px; }
    .service-page-logo img { width: 142px; height: 142px; transform: translateY(-24px); }
    .service-detail-grid, .service-flow-grid { grid-template-columns: 1fr; }
    .service-detail-copy { order: 1; }
    .service-detail-media { min-height: 500px; }
    .service-benefit-grid { grid-template-columns: 1fr; }
    .service-benefit-card { min-height: 230px; }
    .service-benefit-card h3 { margin-top: 48px; }
}

@media (max-width: 620px) {
    .back-to-top { right: max(14px, env(safe-area-inset-right)); bottom: max(18px, env(safe-area-inset-bottom)); width: 46px; min-width: 46px; height: 46px; padding: 0; }
    .back-to-top span, .back-to-top:hover span, .back-to-top:focus-visible span { display: none; }
    .landing-section { padding: 84px 0; }
    .landing-hero { min-height: 100svh; }
    .hero-media img, .hero-media video { height: 100%; object-position: 28% 38%; transform: scale(1.01); }
    .hero-overlay { background: linear-gradient(90deg, rgba(23,28,29,.4) 0%, rgba(23,28,29,.2) 48%, rgba(23,28,29,.48) 100%), linear-gradient(0deg, rgba(20,24,25,.9) 0%, rgba(24,29,30,.58) 48%, rgba(24,29,30,.12) 78%); }
    .hero-content { padding-top: 150px; padding-bottom: 100px; }
    .hero-actions { display: grid; }
    .hero-actions .button { width: 100%; }
    .scroll-cue { display: none; }
    .why-grid { grid-template-columns: 1fr; }
    .why-card { min-height: 250px; }
    .why-card h3 { margin-top: 48px; }
    .cinema-section { padding: 0; }
    .cinema-media { min-height: 560px; border-radius: 0; }
    .cinema-overlay { padding: 28px 20px; }
    .cinema-overlay h2 { padding-right: 0; }
    .round-play { position: static; margin-top: 26px; }
    .services-grid { grid-template-columns: 1fr; }
    .service-image, .service-card:nth-child(4) .service-image, .service-card:nth-child(5) .service-image { aspect-ratio: 4 / 4.4; }
    .parallax-section { min-height: 620px; }
    .profile-visual { width: 92%; }
    .profile-visual blockquote { right: -8%; bottom: 18px; padding: 18px; font-size: .8rem; }
    .masonry-grid { columns: 2 140px; column-gap: 12px; }
    .gallery-item { margin-bottom: 12px; border-radius: 18px; }
    .gallery-item span { display: none; }
    .review-heading { align-items: stretch; flex-direction: column; gap: 26px; }
    .google-review-proof { min-width: 0; width: 100%; }
    .process-timeline { grid-template-columns: 1fr; gap: 0; }
    .process-timeline li, .process-timeline li:last-child { min-height: 150px; display: grid; grid-template-columns: 54px 36px 1fr; grid-template-rows: auto auto; gap: 4px 14px; padding: 0 0 28px; border: 0; }
    .process-timeline li::after { content: ""; position: absolute; top: 56px; bottom: 4px; left: 26px; width: 1px; background: var(--border); }
    .process-icon { grid-row: 1 / 3; margin: 0; }
    .process-count { align-self: end; }
    .process-timeline h3 { align-self: end; margin: 0; }
    .process-timeline p { grid-column: 2 / 4; }
    .testimonial-card blockquote { min-height: 160px; }
    .footer-grid { grid-template-columns: 1fr; gap: 34px; }
    .footer-bottom { align-items: flex-start; flex-direction: column; }
    .public-modal { padding: 12px; }
    .public-modal section > img, .public-modal section > video { border-radius: 16px; }
    .request-nav, .request-shell { width: min(calc(100% - 32px), 1240px); }
    .request-nav { min-height: 90px; }
    .request-logo { width: 136px; height: 80px; }
    .request-logo img { width: 136px; height: 136px; transform: translateY(-23px); }
    .request-back { font-size: 0; }
    .request-back svg { width: 20px; }
    .request-page { padding: 46px 0 68px; }
    .request-intro h1 { font-size: 2.55rem; }
    .request-form-card { padding: 24px 18px; border-radius: 22px; }
    .request-form { grid-template-columns: 1fr; gap: 17px; }
    .request-span-2 { grid-column: auto; }
    .service-page-nav > .button { min-height: 42px; padding: 10px 13px; font-size: .68rem; }
    .service-detail-hero { padding-top: 48px; }
    .breadcrumbs { margin-bottom: 30px; }
    .service-detail-copy h1 { font-size: 2.85rem; }
    .service-detail-facts { grid-template-columns: 1fr; }
    .service-detail-media { min-height: 420px; border-radius: 120px 120px 22px 22px; }
    .related-service-grid { grid-template-columns: 1fr; }
    .related-service-card { min-height: 300px; }
    .service-page-footer .landing-container { align-items: flex-start; flex-direction: column; }
    .service-page-footer .landing-container > :last-child { margin-left: 0; }
}

@media (max-width: 375px) {
    .landing-container, .public-nav-shell { width: min(calc(100% - 24px), 1240px); }
    .hero-content h1 { font-size: 2.7rem; }
    .hero-copy { font-size: .88rem; }
    .section-intro h2, .profile-content h2 { font-size: 2.25rem; }
    .profile-visual blockquote { position: relative; right: auto; bottom: auto; width: 100%; margin: -30px 0 0 8%; }
    .phone-grid { grid-template-columns: repeat(3, 82vw); }
}

/* Public typography: one body family, one heading family, and Playfair only for the hero. */
body { font-family: var(--font-body); }
.public-nav a,
.public-header .public-nav a,
.nav-cta,
.public-header .nav-cta { font-family: var(--font-body); }
.public-nav a { font-size: 17px; font-weight: 600; letter-spacing: -0.015em; }
.nav-cta { font-size: 16px; font-weight: 600; letter-spacing: -0.01em; }
.landing-hero h1 { font-family: "Playfair Display", serif; font-weight: 600; letter-spacing: -0.025em; }
.section-intro h2,
.profile-content h2,
.final-cta h2,
.cinema-overlay h2 { font-family: var(--font-heading); font-weight: 600; letter-spacing: -0.025em; }

/* Hero typography refinement: preserve the composition while restoring visual balance. */
.hero-kicker { margin-bottom: 16px; }
.hero-content h1 { max-width: 760px; font-size: clamp(3.2rem, 4.5vw, 4.75rem); font-weight: 500; line-height: 1.02; letter-spacing: -.055em; }
.hero-copy { margin-top: 22px; }
@media (max-width: 820px) {
    .hero-content h1 { max-width: 650px; font-size: clamp(2.8rem, 8vw, 4.1rem); line-height: 1.01; }
    .hero-copy { margin-top: 20px; }
}
@media (max-width: 620px) {
    .hero-content h1 { max-width: 100%; font-size: clamp(2.35rem, 10.4vw, 3.35rem); line-height: 1.02; letter-spacing: -.045em; }
    .hero-kicker { margin-bottom: 14px; font-size: .82rem; }
    .hero-copy { margin-top: 18px; line-height: 1.6; }
}
@media (max-width: 375px) {
    .hero-content h1 { font-size: 2.35rem; }
}

/* Mobile sticky header CTA */
@media (max-width: 820px) {
    .public-nav-shell { gap: 10px; }
    .public-header:not(.is-scrolled) .nav-cta { display: none; }
    .public-header.is-scrolled .nav-cta { display: inline-flex; align-items: center; justify-content: center; gap: 6px; width: auto; height: 44px; min-height: 44px; margin-left: auto; padding: 10px 13px; transform: translateY(8px); border-radius: 13px; font-size: .72rem; white-space: nowrap; box-shadow: 0 6px 16px rgba(185,112,57,.16); }
    .public-header .nav-cta svg { width: 15px; }
    .public-header .public-menu-toggle { margin-left: 0; }
}
@media (max-width: 430px) {
    .public-logo, .public-header.is-scrolled .public-logo { width: 122px; height: 76px; }
    .public-logo img, .public-header.is-scrolled .public-logo img { width: 122px; height: 122px; transform: translateY(-21px); }
    .public-header .nav-cta { height: 44px; min-height: 44px; padding: 9px 10px; font-size: .66rem; }
    .public-header .nav-cta svg { width: 14px; }
}
.service-page-logo,.request-logo,.footer-logo{display:flex;align-items:center;justify-content:center;overflow:visible}.service-page-logo{width:190px;height:130px}.request-logo{width:168px;height:110px}.footer-logo{width:180px;height:120px}.service-page-logo img,.request-logo img,.footer-logo img{width:100%;height:100%;max-width:100%;transform:none;object-fit:contain;object-position:center}@media(max-width:650px){.service-page-logo{width:150px;height:102px}.request-logo{width:148px;height:96px}.footer-logo{width:154px;height:102px}}

/* Keep the brand and actions together over the busy hero image. */
.public-header { padding: 12px 0; }
.public-header.is-scrolled { padding: 8px 0; background: transparent; box-shadow: none; backdrop-filter: none; }
.public-nav-shell {
    width: min(calc(100% - 32px), 1400px);
    min-height: 84px;
    display: grid;
    grid-template-columns: 156px minmax(0, 1fr) auto;
    gap: 24px;
    padding: 0 22px;
    border: 1px solid rgba(255,255,255,.2);
    border-radius: 18px;
    background: rgba(32,32,30,.72);
    box-shadow: 0 16px 42px rgba(19,22,21,.2);
    backdrop-filter: blur(18px);
}
.public-header.is-scrolled .public-nav-shell {
    min-height: 72px;
    border-color: rgba(47,43,40,.1);
    background: rgba(250,248,245,.97);
    box-shadow: 0 12px 30px rgba(47,43,40,.1);
}
.public-logo { width: 148px; height: 74px; display: flex; flex-direction: column; align-items: center; justify-content: center; flex: none; overflow: visible; color: #e1ac5a; }
.public-logo-sun { width: 44px; height: 30px; flex: none; margin-bottom: -4px; }
.public-logo-word { font-family: "Segoe UI Light", "Avenir Next", sans-serif; font-size: 39px; font-weight: 300; line-height: 1; letter-spacing: -.085em; }
.public-logo-sub { margin-top: 2px; font-size: 8px; font-weight: 600; line-height: 1; letter-spacing: .18em; white-space: nowrap; }
.public-header.is-scrolled .public-logo { width: 140px; height: 70px; color: #9b671e; }
.public-header.is-scrolled .public-logo-sun { width: 39px; height: 27px; }
.public-header.is-scrolled .public-logo-word { font-size: 36px; }
.public-nav { justify-content: center; gap: clamp(15px, 1.3vw, 22px); margin-left: 0; }
.public-nav a { min-height: 44px; display: inline-flex; align-items: center; padding: 0; font-size: 14px; font-weight: 650; line-height: 1.2; white-space: nowrap; }
.public-nav a::after { bottom: 6px; }
.public-nav .public-nav-login { display: none; }
.public-nav-actions { display: flex; align-items: center; gap: 12px; }
.public-nav-actions .public-nav-login { height: 44px; display: inline-flex; align-items: center; padding: 0 16px; border: 1px solid rgba(255,255,255,.6); border-radius: 12px; font-size: 14px; font-weight: 650; white-space: nowrap; }
.public-header.is-scrolled .public-nav-actions .public-nav-login { border-color: rgba(47,43,40,.3); }
.nav-cta { min-height: 44px; height: 44px; flex: none; padding: 0 16px; border-radius: 12px; font-size: 14px; white-space: nowrap; }
.nav-cta svg { width: 17px; }

@media (max-width: 1180px) {
    .public-nav-shell { min-height: 78px; display: flex; padding: 0 16px; border-radius: 18px; backdrop-filter: none; }
    .public-header.is-scrolled .public-nav-shell { min-height: 70px; }
    .public-header:has(.public-nav.is-open) .public-nav-shell { border-color: transparent; background: transparent; box-shadow: none; }
    .public-nav { margin-left: auto; }
    .public-nav a { min-height: 0; font-size: 1.65rem; }
    .public-nav .public-nav-login { height: auto; display: inline-flex; border-radius: 12px; }
    .public-nav-actions { display: none; }
}

@media (max-width: 820px) {
    .public-header, .public-header.is-scrolled { padding: 8px 0; }
    .public-nav-shell, .public-header.is-scrolled .public-nav-shell { width: min(calc(100% - 24px), 1240px); min-height: 70px; }
    .public-logo, .public-header.is-scrolled .public-logo { width: 112px; height: 70px; }
    .public-logo-sun, .public-header.is-scrolled .public-logo-sun { width: 34px; height: 23px; }
    .public-logo-word, .public-header.is-scrolled .public-logo-word { font-size: 31px; }
    .public-logo-sub { font-size: 6.5px; }
}

/* Official navigation logo sizing and safe frame spacing. */
.public-header { padding: 18px 0; }
.public-header.is-scrolled { padding: 12px 0; background: transparent; box-shadow: none; backdrop-filter: none; }
.public-nav-shell { width: min(calc(100% - 48px), 1400px); min-height: 104px; display: grid; grid-template-columns: 124px minmax(0, 1fr) auto; align-items: center; gap: clamp(20px, 2.6vw, 46px); padding: 0 30px; border: 1px solid rgba(255,255,255,.12); border-radius: 22px; background: rgba(31,30,28,.92); box-shadow: 0 16px 42px rgba(19,22,21,.2); backdrop-filter: blur(18px); }
.public-header.is-scrolled .public-nav-shell { min-height: 84px; border-color: rgba(47,43,40,.1); background: rgba(250,248,245,.97); box-shadow: 0 12px 30px rgba(47,43,40,.1); }
.public-logo { width: 104px; height: 96px; display: flex; align-items: center; justify-content: flex-start; flex: none; overflow: hidden; }
.public-logo img { width: 96px; height: 96px; max-width: 100%; max-height: 100%; display: block; object-fit: contain; transform: none; filter: none; }
.public-header.is-scrolled .public-logo { width: 84px; height: 76px; }
.public-header.is-scrolled .public-logo img { width: 76px; height: 76px; transform: none; filter: none; }
.public-nav { justify-content: center; gap: clamp(15px, 1.3vw, 22px); margin-left: 0; }
.public-nav a { min-height: 44px; display: inline-flex; align-items: center; padding: 0; font-size: 14px; font-weight: 650; line-height: 1.2; white-space: nowrap; }
.public-nav a::after { bottom: 6px; }
.public-nav .public-nav-login { display: none; }
.public-nav-actions { display: flex; align-items: center; gap: 12px; }
.public-nav-actions .public-nav-login { height: 44px; display: inline-flex; align-items: center; padding: 0 16px; border: 1px solid rgba(255,255,255,.6); border-radius: 12px; font-size: 14px; font-weight: 650; white-space: nowrap; }
.public-header.is-scrolled .public-nav-actions .public-nav-login { border-color: rgba(47,43,40,.3); }
.nav-cta { min-height: 44px; height: 44px; flex: none; padding: 0 16px; border-radius: 12px; font-size: 14px; white-space: nowrap; }
.nav-cta svg { width: 17px; }
@media (max-width: 1180px) { .public-nav-shell { min-height: 88px; display: flex; padding: 0 22px; border-radius: 18px; backdrop-filter: none; } .public-header.is-scrolled .public-nav-shell { min-height: 78px; } .public-header:has(.public-nav.is-open) .public-nav-shell { border-color: transparent; background: transparent; box-shadow: none; } .public-nav { margin-left: auto; } .public-nav a { min-height: 0; font-size: 1.65rem; } .public-nav .public-nav-login { height: auto; display: inline-flex; border-radius: 12px; } .public-nav-actions { display: none; } }
@media (max-width: 820px) { .public-header, .public-header.is-scrolled { padding: 10px 0; } .public-nav-shell, .public-header.is-scrolled .public-nav-shell { width: min(calc(100% - 32px), 1240px); min-height: 80px; padding: 0 18px; } .public-logo, .public-header.is-scrolled .public-logo { width: 74px; height: 72px; } .public-logo img, .public-header.is-scrolled .public-logo img { width: 68px; height: 68px; transform: none; filter: none; } }
