*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:30px}body{margin:0;background:var(--bg,#fafafa);color:var(--ink,#1a1a1a);font-family:"DM Sans Variable",sans-serif;font-size:16px;line-height:1.65;-webkit-font-smoothing:antialiased}button,input,textarea,select{font:inherit;color:inherit}a{color:var(--link);text-decoration:none}a:hover{color:var(--link-hover)}button{cursor:pointer}img,svg{display:block;max-width:100%}button{border:0}address{font-style:normal}h1,h2,h3,p,figure{margin:0}h1,h2,h3{font-family:"Manrope Variable",sans-serif;font-weight:500;line-height:1.1;letter-spacing:-.055em}h1{font-size:clamp(46px,6.8vw,100px)}h2{font-size:clamp(32px,3.8vw,56px)}h3{font-size:24px}p{line-height:1.8}a,button,input,textarea,select,summary{outline-offset:5px}a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible,summary:focus-visible{outline:2px solid var(--ink)}::selection{background:var(--accent);color:var(--ink)}[hidden]{display:none!important}.wrap{width:calc(100% - 96px);max-width:1440px;margin-inline:auto}.section{padding-block:90px}.rule{border-top:1px solid var(--rule)}.eyebrow{text-transform:uppercase;letter-spacing:.13em;font-size:10px;font-weight:600;color:var(--muted);display:block;margin-bottom:20px}.muted{color:var(--muted)}.button{display:inline-flex;align-items:center;justify-content:space-between;gap:36px;padding:15px 22px;background:var(--accent);color:var(--ink);font-size:13px;font-weight:600;min-height:52px;border:1px solid var(--accent)}.button:hover{color:var(--ink);background:var(--link-hover);border-color:var(--link-hover)}.button .arrow{font-size:23px;font-weight:400}.button-outline{background:transparent;border-color:var(--rule)}.button-outline:hover{background:var(--ink);border-color:var(--ink);color:var(--bg)}.inline-link{display:inline-flex;align-items:center;justify-content:space-between;gap:24px;border-bottom:1px solid var(--rule);padding:10px 0;font-size:13px}.skip-link{position:fixed;left:20px;top:-80px;z-index:100;background:var(--ink);color:var(--bg);padding:10px}.skip-link:focus{top:10px}.review-bar{border-bottom:1px solid var(--rule);padding:10px 32px;display:flex;align-items:center;justify-content:space-between;gap:20px;font-size:11px;background:#f1f1ee;line-height:1.4}.review-title{display:flex;align-items:center;gap:12px;letter-spacing:.08em}.review-title strong{font-size:12px}.review-dot{width:6px;height:6px;border-radius:50%;background:var(--ink)}.review-title>span:last-child{color:var(--muted)}.review-controls{display:flex;align-items:center;gap:20px}.review-controls label{display:flex;align-items:center;gap:8px}.review-controls select{font-size:11px;border:1px solid #c9c9c5;background:var(--bg);padding:5px 24px 5px 8px;max-width:180px}.review-controls a{font-size:11px;text-decoration:underline;text-underline-offset:3px}.site-header{display:flex;align-items:center;justify-content:space-between;gap:30px;min-height:108px;padding-block:22px}.brand{display:inline-flex;align-items:center;gap:10px;flex-shrink:0;color:var(--ink)}.brand:hover{color:var(--ink)}.brand>svg{width:36px;height:36px}.brand-word{font-family:"Manrope Variable",sans-serif;font-size:31px;line-height:1;font-weight:650;letter-spacing:-1.8px}.brand-word span{font-weight:450}.logo-2 .brand-word{font-weight:600;letter-spacing:-1.9px}.logo-3 .brand-word{font-weight:650;letter-spacing:-1.8px}.desktop-nav{display:flex;gap:25px;align-items:center}.desktop-nav a{font-size:12px;white-space:nowrap;position:relative}.desktop-nav a[aria-current=page]:after{content:"";height:1px;background:var(--ink);position:absolute;left:0;right:0;bottom:-7px}.header-actions{display:flex;gap:10px;align-items:center}.header-actions .button{font-size:11px;min-height:44px;padding:10px 15px;gap:24px}.menu-toggle{display:none;background:none;border:1px solid var(--rule);padding:10px 14px;font-size:12px}.mobile-nav{display:grid;gap:0;border-top:1px solid var(--rule);padding-bottom:20px}.mobile-nav a{padding:12px 0;border-bottom:1px solid var(--rule);font-family:"Manrope Variable",sans-serif;font-size:23px;letter-spacing:-.04em}.hero{padding-top:40px;padding-bottom:70px}.hero-intro{display:grid;grid-template-columns:1.5fr 1fr;gap:8%;align-items:end;margin-bottom:44px}.hero h1{font-size:clamp(55px,7.25vw,110px);font-weight:450;line-height:1.04;letter-spacing:-.065em}.hero h1 span{display:block}.hero-copy{max-width:420px;padding-bottom:8px}.hero-copy p{font-size:15px;color:var(--muted);margin-bottom:22px}.hero-figure{position:relative;height:clamp(350px,37vw,560px);overflow:hidden;background:var(--rule)}.hero-image{height:100%;width:100%;object-fit:cover;object-position:center 50%}.hero-figure:after{content:"";position:absolute;inset:50% 0 0;background:linear-gradient(transparent,#111c);pointer-events:none}.hero-caption{position:absolute;z-index:1;left:32px;right:32px;bottom:26px;display:flex;align-items:end;justify-content:space-between;gap:20px;color:white}.hero-caption .eyebrow{color:white;margin:0 0 6px;font-size:9px}.hero-caption strong{font-family:"Manrope Variable",sans-serif;font-size:23px;font-weight:500;letter-spacing:-.04em}.hero-caption .button{font-size:11px;min-height:46px}.service-index{display:grid;grid-template-columns:repeat(4,1fr);border-block:1px solid var(--rule);margin-top:28px}.service-index a{padding:22px 18px;display:flex;align-items:center;justify-content:space-between;gap:20px;font-size:13px}.service-index a+a{border-left:1px solid var(--rule)}.service-index small{font-size:10px;color:var(--muted);margin-right:12px}.section-heading{display:flex;justify-content:space-between;gap:40px;align-items:end;margin-bottom:42px}.section-heading h2{max-width:700px}.section-heading>p{max-width:440px;font-size:14px;color:var(--muted)}.services-list{border-top:1px solid var(--rule)}.service-row{display:grid;grid-template-columns:50px 1fr 1.2fr 48px;align-items:start;gap:34px;padding:30px 0;border-bottom:1px solid var(--rule)}.service-row .number{font-size:11px;color:var(--muted);padding-top:7px}.service-row h3{font-size:clamp(24px,2.3vw,35px);max-width:360px}.service-row p{font-size:14px;color:var(--muted)}.circle-link{border:1px solid var(--rule);width:44px;height:44px;display:grid;place-items:center;font-size:24px;line-height:1}.circle-link:hover{background:var(--accent);color:var(--ink);border-color:var(--accent)}.work-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:36px 24px}.work-card{min-width:0}.work-image{position:relative;display:block;overflow:hidden;aspect-ratio:1.43;background:var(--rule)}.work-image img{width:100%;height:100%;object-fit:cover;transition:transform .35s}.work-image:hover img{transform:scale(1.025)}.image-arrow{position:absolute;right:14px;bottom:14px;width:40px;height:40px;background:var(--accent);color:var(--ink);display:grid;place-items:center;font-size:22px}.work-label{display:flex;align-items:center;justify-content:space-between;gap:15px;padding-top:17px}.work-label h3{font-size:21px;letter-spacing:-.035em}.work-meta{font-size:11px;color:var(--muted);margin-top:7px}.work-detail{margin-top:12px;font-size:12px;color:var(--muted)}.work-detail summary{cursor:pointer;color:var(--ink);font-size:11px}.work-detail p{font-size:12px;margin-top:10px}.work-toolbar{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:20px 0;margin-bottom:26px;border-block:1px solid var(--rule)}.filter-list{display:flex;gap:6px;flex-wrap:wrap}.filter-button{padding:9px 16px;background:transparent;font-size:12px;border:1px solid transparent}.filter-button[aria-pressed=true]{background:var(--ink);color:var(--bg)}.filter-button:hover{border-color:var(--rule)}.work-count{font-size:12px;color:var(--muted);white-space:nowrap}.report-section{display:grid;grid-template-columns:1.1fr 1fr;gap:10%;align-items:center}.report-copy h2{margin-bottom:28px}.report-copy p{font-size:14px;color:var(--muted);margin-bottom:22px}.report-copy li{font-size:13px;padding:8px 0;color:var(--muted)}.report-copy ul{padding-left:18px;margin-bottom:25px}.report-preview{background:#f0f0ed;padding:32px;border:1px solid var(--rule)}.report-preview .eyebrow{margin-bottom:26px}.score-list{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;border-bottom:1px solid #cdcdca;padding-bottom:24px;margin-bottom:25px}.score-list strong{font-family:"Manrope Variable",sans-serif;font-size:39px;font-weight:450;letter-spacing:-.07em;display:block}.score-list small{font-size:10px;display:block;color:var(--muted)}.report-bars{display:grid;gap:16px}.bar-label{display:flex;justify-content:space-between;font-size:11px;margin-bottom:7px}.bar-track{height:5px;background:#d7d7d1}.bar-track span{display:block;height:100%;background:var(--ink)}.bar-track .own{background:var(--accent)}.report-preview .preview-label{font-size:10px;color:var(--muted);margin-top:24px}.page-intro{padding-top:56px;padding-bottom:56px;border-bottom:1px solid var(--rule);margin-bottom:40px}.page-intro h1{max-width:1050px;margin-bottom:25px}.page-intro>p{font-size:17px;max-width:680px;color:var(--muted)}.page-intro .eyebrow{margin-bottom:23px}.price-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-top:1px solid var(--rule);border-bottom:1px solid var(--rule)}.price-card{padding:30px 22px;display:flex;flex-direction:column;min-width:0}.price-card+.price-card{border-left:1px solid var(--rule)}.price-card .eyebrow{margin-bottom:35px}.price-card h2{font-size:27px;margin-bottom:15px}.price-card>p{font-size:12px;color:var(--muted);margin-bottom:24px}.price-amount{font-family:"Manrope Variable",sans-serif;font-size:42px;letter-spacing:-.065em;line-height:1.2;margin-block:5px 8px}.price-amount.quote{font-size:28px}.tax-note{font-size:11px;color:var(--muted);margin-bottom:23px}.price-card ul{font-size:12px;line-height:1.7;padding-left:16px;border-top:1px solid var(--rule);padding-top:24px;margin-bottom:24px}.price-card li{margin-bottom:12px}.price-card .button{margin-top:auto;font-size:11px;gap:12px;padding:14px}.sector-grid{display:grid;grid-template-columns:1fr 1fr;gap:32px}.sector-block{border-top:1px solid var(--rule);padding-top:30px}.sector-block h2{font-size:39px;max-width:460px;margin-bottom:20px}.sector-block p{font-size:15px;color:var(--muted);margin-bottom:25px}.sector-block img{width:100%;aspect-ratio:1.5;object-fit:cover}.body-grid{display:grid;grid-template-columns:1fr 1fr;gap:12%;align-items:start}.body-copy p{font-size:17px;margin-bottom:25px;color:var(--muted)}.company-panel{border-top:1px solid var(--rule);padding-top:25px}.company-panel h2{font-size:27px;letter-spacing:-.04em;margin-bottom:24px}.company-panel address{font-size:14px;max-width:400px;color:var(--muted);margin-bottom:24px}.company-panel a{display:block;font-size:14px;margin:8px 0}.faq-list{max-width:1000px}.faq-list details{padding:25px 0;border-bottom:1px solid var(--rule)}.faq-list summary{list-style:none;cursor:pointer;font-family:"Manrope Variable",sans-serif;letter-spacing:-.025em;font-size:22px;display:flex;justify-content:space-between;gap:25px}.faq-list summary:after{content:"+";font-size:24px;font-family:"DM Sans Variable",sans-serif}.faq-list details[open] summary:after{content:"−"}.faq-list details p{max-width:850px;margin-top:18px;font-size:15px;color:var(--muted)}.contact-grid{display:grid;grid-template-columns:1fr 1.15fr;gap:12%}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.field{display:flex;flex-direction:column;gap:7px}.field.full{grid-column:1/-1}.field label{font-size:11px;color:var(--muted)}.field input,.field select,.field textarea{width:100%;padding:13px 0;border:0;border-bottom:1px solid var(--rule);background:transparent;border-radius:0;font-size:14px}.field textarea{height:100px;resize:vertical}.form-status{font-size:12px;border-left:2px solid var(--ink);padding-left:15px;margin-top:20px}.form-grid .button{grid-column:1/-1;justify-self:start;margin-top:10px}.cta{display:flex;align-items:center;justify-content:space-between;gap:45px;border-top:1px solid var(--rule);padding-block:70px}.cta h2{max-width:830px}.cta .button{flex-shrink:0}.site-footer{background:#f1f1ee;border-top:1px solid var(--rule);padding-block:65px 25px;margin-top:45px}.footer-main{display:grid;grid-template-columns:1.5fr 1fr 1fr 1.3fr;gap:50px;margin-bottom:60px}.footer-main .brand-word{font-size:43px}.footer-main .brand>svg{width:45px;height:45px}.footer-main .footer-tagline{font-size:12px;color:var(--muted);margin-top:22px;max-width:230px}.footer-col h2{font-family:"DM Sans Variable",sans-serif;font-size:10px;letter-spacing:.1em;text-transform:uppercase;margin-bottom:18px}.footer-col a{display:block;font-size:12px;margin:9px 0}.footer-col p,.footer-col address{font-size:11px;color:var(--muted);line-height:1.9;overflow-wrap:anywhere}.footer-col p{margin-bottom:10px}.footer-bottom{border-top:1px solid #d7d7d2;padding-top:20px;display:flex;justify-content:space-between;gap:24px;font-size:10px;color:var(--muted)}.login-layout{display:grid;grid-template-columns:1.1fr 1fr;min-height:650px;border-block:1px solid var(--rule);margin-block:32px 70px}.login-visual{position:relative;overflow:hidden;background:var(--ink)}.login-visual img{width:100%;height:100%;object-fit:cover;opacity:.75}.login-caption{position:absolute;left:35px;bottom:35px;right:35px;color:white}.login-caption h2{font-size:48px;max-width:430px}.login-caption .eyebrow{color:white}.login-panel{padding:65px 14%;display:flex;flex-direction:column;justify-content:center}.login-panel h1{font-size:45px;margin:16px 0}.login-panel>p{font-size:14px;color:var(--muted);margin-bottom:32px}.login-panel form{display:grid;gap:24px}.login-panel .button{width:100%;margin-top:10px}.login-links{display:flex;justify-content:space-between;gap:20px;margin-top:18px;font-size:11px}.logo-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}.logo-card{border:1px solid var(--rule);padding:25px}.logo-stage{min-height:180px;display:grid;place-items:center}.logo-stage .brand-word{font-size:42px}.logo-stage .brand svg{width:48px;height:48px}.logo-card h2{font-size:24px;margin-top:10px}.logo-card>p{font-size:13px;color:var(--muted);margin-block:14px 24px}.logo-card .button{font-size:11px;gap:15px}.logo-minis{display:flex;gap:20px;margin-top:22px;align-items:center}.logo-minis>div{width:54px;height:54px;display:grid;place-items:center;border:1px solid var(--rule)}.logo-minis>div:nth-child(2){background:var(--accent);border-color:var(--accent)}.logo-minis>div:nth-child(3){background:var(--ink);color:var(--bg);border-color:var(--ink)}.logo-minis svg{width:27px;height:27px}.brand-hero{max-width:700px;margin-top:45px}.sample-note{font-size:12px;color:var(--muted);padding:16px 0}.contact-title{font-size:34px;margin-bottom:25px}
@media(min-width:1650px){.hero-intro{gap:10%}}
@media(max-width:1200px){.desktop-nav{gap:15px}.desktop-nav a{font-size:11px}.site-header{gap:22px}.header-actions .button{gap:14px}.header-actions .button-outline{display:none}.hero h1{font-size:clamp(55px,7.5vw,92px)}}
@media(max-width:1000px){.wrap{width:calc(100% - 64px)}.desktop-nav{display:none}.menu-toggle{display:block}.header-actions .button-outline{display:inline-flex}.hero-intro{gap:6%;grid-template-columns:1.4fr 1fr}.hero h1{font-size:clamp(52px,7.1vw,76px)}.hero-copy p{font-size:13px}.work-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.service-row{grid-template-columns:30px 1fr 1.2fr 40px;gap:20px}.price-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.price-card:nth-child(3){border-left:0;border-top:1px solid var(--rule)}.price-card:nth-child(4){border-top:1px solid var(--rule)}.report-section{gap:7%}.footer-main{grid-template-columns:1.3fr 1fr 1fr;gap:30px}.footer-col:last-child{grid-column:1/-1;max-width:480px}.login-panel{padding:50px 10%}.logo-grid{grid-template-columns:1fr}.logo-card{display:grid;grid-template-columns:1fr 1fr;gap:10px 35px}.logo-stage{grid-row:1/5}.logo-card .logo-minis{grid-column:2}.logo-card .button{justify-self:start}.review-controls{gap:12px}.review-controls label{gap:5px}.review-title>span:last-child{display:none}}
@media(max-width:700px){.wrap{width:calc(100% - 36px)}.review-bar{padding:9px 18px;display:block}.review-title{margin-bottom:10px;font-size:9px}.review-title>span:last-child{display:inline}.review-controls{justify-content:space-between;gap:8px}.review-controls label{font-size:10px}.review-controls select{max-width:138px;font-size:10px;padding-right:18px}.review-controls a{font-size:9px}.site-header{min-height:86px;padding-block:17px;gap:15px}.brand-word{font-size:28px}.brand>svg{width:31px;height:31px}.brand{gap:7px}.header-actions{gap:8px}.header-actions .button{display:none}.menu-toggle{padding:8px 12px;font-size:11px}.hero{padding-top:30px;padding-bottom:35px}.hero-intro{display:block;margin-bottom:28px}.hero h1{font-size:clamp(49px,11vw,76px);line-height:1.06}.hero-copy{margin-top:26px;max-width:100%}.hero-copy p{font-size:14px;margin-bottom:18px}.hero .eyebrow{margin-bottom:20px;font-size:9px}.hero-figure{height:350px}.hero-image{object-position:46% center}.hero-caption{left:18px;right:18px;bottom:20px;display:block}.hero-caption strong{font-size:20px}.hero-caption .button{margin-top:16px;font-size:11px;min-height:42px;padding:9px 14px}.service-index{grid-template-columns:1fr 1fr;margin-top:20px}.service-index a{padding:17px 10px;font-size:12px}.service-index a:nth-child(3){border-left:0}.service-index a:nth-child(n+3){border-top:1px solid var(--rule)}.service-index small{margin-right:5px}.section{padding-block:55px}.section-heading{display:block;margin-bottom:28px}.section-heading>p{margin-top:20px}.section-heading .inline-link{margin-top:18px}.service-row{grid-template-columns:20px 1fr 36px;gap:15px;padding-block:25px}.service-row p{grid-column:2;font-size:13px}.service-row .circle-link{grid-column:3;grid-row:1;width:34px;height:34px;font-size:20px}.service-row h3{font-size:28px}.work-grid{grid-template-columns:1fr;gap:32px}.work-image{aspect-ratio:1.45}.report-section{display:block}.report-preview{margin-top:35px;padding:25px}.report-copy h2{font-size:39px}.page-intro{padding-top:32px;padding-bottom:35px;margin-bottom:25px}.page-intro h1{font-size:49px}.page-intro>p{font-size:15px}.work-toolbar{align-items:start;flex-direction:column;gap:10px}.filter-button{padding:8px 12px}.price-grid{grid-template-columns:1fr}.price-card{padding:25px 18px}.price-card+.price-card{border-left:0;border-top:1px solid var(--rule)}.price-card .eyebrow{margin-bottom:20px}.price-amount{font-size:46px}.sector-grid,.body-grid,.contact-grid{grid-template-columns:1fr;gap:40px}.sector-block h2{font-size:36px}.body-copy p{font-size:15px}.faq-list summary{font-size:19px}.faq-list details{padding-block:22px}.faq-list details p{font-size:14px}.form-grid{grid-template-columns:1fr;gap:18px}.field.full{grid-column:auto}.cta{display:block;padding-block:45px}.cta h2{font-size:39px}.cta .button{margin-top:25px}.site-footer{padding-top:45px;margin-top:20px}.footer-main{grid-template-columns:1fr 1fr;gap:30px;margin-bottom:35px}.footer-main>div:first-child{grid-column:1/-1}.footer-col:last-child{grid-column:1/-1}.footer-bottom{display:block;line-height:2}.login-layout{display:block;min-height:0;margin-block:15px 45px}.login-visual{height:240px}.login-caption{left:22px;right:22px;bottom:24px}.login-caption h2{font-size:37px;max-width:300px}.login-panel{padding:35px 20px 45px}.login-panel h1{font-size:40px}.logo-card{display:block;padding:22px}.logo-stage{min-height:160px}.logo-minis{margin-bottom:25px}.logo-card h2{margin-top:20px}.score-list strong{font-size:36px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}.work-image:hover img{transform:none}}

.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.body-copy ul{padding-left:18px;margin-bottom:25px;font-size:14px;line-height:1.9;color:var(--muted)}.body-copy li{margin-bottom:10px}.company-panel>.button{display:inline-flex;color:var(--ink);margin-top:20px}.company-panel>.button:hover{color:var(--ink)}.company-panel>.inline-link{display:flex;margin-top:15px}

@media(min-width:1001px){.logo-card{display:flex;flex-direction:column}.logo-card>p{flex:1}.logo-card>.button{align-self:flex-start}}
.logo-minis{margin-block:0 24px}
@media(max-width:700px){.review-controls{display:grid;grid-template-columns:1fr 1fr;gap:8px 12px}.review-controls label{display:grid;grid-template-columns:auto 1fr;min-width:0}.review-controls select{min-width:0;max-width:none;width:100%}.review-controls>a{grid-column:1/-1;justify-self:end}}

main:focus{outline:none}

/* Homepage sections follow the approved Tourvist hierarchy. */
.number { font-size: 11px; color: var(--muted); }
.services-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  border-block: 1px solid var(--rule);
}
.service-card {
  padding: 28px 24px;
  display: flex;
  flex-direction: column;
  border-right: 1px solid var(--rule);
}
.service-card:last-child { border-right: 0; }
.service-card-top { display: flex; justify-content: space-between; gap: 16px; margin-bottom: 32px; }
.service-symbol { width: 65px; height: 65px; color: var(--ink); }
.service-card h3 { font-size: 27px; margin-bottom: 16px; color: var(--ink); }
.service-card p { color: var(--muted); font-size: 14px; margin-bottom: 28px; }
.service-card-link { display: flex; justify-content: space-between; gap: 16px; margin-top: auto; font-size: 12px; }
.service-card-link span { font-size: 21px; }
.service-card:hover .service-card-link,
.service-card:hover .service-symbol { color: var(--link-hover); }
.services-detailed { grid-template-columns: 1fr 1fr; }
.services-detailed .service-card:nth-child(2) { border-right: 0; }
.services-detailed .service-card:nth-child(n+3) { border-top: 1px solid var(--rule); }
.work-section { background: #f1f1ee; border-block: 1px solid var(--rule); }
.project-links { display: flex; gap: 18px; justify-content: space-between; align-items: center; margin-top: 15px; flex-wrap: wrap; }
.project-links .inline-link { font-size: 12px; gap: 22px; }
.source-link { color: var(--muted); font-size: 10px; text-decoration: underline; text-underline-offset: 4px; }
.process-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 36px; padding: 0; margin: 0; list-style: none; }
.process-grid li { border-top: 1px solid var(--rule); padding-top: 20px; }
.process-grid h3 { margin: 32px 0 16px; font-size: 27px; }
.process-grid p { color: var(--muted); font-size: 14px; }
.sector-overview,
.faq-home { display: grid; grid-template-columns: .85fr 1.15fr; gap: 10%; }
.sector-overview h2,
.faq-home h2 { margin-bottom: 24px; }
.sector-overview > div > p { max-width: 370px; color: var(--muted); font-size: 14px; margin-bottom: 20px; }
.sector-links { border-top: 1px solid var(--rule); }
.sector-links a { display: flex; align-items: center; gap: 25px; padding: 25px 0; border-bottom: 1px solid var(--rule); font-family: "Manrope Variable",sans-serif; font-size: 25px; line-height: 1.3; letter-spacing: -.04em; }
.sector-links a > span:last-child { margin-left: auto; }
.faq-home .faq-list { border-top: 1px solid var(--rule); }
.faq-home .faq-list summary { font-size: 20px; }
.why-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 36px; }
.why-grid article { border-top: 1px solid var(--rule); padding-top: 25px; }
.why-grid h3 { font-size: 24px; margin-bottom: 18px; }
.why-grid p { color: var(--muted); font-size: 13px; }
.sector-detail { display: grid; grid-template-columns: 1fr 1.1fr; gap: 10%; padding-block: 60px; scroll-margin-top: 24px; }
.sector-detail h2 { font-size: 43px; margin-bottom: 24px; }
.sector-detail > div > p { font-size: 15px; color: var(--muted); }
.sector-detail .work-grid { grid-template-columns: 1fr; }
.sector-services { display: flex; flex-wrap: wrap; gap: 12px 22px; margin-top: 20px; }
.sector-invitation { min-height: 320px; background: #f1f1ee; padding: 38px; }
.sector-invitation h3 { margin: 25px 0 18px; font-size: 31px; }
.sector-invitation p { font-size: 14px; color: var(--muted); margin-bottom: 25px; }

/* Tour providers connect only after the visitor loads the experience. */
.featured-stage:after { display: none; }
.featured-poster { height: 100%; position: relative; }
.featured-poster:after { content: ""; position: absolute; inset: 20% 0 0; background: linear-gradient(transparent,#111d); pointer-events: none; }
.featured-poster .hero-caption h2 { font-size: clamp(30px,3.7vw,52px); max-width: 700px; margin: 10px 0 23px; }
.featured-poster .button { display: inline-flex; gap: 20px; }
.featured-frame, .featured-frame iframe, .viewer-frame, .viewer-frame iframe { width: 100%; height: 100%; border: 0; }
.featured-caption { display: flex; justify-content: space-between; gap: 24px; padding-block: 16px 8px; font-size: 11px; color: var(--muted); }
.external-info { font-size: 11px; color: var(--muted); max-width: 850px; }
.external-info summary { cursor: pointer; width: fit-content; text-decoration: underline; text-underline-offset: 4px; }
.external-info p { margin-top: 8px; }
.tour-close { min-height: 44px; padding: 10px 16px; border: 1px solid var(--rule); background: var(--bg); display: inline-flex; align-items: center; gap: 20px; font-size: 12px; }
.featured-stage > .tour-close { position: absolute; z-index: 2; top: 16px; right: 16px; }
.tour-close:hover { color: var(--link-hover); }
.tour-dialog { width: min(1200px,calc(100% - 48px)); max-height: calc(100dvh - 36px); padding: 26px; border: 1px solid var(--rule); color: var(--ink); background: var(--bg); }
.tour-dialog::backdrop { background: #111b; }
.viewer-top { display: flex; align-items: center; justify-content: space-between; gap: 30px; margin-bottom: 22px; }
.viewer-top .eyebrow { margin-bottom: 12px; }
.viewer-top h2 { font-size: 32px; }
.viewer-top .tour-close { flex-shrink: 0; }
.viewer-stage { height: clamp(330px,58vh,680px); background: #efefeb; }
.viewer-consent { display: flex; align-items: center; justify-content: center; flex-direction: column; gap: 24px; padding: 28px; height: 100%; text-align: center; }
.viewer-consent > svg { width: 52px; height: 52px; }
.viewer-consent p { max-width: 640px; font-size: 14px; color: var(--muted); }
.viewer-bottom { display: flex; align-items: center; justify-content: space-between; gap: 24px; margin-top: 15px; font-size: 12px; }
html:has(dialog[open]) { overflow: hidden; }
@media(max-width:1000px) {
  .services-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .service-card:nth-child(2n) { border-right: 0; }
  .service-card:nth-child(n+3) { border-top: 1px solid var(--rule); }
  .process-grid,.why-grid { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 32px; }
  .sector-overview,.faq-home { grid-template-columns: .9fr 1.1fr; gap: 7%; }
  .sector-links a { font-size: 22px; gap: 18px; }
  .sector-detail { gap: 7%; }
  .sector-detail h2 { font-size: 35px; }
}
@media(max-width:700px) {
  .service-card { padding: 22px 16px; }
  .service-card:nth-child(2n+1) { padding-left: 0; }
  .service-card:nth-child(2n) { padding-right: 0; padding-left: 20px; }
  .service-card h3 { font-size: 23px; }
  .service-card p { font-size: 12px; }
  .service-card-top { margin-bottom: 26px; }
  .service-symbol { width: 46px; height: 46px; }
  .service-card-link { font-size: 10px; gap: 8px; }
  .process-grid,.why-grid { gap: 30px 22px; }
  .process-grid h3 { font-size: 24px; margin-top: 22px; }
  .process-grid p,.why-grid p { font-size: 12px; }
  .why-grid h3 { font-size: 22px; }
  .sector-overview,.faq-home { grid-template-columns: 1fr; gap: 30px; }
  .sector-links a { font-size: 24px; padding-block: 22px; }
  .sector-detail { grid-template-columns: 1fr; gap: 32px; padding-block: 40px; }
  .sector-detail h2 { font-size: 37px; }
  .featured-poster .hero-caption h2 { font-size: 35px; }
  .featured-poster .hero-caption { bottom: 24px; }
  .featured-caption { flex-direction: column; gap: 5px; font-size: 10px; }
  .external-info { font-size: 10px; margin-top: 8px; }
  .tour-dialog { width: calc(100% - 24px); padding: 16px; }
  .viewer-top { align-items: start; gap: 15px; }
  .viewer-top h2 { font-size: 25px; }
  .viewer-top .tour-close { padding: 8px 12px; gap: 10px; font-size: 11px; }
  .viewer-top .eyebrow { font-size: 9px; }
  .viewer-consent { padding: 24px 18px; gap: 20px; }
  .viewer-consent p { font-size: 12px; }
  .viewer-bottom { align-items: start; gap: 15px; font-size: 10px; }
  .viewer-bottom .inline-link { font-size: 10px; padding: 0; }
}

/* The featured park uses the centered invitation selected by the owner. */
.hero-copy .hero-explore { min-width: 205px; font-size: 14px; gap: 28px; }
.featured-stage { height: clamp(380px,45vw,680px); }
.featured-poster:after { inset: 0; background: linear-gradient(0deg,#1115,#1116); }
.featured-invitation { position: absolute; inset: 0; z-index: 1; padding: 36px; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 26px; text-align: center; color: white; }
.featured-invitation .eyebrow { margin: 0; color: white; font-size: 11px; }
.featured-invitation h2 { max-width: 850px; font-size: clamp(36px,5.2vw,72px); font-weight: 450; line-height: 1.12; }
.featured-invitation .featured-play { min-width: 235px; justify-content: center; gap: 30px; min-height: 56px; font-size: 13px; margin: 0; }
.featured-play > span { font-size: 13px; }
@media(max-width:700px) {
  .featured-stage { height: 390px; }
  .featured-invitation { padding: 24px; gap: 24px; }
  .featured-invitation .eyebrow { font-size: 9px; }
  .featured-invitation h2 { font-size: 36px; }
  .featured-invitation .featured-play { min-width: 215px; min-height: 52px; font-size: 12px; gap: 24px; }
}

/* Service terms are a reading section below the project invitation. */
.legal-section .section-heading { align-items: center; margin-bottom: 24px; }
.legal-section .section-heading h2 { max-width: 850px; font-size: clamp(28px,3vw,42px); line-height: 1.18; letter-spacing: -.04em; }
.legal-section .section-heading > .inline-link { flex-shrink: 0; }
.legal-section .faq-list { max-width: none; border-top: 1px solid var(--rule); }
.legal-section .faq-list summary { font-size: 20px; }
.legal-page .page-intro h1 { max-width: 1000px; font-size: clamp(32px,4.6vw,64px); line-height: 1.15; }
@media(max-width:700px) {
  .legal-section .section-heading > .inline-link { margin-top: 18px; }
  .legal-section .faq-list summary { font-size: 18px; }
}

/* Price comparison: shared card rhythm with an area table for Matterport. */
.pricing-page .page-intro h1 { max-width: 1050px; }
.pricing-page .price-card { padding: 30px 24px; }
.price-card-top { display: flex; align-items: center; justify-content: space-between; margin-bottom: 32px; }
.price-service-link { display: inline-flex; align-items: center; justify-content: center; width: 32px; height: 32px; font-size: 27px; }
.pricing-page .price-heading { min-height: 115px; }
.pricing-page .price-heading h2 { font-size: clamp(21px,1.8vw,28px); line-height: 1.2; margin-bottom: 16px; letter-spacing: -.04em; }
.price-heading p { color: var(--muted); font-size: 14px; line-height: 1.65; margin: 0; }
.price-cost { min-height: 190px; padding-block: 24px; }
.pricing-page .price-cost .eyebrow { display: block; margin-bottom: 12px; font-size: 10px; }
.pricing-page .price-amount { font-size: clamp(36px,3.8vw,58px); white-space: nowrap; margin-block: 0 8px; }
.pricing-page .price-amount.quote { font-size: clamp(28px,2.6vw,40px); }
.price-package { display: flex; align-items: center; min-height: 82px; padding-block: 20px; border-block: 1px solid var(--rule); }
.price-package p { margin: 0; font-size: 13px; line-height: 1.6; }
.pricing-page .price-features { list-style: none; border: 0; padding: 0; margin: 28px 0; font-size: 13px; color: var(--muted); line-height: 1.65; }
.price-features li { display: grid; grid-template-columns: 12px minmax(0,1fr); gap: 10px; }
.price-features .ui-icon { color: var(--ink); margin-top: .3em; }
.price-tier-table { margin: 24px 0 0; font-size: 13px; }
.price-tier-table > div { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; padding: 12px 0; border-bottom: 1px solid var(--rule); }
.price-tier-table dt { color: var(--muted); }
.price-tier-table dd { flex-shrink: 0; margin: 0; font-weight: 600; font-variant-numeric: tabular-nums; }
.price-tier-note { color: var(--muted); font-size: 12px; line-height: 1.7; margin: 12px 0 0; }
.pricing-page .price-extra { padding-top: 20px; border-top: 1px solid var(--rule); margin: 0 0 24px; font-size: 13px; line-height: 1.7; }
.price-extra strong { color: var(--ink); font-size: 16px; font-weight: 500; }
.pricing-page .price-foot { color: var(--muted); margin-bottom: 28px; font-size: 12px; line-height: 1.7; }
.pricing-page .price-card .button { margin-top: auto; min-height: 48px; }
.pricing-scope { display: grid; grid-template-columns: 1fr 1.25fr; gap: 8%; padding-top: 56px; }
.pricing-scope h2 { max-width: 500px; font-size: clamp(28px,3.3vw,44px); line-height: 1.15; letter-spacing: -.045em; }
.pricing-scope p { color: var(--muted); font-size: 15px; line-height: 1.9; margin: 0 0 24px; }
.pricing-scope-links { display: flex; flex-wrap: wrap; gap: 16px 28px; }
.company-panel .price-extra { margin-block: 24px; font-size: 12px; line-height: 1.8; }
.company-panel .price-tier-table { margin-top: 20px; }
.company-panel .price-tier-note { margin-bottom: 24px; }
@media(max-width:1000px) {
  .pricing-page .price-heading { min-height: 95px; }
  .pricing-page .price-heading h2 { font-size: 25px; }
  .pricing-scope { gap: 5%; }
}
@media(max-width:700px) {
  .pricing-page .price-card { padding: 28px 18px; }
  .price-card-top { margin-bottom: 24px; }
  .pricing-page .price-heading { min-height: 0; }
  .price-cost { min-height: 0; padding-block: 24px; }
  .price-package { min-height: 0; }
  .pricing-page .price-card .button { margin-top: 8px; }
  .pricing-scope { grid-template-columns: 1fr; gap: 24px; padding-top: 40px; }
  .pricing-scope-links { align-items: flex-start; flex-direction: column; }
}

/* Vector controls keep the same shape across system and emoji fonts. */
.ui-icon { display: inline-block; width: 1em; height: 1em; flex-shrink: 0; vertical-align: -.125em; }

.about-story { display: flex; justify-content: space-between; align-items: flex-end; gap: 8%; padding-top: 0; }
.about-story .body-copy { max-width: 720px; }
.about-story > .button { flex-shrink: 0; }
.service-area { display: grid; grid-template-columns: minmax(0,.85fr) minmax(0,1.15fr); gap: 7%; align-items: center; }
.service-area h2 { max-width: 420px; font-size: clamp(28px,3.4vw,46px); line-height: 1.13; letter-spacing: -.045em; margin: 0 0 26px; }
.service-area p { max-width: 370px; color: var(--muted); line-height: 1.9; font-size: 15px; }
.area-map { margin: 0; min-width: 0; background: #f1f1ed; border: 1px solid var(--rule); overflow: hidden; }
.map-stage { position: relative; aspect-ratio: 680 / 480; overflow: hidden; }
.map-stage img { display: block; width: 100%; height: 100%; }
.map-region { position: absolute; left: 7%; top: 8%; font-size: 11px; letter-spacing: .15em; text-transform: uppercase; color: var(--muted); }
.map-city { position: absolute; left: 75%; top: 31.25%; transform: translateY(-40%); padding: 4px 7px; background: #f1f1ed; display: grid; gap: 3px; font-size: 13px; line-height: 1.4; }
.map-city strong { font-weight: 600; }
.map-city small { color: var(--muted); font-size: 10px; }
.area-map figcaption { display: flex; align-items: center; flex-wrap: wrap; justify-content: space-between; gap: 10px 20px; color: var(--muted); font-size: 10px; line-height: 1.7; border-top: 1px solid var(--rule); padding: 16px 22px; }
.map-key { display: inline-flex; align-items: center; gap: 8px; }
.map-key i { width: 9px; height: 9px; background: var(--accent); border: 1px solid var(--ink); }
.area-map figcaption a { text-decoration: underline; text-underline-offset: 3px; }
.footer-policies { display: flex; flex-wrap: wrap; gap: 12px 28px; }
.policy-content { max-width: 1000px; margin: 0 auto; }
.policy-content article { display: grid; grid-template-columns: 40px 1fr; gap: 28px; padding: 36px 0; border-top: 1px solid var(--rule); }
.policy-content article h2 { font-size: clamp(22px,2.5vw,32px); line-height: 1.2; letter-spacing: -.03em; margin: 0 0 20px; }
.policy-content article p { color: var(--muted); line-height: 1.9; font-size: 15px; overflow-wrap: anywhere; }
@media(max-width:1000px) { .about-story { align-items: flex-start; flex-direction: column; gap: 20px; } .service-area { grid-template-columns: 1fr; gap: 32px; } .service-area > div { max-width: 600px; } }
@media(max-width:700px) { .policy-content article { grid-template-columns: 24px 1fr; gap: 16px; } .map-city { font-size: 11px; padding: 3px 5px; } .map-city small { font-size: 9px; } .area-map figcaption { padding: 14px; } .footer-policies { flex-direction: column; } }

.map-water { position: absolute; left: 53%; top: 55%; transform: translateX(-50%); font-size: clamp(10px,1.1vw,13px); color: var(--muted); letter-spacing: .04em; }
.map-context { position: absolute; transform: translate(-50%,-50%); font-size: 10px; color: var(--muted); }
.map-context-0 { left: 36%; top: 43%; }
.map-context-1 { left: 78%; top: 55%; }
.map-context-2 { left: 60%; top: 72%; }
.map-context-3 { left: 20%; top: 73%; }
.map-context-4 { left: 42%; top: 88%; }
@media(max-width:600px) { .map-context { font-size: 8px; } }

.footer-bottom { display: flex; flex-wrap: wrap; align-items: center; gap: 18px 28px; }
.footer-policies { margin-left: auto; justify-content: flex-end; gap: 12px 24px; }
.footer-top { display: inline-flex; width: 44px; min-height: 44px; flex: 0 0 44px; align-items: center; justify-content: center; font-size: 24px; }
.company-info-fields { max-width: 1000px; margin: 0; }
.company-info-fields > div { display: grid; grid-template-columns: 200px minmax(0,1fr); gap: 28px; padding: 28px 0; border-top: 1px solid var(--rule); }
.company-info-fields dt { color: var(--muted); font-size: 13px; }
.company-info-fields dd { margin: 0; font-size: 17px; line-height: 1.7; overflow-wrap: anywhere; }
.company-info-fields address { font-style: normal; }
.company-info-fields dd a { display: block; width: fit-content; }
.policy-links { display: flex; flex-wrap: wrap; align-items: flex-start; gap: 18px 28px; padding-top: 36px; }
.policy-links .inline-link { max-width: 100%; overflow-wrap: anywhere; }
@media(max-width:1000px) { .footer-bottom { display: grid; grid-template-columns: minmax(0,1fr) 44px; } .footer-bottom > span { grid-column: 1/-1; } .footer-policies { margin-left: 0; justify-content: flex-start; } .footer-top { grid-column: 2; grid-row: 2; align-self: start; } }
@media(max-width:700px) { .footer-policies { flex-direction: column; align-items: flex-start; gap: 12px; } .company-info-fields > div { grid-template-columns: 1fr; gap: 10px; padding: 24px 0; } .company-info-fields dd { font-size: 15px; } }

.login-error{border-left:2px solid #b42318;padding:12px 16px;background:#fff3f1;color:#8c1c13;font-size:14px;margin-bottom:24px}.login-links{flex-wrap:wrap}.button:disabled{cursor:wait;opacity:.65}
