/*
Theme Name: FlexBox Studio
Description: A visual-first, standalone WordPress theme for FlexBox container homes.
Author: FlexBox
Version: 1.0.0
Text Domain: flexbox-studio
*/

:root { --ink:#101619; --blue:#168ac8; --blue-deep:#0872ae; --mist:#edf4f7; --line:rgba(16,22,25,.16); --paper:#fff; --warm:#f6f3ee; --max:1240px; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; color:var(--ink); background:var(--paper); font-family:Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; font-size:16px; line-height:1.5; }
img { display:block; max-width:100%; }
a { color:inherit; text-decoration:none; }
.shell { width:min(var(--max), calc(100% - 48px)); margin:0 auto; }
.site-header { position:absolute; z-index:10; inset:0 0 auto; color:#fff; }
/* WordPress renders the admin bar above the page. Keep the overlay navigation
   below it so the brand and controls remain fully usable while logged in. */
body.admin-bar .site-header { top:32px; }
.nav { height:88px; display:flex; align-items:center; justify-content:space-between; gap:28px; }
.brand { display:flex; align-items:center; gap:10px; font-weight:800; letter-spacing:-.04em; font-size:1.45rem; }
.brand img { width:38px; height:38px; object-fit:contain; border-radius:50%; }
.nav-links { display:flex; align-items:center; gap:26px; font-size:.77rem; font-weight:700; letter-spacing:.08em; text-transform:uppercase; }
.nav-links a { opacity:.86; }
.nav-links a:hover { opacity:1; }
.nav-cta, .button { display:inline-flex; align-items:center; justify-content:center; min-height:46px; padding:0 22px; background:var(--blue); color:#fff; font-size:.75rem; font-weight:800; letter-spacing:.08em; text-transform:uppercase; transition:transform .2s, background .2s; }
.nav-cta { background:#fff; color:var(--ink); }
.button:hover { background:var(--blue-deep); transform:translateY(-2px); }
.hero { min-height:760px; min-height:100svh; display:grid; align-items:end; padding:156px 0 78px; color:#fff; background-color:#0d2b3b; background-position:center; background-size:cover; }
.eyebrow { margin:0 0 18px; color:currentColor; font-size:.72rem; font-weight:800; letter-spacing:.13em; text-transform:uppercase; }
.hero-copy { max-width:780px; }
.hero h1 { max-width:720px; margin:0; font-size:clamp(3.25rem, 7vw, 6.6rem); line-height:.91; letter-spacing:-.07em; }
.hero p:not(.eyebrow) { max-width:590px; margin:28px 0 34px; font-size:clamp(1rem, 1.5vw, 1.22rem); }
.button--light { background:#fff; color:var(--ink); }
.button--light:hover { background:var(--mist); }
.intro { display:grid; grid-template-columns:1fr 1.1fr; gap:clamp(42px,9vw,160px); padding:clamp(80px,11vw,160px) 0; }
.intro h2, .section-head h2, .statement h2 { margin:0; font-size:clamp(2.4rem, 4vw, 4.8rem); line-height:.98; letter-spacing:-.065em; }
.intro p { margin:0; max-width:570px; font-size:1.06rem; line-height:1.7; }
.split-links { display:grid; grid-template-columns:repeat(2,1fr); }
.split-link { position:relative; min-height:520px; display:flex; align-items:end; padding:40px; overflow:hidden; color:#fff; background:center/cover; }
.split-link::before { position:absolute; inset:0; content:""; background:linear-gradient(0deg,rgba(3,11,14,.78),rgba(3,11,14,.05) 70%); transition:background .3s; }
.split-link:hover::before { background:linear-gradient(0deg,rgba(3,11,14,.9),rgba(3,11,14,.19)); }
.split-link > span { position:relative; display:block; }
.split-link small { display:block; margin-bottom:10px; font-size:.72rem; font-weight:800; letter-spacing:.13em; text-transform:uppercase; }
.split-link strong { font-size:clamp(2rem,4vw,4.1rem); line-height:.94; letter-spacing:-.06em; }
.showcase { padding:clamp(80px,11vw,150px) 0; background:var(--blue); color:#fff; }
.section-head { display:flex; align-items:end; justify-content:space-between; gap:30px; margin-bottom:52px; }
.section-head p { max-width:390px; margin:0; }
.model-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:22px; }
.model-card { overflow:hidden; color:var(--ink); background:#fff; }
.model-card__image { aspect-ratio:1.38; overflow:hidden; background:#dfe6e8; }
.model-card__image img { width:100%; height:100%; object-fit:cover; transition:transform .5s; }
.model-card:hover img { transform:scale(1.045); }
.model-card__body { padding:22px 22px 25px; }
.model-card__type { display:block; margin-bottom:9px; color:var(--blue-deep); font-size:.66rem; font-weight:800; letter-spacing:.12em; text-transform:uppercase; }
.model-card h3 { margin:0; font-size:1.55rem; line-height:1.05; letter-spacing:-.05em; }
.model-card p { margin:10px 0 0; color:#536267; font-size:.88rem; }
.feature { display:grid; grid-template-columns:1.08fr .92fr; min-height:720px; background:var(--warm); }
.feature-image { min-height:400px; background-color:#dbe8ed; background-position:center; background-size:cover; }
.feature-copy { display:flex; flex-direction:column; justify-content:center; align-items:flex-start; padding:clamp(48px,8vw,125px); }
.feature-copy h2 { max-width:490px; margin:0; font-size:clamp(2.7rem,5vw,5.5rem); line-height:.9; letter-spacing:-.07em; }
.feature-copy p { max-width:450px; margin:26px 0 32px; color:#48565a; }
.statement { padding:clamp(95px,13vw,180px) 0; color:#fff; text-align:center; background:#111b20; }
.statement h2 { max-width:900px; margin:0 auto 32px; }
.statement p { max-width:590px; margin:0 auto 32px; color:#c9d5d9; }
.site-footer { padding:55px 0 30px; background:#0b1113; color:#dbe5e7; }
.footer-top { display:flex; justify-content:space-between; gap:30px; padding-bottom:58px; border-bottom:1px solid rgba(255,255,255,.14); }
.footer-top p { max-width:320px; margin:14px 0 0; color:#93a7ad; }
.footer-socials { display:flex; flex-wrap:wrap; gap:12px 20px; margin-top:24px; }
.footer-socials a { padding-bottom:2px; border-bottom:1px solid rgba(255,255,255,.3); color:#fff; font-size:.72rem; font-weight:800; letter-spacing:.09em; text-transform:uppercase; transition:border-color .2s, color .2s; }
.footer-socials a:hover { border-color:var(--blue); color:#6ec8f5; }
.footer-links { display:flex; flex-wrap:wrap; align-content:flex-start; justify-content:flex-end; gap:15px 28px; font-size:.78rem; font-weight:700; letter-spacing:.07em; text-transform:uppercase; }
.footer-bottom { display:flex; justify-content:space-between; gap:20px; padding-top:24px; color:#93a7ad; font-size:.73rem; }
.footer-bottom p { margin:0; }
.footer-bottom a { color:#fff; }
.content { width:min(780px, calc(100% - 48px)); margin:0 auto; padding:150px 0 100px; }
.content h1 { font-size:clamp(3rem,6vw,5.5rem); letter-spacing:-.07em; line-height:.94; }
.content img { height:auto; margin:28px 0; }
.about-hero { min-height:760px; min-height:90svh; display:flex; align-items:end; padding:150px 0 80px; color:#fff; background-color:#0d2b3b; background-position:center; background-size:cover; }
.about-hero__copy { max-width:860px; }
.about-hero h1 { margin:0; font-size:clamp(3.5rem,8vw,7.6rem); line-height:.87; letter-spacing:-.08em; }
.about-hero p:not(.eyebrow) { max-width:490px; margin:27px 0 0; font-size:1.1rem; }
.about-manifesto { padding:clamp(92px,13vw,180px) 0; background:var(--warm); }
.about-manifesto__grid { display:grid; grid-template-columns:.62fr 1.38fr; gap:60px; }
.about-manifesto h2, .about-content h2, .about-process h2, .about-cta h2 { margin:0; font-size:clamp(2.6rem,5.4vw,5.8rem); line-height:.92; letter-spacing:-.075em; }
.about-manifesto p:not(.eyebrow) { max-width:650px; margin:28px 0 0; color:#475559; font-size:1.08rem; line-height:1.7; }
.about-image-band { height:min(62vw,780px); background-color:#dbe8ed; background-position:center; background-size:cover; }
.about-content { display:grid; grid-template-columns:.7fr 1.3fr; gap:clamp(42px,9vw,140px); padding:clamp(95px,13vw,170px) 0; }
.about-content__body { color:#3f5055; font-size:1.04rem; line-height:1.75; }
.about-content__body > :first-child { margin-top:0; }
.about-content__body h2, .about-content__body h3 { margin:1.5em 0 .5em; color:var(--ink); font-size:1.45rem; line-height:1.1; letter-spacing:-.04em; }
.about-content__body img { height:auto; margin:28px 0; }
.about-capabilities { padding:clamp(80px,11vw,145px) 0; color:#fff; background:#102127; }
.capability-grid { display:grid; grid-template-columns:repeat(3,1fr); margin-top:45px; border-top:1px solid rgba(255,255,255,.25); }
.capability-grid article { min-height:300px; padding:28px 32px 20px 0; border-right:1px solid rgba(255,255,255,.25); }
.capability-grid article + article { padding-left:32px; }
.capability-grid article:last-child { border-right:0; }
.capability-grid span { color:#7dcdf1; font-size:.72rem; font-weight:800; letter-spacing:.1em; }
.capability-grid h3 { margin:56px 0 13px; font-size:2.1rem; letter-spacing:-.055em; }
.capability-grid p { max-width:290px; margin:0; color:#b7c8cc; }
.about-process { display:grid; grid-template-columns:.84fr 1.16fr; gap:80px; padding:clamp(96px,13vw,175px) 0; }
.about-process ol { margin:0; padding:0; list-style:none; }
.about-process li { display:grid; grid-template-columns:60px 1fr 1.45fr; gap:20px; padding:25px 0; border-top:1px solid var(--line); }
.about-process li:last-child { border-bottom:1px solid var(--line); }
.about-process li span { color:var(--blue-deep); font-size:.72rem; font-weight:800; }
.about-process strong { font-size:1.25rem; letter-spacing:-.04em; }
.about-process li p { margin:0; color:#57656a; }
.about-cta { padding:clamp(95px,14vw,190px) 0; color:#fff; text-align:center; background:var(--blue); }
.about-cta h2 { margin:0 auto 35px; }
.model-hero { padding:160px 0 90px; color:#fff; background:linear-gradient(135deg,#091b25,#103d55 60%,#0f83bf); }
.model-hero__grid { display:grid; grid-template-columns:1fr minmax(300px,.7fr); align-items:center; gap:clamp(48px,9vw,150px); }
.model-hero__copy { max-width:690px; }
.model-hero h1 { margin:0; font-size:clamp(3.8rem,7vw,7.1rem); line-height:.87; letter-spacing:-.08em; }
.model-hero__intro { max-width:500px; margin:28px 0 0; color:#d2e2e9; font-size:1.1rem; line-height:1.65; }
.model-hero__actions { display:flex; flex-wrap:wrap; align-items:center; gap:24px; margin-top:37px; }
.model-text-link { color:#fff; font-size:.75rem; font-weight:800; letter-spacing:.09em; text-transform:uppercase; }
.model-text-link span { display:inline-block; margin-left:8px; font-size:1.2rem; transition:transform .2s; }
.model-text-link:hover span { transform:translateX(5px); }
.model-text-link--dark { display:inline-block; margin-top:20px; color:var(--ink); }
.model-sheet { justify-self:end; width:min(100%,410px); padding:10px; background:#fff; box-shadow:24px 30px 0 rgba(0,0,0,.13); transform:rotate(2.2deg); }
.model-sheet__image { width:100%; height:auto; }
.model-sheet__placeholder { display:grid; aspect-ratio:.72; place-items:center; color:var(--blue); background:var(--mist); font-size:2rem; font-weight:800; line-height:1; text-align:center; }
.model-overview { padding:clamp(80px,11vw,145px) 0; background:var(--warm); }
.model-overview__grid { display:grid; grid-template-columns:1fr 1fr; gap:clamp(50px,10vw,170px); }
.model-overview h2, .model-next h2 { max-width:580px; margin:0; font-size:clamp(2.7rem,5vw,5.4rem); line-height:.92; letter-spacing:-.075em; }
.model-overview__grid > div:last-child { max-width:480px; color:#4b5a5f; font-size:1.07rem; line-height:1.72; }
.model-details { padding:clamp(92px,13vw,170px) 0; }
.model-details__grid { display:grid; grid-template-columns:.46fr 1fr; align-items:start; gap:clamp(55px,11vw,175px); }
.model-aside { position:sticky; top:100px; max-width:250px; color:#506065; }
.model-aside .eyebrow { color:var(--ink); }
.model-aside__rule { width:54px; height:3px; margin:25px 0; background:var(--blue); }
.model-aside p:not(.eyebrow) { font-size:.92rem; line-height:1.65; }
.model-aside .button { margin-top:16px; }
.model-content { max-width:760px; color:#334449; font-size:1.03rem; line-height:1.75; }
.model-content > :first-child { margin-top:0; }
.model-content h2 { margin:2.5em 0 .7em; padding-top:.75em; border-top:1px solid var(--line); color:var(--ink); font-size:clamp(1.7rem,2.4vw,2.45rem); line-height:1; letter-spacing:-.055em; }
.model-content h3 { margin:1.8em 0 .35em; color:var(--ink); font-size:1.08rem; line-height:1.15; letter-spacing:-.025em; }
.model-content p { margin:0 0 1.3em; }
.model-content ul, .model-content ol { margin:0 0 1.5em; padding-left:1.25em; }
.model-content li { margin:.35em 0; }
.model-content img { width:100%; height:auto; margin:0 0 48px; box-shadow:0 20px 45px rgba(13,29,35,.14); }
.model-next { padding:clamp(92px,14vw,180px) 0; color:#fff; text-align:center; background:var(--blue); }
.model-next h2 { margin:0 auto 36px; }
/* Models archive */
.models-archive-hero { padding:185px 0 100px; color:#fff; background:#0d2b3b; }
.models-archive-hero__grid { display:grid; grid-template-columns:1.2fr .8fr; align-items:end; gap:70px; margin-top:42px; }
.models-archive-hero h1 { margin:0; font-size:clamp(4rem,8vw,8.2rem); line-height:.84; letter-spacing:-.09em; }
.models-archive-hero__grid p { max-width:400px; margin:0 0 9px; color:#b8ced8; font-size:1.08rem; line-height:1.7; }
.models-collection { padding:clamp(76px,10vw,145px) 0; }
.models-collection__bar { display:flex; justify-content:space-between; gap:20px; margin-bottom:38px; padding-bottom:18px; border-bottom:1px solid var(--line); color:#536368; font-size:.82rem; }
.models-collection__bar p { margin:0; }
.models-collection__bar span { font-weight:800; letter-spacing:.07em; text-transform:uppercase; }
.models-archive-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:26px; }
.models-archive-card { display:flex; flex-direction:column; min-height:100%; overflow:hidden; background:var(--warm); transition:transform .25s, box-shadow .25s; }
.models-archive-card:hover { box-shadow:0 24px 55px rgba(10,28,35,.16); transform:translateY(-7px); }
.models-archive-card__image { display:grid; place-items:center; aspect-ratio:1.25; overflow:hidden; background:#dbe8ed; }
.models-archive-card__image img { width:100%; height:100%; object-fit:cover; transition:transform .5s; }
.models-archive-card:hover .models-archive-card__image img { transform:scale(1.045); }
.models-archive-card__placeholder { display:grid; width:100%; height:100%; place-items:center; color:var(--blue); font-size:3rem; font-weight:800; line-height:.84; text-align:center; }
.models-archive-card__body { display:flex; flex:1; flex-direction:column; align-items:flex-start; padding:27px 30px 30px; }
.models-archive-card h2 { margin:0; color:var(--ink); font-size:clamp(1.8rem,3vw,2.75rem); line-height:.95; letter-spacing:-.065em; }
.models-archive-card p { max-width:440px; margin:16px 0 28px; color:#536368; line-height:1.6; }
.models-archive-card__link { margin-top:auto; color:var(--ink); font-size:.73rem; font-weight:800; letter-spacing:.09em; text-transform:uppercase; }
.models-archive-card__link b { display:inline-block; margin-left:8px; color:var(--blue-deep); font-size:1.2rem; transition:transform .2s; }
.models-archive-card:hover .models-archive-card__link b { transform:translateX(5px); }
.models-empty { padding:60px 0; color:#536368; }
.models-archive-cta { padding:clamp(90px,13vw,165px) 0; color:#fff; text-align:center; background:#127fba; }
.models-archive-cta h2 { max-width:700px; margin:0 auto 35px; font-size:clamp(2.8rem,5vw,5.7rem); line-height:.91; letter-spacing:-.075em; }
/* Journal */
.journal-hero { padding:185px 0 100px; color:#fff; background:#102127; }
.journal-hero__grid { display:grid; grid-template-columns:1.2fr .8fr; align-items:end; gap:70px; margin-top:42px; }
.journal-hero h1 { margin:0; font-size:clamp(4rem,8vw,8.2rem); line-height:.84; letter-spacing:-.09em; }
.journal-hero__grid p { max-width:405px; margin:0 0 9px; color:#b8c8cc; font-size:1.08rem; line-height:1.7; }
.journal-grid-section { padding:clamp(76px,10vw,145px) 0; }
.journal-grid-section__bar { display:flex; justify-content:space-between; gap:20px; margin-bottom:38px; padding-bottom:18px; border-bottom:1px solid var(--line); color:#536368; font-size:.82rem; }
.journal-grid-section__bar p { margin:0; }
.journal-grid-section__bar span { font-weight:800; letter-spacing:.07em; text-transform:uppercase; }
.journal-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:28px; }
.journal-card { display:flex; flex-direction:column; min-height:100%; background:var(--warm); }
.journal-card:first-child { grid-column:span 2; }
.journal-card__image { display:block; overflow:hidden; aspect-ratio:1.32; background:#dce8ec; }
.journal-card:first-child .journal-card__image { aspect-ratio:1.72; }
.journal-card__image img { width:100%; height:100%; object-fit:cover; transition:transform .5s; }
.journal-card:hover .journal-card__image img { transform:scale(1.045); }
.journal-card__placeholder { display:grid; width:100%; height:100%; place-items:center; color:var(--blue); font-size:3rem; font-weight:800; line-height:.84; text-align:center; }
.journal-card__body { display:flex; flex:1; flex-direction:column; align-items:flex-start; padding:25px 26px 29px; }
.journal-card__meta { display:flex; justify-content:space-between; width:100%; gap:14px; margin-bottom:17px; color:#5b6a6f; font-size:.66rem; font-weight:800; letter-spacing:.1em; text-transform:uppercase; }
.journal-card__meta span { color:var(--blue-deep); }
.journal-card h2 { margin:0; color:var(--ink); font-size:clamp(1.65rem,2.5vw,2.7rem); line-height:.98; letter-spacing:-.06em; }
.journal-card p { margin:15px 0 25px; color:#536368; font-size:.93rem; line-height:1.6; }
.journal-card__link { margin-top:auto; color:var(--ink); font-size:.73rem; font-weight:800; letter-spacing:.09em; text-transform:uppercase; }
.journal-card__link b { display:inline-block; margin-left:8px; color:var(--blue-deep); font-size:1.2rem; transition:transform .2s; }
.journal-card:hover .journal-card__link b { transform:translateX(5px); }
.journal-empty { padding:60px 0; color:#536368; }
.journal-cta { padding:clamp(90px,13vw,165px) 0; color:#fff; text-align:center; background:#0d2b3b; }
.journal-cta h2 { max-width:760px; margin:0 auto 35px; font-size:clamp(2.8rem,5vw,5.7rem); line-height:.91; letter-spacing:-.075em; }
/* Journal single */
body.single-post .site-header { color:var(--ink); }
body.single-post .nav-cta { color:#fff; background:var(--ink); }
.journal-single__hero { padding:175px 0 80px; }
.journal-single__hero-inner { width:min(1080px, calc(100% - 48px)); margin:0 auto; }
.journal-back { display:inline-block; margin-bottom:68px; color:#4e6066; font-size:.72rem; font-weight:800; letter-spacing:.09em; text-transform:uppercase; }
.journal-single__meta { display:flex; flex-wrap:wrap; gap:15px; margin-bottom:23px; color:#596a70; font-size:.7rem; font-weight:800; letter-spacing:.1em; text-transform:uppercase; }
.journal-single__meta span { color:var(--blue-deep); }
.journal-single__hero h1 { max-width:1040px; margin:0; font-size:clamp(3.4rem,7vw,7.2rem); line-height:.88; letter-spacing:-.085em; }
.journal-single__dek { max-width:650px; margin:32px 0 0; color:#526267; font-size:1.13rem; line-height:1.7; }
.journal-single__featured { width:min(1240px, calc(100% - 48px)); margin:0 auto; }
.journal-single__featured img { width:100%; height:auto; max-height:820px; object-fit:cover; }
.journal-single__article { padding:clamp(75px,11vw,150px) 0; }
.journal-single__article-grid { display:grid; grid-template-columns:.38fr 1fr; width:min(1000px, calc(100% - 48px)); margin:0 auto; gap:clamp(50px,10vw,150px); }
.journal-single__aside { position:sticky; top:100px; align-self:start; max-width:210px; color:#5a6a70; font-size:.88rem; line-height:1.6; }
.journal-single__aside .eyebrow { color:var(--ink); }
.journal-single__aside > div { width:48px; height:3px; margin:20px 0; background:var(--blue); }
.journal-single__aside a { display:inline-block; margin-top:18px; color:var(--ink); border-bottom:1px solid var(--ink); font-size:.7rem; font-weight:800; letter-spacing:.08em; text-transform:uppercase; }
.journal-single__aside span { margin-left:5px; color:var(--blue-deep); font-size:1rem; }
.journal-single__content { max-width:700px; color:#34464b; font-size:1.06rem; line-height:1.78; }
.journal-single__content > :first-child { margin-top:0; }
.journal-single__content h2 { margin:2.3em 0 .65em; padding-top:.75em; border-top:1px solid var(--line); color:var(--ink); font-size:clamp(1.8rem,3vw,2.7rem); line-height:1; letter-spacing:-.06em; }
.journal-single__content h3 { margin:1.8em 0 .45em; color:var(--ink); font-size:1.25rem; line-height:1.1; letter-spacing:-.04em; }
.journal-single__content p { margin:0 0 1.4em; }
.journal-single__content a { color:var(--blue-deep); text-decoration:underline; text-underline-offset:3px; }
.journal-single__content blockquote { margin:2em 0; padding:8px 0 8px 28px; border-left:4px solid var(--blue); color:var(--ink); font-size:1.45rem; font-weight:700; line-height:1.25; letter-spacing:-.035em; }
.journal-single__content img { width:100%; height:auto; margin:2em 0; }
.journal-single__content ul, .journal-single__content ol { margin:0 0 1.5em; padding-left:1.2em; }
.journal-single__content li { margin:.4em 0; }
.journal-single__cta { padding:clamp(92px,13vw,175px) 0; color:#fff; text-align:center; background:var(--blue); }
.journal-single__cta h2 { max-width:800px; margin:0 auto 36px; font-size:clamp(2.8rem,5.3vw,5.8rem); line-height:.9; letter-spacing:-.075em; }
@media (max-width:760px) { .journal-single__hero { padding:125px 0 58px; } .journal-single__hero-inner, .journal-single__featured, .journal-single__article-grid { width:calc(100% - 32px); } .journal-back { margin-bottom:42px; } .journal-single__article-grid { grid-template-columns:1fr; gap:32px; } .journal-single__aside { position:static; max-width:100%; } }
/* Residential and commercial */
.service-hero { min-height:750px; min-height:90svh; display:flex; align-items:end; padding:155px 0 82px; color:#fff; background:center/cover; }
.service-page--residential .service-hero { background-color:#0d2b3b; }
.service-page--commercial .service-hero { background-color:#0d2b3b; }
.service-hero__copy { max-width:790px; }
.service-hero h1 { margin:0; font-size:clamp(3.7rem,7.6vw,7.4rem); line-height:.86; letter-spacing:-.085em; }
.service-hero p:not(.eyebrow) { max-width:500px; margin:28px 0 34px; font-size:1.1rem; line-height:1.6; }
.service-intro { padding:clamp(88px,12vw,165px) 0; }
.service-intro__grid { display:grid; grid-template-columns:1fr 1fr; gap:clamp(55px,10vw,170px); }
.service-intro h2, .service-image-pair h2, .service-content h2, .service-pillars h2, .service-cta h2 { margin:0; font-size:clamp(2.7rem,5.4vw,5.85rem); line-height:.92; letter-spacing:-.075em; }
.service-intro__grid > div:last-child { max-width:500px; color:#4c5c61; font-size:1.07rem; line-height:1.72; }
.service-intro__grid > div:last-child p:first-child { margin-top:0; }
.service-image-pair { display:grid; grid-template-columns:1fr 1fr; min-height:580px; }
.service-image-pair__image { min-height:390px; background:center/cover; }
.service-page--residential .service-image-pair__image { background-color:#dbe8ed; }
.service-page--commercial .service-image-pair__image { background-color:#dbe8ed; }
.service-image-pair__copy { display:flex; flex-direction:column; justify-content:center; align-items:flex-start; padding:clamp(52px,8vw,130px); color:#fff; background:#0d2b3b; }
.service-page--commercial .service-image-pair__copy { background:var(--blue); }
.service-image-pair__copy p:not(.eyebrow) { max-width:420px; margin:26px 0 0; color:#c3d5db; line-height:1.7; }
.service-page--commercial .service-image-pair__copy p:not(.eyebrow) { color:#e4f4fa; }
.service-content { display:grid; grid-template-columns:.75fr 1.25fr; gap:clamp(55px,10vw,160px); padding:clamp(95px,13vw,170px) 0; }
.service-content__body { max-width:720px; color:#405156; font-size:1.04rem; line-height:1.75; }
.service-content__body > :first-child { margin-top:0; }
.service-content__body h2, .service-content__body h3 { margin:1.7em 0 .45em; color:var(--ink); font-size:1.45rem; line-height:1.1; letter-spacing:-.045em; }
.service-content__body img { height:auto; margin:28px 0; }
.service-pillars { padding:clamp(85px,11vw,150px) 0; background:var(--warm); }
.service-pillars__head { display:flex; align-items:end; justify-content:space-between; gap:40px; }
.pillar-grid { display:grid; grid-template-columns:repeat(3,1fr); margin-top:52px; border-top:1px solid var(--line); }
.pillar-grid article { min-height:290px; padding:28px 30px 20px 0; border-right:1px solid var(--line); }
.pillar-grid article + article { padding-left:30px; }
.pillar-grid article:last-child { border-right:0; }
.pillar-grid span { color:var(--blue-deep); font-size:.7rem; font-weight:800; letter-spacing:.1em; }
.pillar-grid h3 { margin:53px 0 14px; font-size:2rem; line-height:.98; letter-spacing:-.055em; }
.pillar-grid p { max-width:290px; margin:0; color:#546369; line-height:1.6; }
.service-cta { padding:clamp(95px,14vw,185px) 0; color:#fff; text-align:center; background:#0d2b3b; }
.service-page--commercial .service-cta { background:var(--blue); }
.service-cta h2 { max-width:820px; margin:0 auto 35px; }
/* Contact */
.contact-hero { padding:190px 0 100px; color:#fff; background:linear-gradient(115deg,#0d2b3b,#168ac8); }
.contact-hero h1 { max-width:850px; margin:0; font-size:clamp(4rem,8vw,8rem); line-height:.84; letter-spacing:-.09em; }
.contact-hero p:not(.eyebrow) { max-width:500px; margin:29px 0 0; color:#d8edf5; font-size:1.1rem; line-height:1.7; }
.contact-main { padding:clamp(90px,13vw,175px) 0; }
.contact-main__grid { display:grid; grid-template-columns:.8fr 1.2fr; align-items:start; gap:clamp(54px,10vw,160px); }
.contact-details h2, .contact-form-wrap h2 { margin:0; font-size:clamp(2.5rem,4.8vw,5.1rem); line-height:.92; letter-spacing:-.075em; }
.contact-details > p:not(.eyebrow) { max-width:420px; margin:29px 0 0; color:#526166; font-size:1.05rem; line-height:1.7; }
.contact-details__notes { margin-top:48px; border-top:1px solid var(--line); }
.contact-details__notes > div { display:flex; gap:18px; padding:14px 0; border-bottom:1px solid var(--line); }
.contact-details__notes span { color:var(--blue-deep); font-size:.7rem; font-weight:800; letter-spacing:.08em; }
.contact-details__notes p { margin:0; font-weight:700; }
.contact-form-wrap { padding:clamp(30px,5vw,60px); background:var(--warm); }
.contact-form-wrap h2 { margin-bottom:38px; font-size:clamp(2rem,3.5vw,3.7rem); }
.contact-form p { margin:0 0 22px; }
.contact-form label { display:block; margin-bottom:8px; color:#233238; font-size:.72rem; font-weight:800; letter-spacing:.09em; text-transform:uppercase; }
.contact-form label span { color:var(--blue-deep); }
.contact-form input:not([type="hidden"]), .contact-form select, .contact-form textarea { width:100%; padding:13px 0; border:0; border-bottom:1px solid #aebdc1; border-radius:0; outline:0; color:var(--ink); background:transparent; font:inherit; transition:border-color .2s; }
.contact-form textarea { resize:vertical; }
.contact-form input:focus, .contact-form select:focus, .contact-form textarea:focus { border-color:var(--blue-deep); }
.contact-form__honeypot { position:absolute; left:-9999px; }
.contact-notice { margin:0 0 24px; padding:14px 16px; color:#872b2b; background:#f9e5e5; font-size:.9rem; }
.contact-notice--success { color:#155d3d; background:#e1f3e8; }
.contact-content { max-width:760px; padding-bottom:100px; color:#46575c; line-height:1.75; }
.contact-content:empty { display:none; }
/* Site refit notice */
.site-notice { position:fixed; z-index:100000; inset:0; display:grid; place-items:center; padding:24px; background:rgba(7,20,28,.44); }
.site-notice[hidden] { display:none; }
.site-notice__panel { width:min(100%,640px); padding:clamp(42px,7vw,80px); color:#fff; background:var(--blue); box-shadow:0 25px 70px rgba(4,16,23,.34); }
.site-notice__panel h2 { max-width:530px; margin:0; font-size:clamp(2.7rem,5vw,5.2rem); line-height:.89; letter-spacing:-.075em; }
.site-notice__panel p:not(.eyebrow) { max-width:470px; margin:26px 0 34px; color:#e7f6fc; font-size:1.05rem; line-height:1.7; }
.site-notice__panel .button { border:0; cursor:pointer; }
.site-notice__actions { display:flex; flex-wrap:wrap; align-items:center; gap:22px; }
.site-notice__messenger { color:#fff; border-bottom:1px solid rgba(255,255,255,.55); font-size:.73rem; font-weight:800; letter-spacing:.08em; text-transform:uppercase; }
.site-notice__messenger span { display:inline-block; margin-left:7px; font-size:1.1rem; }
body.has-site-notice { overflow:hidden; }
@media (max-width:760px) { .site-notice { padding:16px; } .site-notice__panel { padding:46px 30px; } }
@media (max-width:760px) { .contact-hero { padding:140px 0 72px; } .contact-main__grid { grid-template-columns:1fr; gap:48px; } .contact-form-wrap { padding:32px 25px; } }
@media (max-width:760px) { .service-hero { min-height:680px; padding-bottom:56px; } .service-intro__grid, .service-image-pair, .service-content { grid-template-columns:1fr; gap:28px; } .service-image-pair__copy { padding:70px 24px; } .service-pillars__head { display:block; } .pillar-grid { grid-template-columns:1fr; margin-top:35px; } .pillar-grid article, .pillar-grid article + article { min-height:0; padding:27px 0; border-right:0; border-bottom:1px solid var(--line); } .pillar-grid h3 { margin:28px 0 10px; } }
@media (max-width:760px) { .journal-hero { padding:135px 0 70px; } .journal-hero__grid { grid-template-columns:1fr; gap:27px; margin-top:28px; } .journal-grid-section__bar { display:block; } .journal-grid-section__bar span { display:block; margin-top:9px; } .journal-grid { grid-template-columns:1fr; gap:18px; } .journal-card:first-child { grid-column:auto; } .journal-card:first-child .journal-card__image { aspect-ratio:1.32; } .journal-card__body { padding:24px; } }
@media (max-width:760px) { .models-archive-hero { padding:135px 0 70px; } .models-archive-hero__grid { grid-template-columns:1fr; gap:27px; margin-top:28px; } .models-collection__bar { display:block; } .models-collection__bar span { display:block; margin-top:9px; } .models-archive-grid { grid-template-columns:1fr; gap:18px; } .models-archive-card__body { padding:24px; } }
@media (max-width:760px) { .model-hero { padding:125px 0 70px; } .model-hero__grid, .model-overview__grid, .model-details__grid { grid-template-columns:1fr; } .model-hero__grid { gap:54px; } .model-sheet { justify-self:center; width:min(78vw,390px); } .model-overview__grid { gap:24px; } .model-aside { position:static; max-width:100%; } }
@media (max-width:760px) { .about-hero { min-height:680px; padding-bottom:55px; } .about-manifesto__grid, .about-content, .about-process { grid-template-columns:1fr; gap:28px; } .about-image-band { height:450px; } .capability-grid { grid-template-columns:1fr; } .capability-grid article, .capability-grid article + article { min-height:0; padding:26px 0; border-right:0; border-bottom:1px solid rgba(255,255,255,.25); } .capability-grid h3 { margin:28px 0 10px; } .about-process li { grid-template-columns:45px 1fr; gap:12px; } .about-process li p { grid-column:2; } }
@media (max-width:760px) { body.admin-bar .site-header { top:46px; } .shell { width:min(100% - 32px, var(--max)); } .nav { height:72px; } .nav-links { display:none; } .hero { min-height:680px; padding-bottom:56px; } .intro, .feature { grid-template-columns:1fr; } .intro { gap:24px; } .split-links, .model-grid { grid-template-columns:1fr; } .split-link { min-height:330px; padding:28px; } .section-head { display:block; } .section-head p { margin-top:18px; } .model-grid { gap:16px; } .feature { min-height:0; } .feature-copy { padding:70px 24px; } .footer-top, .footer-bottom { display:block; } .footer-links { justify-content:flex-start; margin-top:35px; } .footer-bottom p + p { margin-top:10px; } }
