/* Common navigation and reading widths */
:root { --g-gap: clamp(34px, 4.8vw, 76px); --g-muted: #bfd0de; --g-soft: #102335; }
html { scroll-padding-top: 16px; }
main { min-width: 0; }
header nav a, .mobile-nav a { white-space: nowrap; }
header nav { gap: clamp(14px, 1.8vw, 29px); }
header .brand div { color: #f5f9fc; }
.mobile-nav { align-items:center; }
.mobile-nav .phone-link, .phone-link { display:inline-flex; align-items:center; gap:6px; font-variant-numeric:tabular-nums; }
.phone-link svg { width:15px; height:15px; flex:none; }
.nav-menu { position:relative; }
.nav-menu summary { cursor:pointer; list-style:none; display:flex; align-items:center; min-height:44px; gap:6px; }
.nav-menu summary::-webkit-details-marker { display:none; }
.nav-menu summary::after { content:'⌄'; color:#6fc9ff; }
.nav-menu[open] summary::after { content:'⌃'; }
.nav-menu .menu-sheet { position:absolute; z-index:9; top:100%; right:0; min-width:210px; padding:7px; border:1px solid #39536a; border-radius:7px; background:#0c2031; box-shadow:0 12px 32px #00101d66; }
.menu-sheet a { display:block; padding:11px 12px; border-radius:4px; }
.menu-sheet a:hover,.menu-sheet a:focus-visible { background:#19384c; }
.site-foot { align-items:center; padding-block:24px; gap:24px; }
.site-foot .foot-nav { display:flex; gap:15px; flex-wrap:wrap; }
.site-foot a:hover,.textlink:hover { color:#b0e5ff; text-decoration:underline; text-underline-offset:4px; }
.textlink { color:#78d3ff; font-weight:650; }
.textlink::after { content:' →'; }
.eyeline { font-size:11px; font-weight:700; letter-spacing:1.1px; text-transform:uppercase; color:#62c9ff; }
.crumb { display:flex; align-items:center; flex-wrap:wrap; gap:8px; color:#aec2d2; font-size:12px; margin-bottom:25px; }
.crumb a { text-decoration:underline; text-decoration-color:#536a7b; text-underline-offset:3px; }
.crumb span[aria-hidden] { color:#7195ae; }
.inner-hero { background:radial-gradient(ellipse at 85% 100%,#17405a 0,transparent 53%),linear-gradient(110deg,#071522,#10283b); border-bottom:1px solid #254359; padding-block:22px var(--g-gap); }
.lead-grid,.story-layout,.contact-layout,.about-layout { display:grid; grid-template-columns:1.08fr .92fr; gap:clamp(30px,5.5vw,92px); align-items:center; }
.inner-hero h1,.plain-title h1 { font-size:clamp(35px,4.1vw,61px); font-weight:650; letter-spacing:-1.5px; line-height:1.06; max-width:19ch; margin:10px 0 17px; text-wrap:balance; }
.inner-hero .intro,.plain-title .intro { font-size:clamp(16px,1.35vw,19px); line-height:1.62; color:#d2e0e9; max-width:57ch; }
.inner-hero .actions { margin-top:24px; }
.inner-hero .actions .textlink { margin-left:3px; padding:10px 0; }
.inner-hero figure,.frame { margin:0; }
.frame img,.frame>picture>img { display:block; width:100%; aspect-ratio:1.7; object-fit:cover; object-position:top; border:1px solid #385268; border-radius:8px; background:#132d40; }
.frame figcaption { color:#adc3d5; font-size:12px; margin-top:8px; }
.figure-link { display:block; }
.frame img { height:auto; }
.hero-note { margin-top:16px; color:#bbd0df; font-size:13px; line-height:1.5; }
.fact-box { background:linear-gradient(135deg,#17354b,#0a1c2b 90%); padding:clamp(24px,3.2vw,43px); border:1px solid #34566c; border-radius:9px; }
.fact-box .big { font-size:clamp(33px,3vw,48px); line-height:1.12; color:#fff; font-weight:600; letter-spacing:-1.4px; padding:10px 0; }
.fact-box small { color:#a9c3d5; font-size:12px; }
.fact-box>p { color:#d5e4ee; margin-bottom:12px; }
.fact-box>p:last-child { margin-bottom:0; }
.fact-box .rule { border-top:1px solid #34536a; padding-top:14px; margin-top:17px; }
.band { padding-block:var(--g-gap); border-bottom:1px solid #20394b; background:#091827; }
.band.alt { background:linear-gradient(115deg,#102637,#0a1b2c); }
.band h2,.closeout h2 { font-size:clamp(26px,2.6vw,37px); line-height:1.16; letter-spacing:-.65px; font-weight:640; margin:7px 0 13px; text-wrap:balance; }
.band .desc { max-width:69ch; color:var(--g-muted); font-size:15px; line-height:1.65; }
.band .group-head { display:flex; flex-direction:column; align-items:flex-start; margin-bottom:25px; }
.pairs,.triples,.portfolio { display:grid; gap:clamp(14px,2vw,29px); }
.pairs { grid-template-columns:repeat(2,minmax(0,1fr)); }.triples,.portfolio { grid-template-columns:repeat(3,minmax(0,1fr)); }
.item { min-width:0; padding:23px 24px; border-top:2px solid #3595c7; background:#102537; border-radius:0 0 5px 5px; }
.item h3,.reading h3,.portfolio h3 { font-weight:640; font-size:clamp(17px,1.5vw,22px); line-height:1.27; margin:0 0 8px; }
.item p,.reading p,.price-line p,.portfolio p { color:var(--g-muted); line-height:1.65; font-size:14px; }
.item .textlink,.reading .textlink { display:inline-block; margin-top:15px; }
.item .icon { width:42px;height:39px;border-radius:6px;margin-bottom:12px;display:block; }
.reading { max-width:75ch; }
.reading h3:not(:first-child) { margin-top:25px; }
.reading p+p { margin-top:12px; }
.reading a:not(.button) { color:#8ad6ff; text-decoration:underline; text-underline-offset:3px; }
.clean-list { list-style:none; padding:0; margin:0; }
.clean-list li { display:flex; align-items:flex-start; gap:11px; padding:10px 0; border-bottom:1px solid #294253; color:#d2e1ec; }
.clean-list li:before { content:'✓'; color:#57c3fc; flex:none; }
.clean-list li:last-child { border:0; }
.subnav { padding:12px 6.3%; display:flex; gap:10px 22px; flex-wrap:wrap; background:#0e2030; border-bottom:1px solid #284052; }
.subnav a { font-size:13px; color:#c8dbe8; padding:6px 0; }
.subnav a:hover { color:#73d2ff; }
.price-line { display:grid; grid-template-columns:1fr auto; gap:22px; padding:22px 0; border-top:1px solid #304859; align-items:start; }
.price-line h3 { font-size:19px; font-weight:630; margin:0 0 5px; }
.price-line strong { text-align:right; color:#81d5ff; font-size:clamp(17px,1.6vw,22px); font-weight:630; }
.split-content { display:grid; grid-template-columns:.85fr 1.15fr; gap:clamp(28px,6vw,100px); }
.split-content .group-head { margin-bottom:0; }
.steps { counter-reset:step; list-style:none; padding:0; margin:0; }
.steps li { position:relative; padding:0 0 22px 43px; }
.steps li:last-child { padding-bottom:0; }
.steps li:before { counter-increment:step; content:counter(step,decimal-leading-zero); position:absolute; left:0; top:0; color:#54bfff; font-size:15px; font-weight:650; }
.steps h3 { font-size:18px; margin-bottom:4px; }.steps p { color:var(--g-muted); font-size:14px; line-height:1.55; }
.faq { border-top:1px solid #334b5e; }
.faq details { border-bottom:1px solid #334b5e; }
.faq summary { cursor:pointer; font-size:16px; font-weight:600; padding:16px 26px 16px 0; }
.faq p { color:var(--g-muted); margin:0 15px 18px 0; max-width:65ch; line-height:1.65; }
.closeout { background:linear-gradient(110deg,#0a3e62,#0b253a 85%); padding-block:33px; display:flex; align-items:center; justify-content:space-between; gap:30px; }
.closeout h2 { font-size:27px; }.closeout p { color:#d1e4ef; }.closeout .actions { margin:0; }
.plain-title { padding-block:22px 36px; background:linear-gradient(110deg,#0c2033,#11334a); border-bottom:1px solid #29495e; }
.plain-title h1 { max-width:23ch; }
.portfolio a { border:1px solid #2d4559; border-radius:8px; overflow:hidden; background:#102336; display:flex; flex-direction:column; }
.portfolio a:hover { border-color:#529ec8; }.portfolio img { width:100%; height:auto; aspect-ratio:1.78; object-fit:cover; object-position:top; }
.portfolio .words { flex:1; display:flex; flex-direction:column; padding:18px 20px 21px; }
.portfolio small,.project-meta { color:#87cfff; font-size:12px; font-weight:600; }.portfolio h3 { margin-top:6px; }.portfolio .textlink { margin-top:auto;padding-top:16px; }
.story-layout { grid-template-columns:.7fr 1.3fr; align-items:start; }
.story-aside { border-top:2px solid #3a9bcd; background:#102537; padding:22px; }
.story-aside dl { margin:0; }.story-aside dt { color:#89a6bb; font-size:12px; }.story-aside dd { margin:4px 0 13px; }.story-aside dd:last-child { margin-bottom:0; }
.story-quote { border-left:3px solid #4eb7f0; padding:4px 0 4px 19px; margin:25px 0; }.story-quote p { font-size:19px; color:#eff7fb; }.story-quote cite { display:block; font-size:13px; font-style:normal; margin-top:9px; color:#aec6d7; }
.project-neighbours { display:flex; flex-wrap:wrap; justify-content:space-between; gap:15px; padding-block:22px; background:#0d2232; }
.project-neighbours a { color:#8bd6ff; }
.about-layout .portrait { width:100%; max-height:420px; object-fit:cover; border-radius:9px; }
.contact-layout { align-items:start; }
.contact-card { padding:clamp(20px,3vw,36px); background:#102638; border:1px solid #315168; border-radius:9px; }
.contact-card h2 { margin:0 0 18px; }
.contact-card fieldset { margin:0; padding:0; border:0; }
.contact-card label,.contact-card legend { display:block; margin-top:14px; font-size:13px; font-weight:600; color:#dfedf5; }
.contact-card legend { margin-top:0; }
.contact-card input:not([type=radio]),.contact-card textarea,.contact-card select { display:block; width:100%; min-height:43px; border:1px solid #476378; border-radius:5px; padding:10px 12px; margin-top:5px; background:#0b1927; color:#fff; font:inherit; }
.contact-card textarea { resize:vertical; min-height:95px; }.contact-card .pair { display:grid; grid-template-columns:1fr 1fr; gap:14px; }
.contact-card .hint { font-size:12px; color:#bcd0df; margin-top:7px; }
.contact-card .hint a { color:#87d7ff; text-decoration:underline; }
.contact-card .button { margin-top:17px; cursor:pointer; font-family:inherit; }
.contact-card .status { color:#ffcf9e; margin-top:12px; }.contact-card .done { color:#bce7ce; }
.contact-card .trap { position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden; }
.contact-card [hidden], .portfolio [hidden] { display:none!important; }
.channels { display:grid; gap:12px; margin-block:20px; }.channels a { color:#8bd4ff; width:fit-content; overflow-wrap:anywhere; }.channels a:first-child { font-size:27px;font-weight:600; }
.price-nav { display:flex; gap:10px; flex-wrap:wrap; margin-top:22px; }.price-nav a { padding:10px 14px; border:1px solid #375369; border-radius:5px; background:#112b3e; }
.policy { max-width:800px; }.policy h2 { font-size:24px;margin-top:27px; }
@media(max-width:1020px){header nav{gap:12px;font-size:13px}.lead-grid,.contact-layout,.about-layout,.split-content,.story-layout{gap:30px}.triples,.portfolio{grid-template-columns:repeat(2,minmax(0,1fr))}.inner-hero h1{font-size:40px}.site-foot{flex-wrap:wrap}.closeout{flex-wrap:wrap}}
@media(max-width:940px){header nav{display:none}header .mobile-nav{display:flex;align-items:center;gap:16px}.mobile-nav>a,.mobile-nav summary{min-height:44px}.site-foot .foot-nav{align-items:center}.lead-grid{grid-template-columns:1.05fr .95fr}}
@media(max-width:700px){:root{--g-gap:34px}.inner-hero,.plain-title{padding-top:16px}.inner-hero h1,.plain-title h1{font-size:34px;letter-spacing:-.9px;max-width:21ch}.inner-hero .intro,.plain-title .intro{font-size:16px;line-height:1.55}.lead-grid,.contact-layout,.about-layout,.story-layout,.split-content,.pairs,.triples,.portfolio{grid-template-columns:1fr}.inner-hero .actions{margin-top:16px}.lead-grid,.about-layout{gap:23px}.crumb{font-size:11px;margin-bottom:17px}.fact-box{padding:21px}.fact-box .big{font-size:34px}.item{padding:19px}.group-head{margin-bottom:20px}.band h2{font-size:26px}.price-line{grid-template-columns:1fr;gap:5px;padding:17px 0}.price-line strong{text-align:left}.subnav{padding:8px 19px;gap:7px 15px}.subnav a{min-height:36px;display:inline-flex;align-items:center}.closeout{display:block;padding-block:25px}.closeout .actions{margin-top:18px}.site-foot{display:flex;align-items:flex-start;flex-direction:column;gap:15px}.site-foot>a{margin-top:0}.site-foot .foot-nav{padding:0}.contact-card .pair{grid-template-columns:1fr;gap:0}.contact-card input:not([type=radio]),.contact-card select,.contact-card textarea{font-size:16px}.contact-layout .channels{margin-bottom:0}.about-layout .portrait{max-height:320px}.mobile-nav .phone-link{font-size:11px;gap:4px}header .mobile-nav{gap:12px}.mobile-nav .phone-link svg{width:13px}.site-foot .brand{display:flex}header .menu-sheet{right:-86px}.price-nav a{font-size:12px}.portfolio .words{padding:18px}}
@media(max-width:370px){header .brand div{font-size:10px}.mobile-nav .phone-link{font-size:10px}header .mobile-nav{gap:8px}.inner-hero h1{font-size:30px}.phone-link svg{display:none}}
@media(prefers-reduced-motion:no-preference){a.button,.portfolio a,.service,.project{transition:border-color .16s,background-color .16s,filter .16s}}
@media(max-width:700px) {
  .hero .lead h1 { font-size:clamp(24px,7.2vw,34px); }
}
