@font-face{font-family:"Space Grotesk";font-style:normal;font-weight:300 700;font-display:swap;src:url(/fonts/SpaceGrotesk-var.woff2) format("woff2")}
@font-face{font-family:"Inter";font-style:normal;font-weight:100 900;font-display:swap;src:url(/fonts/Inter-var.woff2) format("woff2")}
:root{--ink-900:#0B1220;--ink-800:#121C2E;--ink-600:#3A4556;--paper:#F6F5F1;--white:#FFFFFF;--signal:#F5A524;--signal-deep:#C97F0B;--on-signal:#0B1220;--line-dark:rgba(255,255,255,.14);--line-light:#D9D6CE}
*{box-sizing:border-box}
html{font-size:125%;scroll-behavior:smooth;-webkit-text-size-adjust:100%;scroll-padding-top:160px}
body{margin:0;background:var(--paper);color:var(--ink-900);font-family:"Inter",Arial,sans-serif;font-size:1rem;line-height:1.6}
img,svg{max-width:100%;display:block}img,video{height:auto}video{max-width:100%}
[hidden]{display:none!important}
a{color:var(--ink-900);text-underline-offset:4px;text-decoration-thickness:2px}
h1,h2{font-family:"Space Grotesk",Arial,sans-serif;font-weight:700;letter-spacing:-.02em;line-height:1.05;margin:0 0 .5em}
h1{font-size:clamp(2.6rem,7vw,4.4rem)}h2{font-size:clamp(1.9rem,4vw,2.6rem)}h3{font-size:1.35rem;line-height:1.2;margin:0 0 .5em}
p{margin:0 0 1em}.wrap{width:100%;max-width:1200px;margin:auto;padding:0 24px}
:focus-visible{outline:4px solid var(--ink-900);outline-offset:4px}
[data-tone="dark"] :focus-visible,header :focus-visible,footer :focus-visible,.callbar :focus-visible{outline-color:var(--signal)}
.skip{position:absolute;left:-999px;min-height:56px;padding:12px;background:var(--paper);color:var(--ink-900)}.skip:focus{left:12px;top:12px;z-index:99}
header.top{position:sticky;top:0;z-index:30;background:var(--ink-900);color:var(--paper);border-bottom:1px solid var(--line-dark)}
header.top .in{max-width:1440px;min-height:72px;margin:auto;padding:8px 24px;display:flex;gap:16px;align-items:center;flex-wrap:wrap}
.brand{display:flex;align-items:center;gap:10px;min-height:56px;min-width:0;flex:1;color:var(--paper);text-decoration:none;font-family:"Space Grotesk",Arial,sans-serif;font-weight:700;line-height:1.1;font-size:1rem}
.brand .mark{width:40px;height:40px;flex:none}
.lang{display:inline-flex;align-items:center;min-height:56px;padding:0 16px;color:var(--paper);background:var(--ink-900);border:2px solid var(--line-dark);border-radius:4px;text-decoration:none;font-weight:600}
.btn{display:inline-flex;align-items:center;justify-content:center;min-height:64px;gap:.5em;padding:12px 24px;background:var(--signal);color:var(--on-signal);border:0;border-radius:4px;font:800 1.1rem/1.25 "Inter",Arial,sans-serif;text-align:center;text-decoration:none;cursor:pointer;transition:background-color .15s,color .15s}
.btn:hover{background:var(--paper);color:var(--ink-900)}.btn:active{box-shadow:inset 0 0 0 4px var(--signal-deep)}
.btn.line{min-height:56px;font-size:1rem;background:var(--white);color:var(--ink-900);border:2px solid var(--ink-900)}
.btn.line:hover{background:var(--paper);color:var(--ink-900)}.btn .ico{width:26px;height:26px;flex:none}
.head-cta{order:3;width:100%}nav.links{display:none;gap:18px}nav.links a{color:var(--paper);min-height:56px;display:flex;align-items:center;text-decoration:none}
.mobile-menu{order:4;width:100%;border-top:1px solid var(--line-dark)}.mobile-menu summary{min-height:64px;display:flex;align-items:center;cursor:pointer;font-weight:600}
.mobile-menu nav{display:flex;flex-wrap:wrap;gap:12px}.mobile-menu a{display:flex;min-height:56px;align-items:center;color:var(--paper)}
section{padding:64px 0;scroll-margin-top:160px}
[data-tone="dark"]{background:var(--ink-900);color:var(--paper)}
[data-tone="light"]{background:var(--paper);color:var(--ink-900)}
.section-head{max-width:760px;margin:0 0 32px}.section-head p{color:var(--ink-600)}
[data-tone="dark"] .section-head p{color:var(--paper)}
.eyebrow{font-size:.9rem;letter-spacing:.1em;text-transform:uppercase;font-weight:600;margin-bottom:16px}
.lede{font-size:1rem;max-width:38em}.cta-row{display:flex;flex-wrap:wrap;gap:16px;margin:24px 0}.cta-end{margin:32px 0 0}
.hero{position:relative;isolation:isolate;padding:32px 0 0;overflow:hidden}
.hero picture{position:absolute;inset:0;z-index:-2}.hero picture img{width:100%;height:100%;object-fit:cover;object-position:65% 45%}
.hero::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,var(--ink-900),transparent)}
.hero-copy{max-width:720px;background:var(--ink-900);color:var(--paper);padding:24px;margin-bottom:96px}
.hero .line{background:var(--ink-900);color:var(--paper);border-color:var(--paper)}
.chips{list-style:none;display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px;margin:0;padding:24px;background:var(--ink-800);color:var(--paper);font-size:.9rem;font-weight:600}
/* A native radio comparison is always the baseline; enhancement is optional. */
.ba{border:0;padding:0;margin:0;min-width:0}.ba legend{float:none;width:auto;font-size:1rem;font-weight:600;margin:0 0 16px}
.ba > input{position:absolute;opacity:0;width:.05rem;height:.05rem;margin:0}
.ba-stage{clear:both;width:100%;position:relative;--ba:50%;aspect-ratio:16/10;overflow:hidden;background:var(--ink-800)}
.ba img{display:block;width:100%;height:100%;object-fit:cover}.ba .ba-before{position:absolute;inset:0;clip-path:inset(0 calc(100% - var(--ba)) 0 0)}
.ba-stage::after{content:"";position:absolute;top:0;bottom:0;left:var(--ba);width:.15rem;background:var(--signal);pointer-events:none}
.ba-tags{position:absolute;top:16px;left:16px;right:16px;display:flex;justify-content:space-between;pointer-events:none}
.ba-tags span{background:var(--ink-900);color:var(--paper);padding:4px 12px;font-size:.9rem;text-transform:uppercase;letter-spacing:.08em}
.ba-steps{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px}.ba-steps label{min-height:56px;display:flex;align-items:center;padding:8px 16px;border:2px solid var(--ink-900);cursor:pointer;font-size:.9rem}
.ba input:focus-visible ~ .ba-steps{outline:4px solid var(--ink-900);outline-offset:4px}
.ba input[value="0"]:checked ~ .ba-stage{--ba:100%}
.ba input[value="25"]:checked ~ .ba-stage{--ba:75%}
.ba input[value="50"]:checked ~ .ba-stage{--ba:50%}
.ba input[value="75"]:checked ~ .ba-stage{--ba:25%}
.ba input[value="100"]:checked ~ .ba-stage{--ba:0%}
.ba input[value="0"]:checked ~ .ba-steps label[data-v="0"],.ba input[value="25"]:checked ~ .ba-steps label[data-v="25"],.ba input[value="50"]:checked ~ .ba-steps label[data-v="50"],.ba input[value="75"]:checked ~ .ba-steps label[data-v="75"],.ba input[value="100"]:checked ~ .ba-steps label[data-v="100"]{background:var(--ink-900);color:var(--paper)}
.ba.enhanced > input,.ba.enhanced .ba-steps{display:none}
.ba-handle{position:absolute;z-index:2;top:50%;left:var(--ba);transform:translate(-50%,-50%);width:3.2rem;height:3.2rem;display:flex;align-items:center;justify-content:center;background:var(--signal);color:var(--on-signal);border:3px solid var(--ink-900);border-radius:50%;cursor:ew-resize;touch-action:none;font-size:1.4rem}
.compare-caption{margin:16px 0 0;font-weight:600}
.projects{display:grid;grid-template-columns:1fr;gap:32px}.project{min-width:0;background:var(--ink-800);color:var(--paper)}
.project summary{list-style:none;cursor:pointer;min-height:64px}.project summary::-webkit-details-marker{display:none}.project summary img{width:100%;aspect-ratio:4/3;object-fit:cover}
.project-caption{display:flex;justify-content:space-between;gap:12px;padding:20px;font-size:1rem;font-weight:600;line-height:1.4}.project-caption::after{content:"+";flex:none}.project[open] .project-caption::after{content:"−"}.project[open] summary img{aspect-ratio:auto}
.project-strip{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;gap:12px;padding:0 20px 20px}.project-strip img{flex:0 0 85%;width:85%;object-fit:cover;aspect-ratio:4/3;scroll-snap-align:start}
.video-wrap{position:relative;margin:0 20px 20px}.video-wrap video{display:block;width:100%;background:var(--ink-900)}.video-play{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);min-width:64px}
.grid{display:grid;grid-template-columns:1fr;gap:0 24px}.svc{display:flex;gap:16px;align-items:center;min-height:96px;padding:20px 0;border-bottom:1px solid var(--line-light);text-decoration:none;font-weight:600;font-size:1rem}
.svc .ico{width:36px;height:36px;flex:none}.svc span{flex:1}.svc::after{content:"↗"}.trades-note{color:var(--ink-600);margin-top:24px;font-size:.9rem}
.steps{list-style:none;display:grid;gap:32px;padding:0;margin:0}.step-number{display:block;font:700 96px/1.05 "Space Grotesk",Arial,sans-serif;letter-spacing:-.02em;color:var(--signal);margin-bottom:20px}
.steps p{color:var(--paper)}.area-list{list-style:none;display:flex;flex-wrap:wrap;gap:12px;padding:0;margin:0}.area-list li{padding:12px 20px;border:1px solid var(--line-light);font-weight:600}
.faq .wrap{max-width:960px}.faq details{border-bottom:1px solid var(--line-light)}.faq summary{min-height:80px;display:flex;align-items:center;justify-content:space-between;gap:20px;cursor:pointer;list-style:none;font-weight:600;padding:16px 0}.faq summary::after{content:"+"}.faq details[open] summary::after{content:"−"}.faq details p{color:var(--ink-600)}
.estimate .wrap{max-width:960px}form.card{display:grid;gap:24px}.step{min-width:0;padding:24px;margin:0;border:2px solid var(--line-light);background:var(--white);color:var(--ink-900);display:grid;gap:20px;scroll-margin-top:160px}.step:target{border-color:var(--ink-900)}
legend{float:left;width:100%;padding:0;font-size:1.35rem;line-height:1.2;font-weight:600}legend+*{clear:both}.step-count{display:block;font-size:.9rem;letter-spacing:.06em;text-transform:uppercase;margin-bottom:12px}
.choices{display:grid;gap:12px;grid-template-columns:repeat(auto-fill,minmax(128px,1fr))}.choice{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;min-height:120px;padding:40px 10px 16px;border:2px solid var(--ink-600);background:var(--white);color:var(--ink-900);text-align:center;font-weight:600;font-size:.9rem;line-height:1.3;cursor:pointer}
.choice:hover,.choice:has(input:checked){background:var(--paper);color:var(--ink-900);border-color:var(--ink-900)}.choice:has(input:checked){box-shadow:inset 0 0 0 2px var(--ink-900)}.choice input{position:absolute;top:10px;left:10px;width:24px;height:24px;margin:0;accent-color:var(--ink-900)}.choice .ico{width:44px;height:44px}
label{display:block;font-weight:600;margin:0 0 6px}input[type=text],input[type=tel],input[type=email],textarea{width:100%;min-height:60px;padding:12px 16px;border:2px solid var(--ink-600);border-radius:4px;font:inherit;color:var(--ink-900);background:var(--white)}textarea{min-height:140px;resize:vertical}input::placeholder,textarea::placeholder{color:var(--ink-600);opacity:1}
.hint,.privacy{color:var(--ink-600);font-size:.95rem;margin:0}.add-photos{width:100%}.file{width:100%;min-height:56px;font:inherit;font-size:.9rem}.file::file-selector-button{min-height:56px;margin-right:12px;padding:8px 16px;border:2px solid var(--ink-900);background:var(--paper);color:var(--ink-900);font:inherit}
.next{justify-self:start}.times{border:0;padding:0;margin:0;min-width:0}.times legend{font-size:1rem;margin-bottom:12px}.time-row{display:grid;gap:12px;grid-template-columns:repeat(auto-fill,minmax(140px,1fr))}.time-row .choice{min-height:64px;flex-direction:row;padding:12px 12px 12px 44px}.time-row .choice input{top:50%;transform:translateY(-50%)}
.consent{display:grid;grid-template-columns:44px 1fr;gap:12px;background:var(--paper);color:var(--ink-900);padding:16px}.consent input{width:40px;height:40px;margin:0;accent-color:var(--ink-900)}.consent label{font-size:.95rem;margin:0}.textlinks{display:flex;flex-wrap:wrap;gap:8px 24px}.textlinks a{display:inline-flex;align-items:center;min-height:48px;font-weight:600}
.hp{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}form.card .btn[type=submit]{width:100%}
.legal{padding:64px 0}.legal .wrap{max-width:880px}.legal h2{font-size:1.7rem;margin-top:1.5em}.legal .updated{color:var(--ink-600);font-size:.9rem}.legal p,.legal li{overflow-wrap:anywhere}
footer{padding:48px 0 140px;background:var(--ink-900);color:var(--paper)}footer a{color:var(--paper);display:inline-flex;align-items:center;min-height:48px}footer h2{font-size:1.35rem;margin-top:32px}.foot-links{list-style:none;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:12px}
.callbar{display:none;position:fixed;bottom:0;left:0;right:0;z-index:40;padding:12px;background:var(--ink-900);color:var(--paper)}.callbar .btn{width:100%}.msg{max-width:800px;margin:auto;padding:64px 24px}.msg .card{padding:24px;background:var(--white);color:var(--ink-900)}
@keyframes entry{from{opacity:.6;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.enter{animation:entry .35s ease-out both}
@media (max-width:979px) and (min-height:560px){.callbar{display:block}}
@media (min-width:720px){.projects{grid-template-columns:1fr 1fr}.grid{grid-template-columns:repeat(3,minmax(0,1fr))}.steps{grid-template-columns:repeat(3,minmax(0,1fr))}.step{padding:32px}}
@media (min-width:1100px){nav.links{display:flex}.mobile-menu{display:none}.head-cta{width:auto;order:0;font-size:1rem}section{padding:96px 0}.hero{padding-top:72px}.hero-copy{padding:32px;margin-bottom:96px}.brand{font-size:1.1rem}footer{padding-bottom:64px}html{scroll-padding-top:96px}}
@media (max-width:719px){header.top .in{padding:8px 20px;gap:8px}.brand{font-size:.9rem}.brand .mark{width:32px;height:32px}.lang{padding:0 12px}.mobile-menu{position:absolute;top:100%;right:0;width:auto;min-width:100px;background:var(--ink-900);padding:0 20px}.mobile-menu[open]{width:100%}.hero{padding-top:16px}.hero-copy{padding:12px 0;margin-bottom:64px}.hero .eyebrow{font-size:.9rem}.hero h1{font-size:2.6rem}.hero .lede{font-size:.95rem}.cta-row .btn{width:100%}.hero .cta-row{margin:16px 0}.wrap{padding:0 20px}.project-caption{padding:16px;font-size:.9rem}.step{padding:16px}.consent{padding:12px;gap:8px}.head-cta{font-size:1rem}}
@media (prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important;animation:none!important}.enter{animation:none}}

/* Keep each admitted pair distinct within the approved comparison section. */
.comparison .ba + .ba{margin-top:48px}

/* CCHOME-IDEAS-1: illustrations are separate from the real-work gallery. */
.ideas-intro{padding:5rem 0 2.5rem}.ideas-intro .lede{max-width:48rem}.ideas-section{padding:1.5rem 0 2.5rem}.ideas-section:last-child{padding-bottom:5rem}.ideas-section h2{margin-bottom:1.25rem}.ideas-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.5rem}.idea-card{background:var(--white);border:1px solid var(--line-light);border-radius:14px;overflow:hidden;min-width:0}.idea-picture{position:relative;background:var(--paper)}.idea-picture img{width:100%;height:auto;display:block}.idea-badge{display:block;padding:.6rem .85rem;background:var(--ink-900);color:var(--white);font-size:.8rem;font-weight:600;line-height:1.4}.idea-card-body{padding:1.1rem;display:flex;flex-direction:column;gap:1rem}.idea-card h3{font-size:1.1rem;margin:0}.idea-estimate{align-self:flex-start;white-space:normal;text-align:center}.ideas-page .eyebrow{color:var(--ink-600);background:var(--paper)}
@media(max-width:1000px){.ideas-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:620px){.ideas-intro{padding-top:3rem}.ideas-grid{grid-template-columns:1fr}.idea-card-body{padding:1rem}}
/* Picture source selection must not change the approved slider/tile geometry. */
.ba-stage>picture,.project summary>picture{display:contents}
