:root { --green-900: #1d3d1a;
--green-700: #2d5a27;
--green-500: #4a7c45;
--green-300: #7bc67a;
--gold: #b8860b;
--gold-soft: #d4a93c;
--winter: #7fb6d9; --cta: var(--green-700);
--cta-hover: var(--green-900); --font-display: 'Archivo', 'Helvetica Neue', Arial, sans-serif;
--font-body: 'Archivo', 'Helvetica Neue', Arial, sans-serif;
--font-hand: 'Archivo', 'Helvetica Neue', Arial, sans-serif;
--radius: 14px;
--radius-lg: 22px;
--shadow-1: 0 1px 2px rgba(20, 32, 20, 0.06), 0 8px 24px -12px rgba(20, 32, 20, 0.18);
--shadow-2: 0 2px 6px rgba(20, 32, 20, 0.08), 0 24px 48px -16px rgba(20, 32, 20, 0.28);
--wrap: 1240px;
} html[data-theme="warm"] {
--bg: #faf6ed;
--bg-alt: #f2ebdb;
--surface: #ffffff;
--ink: #1a2419;
--muted: #5d6757;
--line: #e4dcc8;
--brand: var(--green-700);
--brand-bright: var(--green-500);
--accent: var(--gold);
--hand-color: var(--green-500);
--header-bg: rgba(250, 246, 237, 0.88);
}
html[data-theme="luxe"] {
--bg: #0e1812;
--bg-alt: #13201a;
--surface: #18261f;
--ink: #f2efe6;
--muted: #9fae9f;
--line: #25362c;
--brand: var(--green-300);
--brand-bright: var(--green-300);
--accent: var(--gold-soft);
--hand-color: var(--gold-soft);
--header-bg: rgba(14, 24, 18, 0.85);
--cta: #3f7a39;
--cta-hover: #2d5a27;
--shadow-1: 0 1px 2px rgba(0, 0, 0, 0.3), 0 8px 24px -12px rgba(0, 0, 0, 0.5);
--shadow-2: 0 2px 6px rgba(0, 0, 0, 0.35), 0 24px 48px -16px rgba(0, 0, 0, 0.6);
}
html[data-theme="fresh"] {
--bg: #ffffff;
--bg-alt: #f2f7f1;
--surface: #ffffff;
--ink: #15211b;
--muted: #5b6b5e;
--line: #e2eae1;
--brand: #2f7d33;
--brand-bright: #2f7d33;
--accent: var(--gold);
--hand-color: #2f7d33;
--header-bg: rgba(255, 255, 255, 0.88);
} * { box-sizing: border-box; }
html { scroll-behavior: smooth; }
html[data-motion="off"] { scroll-behavior: auto; }
body {
margin: 0;
font-family: var(--font-body);
font-size: 17px;
line-height: 1.6;
color: var(--ink);
background: var(--bg);
-webkit-font-smoothing: antialiased;
transition: background 0.4s ease, color 0.4s ease;
}
img { max-width: 100%; display: block; }
a { color: var(--brand); }
h1, h2, h3, h4 {
font-family: var(--font-display);
line-height: 1.08;
margin: 0;
text-wrap: balance;
font-weight: 700;
}
p { text-wrap: pretty; }
.wrap { max-width: var(--wrap); margin: 0 auto; padding: 0 24px; }
section { position: relative; }
.hand {
font-family: var(--font-hand);
color: var(--hand-color);
font-weight: 500;
letter-spacing: -0.026em;
} .sec-head { max-width: 760px; margin-bottom: 48px; }
.sec-head--center { margin-inline: auto; text-align: center; }
.eyebrow {
display: inline-flex;
align-items: center;
gap: 10px;
font-size: 13px;
font-weight: 700;
letter-spacing: 0.16em;
text-transform: uppercase;
color: var(--brand);
margin: 0 0 14px 0;
}
.eyebrow::before {
content: "";
width: 26px;
height: 2px;
background: var(--accent);
border-radius: 2px;
}
.sec-head--center .eyebrow::after {
content: "";
width: 26px;
height: 2px;
background: var(--accent);
border-radius: 2px;
}
.sec-head h2 { font-size: clamp(34px, 4.6vw, 56px); letter-spacing: -0.015em; }
.sec-head .lede { font-size: 18px; color: var(--muted); margin: 18px 0 0 0; } .btn {
display: inline-flex;
align-items: center;
justify-content: center;
gap: 10px;
padding: 16px 28px;
border-radius: 999px;
font-family: var(--font-body);
font-size: 16px;
font-weight: 700;
text-decoration: none;
cursor: pointer;
border: none;
transition: transform 0.2s ease, box-shadow 0.2s ease, background 0.25s ease, color 0.25s ease;
}
.btn svg { width: 18px; height: 18px; flex: none; }
.btn--solid { background: var(--cta); color: #fff; box-shadow: var(--shadow-1); }
.btn--solid:hover { background: var(--cta-hover); transform: translateY(-2px); box-shadow: var(--shadow-2); }
.btn--solid:active { transform: translateY(0); }
.btn--ghost {
background: transparent;
color: var(--ink);
border: 1.5px solid var(--line);
}
.btn--ghost:hover { border-color: var(--brand); color: var(--brand); transform: translateY(-2px); }
.btn--glass {
background: rgba(255, 255, 255, 0.12);
color: #fff;
border: 1px solid rgba(255, 255, 255, 0.35);
backdrop-filter: blur(10px);
-webkit-backdrop-filter: blur(10px);
}
.btn--glass:hover { background: rgba(255, 255, 255, 0.22); transform: translateY(-2px); } [data-reveal] {
opacity: 0;
transform: translateY(26px);
transition: opacity 0.7s cubic-bezier(0.22, 0.61, 0.36, 1), transform 0.7s cubic-bezier(0.22, 0.61, 0.36, 1);
transition-delay: var(--rd, 0s);
}
[data-reveal].is-in { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) {
[data-reveal] { opacity: 1 !important; transform: none !important; transition: none !important; }
}
html[data-motion="off"] [data-reveal] { opacity: 1; transform: none; transition: none; } .site-header {
position: fixed;
inset: 0 0 auto 0;
z-index: 90;
transition: background 0.35s ease, box-shadow 0.35s ease, padding 0.35s ease;
padding: 18px 0;
}
.site-header .wrap {
display: flex;
align-items: center;
gap: 28px;
}
.site-header.is-scrolled {
background: var(--header-bg);
backdrop-filter: blur(14px);
-webkit-backdrop-filter: blur(14px);
box-shadow: 0 1px 0 var(--line);
padding: 10px 0;
}
.logo {
display: flex;
flex-direction: column;
line-height: 1;
text-decoration: none;
color: #fff;
transition: color 0.3s ease;
}
.site-header.is-scrolled .logo { color: var(--ink); }
.logo b {
font-family: var(--font-display);
font-size: 21px;
font-weight: 800;
letter-spacing: -0.01em;
}
.logo span {
font-size: 10.5px;
font-weight: 700;
letter-spacing: 0.22em;
text-transform: uppercase;
opacity: 0.75;
margin-top: 4px;
}
.main-nav {
display: flex;
gap: 4px;
margin-left: auto;
}
.main-nav a {
font-size: 15px;
font-weight: 600;
text-decoration: none;
color: rgba(255, 255, 255, 0.85);
padding: 8px 13px;
border-radius: 999px;
transition: color 0.2s ease, background 0.2s ease;
}
.main-nav a:hover { color: #fff; background: rgba(255, 255, 255, 0.14); }
.site-header.is-scrolled .main-nav a { color: var(--muted); }
.site-header.is-scrolled .main-nav a:hover { color: var(--brand); background: var(--bg-alt); }
.header-cta { display: flex; align-items: center; gap: 14px; }
.header-phone {
display: inline-flex;
align-items: center;
gap: 8px;
font-size: 15px;
font-weight: 700;
text-decoration: none;
color: rgba(255, 255, 255, 0.92);
transition: color 0.2s ease;
}
.header-phone svg { width: 16px; height: 16px; }
.site-header.is-scrolled .header-phone { color: var(--ink); }
.header-phone:hover { color: var(--accent); }
.site-header .btn { padding: 11px 20px; font-size: 15px; }
@media (max-width: 1300px) {
.main-nav { display: none; }
.header-phone span { display: none; }
} .hero {
position: relative;
min-height: 100svh;
display: flex;
align-items: flex-end;
overflow: hidden;
color: #fff;
}
.hero-media {
position: absolute;
inset: -12% 0;
z-index: 0;
will-change: transform;
}
.hero-media img, .hero-media video {
width: 100%;
height: 100%;
object-fit: cover;
}
.hero-media video {
position: absolute;
inset: 0;
opacity: 0;
transition: opacity 1.2s ease;
}
.hero-media video.is-playing { opacity: 1; }
.hero-scrim {
position: absolute;
inset: 0;
z-index: 1;
background:
linear-gradient(to top, rgba(8, 14, 9, 0.82) 0%, rgba(8, 14, 9, 0.35) 38%, rgba(8, 14, 9, 0.18) 62%, rgba(8, 14, 9, 0.42) 100%);
}
.hero-content {
position: relative;
z-index: 2;
width: 100%;
padding: 140px 0 64px;
}
.hero-note {
font-family: var(--font-hand);
font-size: clamp(22px, 2.6vw, 30px);
color: var(--green-300);
margin: 0 0 10px 0;
transform: rotate(-1.5deg);
display: inline-block;
text-shadow: 0 1px 6px rgba(0, 0, 0, 0.45);
}
.hero h1 {
font-size: clamp(42px, 6.4vw, 88px);
font-weight: 800;
letter-spacing: -0.02em;
max-width: 13ch;
text-shadow: 0 2px 18px rgba(0, 0, 0, 0.35);
}
.hero h1 .w {
display: inline-block;
opacity: 0;
transform: translateY(0.5em) rotate(1.2deg);
animation: heroWord 0.7s cubic-bezier(0.22, 0.61, 0.36, 1) forwards;
animation-delay: var(--d, 0s);
}
.hero h1 .w--accent { color: var(--green-300); }
@keyframes heroWord {
to { opacity: 1; transform: none; }
}
.hero-sub {
font-size: clamp(17px, 1.6vw, 20px);
max-width: 52ch;
margin: 20px 0 30px;
color: rgba(255, 255, 255, 0.88);
text-shadow: 0 1px 8px rgba(0, 0, 0, 0.4);
}
.hero-anim {
opacity: 0;
animation: heroFade 0.8s cubic-bezier(0.22, 0.61, 0.36, 1) forwards;
animation-delay: var(--d, 0s);
}
@keyframes heroFade {
from { opacity: 0; transform: translateY(16px); }
to { opacity: 1; transform: none; }
}
@media (prefers-reduced-motion: reduce) {
.hero h1 .w, .hero-anim { opacity: 1 !important; transform: none !important; animation: none !important; }
}
html[data-motion="off"] .hero h1 .w,
html[data-motion="off"] .hero-anim { opacity: 1; transform: none; animation: none; }
.hero-ctas {
display: flex;
flex-wrap: wrap;
align-items: center;
gap: 14px;
margin-bottom: 18px;
}
.hero-phone {
display: inline-flex;
align-items: center;
gap: 8px;
color: rgba(255, 255, 255, 0.85);
font-weight: 600;
font-size: 15.5px;
text-decoration: none;
border-bottom: 1px dashed rgba(255, 255, 255, 0.45);
padding-bottom: 2px;
transition: color 0.2s ease, border-color 0.2s ease;
}
.hero-phone:hover { color: #fff; border-color: var(--green-300); }
.hero-phone svg { width: 15px; height: 15px; }
.hero-trust {
display: flex;
flex-wrap: wrap;
align-items: center;
gap: 10px 22px;
margin-top: 30px;
padding-top: 22px;
border-top: 1px solid rgba(255, 255, 255, 0.22);
font-size: 14.5px;
font-weight: 600;
color: rgba(255, 255, 255, 0.85);
}
.hero-trust .stars { color: #fbbf24; letter-spacing: 2px; font-size: 15px; }
.hero-trust .sep { opacity: 0.4; }
.scroll-cue {
position: absolute;
right: 36px;
bottom: 36px;
z-index: 2;
display: flex;
flex-direction: column;
align-items: center;
gap: 10px;
color: rgba(255, 255, 255, 0.7);
font-size: 11px;
font-weight: 700;
letter-spacing: 0.22em;
text-transform: uppercase;
writing-mode: vertical-rl;
}
.scroll-cue::after {
content: "";
width: 1.5px;
height: 52px;
background: linear-gradient(to bottom, rgba(255, 255, 255, 0.8), transparent);
animation: cueDrop 2s ease-in-out infinite;
}
@keyframes cueDrop {
0% { transform: scaleY(0); transform-origin: top; }
50% { transform: scaleY(1); transform-origin: top; }
51% { transform-origin: bottom; }
100% { transform: scaleY(0); transform-origin: bottom; }
}
@media (prefers-reduced-motion: reduce) { .scroll-cue::after { animation: none; } }
@media (max-width: 720px) {
.scroll-cue { display: none; }
.hero-content { padding-top: 120px; }
} .stats-band { background: var(--bg); padding: 64px 0 56px; }
.stats-grid {
display: grid;
grid-template-columns: repeat(4, 1fr);
gap: 28px;
text-align: center;
}
.stat .num {
font-family: var(--font-display);
font-size: clamp(40px, 4.5vw, 62px);
font-weight: 800;
letter-spacing: -0.02em;
color: var(--brand);
font-variant-numeric: tabular-nums;
}
.stat .num sup { font-size: 0.5em; color: var(--accent); }
.stat .label { font-size: 14.5px; font-weight: 600; color: var(--muted); margin-top: 4px; }
.cred-row {
display: flex;
flex-wrap: wrap;
justify-content: center;
align-items: center;
gap: 14px 40px;
margin-top: 48px;
padding-top: 36px;
border-top: 1px solid var(--line);
}
.cred-row img {
height: 44px;
width: auto;
opacity: 0.75;
filter: grayscale(1);
transition: opacity 0.25s ease, filter 0.25s ease, transform 0.25s ease;
}
.cred-row img:hover { opacity: 1; filter: none; transform: translateY(-3px); }
html[data-theme="luxe"] .cred-row img { filter: grayscale(1) invert(0.9); }
html[data-theme="luxe"] .cred-row img:hover { filter: invert(0.92); }
@media (max-width: 860px) {
.stats-grid { grid-template-columns: repeat(2, 1fr); }
} .seasons { padding: 96px 0; background: var(--bg-alt); overflow: hidden; transition: background 0.5s ease; }
.season-toggle {
display: inline-flex;
background: var(--surface);
border: 1.5px solid var(--line);
border-radius: 999px;
padding: 5px;
gap: 4px;
box-shadow: var(--shadow-1);
}
.season-toggle button {
display: inline-flex;
align-items: center;
gap: 8px;
padding: 11px 22px;
border: none;
border-radius: 999px;
background: transparent;
font-family: var(--font-body);
font-size: 15px;
font-weight: 700;
color: var(--muted);
cursor: pointer;
transition: background 0.3s ease, color 0.3s ease;
}
.season-toggle button svg { width: 17px; height: 17px; }
.season-toggle button.is-active { background: var(--cta); color: #fff; }
body[data-season="winter"] .season-toggle button.is-active { background: #2c5d7c; }
.season-stage {
display: grid;
grid-template-columns: 1.15fr 1fr;
gap: 56px;
align-items: center;
margin-top: 52px;
}
.season-visual {
position: relative;
border-radius: var(--radius-lg);
overflow: hidden;
aspect-ratio: 4 / 3;
box-shadow: var(--shadow-2);
}
.season-visual img {
position: absolute;
inset: 0;
width: 100%;
height: 100%;
object-fit: cover;
opacity: 0;
transform: scale(1.06);
transition: opacity 0.8s ease, transform 1.4s cubic-bezier(0.22, 0.61, 0.36, 1);
}
.season-visual img.is-active { opacity: 1; transform: scale(1); }
.season-badge {
position: absolute;
top: 18px;
left: 18px;
z-index: 2;
background: rgba(255, 255, 255, 0.92);
color: #1a2419;
font-size: 13px;
font-weight: 700;
padding: 8px 16px;
border-radius: 999px;
backdrop-filter: blur(6px);
}
.season-copy h3 {
font-size: clamp(26px, 3vw, 38px);
margin-bottom: 14px;
}
.season-copy .pane { display: none; }
.season-copy .pane.is-active { display: block; animation: paneIn 0.55s cubic-bezier(0.22, 0.61, 0.36, 1); }
@keyframes paneIn {
from { opacity: 0; transform: translateY(14px); }
to { opacity: 1; transform: none; }
}
html[data-motion="off"] .season-copy .pane.is-active { animation: none; }
.season-copy p { color: var(--muted); margin: 0 0 22px; }
.season-list { list-style: none; margin: 0 0 28px; padding: 0; display: grid; gap: 12px; }
.season-list li {
display: flex;
align-items: flex-start;
gap: 12px;
font-weight: 600;
font-size: 16px;
}
.season-list svg { width: 20px; height: 20px; flex: none; margin-top: 2px; color: var(--brand); }
body[data-season="winter"] .season-list svg { color: #2c5d7c; }
html[data-theme="luxe"] body[data-season="winter"] .season-list svg,
html[data-theme="luxe"].x body[data-season="winter"] .season-list svg { color: var(--winter); }
@media (max-width: 920px) {
.season-stage { grid-template-columns: 1fr; gap: 32px; }
} .services { padding: 104px 0; background: var(--bg); }
.pillars {
display: grid;
grid-template-columns: repeat(3, 1fr);
gap: 24px;
}
.pillar {
position: relative;
border-radius: var(--radius-lg);
overflow: hidden;
background: var(--surface);
border: 1px solid var(--line);
box-shadow: var(--shadow-1);
transition: transform 0.35s cubic-bezier(0.22, 0.61, 0.36, 1), box-shadow 0.35s ease;
display: flex;
flex-direction: column;
}
.pillar:hover { transform: translateY(-8px); box-shadow: var(--shadow-2); }
.pillar-img { position: relative; aspect-ratio: 16 / 10; overflow: hidden; }
.pillar-img img {
width: 100%;
height: 100%;
object-fit: cover;
transition: transform 0.8s cubic-bezier(0.22, 0.61, 0.36, 1);
}
.pillar:hover .pillar-img img { transform: scale(1.07); }
.pillar-step {
position: absolute;
top: 16px;
left: 16px;
background: rgba(10, 18, 11, 0.65);
color: #fff;
font-family: var(--font-display);
font-weight: 800;
font-size: 13px;
letter-spacing: 0.1em;
padding: 7px 14px;
border-radius: 999px;
backdrop-filter: blur(6px);
}
.pillar-body { padding: 26px 26px 28px; display: flex; flex-direction: column; flex: 1; }
.pillar-body h3 { font-size: 25px; margin-bottom: 10px; }
.pillar-body > p { color: var(--muted); font-size: 15.5px; margin: 0 0 18px; }
.pillar-links { list-style: none; margin: 0 0 22px; padding: 0; display: grid; gap: 2px; }
.pillar-links a {
display: flex;
align-items: center;
gap: 9px;
padding: 7px 10px;
margin: 0 -10px;
border-radius: 9px;
font-size: 15px;
font-weight: 600;
color: var(--ink);
text-decoration: none;
transition: background 0.2s ease, color 0.2s ease, gap 0.2s ease;
}
.pillar-links a svg { width: 15px; height: 15px; color: var(--brand); flex: none; transition: transform 0.2s ease; }
.pillar-links a:hover { background: var(--bg-alt); color: var(--brand); }
.pillar-links a:hover svg { transform: translateX(3px); }
.pillar-cta {
margin-top: auto;
display: inline-flex;
align-items: center;
gap: 8px;
font-weight: 700;
font-size: 15.5px;
color: var(--brand);
text-decoration: none;
}
.pillar-cta svg { width: 17px; height: 17px; transition: transform 0.25s ease; }
.pillar-cta:hover svg { transform: translateX(4px); }
@media (max-width: 920px) {
.pillars { grid-template-columns: 1fr; }
}.transform { padding: 104px 0; background: var(--bg-alt); }
.ba-frame {
position: relative;
border-radius: var(--radius-lg);
overflow: hidden;
aspect-ratio: 16 / 9;
box-shadow: var(--shadow-2);
user-select: none;
touch-action: none;
cursor: ew-resize;
}
.ba-frame img {
position: absolute;
inset: 0;
width: 100%;
height: 100%;
object-fit: cover;
pointer-events: none;
}
.ba-after { z-index: 1; }
.ba-before-wrap {
position: absolute;
inset: 0;
z-index: 2;
overflow: hidden;
width: var(--ba, 50%);
}
.ba-before-wrap img { width: calc(100% / (var(--baf, 0.5))); max-width: none; }
.ba-handle {
position: absolute;
top: 0;
bottom: 0;
left: var(--ba, 50%);
z-index: 3;
width: 3px;
background: #fff;
transform: translateX(-50%);
box-shadow: 0 0 16px rgba(0, 0, 0, 0.4);
}
.ba-handle::after {
content: "⟨ ⟩";
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
width: 52px;
height: 52px;
border-radius: 50%;
background: #fff;
color: #1a2419;
font-size: 15px;
font-weight: 800;
display: flex;
align-items: center;
justify-content: center;
letter-spacing: -1px;
box-shadow: var(--shadow-2);
}
.ba-tag {
position: absolute;
bottom: 18px;
z-index: 4;
font-size: 13px;
font-weight: 800;
letter-spacing: 0.1em;
text-transform: uppercase;
color: #fff;
background: rgba(10, 18, 11, 0.6);
padding: 8px 16px;
border-radius: 999px;
backdrop-filter: blur(6px);
pointer-events: none;
}
.ba-tag--before { left: 18px; }
.ba-tag--after { right: 18px; }
.ba-caption { text-align: center; color: var(--muted); font-size: 14.5px; margin-top: 18px; } .process { padding: 104px 0; background: var(--bg); }
.timeline { position: relative; max-width: 880px; margin: 0 auto; }
.timeline::before {
content: "";
position: absolute;
left: 27px;
top: 8px;
bottom: 8px;
width: 2px;
background: var(--line);
}
.timeline-progress {
position: absolute;
left: 27px;
top: 8px;
width: 2px;
height: 0;
background: linear-gradient(to bottom, var(--brand), var(--accent));
z-index: 1;
}
.step {
position: relative;
display: grid;
grid-template-columns: 56px 1fr;
gap: 26px;
padding: 26px 0;
}
.step-dot {
position: relative;
z-index: 2;
width: 56px;
height: 56px;
border-radius: 50%;
background: var(--surface);
border: 2px solid var(--line);
display: flex;
align-items: center;
justify-content: center;
font-family: var(--font-display);
font-size: 19px;
font-weight: 800;
color: var(--muted);
transition: border-color 0.4s ease, color 0.4s ease, background 0.4s ease, transform 0.4s ease;
}
.step.is-in .step-dot {
border-color: var(--brand);
color: var(--brand);
transform: scale(1.08);
}
.step-body h3 { font-size: 23px; margin-bottom: 8px; }
.step-body h3 .hand { font-size: 21px; margin-left: 10px; }
.step-body p { color: var(--muted); margin: 0; max-width: 60ch; }
.step-meta {
display: inline-block;
margin-top: 12px;
font-size: 13px;
font-weight: 700;
letter-spacing: 0.08em;
text-transform: uppercase;
color: var(--accent);
} .work { padding: 104px 0; background: var(--bg-alt); }
.gallery {
display: grid;
grid-template-columns: repeat(4, 1fr);
grid-auto-rows: 220px;
gap: 14px;
}
.g-item {
position: relative;
border-radius: var(--radius);
overflow: hidden;
cursor: zoom-in;
border: none;
padding: 0;
background: var(--surface);
}
.g-item--w2 { grid-column: span 2; }
.g-item--h2 { grid-row: span 2; }
.g-item img {
width: 100%;
height: 100%;
object-fit: cover;
transition: transform 0.7s cubic-bezier(0.22, 0.61, 0.36, 1);
}
.g-item:hover img { transform: scale(1.06); }
.g-item figcaption {
position: absolute;
inset: auto 0 0 0;
padding: 36px 16px 14px;
background: linear-gradient(to top, rgba(8, 14, 9, 0.78), transparent);
color: #fff;
font-size: 14px;
font-weight: 700;
opacity: 0;
transform: translateY(8px);
transition: opacity 0.35s ease, transform 0.35s ease;
display: flex;
justify-content: space-between;
align-items: baseline;
gap: 10px;
}
.g-item figcaption small { font-weight: 600; opacity: 0.75; font-size: 12px; }
.g-item:hover figcaption { opacity: 1; transform: none; }
@media (max-width: 920px) {
.gallery { grid-template-columns: repeat(2, 1fr); grid-auto-rows: 170px; }
} .lightbox {
position: fixed;
inset: 0;
z-index: 200;
background: rgba(8, 12, 9, 0.92);
display: flex;
align-items: center;
justify-content: center;
padding: 4vmin;
opacity: 0;
pointer-events: none;
transition: opacity 0.3s ease;
}
.lightbox.is-open { opacity: 1; pointer-events: auto; }
.lightbox figure {
margin: 0;
max-width: min(1280px, 92vw);
max-height: 86vh;
display: flex;
flex-direction: column;
gap: 14px;
}
.lightbox img {
max-width: 100%;
max-height: 78vh;
object-fit: contain;
border-radius: 10px;
box-shadow: 0 30px 80px rgba(0, 0, 0, 0.5);
}
.lightbox figcaption { color: rgba(255, 255, 255, 0.85); font-size: 15px; font-weight: 600; text-align: center; }
.lb-btn {
position: absolute;
width: 52px;
height: 52px;
border-radius: 50%;
border: 1px solid rgba(255, 255, 255, 0.3);
background: rgba(255, 255, 255, 0.08);
color: #fff;
font-size: 22px;
cursor: pointer;
display: flex;
align-items: center;
justify-content: center;
transition: background 0.2s ease, transform 0.2s ease;
backdrop-filter: blur(8px);
}
.lb-btn:hover { background: rgba(255, 255, 255, 0.2); transform: scale(1.06); }
.lb-close { top: 22px; right: 22px; }
.lb-prev { left: 22px; top: 50%; transform: translateY(-50%); }
.lb-next { right: 22px; top: 50%; transform: translateY(-50%); }
.lb-prev:hover, .lb-next:hover { transform: translateY(-50%) scale(1.06); } .estimator { padding: 104px 0; background: var(--bg); }
.est-card {
display: grid;
grid-template-columns: 1.2fr 0.8fr;
background: var(--surface);
border: 1px solid var(--line);
border-radius: var(--radius-lg);
overflow: hidden;
box-shadow: var(--shadow-2);
}
.est-form { padding: 40px; }
.est-q { margin-bottom: 30px; }
.est-q > label, .est-q > .q-label {
display: block;
font-weight: 800;
font-family: var(--font-display);
font-size: 18px;
margin-bottom: 14px;
}
.svc-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 10px; }
.svc-opt {
display: flex;
align-items: center;
gap: 12px;
padding: 14px 16px;
border: 1.5px solid var(--line);
border-radius: 12px;
background: transparent;
font-family: var(--font-body);
font-size: 15px;
font-weight: 700;
color: var(--ink);
cursor: pointer;
text-align: left;
transition: border-color 0.2s ease, background 0.2s ease, transform 0.2s ease;
}
.svc-opt svg { width: 20px; height: 20px; color: var(--brand); flex: none; }
.svc-opt:hover { border-color: var(--brand); transform: translateY(-2px); }
.svc-opt.is-active { border-color: var(--brand); background: color-mix(in oklab, var(--brand) 8%, transparent); }
.size-row { display: flex; gap: 10px; }
.size-row .svc-opt { flex: 1; justify-content: center; text-align: center; }
.est-slider { width: 100%; accent-color: var(--cta); height: 32px; }
.est-slider-val { font-weight: 800; color: var(--brand); font-variant-numeric: tabular-nums; }
.extras { display: flex; flex-wrap: wrap; gap: 10px; }
.extra-chip {
display: inline-flex;
align-items: center;
gap: 8px;
padding: 10px 16px;
border-radius: 999px;
border: 1.5px solid var(--line);
background: transparent;
font-family: var(--font-body);
font-size: 14px;
font-weight: 700;
color: var(--ink);
cursor: pointer;
transition: border-color 0.2s ease, background 0.2s ease;
}
.extra-chip.is-active {
border-color: var(--brand);
background: color-mix(in oklab, var(--brand) 10%, transparent);
color: var(--brand);
}
.est-result {
background: linear-gradient(160deg, var(--green-900), var(--green-700));
color: #fff;
padding: 40px;
display: flex;
flex-direction: column;
justify-content: center;
}
.est-result .hand { color: var(--green-300); font-size: 24px; }
.est-price {
font-family: var(--font-display);
font-size: clamp(36px, 3.6vw, 52px);
font-weight: 800;
letter-spacing: -0.02em;
margin: 6px 0 4px;
font-variant-numeric: tabular-nums;
}
.est-unit { font-size: 15px; font-weight: 600; opacity: 0.8; margin-bottom: 22px; }
.est-fine { font-size: 13.5px; opacity: 0.7; line-height: 1.5; margin: 22px 0 0; }
.est-result .btn { width: 100%; margin-top: 10px; }
.est-result .btn--solid { background: #fff; color: var(--green-900); }
.est-result .btn--solid:hover { background: var(--green-300); }
.est-result .btn--glass { font-size: 15px; padding: 13px 22px; }
@media (max-width: 920px) {
.est-card { grid-template-columns: 1fr; }
.est-form { padding: 28px 22px; }
.est-result { padding: 32px 22px; }
.svc-grid { grid-template-columns: 1fr; }
} .reviews { padding: 104px 0; background: var(--bg-alt); }
.review-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; }
.review-card {
background: var(--surface);
border: 1px solid var(--line);
border-radius: var(--radius-lg);
padding: 30px 28px;
box-shadow: var(--shadow-1);
display: flex;
flex-direction: column;
transition: transform 0.3s ease, box-shadow 0.3s ease;
}
.review-card:hover { transform: translateY(-6px); box-shadow: var(--shadow-2); }
.review-stars { color: #fbbf24; font-size: 17px; letter-spacing: 3px; margin-bottom: 14px; }
.review-card blockquote {
margin: 0 0 22px;
font-size: 16.5px;
line-height: 1.65;
flex: 1;
}
.review-foot { display: flex; align-items: center; gap: 12px; }
.review-ava {
width: 42px;
height: 42px;
border-radius: 50%;
background: var(--brand);
color: #fff;
font-weight: 800;
display: flex;
align-items: center;
justify-content: center;
font-size: 16px;
flex: none;
}
.review-foot b { display: block; font-size: 15px; }
.review-foot small { color: var(--muted); font-weight: 600; }
.review-g {
margin-left: auto;
width: 30px;
height: 30px;
border-radius: 50%;
background: var(--bg-alt);
display: flex;
align-items: center;
justify-content: center;
font-weight: 800;
font-size: 15px;
color: #4285f4;
}
.reviews-agg {
display: flex;
align-items: center;
justify-content: center;
gap: 12px;
margin-top: 36px;
font-weight: 700;
color: var(--muted);
font-size: 15px;
}
.reviews-agg .stars { color: #fbbf24; letter-spacing: 3px; font-size: 18px; }
@media (max-width: 920px) { .review-grid { grid-template-columns: 1fr; } } .areas { padding: 88px 0; background: var(--bg); }
.area-chips { display: flex; flex-wrap: wrap; gap: 10px; max-width: 880px; }
.area-chips span {
padding: 9px 18px;
border-radius: 999px;
border: 1.5px solid var(--line);
font-size: 14.5px;
font-weight: 600;
color: var(--muted);
transition: border-color 0.2s ease, color 0.2s ease, transform 0.2s ease;
}
.area-chips span:hover { border-color: var(--brand); color: var(--brand); transform: translateY(-2px); } .faq { padding: 104px 0; background: var(--bg-alt); }
.faq-list { max-width: 880px; margin: 0 auto; display: grid; gap: 12px; }
.faq-list details {
background: var(--surface);
border: 1px solid var(--line);
border-radius: var(--radius);
overflow: hidden;
transition: box-shadow 0.25s ease;
}
.faq-list details[open] { box-shadow: var(--shadow-1); }
.faq-list summary {
list-style: none;
cursor: pointer;
padding: 20px 24px;
font-family: var(--font-display);
font-weight: 700;
font-size: 17.5px;
display: flex;
justify-content: space-between;
align-items: center;
gap: 16px;
}
.faq-list summary::-webkit-details-marker { display: none; }
.faq-list summary::after {
content: "+";
font-size: 24px;
font-weight: 400;
color: var(--brand);
transition: transform 0.3s ease;
flex: none;
}
.faq-list details[open] summary::after { transform: rotate(45deg); }
.faq-list details p { margin: 0; padding: 0 24px 22px; color: var(--muted); max-width: 70ch; } .final-cta { position: relative; padding: 130px 0; overflow: hidden; color: #fff; }
.final-cta .bg {
position: absolute;
inset: -10% 0;
z-index: 0;
will-change: transform;
}
.final-cta .bg img { width: 100%; height: 100%; object-fit: cover; }
.final-cta .scrim {
position: absolute;
inset: 0;
z-index: 1;
background: linear-gradient(to right, rgba(8, 14, 9, 0.85) 10%, rgba(8, 14, 9, 0.45) 70%, rgba(8, 14, 9, 0.3));
}
.final-cta .wrap { position: relative; z-index: 2; }
.final-cta .hand { color: var(--green-300); font-size: clamp(24px, 2.6vw, 32px); }
.final-cta h2 { font-size: clamp(36px, 5vw, 64px); max-width: 16ch; margin: 8px 0 18px; }
.final-cta p { max-width: 50ch; color: rgba(255, 255, 255, 0.85); margin: 0 0 30px; font-size: 18px; }
.final-cta .hero-ctas { margin-bottom: 0; } .site-footer { background: #0c140e; color: #cfd8cd; padding: 72px 0 36px; font-size: 15px; }
.footer-grid {
display: grid;
grid-template-columns: 1.4fr 1fr 1fr 1fr;
gap: 40px;
padding-bottom: 48px;
border-bottom: 1px solid rgba(255, 255, 255, 0.1);
}
.site-footer .logo { color: #fff; margin-bottom: 16px; }
.footer-grid p { color: #93a191; margin: 0 0 18px; max-width: 36ch; }
.footer-grid h4 {
color: #fff;
font-size: 14px;
letter-spacing: 0.14em;
text-transform: uppercase;
margin-bottom: 18px;
}
.footer-grid ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
.footer-grid a { color: #cfd8cd; text-decoration: none; transition: color 0.2s ease; }
.footer-grid a:hover { color: var(--green-300); }
.footer-contact li { display: flex; gap: 10px; align-items: flex-start; }
.footer-contact svg { width: 16px; height: 16px; flex: none; margin-top: 4px; color: var(--green-300); }
.footer-bottom {
display: flex;
flex-wrap: wrap;
justify-content: space-between;
gap: 12px;
padding-top: 28px;
font-size: 13.5px;
color: #7c8a7a;
}
@media (max-width: 920px) { .footer-grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 560px) { .footer-grid { grid-template-columns: 1fr; } } .sticky-bar {
position: fixed;
left: 12px;
right: 12px;
bottom: 12px;
z-index: 80;
display: none;
gap: 10px;
padding: 10px;
background: var(--surface);
border: 1px solid var(--line);
border-radius: 18px;
box-shadow: var(--shadow-2);
transform: translateY(120%);
transition: transform 0.4s cubic-bezier(0.22, 0.61, 0.36, 1);
}
.sticky-bar.is-visible { transform: none; }
.sticky-bar .btn { flex: 1; padding: 13px 10px; font-size: 15px; }
@media (max-width: 720px) {
.sticky-bar { display: flex; }
}
.header-cta .btn--solid:hover,.mnav-foot .btn--solid:hover{background:var(--gold-soft);color:var(--green-900);box-shadow:0 0 0 2px var(--gold-soft),var(--shadow-2)}.season-toggle{flex-wrap:wrap;justify-content:center;max-width:100%}
.season-toggle button{padding:12px 18px;font-size:14.5px}
@media(max-width:560px){.season-toggle{display:grid;grid-template-columns:1fr 1fr;width:100%}.season-toggle button{justify-content:center}}
.season-chip{display:inline-flex;align-items:center;gap:9px;padding:6px 14px;border-radius:999px;background:color-mix(in oklab,var(--brand) 12%,transparent);color:var(--brand);font-size:12px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;margin-bottom:16px}
body[data-season="winter"] .season-chip{background:rgba(44,93,124,.13);color:#2c5d7c}
.sc-lead{display:block;font-family:var(--font-display);font-size:12.5px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--accent);margin:0 0 10px}
.sc-care{margin-top:26px;padding-top:22px;border-top:1px solid var(--line)}
.sc-care .sc-lead{color:var(--muted)}
.sc-care p{font-size:14.5px;line-height:1.55;color:var(--muted);margin:0}
.sc-care b{color:var(--ink);font-weight:700}
.season-copy .pane>.btn{margin-top:4px} .pillars--duo{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:28px}
.care-strip{display:grid;grid-template-columns:200px minmax(0,1fr) auto;gap:26px;align-items:center;margin-top:26px;padding:22px;border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--surface);box-shadow:var(--shadow-1)}
.care-strip .cs-img{border-radius:var(--radius);overflow:hidden;aspect-ratio:16/10}
.care-strip .cs-img img{width:100%;height:100%;object-fit:cover;display:block}
.care-strip h3{font-size:22px;margin:0 0 8px;display:flex;flex-wrap:wrap;align-items:baseline;gap:10px}
.care-strip h3 em{font-style:normal;font-family:var(--font-body);font-size:11.5px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);padding:4px 10px;border:1px solid var(--line);border-radius:999px}
.care-strip p{margin:0;color:var(--muted);font-size:15.5px;line-height:1.6;max-width:62ch}
@media(max-width:820px){.care-strip{grid-template-columns:1fr;gap:18px}.care-strip .cs-img{aspect-ratio:16/7}} .fproj{padding:96px 0;background:var(--bg-alt)}
.fp-grid{display:grid;grid-template-columns:minmax(0,1.08fr) minmax(0,.92fr);gap:clamp(28px,4vw,56px);align-items:start;margin-top:44px}
@media(max-width:940px){.fp-grid{grid-template-columns:1fr}}
.fp-media{display:grid;gap:14px}
.fp-shot{position:relative;border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-2);background:var(--surface)}
.fp-shot img{width:100%;display:block;object-fit:cover;aspect-ratio:4/3}
.fp-shot--pair{display:grid;grid-template-columns:1fr 1fr;gap:14px;box-shadow:none;border-radius:0;background:none;overflow:visible}
.fp-shot--pair>span{display:block;border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow-1)}
.fp-shot--pair img{aspect-ratio:1/1}
.fp-loc{position:absolute;left:16px;top:16px;padding:7px 14px;border-radius:999px;background:rgba(26,36,25,.74);color:#fff;font-size:12px;font-weight:800;letter-spacing:.09em;text-transform:uppercase;backdrop-filter:blur(6px)}
.fp-body h3{font-size:clamp(24px,2.6vw,34px);margin:0 0 18px}
.fp-dl{display:grid;gap:0;margin:0 0 24px}
.fp-dl>div{display:grid;grid-template-columns:132px minmax(0,1fr);gap:18px;padding:15px 0;border-top:1px solid var(--line)}
.fp-dl>div:last-child{border-bottom:1px solid var(--line)}
.fp-dl dt{font-family:var(--font-body);font-size:11.5px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);padding-top:3px}
.fp-dl dd{margin:0;font-size:15.5px;line-height:1.6;color:var(--ink)}
@media(max-width:560px){.fp-dl>div{grid-template-columns:1fr;gap:6px}}
.fp-parts{display:flex;flex-wrap:wrap;gap:9px;margin:0 0 26px;padding:0;list-style:none}
.fp-parts li{padding:8px 15px;border-radius:999px;background:var(--surface);border:1px solid var(--line);font-size:13.5px;font-weight:700;color:var(--ink)} .why{padding:96px 0;background:var(--bg)}
.why-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(290px,1fr));gap:clamp(20px,2.4vw,30px);margin-top:44px}
.why-item{padding:26px;border-radius:var(--radius-lg);background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow-1)}
.why-item .n{display:block;font-family:var(--font-display);font-size:13px;font-weight:800;letter-spacing:.14em;color:var(--accent);margin-bottom:14px}
.why-item h3{font-size:20px;margin:0 0 9px}
.why-item p{margin:0;color:var(--muted);font-size:15px;line-height:1.62}
.why-note{margin-top:30px;padding:24px 28px;border-left:3px solid var(--accent);background:var(--bg-alt);border-radius:0 var(--radius) var(--radius) 0;font-family:var(--font-display);font-size:clamp(17px,1.7vw,21px);line-height:1.5;color:var(--ink)} .inquiry{padding:96px 0;background:var(--bg-alt)}
.inq-card{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.82fr);gap:0;margin-top:40px;border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-2);background:var(--surface)}
@media(max-width:900px){.inq-card{grid-template-columns:1fr}}
.inq-form{padding:clamp(26px,3vw,42px);display:grid;gap:24px}
.inq-q{display:grid;gap:11px}
.inq-q .q-label{font-family:var(--font-body);font-size:12px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.inq-chips{display:flex;flex-wrap:wrap;gap:9px}
.inq-chips button{padding:10px 16px;white-space:nowrap;line-height:1.3;border-radius:999px;border:1px solid var(--line);background:var(--bg);color:var(--ink);font-family:var(--font-body);font-size:14px;font-weight:700;cursor:pointer;transition:background .2s ease,border-color .2s ease,color .2s ease}
.inq-chips button:hover{border-color:var(--brand)}
.inq-chips button[aria-pressed="true"]{background:var(--cta);border-color:var(--cta);color:#fff}
.inq-field{display:grid;gap:8px}
.inq-field label{font-family:var(--font-body);font-size:12px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.inq-field input,.inq-field select,.inq-field textarea{width:100%;padding:13px 15px;border:1px solid var(--line);border-radius:var(--radius);background:var(--bg);color:var(--ink);font-family:var(--font-body);font-size:15.5px}
.inq-field input:focus,.inq-field select:focus,.inq-field textarea:focus{outline:2px solid var(--brand);outline-offset:1px}
.inq-field textarea{min-height:96px;resize:vertical}
.inq-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}
@media(max-width:560px){.inq-row{grid-template-columns:1fr}.inq-chips button{white-space:normal;text-align:left}}
.inq-side{padding:clamp(26px,3vw,42px);background:var(--green-900);color:#f4e9d6;display:flex;flex-direction:column;gap:18px;justify-content:center}
.inq-side h3{color:#fff;font-size:clamp(21px,2vw,27px);margin:0}
.inq-side p{margin:0;font-size:15px;line-height:1.65;color:rgba(244,233,214,.84)}
.inq-side .hand{color:var(--gold-soft);font-size:26px}
.inq-side ul{list-style:none;margin:0;padding:0;display:grid;gap:11px}
.inq-side li{display:grid;grid-template-columns:auto 1fr;gap:11px;align-items:start;font-size:14.5px;line-height:1.5;color:rgba(244,233,214,.9)}
.inq-side li svg{width:18px;height:18px;margin-top:2px;color:var(--gold-soft);flex:none}
.inq-side .btn{margin-top:4px}
.inq-fine{font-size:13px;line-height:1.55;color:rgba(244,233,214,.62)}
.inq-fine a{color:#fff;font-weight:700} .logo{flex-direction:row;align-items:center;gap:12px}
.logo>.logo-txt{display:flex;flex-direction:column;line-height:1.1;text-transform:none;letter-spacing:normal;font-size:inherit;color:inherit}
.logo>.logo-txt>span{font-size:10.5px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;opacity:.82;margin-top:4px}
img.logo-mark{flex:none;width:auto;height:48px;display:block}
.site-header.is-scrolled img.logo-mark{height:42px;transition:height .3s ease}
img.footer-logo{width:auto;height:64px;display:block;margin-bottom:18px}
.nav-item{position:relative;display:flex}
.nav-trigger{display:inline-flex;align-items:center;gap:7px;font-family:var(--font-body);font-size:15px;font-weight:600;color:rgba(255,255,255,.9);background:none;border:0;padding:9px 14px;border-radius:999px;cursor:pointer;transition:color .2s ease,background .2s ease}
.nav-trigger svg{width:14px;height:14px;transition:transform .25s ease}
.nav-trigger:hover{color:#fff;background:rgba(255,255,255,.14)}
.site-header.is-scrolled .nav-trigger{color:var(--muted)}
.site-header.is-scrolled .nav-trigger:hover{color:var(--brand);background:var(--bg-alt)}
.nav-item.is-open .nav-trigger svg{transform:rotate(180deg)}
.mega{position:absolute;top:calc(100% + 16px);left:50%;width:min(820px,calc(100vw - 32px));display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:26px;padding:26px 28px;background:var(--surface);border:1px solid var(--line);border-radius:20px;box-shadow:var(--shadow-2);opacity:0;visibility:hidden;transform:translateX(-50%) translateY(-8px);transition:opacity .22s ease,transform .22s ease,visibility .22s ease;z-index:60}
.nav-item.is-open .mega{opacity:1;visibility:visible;transform:translateX(-50%) translateY(0)}
.mega-col h4{font-family:var(--font-body);font-size:11.5px;font-weight:800;letter-spacing:.13em;text-transform:uppercase;color:var(--accent);margin:0 0 4px}
.mega-col p{font-size:12.5px;line-height:1.45;color:var(--muted);margin:0 0 12px}
.mega-col ul{list-style:none;margin:0;padding:0;display:grid;gap:2px}
.mega-col a{display:block;padding:8px 10px;margin:0 -10px;border-radius:9px;font-size:14.5px;font-weight:600;color:var(--ink);text-decoration:none;transition:background .18s ease,color .18s ease}
.mega-col a:hover{background:var(--bg-alt);color:var(--brand)}
.mega-col .mega-top{display:inline-block;margin-top:10px;font-size:13px;font-weight:800;color:var(--brand);letter-spacing:.01em}
@media(max-width:1300px){.nav-item{display:none}} .sc-btn{display:inline-flex;align-items:center;gap:8px;margin-top:14px;padding:9px 16px;border-radius:999px;border:1px solid var(--line);background:var(--surface);color:var(--ink);font-size:13.5px;font-weight:700;text-decoration:none;transition:border-color .2s ease,color .2s ease,background .2s ease}
.sc-btn:hover{border-color:var(--brand);color:var(--brand);background:var(--bg)}
.sc-btn svg{width:15px;height:15px} .transform{padding-bottom:56px}
.fproj{padding-top:56px} .blog{padding:96px 0;background:var(--bg)}
.blog-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:24px;margin-top:40px}
.post{display:flex;flex-direction:column;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-1);text-decoration:none;transition:transform .25s ease,box-shadow .25s ease}
.post:hover{transform:translateY(-4px);box-shadow:var(--shadow-2)}
.post-img{aspect-ratio:16/10;overflow:hidden;background:var(--bg-alt)}
.post-img img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .5s ease}
.post:hover .post-img img{transform:scale(1.04)}
.post-body{padding:22px;display:flex;flex-direction:column;gap:9px;flex:1}
.post-kind{font-family:var(--font-body);font-size:11px;font-weight:800;letter-spacing:.13em;text-transform:uppercase;color:var(--accent)}
.post h3{font-size:19px;margin:0;line-height:1.28;color:var(--ink)}
.post p{margin:0;font-size:14.5px;line-height:1.55;color:var(--muted)}
.post-more{margin-top:auto;font-size:13.5px;font-weight:800;color:var(--brand)}
.blog-foot{margin-top:32px} .foot-social{display:flex;flex-wrap:wrap;align-items:center;gap:12px;padding:26px 0 4px;border-top:1px solid rgba(255,255,255,.12);margin-top:34px}
.fs-label{font-family:var(--font-body);font-size:11.5px;font-weight:800;letter-spacing:.13em;text-transform:uppercase;opacity:.6;margin-right:4px}
.soc{display:inline-flex;align-items:center;gap:9px;padding:10px 16px;border-radius:999px;border:1px solid rgba(255,255,255,.22);color:#fff;font-size:14px;font-weight:700;text-decoration:none;transition:background .2s ease,border-color .2s ease,transform .2s ease}
.soc:hover{background:rgba(255,255,255,.12);border-color:rgba(255,255,255,.45);transform:translateY(-2px);color:#fff}
.soc svg{width:17px;height:17px}
.soc--g{border-color:rgba(251,191,36,.5)}
.soc--g b{color:#fbbf24} @media(min-width:981px) and (max-width:1200px){.mega{left:auto;right:0;transform:translateX(0) translateY(-8px)}.nav-item.is-open .mega{transform:translateX(0) translateY(0)}} .nav-toggle{display:none;flex-direction:column;justify-content:center;gap:5px;width:44px;height:44px;padding:0 10px;border:0;border-radius:12px;background:rgba(255,255,255,.14);cursor:pointer}
.site-header.is-scrolled .nav-toggle{background:var(--bg-alt)}
.nav-toggle i{display:block;height:2px;border-radius:2px;background:#fff;transition:transform .25s ease,opacity .2s ease}
.site-header.is-scrolled .nav-toggle i{background:var(--ink)}
body.mnav-open .nav-toggle i:nth-child(1){transform:translateY(7px) rotate(45deg)}
body.mnav-open .nav-toggle i:nth-child(2){opacity:0}
body.mnav-open .nav-toggle i:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
.mobile-nav{display:none;position:absolute;top:100%;left:0;right:0;max-height:calc(100dvh - 76px);overflow:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;padding:22px clamp(16px,5vw,32px) 32px;background:var(--surface);border-top:1px solid var(--line);box-shadow:var(--shadow-2);z-index:70}
body.mnav-open .mobile-nav{display:block}
.mnav-group{padding:14px 0;border-bottom:1px solid var(--line)}
.mnav-group>h4{font-family:var(--font-body);font-size:11.5px;font-weight:800;letter-spacing:.13em;text-transform:uppercase;color:var(--accent);margin:0 0 8px}
.mnav-group ul{list-style:none;margin:0;padding:0;display:grid;gap:2px}
.mnav-group a,.mnav-link{display:block;padding:11px 12px;margin:0 -12px;border-radius:10px;font-size:16px;font-weight:600;color:var(--ink);text-decoration:none}
.mnav-group a:active,.mnav-link:active{background:var(--bg-alt)}
.mnav-link{font-weight:700}
.mnav-foot{display:grid;gap:12px;margin-top:20px}
.mnav-foot .btn{width:100%;justify-content:center}
.mnav-phone{display:flex;align-items:center;justify-content:center;gap:9px;padding:13px;border:1px solid var(--line);border-radius:999px;font-size:15px;font-weight:700;color:var(--ink);text-decoration:none}
.mnav-phone svg{width:17px;height:17px}
@media(max-width:1300px){.nav-toggle{display:flex}}
@media(min-width:1301px){.mobile-nav{display:none !important}} .inq-embed{padding:clamp(22px,3vw,38px);display:flex;flex-direction:column;min-height:420px}
.inq-iframe{width:100%;flex:1;min-height:560px;border:0;border-radius:var(--radius)}
.inq-embed-ph{flex:1;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:14px;padding:clamp(22px,3vw,34px);border:2px dashed var(--line);border-radius:var(--radius-lg);background:var(--bg)}
.inq-embed-ph .ph-mark{font-family:var(--font-body);font-size:11px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--accent)}
.inq-embed-ph h3{font-size:clamp(20px,2vw,26px);margin:0}
.inq-embed-ph p{margin:0;font-size:15px;line-height:1.6;color:var(--muted);max-width:46ch}
.inq-embed-ph code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:13.5px;padding:2px 6px;border-radius:5px;background:var(--bg-alt);color:var(--ink)}
.inq-embed-ph .ph-fine{font-size:13px;color:var(--muted);opacity:.85}
.inq-embed-ph .btn{margin-top:4px} .area-grid{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);gap:clamp(24px,3.5vw,44px);margin-top:44px;align-items:start}
@media(max-width:940px){.area-grid{grid-template-columns:1fr}}
.area-map{border-radius:var(--radius-lg);overflow:hidden;border:1px solid var(--line);background:var(--surface);box-shadow:var(--shadow-1)}
.area-map iframe{display:block;width:100%;height:clamp(320px,38vw,440px);border:0;filter:saturate(.85)}
.area-map-foot{display:flex;flex-wrap:wrap;gap:14px;align-items:center;justify-content:space-between;padding:18px 20px;border-top:1px solid var(--line)}
.area-map-foot b{display:block;font-family:var(--font-display);font-size:16px;color:var(--ink)}
.area-map-foot span{display:block;font-size:13.5px;color:var(--muted);margin-top:3px}
.area-lists{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:22px 26px}
.area-col h4{font-family:var(--font-body);font-size:11.5px;font-weight:800;letter-spacing:.13em;text-transform:uppercase;color:var(--accent);margin:0 0 10px;padding-bottom:9px;border-bottom:1px solid var(--line)}
.area-col ul{list-style:none;margin:0;padding:0;display:grid;gap:7px}
.area-col li{font-size:15px;font-weight:600;color:var(--ink)}
.area-note{grid-column:1/-1;margin:0;font-size:14px;line-height:1.55;color:var(--muted);padding-top:4px} .why-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
.why-item{display:flex;flex-direction:column;gap:0}
.why-item h3{min-height:2.6em;display:flex;align-items:flex-start}
@media(max-width:980px){.why-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.why-item h3{min-height:0}}
@media(max-width:620px){.why-grid{grid-template-columns:1fr}} @media (max-width:720px){ .site-header{padding:12px 0}
.site-header .wrap{gap:12px}
img.logo-mark{height:40px}
.site-header.is-scrolled img.logo-mark{height:36px}
.logo>.logo-txt>span{display:none}
.logo>.logo-txt b{font-size:18px}
.header-cta .btn{display:none}
.header-phone{padding:11px;border:1px solid rgba(255,255,255,.28);border-radius:999px}
.site-header.is-scrolled .header-phone{border-color:var(--line)}
.nav-toggle{margin-left:auto} .hero{min-height:auto;padding-top:132px;padding-bottom:104px}
.hero-ctas{flex-direction:column;align-items:stretch;gap:12px}
.hero-ctas .btn{width:100%;justify-content:center}
.hero-ctas .hero-phone{justify-content:center;padding-top:4px}
.hero-trust{flex-direction:column;align-items:flex-start;gap:6px}
.hero-trust .sep{display:none}
.scroll-cue{display:none} .seasons,.services,.work,.process,.fproj,.inquiry,.why,.blog,.reviews,.faq,.areas{padding-top:64px;padding-bottom:64px}
.transform{padding-top:64px;padding-bottom:40px}
.fproj{padding-top:40px} .season-toggle{display:grid;grid-template-columns:1fr 1fr;gap:4px;width:100%}
.season-toggle button{justify-content:center;padding:12px 8px;font-size:13px;text-align:center}
.season-stage{margin-top:32px}
.season-copy .pane>.btn,.sc-btn{width:100%;justify-content:center} .fp-grid{margin-top:32px}
.fp-shot--pair{grid-template-columns:1fr 1fr;gap:10px}
.fp-parts li{font-size:13px;padding:7px 12px}
.fp-body .btn{width:100%;justify-content:center} .gallery{grid-template-columns:1fr;grid-auto-rows:220px;gap:12px}
.g-item--w2{grid-column:span 1}
.g-item--h2{grid-row:span 1}
.g-item figcaption{opacity:1;transform:none} .inq-embed{min-height:0;padding:20px}
.inq-embed-ph{padding:22px}
.inq-embed-ph .btn{width:100%;justify-content:center}
.inq-iframe{min-height:640px}
.inq-side{padding:26px 22px} .area-grid{margin-top:32px;gap:22px}
.area-map iframe{height:280px}
.area-map-foot{flex-direction:column;align-items:flex-start;gap:12px}
.area-lists{grid-template-columns:1fr 1fr;gap:20px} .why-note{padding:20px;font-size:17px}
.blog-foot .btn{width:100%;justify-content:center} .final-cta .hero-ctas .btn{width:100%;justify-content:center}
.site-footer{padding-bottom:104px}
.foot-social{gap:10px}
.soc{padding:9px 14px;font-size:13.5px}
}
@media (max-width:430px){
.logo>.logo-txt b{font-size:16.5px}
.area-lists{grid-template-columns:1fr}
.fp-shot--pair{grid-template-columns:1fr}
.season-toggle button{font-size:12.5px;letter-spacing:0}
} body[data-season="spring"]{--season:#6aa84f;--season-ink:#47823b;--season-soft:rgba(106,168,79,.14)}
body[data-season="summer"]{--season:#2d5a27;--season-ink:#2d5a27;--season-soft:rgba(45,90,39,.13)}
body[data-season="fall"]{--season:#b4601c;--season-ink:#a9571a;--season-soft:rgba(180,96,28,.14)}
body[data-season="winter"]{--season:#2c5d7c;--season-ink:#2c5d7c;--season-soft:rgba(44,93,124,.14)}
html[data-theme="luxe"] body[data-season="spring"]{--season:#8fd06f;--season-ink:#3f7a39}
html[data-theme="luxe"] body[data-season="summer"]{--season:#7bc67a}
html[data-theme="luxe"] body[data-season="fall"]{--season:#e0a331}
html[data-theme="luxe"] body[data-season="winter"]{--season:#7fb6d9} .season-toggle button[data-season="spring"] svg{color:#6aa84f}
.season-toggle button[data-season="summer"] svg{color:#2d5a27}
.season-toggle button[data-season="fall"] svg{color:#b4601c}
.season-toggle button[data-season="winter"] svg{color:#2c5d7c}
html[data-theme="luxe"] .season-toggle button[data-season="spring"] svg{color:#8fd06f}
html[data-theme="luxe"] .season-toggle button[data-season="summer"] svg{color:#7bc67a}
html[data-theme="luxe"] .season-toggle button[data-season="fall"] svg{color:#e0a331}
html[data-theme="luxe"] .season-toggle button[data-season="winter"] svg{color:#7fb6d9} .season-toggle button.is-active,
body[data-season="winter"] .season-toggle button.is-active{background:var(--season-ink,var(--season));color:#fff}
.season-toggle button.is-active svg,
html[data-theme="luxe"] .season-toggle button.is-active svg{color:#fff}
.season-chip,body[data-season="winter"] .season-chip{background:var(--season-soft);color:var(--season-ink,var(--season))}
.season-list svg,body[data-season="winter"] .season-list svg,
html[data-theme="luxe"] body[data-season="winter"] .season-list svg{color:var(--season)}
.sc-lead{color:var(--season-ink,var(--season))}
.sc-care .sc-lead{color:var(--muted)}
.season-copy .pane>.btn{background:var(--season-ink,var(--season));border-color:var(--season-ink,var(--season));color:#fff}
.season-copy .pane>.btn:hover{background:color-mix(in oklab,var(--season-ink,var(--season)) 82%,black);border-color:color-mix(in oklab,var(--season-ink,var(--season)) 82%,black);color:#fff}
.sc-btn:hover{border-color:var(--season-ink,var(--season));color:var(--season-ink,var(--season))}
.seasons{background:color-mix(in oklab,var(--season-soft) 55%,var(--bg-alt))}
.season-visual{box-shadow:var(--shadow-2),0 0 0 1px color-mix(in oklab,var(--season) 22%,transparent)} .foot-family{display:flex;flex-wrap:wrap;align-items:center;gap:14px 22px;padding:26px 0 4px;border-top:1px solid var(--line)}
.foot-family .fs-label{font:600 11.5px/1 var(--font-body);letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.famco{display:inline-flex;align-items:center;gap:13px;padding:12px 16px;border-radius:var(--radius);background:var(--green-900);text-decoration:none;max-width:420px;transition:transform .2s}
.famco:hover{transform:translateY(-2px)}
.famco img{height:30px;width:auto;flex:none;object-fit:contain}
.famco>span{display:flex;flex-direction:column;gap:2px;font:400 13px/1.4 var(--font-body);color:rgba(255,255,255,.72)}
.famco b{font:700 14.5px/1.2 var(--font-body);color:#fff}
@media(max-width:600px){.famco{max-width:100%}} .hero-note{font:600 13px/1.4 var(--font-body)!important;letter-spacing:.14em;text-transform:uppercase;color:var(--gold-soft)} .hero h1,.phero h1,.sec-head h2,.ctaband h2,.final-cta h2,.fp-body h3,.frow-body h3,.pcard-body h3{letter-spacing:-0.026em}
.stat .num,.phero-facts b{letter-spacing:-0.02em} .reach{display:flex;flex-direction:column;gap:18px}
.tier{padding:18px 20px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-1)}
.tier-head{display:flex;flex-wrap:wrap;align-items:baseline;gap:8px 12px;margin-bottom:12px}
.tier-head h4{font-family:var(--font-body);font-size:11.5px;font-weight:800;letter-spacing:.13em;text-transform:uppercase;color:var(--accent);margin:0}
.tier-head span{font-size:13px;line-height:1.4;color:var(--muted)}
.tier ul{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:7px}
.tier li{padding:6px 11px;border-radius:999px;background:var(--bg-alt);font-size:14px;font-weight:600;color:var(--ink)}
.tier--far{background:var(--bg-alt);border-color:color-mix(in oklch,var(--accent) 34%,var(--line));box-shadow:none}
.tier--far li{background:var(--surface)}
.reach-cta{display:flex;flex-wrap:wrap;align-items:center;gap:8px 14px;padding-top:2px;font-size:14.5px;line-height:1.55;color:var(--muted)}
.reach-cta a{font-weight:700;color:var(--brand);text-decoration:none;white-space:nowrap}
.reach-cta a:hover{color:var(--green-900)} .inq-embed-ph{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:18px;text-align:center;min-height:clamp(300px,34vw,400px)}
.inq-embed-ph h3{font:600 15px/1.4 var(--font-body);letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.tier li.more{background:transparent;color:var(--muted);font-weight:500;font-style:italic;padding-left:4px} @media(max-width:1100px){.foot-family{flex-direction:column;align-items:flex-start;gap:12px}.foot-family .famco{width:100%;max-width:520px}} .phero-ctas .btn{white-space:nowrap} .foot-certs{display:flex;flex-wrap:wrap;align-items:center;gap:14px 26px;padding:24px 0 4px;border-top:1px solid rgba(255,255,255,.12);margin-top:26px}
.foot-certs .fs-label{flex:none}
.cert{display:inline-flex;align-items:center;opacity:.9;transition:opacity .2s,transform .2s}
.cert:hover{opacity:1;transform:translateY(-2px)}
.cert img{height:44px;width:auto;object-fit:contain;display:block}
@media(max-width:600px){.cert img{height:36px}} .pcard{display:grid;grid-template-columns:1fr;gap:clamp(22px,3vw,44px);align-items:center;margin-top:clamp(26px,3vw,40px);padding:clamp(26px,3vw,44px);background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow-1)}
@media(min-width:760px){.pcard{grid-template-columns:minmax(0,.62fr) minmax(0,1fr)}}
.pcard-logo{display:grid;place-items:center;padding:clamp(14px,2vw,24px);background:var(--bg-alt);border-radius:var(--radius);min-height:120px}
.pcard-logo img{max-width:100%;height:auto;max-height:110px;object-fit:contain;display:block}
.pcard-body p{font:400 clamp(15.5px,1.2vw,17px)/1.65 var(--font-body);color:var(--ink);margin:0 0 18px;text-wrap:pretty}
.pcard-body .plink{display:inline-flex;align-items:center;gap:9px;font:700 15px/1 var(--font-body);color:var(--brand);text-decoration:none}
.pcard-body .plink svg{width:17px;height:17px;transition:transform .25s}
.pcard-body .plink:hover svg{transform:translateX(4px)}.phero{position:relative;min-height:clamp(420px,58vh,640px);display:flex;align-items:flex-end;overflow:hidden;background:var(--green-900)}
.phero-media{position:absolute;inset:0}
.phero-media img{width:100%;height:100%;object-fit:cover}
.phero-scrim{position:absolute;inset:0;background:linear-gradient(100deg,rgba(14,24,18,.86) 0%,rgba(14,24,18,.66) 46%,rgba(14,24,18,.28) 100%)}
.phero-content{position:relative;width:100%;padding:150px 0 54px}
.phero .crumbs{margin-bottom:22px}
.phero-note{font:600 13px/1 var(--font-body);letter-spacing:.14em;text-transform:uppercase;color:var(--gold-soft);margin-bottom:16px}
.phero h1{font:800 clamp(38px,5.4vw,70px)/1.03 var(--font-display);letter-spacing:-.02em;color:#fff;max-width:19ch;text-wrap:balance}
.phero h1 em{font-style:normal;color:var(--gold-soft)}
.phero-sub{max-width:60ch;margin-top:20px;font:400 clamp(17px,1.5vw,20px)/1.55 var(--font-body);color:rgba(255,255,255,.88);text-wrap:pretty}
.phero-ctas{display:flex;flex-wrap:wrap;gap:14px;align-items:center;margin-top:30px}
.phero-facts{display:flex;flex-wrap:wrap;gap:10px 30px;margin-top:34px;padding-top:24px;border-top:1px solid rgba(255,255,255,.2)}
.phero-facts div{display:flex;flex-direction:column;gap:3px;min-width:140px}
.phero-facts b{font:700 clamp(19px,2vw,26px)/1 var(--font-display);color:#fff}
.phero-facts span{font:500 12.5px/1.35 var(--font-body);letter-spacing:.06em;text-transform:uppercase;color:rgba(255,255,255,.62)} .crumbs{display:flex;flex-wrap:wrap;align-items:center;gap:8px;font:500 13.5px/1 var(--font-body)}
.crumbs a{color:rgba(255,255,255,.72);text-decoration:none}
.crumbs a:hover{color:#fff}
.crumbs span{color:rgba(255,255,255,.44)}
.crumbs b{font-weight:600;color:#fff}
.crumbs--ink a{color:var(--muted)}
.crumbs--ink a:hover{color:var(--brand)}
.crumbs--ink span{color:var(--line)}
.crumbs--ink b{color:var(--ink)} .pintro{background:var(--bg)}
.pintro .wrap{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:clamp(32px,5vw,76px);align-items:start}
.pintro-body p{font:400 clamp(17px,1.4vw,19.5px)/1.65 var(--font-body);color:var(--ink);margin-bottom:18px;text-wrap:pretty}
.pintro-body p:last-child{margin-bottom:0}
.pintro-body p.lead{font:400 clamp(20px,1.9vw,25px)/1.5 var(--font-display);color:var(--ink)}
.pintro-body strong{font-weight:700}
.glance{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);padding:clamp(24px,2.4vw,34px);box-shadow:var(--shadow-1)}
.glance h3{font:700 19px/1.2 var(--font-display);color:var(--ink);margin-bottom:6px}
.glance>p{font:400 14.5px/1.5 var(--font-body);color:var(--muted);margin-bottom:20px}
.glance dl{display:flex;flex-direction:column;gap:14px}
.glance dl>div{display:flex;flex-direction:column;gap:3px;padding-bottom:14px;border-bottom:1px dashed var(--line)}
.glance dl>div:last-child{border:0;padding-bottom:0}
.glance dt{font:600 11.5px/1 var(--font-body);letter-spacing:.12em;text-transform:uppercase;color:var(--brand)}
.glance dd{font:400 15.5px/1.5 var(--font-body);color:var(--ink)}
.glance .glance-cta{margin-top:22px;width:100%;justify-content:center} .scards{display:grid;grid-template-columns:1fr;gap:clamp(18px,2vw,26px)}@media(min-width:660px){.scards{grid-template-columns:repeat(2,1fr)}}@media(min-width:1000px){.scards{grid-template-columns:repeat(3,1fr)}}
.scard{display:flex;flex-direction:column;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);overflow:hidden;text-decoration:none;box-shadow:var(--shadow-1);transition:transform .3s cubic-bezier(.2,.7,.3,1),box-shadow .3s}
.scard:hover{transform:translateY(-5px);box-shadow:var(--shadow-2)}
.scard-img{position:relative;aspect-ratio:16/10;overflow:hidden;background:var(--bg-alt)}
.scard-img img{width:100%;height:100%;object-fit:cover;transition:transform .6s cubic-bezier(.2,.7,.3,1)}
.scard:hover .scard-img img{transform:scale(1.05)}
.scard-tag{position:absolute;left:14px;top:14px;z-index:2;padding:6px 11px;border-radius:999px;background:rgba(14,24,18,.72);backdrop-filter:blur(6px);font:600 10.5px/1 var(--font-body);letter-spacing:.12em;text-transform:uppercase;color:#fff}
.scard-body{flex:1;display:flex;flex-direction:column;gap:10px;padding:clamp(20px,2vw,26px)}
.scard-body h3{font:700 clamp(19px,1.6vw,22px)/1.2 var(--font-display);color:var(--ink)}
.scard-body p{font:400 15px/1.6 var(--font-body);color:var(--muted);text-wrap:pretty}
.scard-more{margin-top:auto;display:inline-flex;align-items:center;gap:8px;font:700 14.5px/1 var(--font-body);color:var(--brand)}
.scard-more svg{width:16px;height:16px;transition:transform .25s}
.scard:hover .scard-more svg{transform:translateX(4px)} .frows{display:flex;flex-direction:column;gap:clamp(48px,6vw,96px)}
.frow{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(28px,4vw,64px);align-items:center}
.frow-media{border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-2);aspect-ratio:4/3;background:var(--bg-alt)}
.frow-media img{width:100%;height:100%;object-fit:cover}
.frow--flip .frow-media{order:2}
.frow-body h3{font:700 clamp(25px,2.6vw,36px)/1.14 var(--font-display);letter-spacing:-.01em;color:var(--ink);margin-bottom:14px;text-wrap:balance}
.frow-body p{font:400 clamp(16px,1.35vw,18.5px)/1.65 var(--font-body);color:var(--muted);margin-bottom:14px;text-wrap:pretty}
.frow-note{display:inline-flex;align-items:center;gap:9px;margin-top:6px;padding:9px 15px;border-radius:999px;background:var(--bg-alt);border:1px solid var(--line);font:600 13.5px/1.3 var(--font-body);color:var(--brand)}
.ticks{display:flex;flex-direction:column;gap:11px;margin:18px 0 22px}
.ticks li{display:flex;gap:11px;font:400 16px/1.5 var(--font-body);color:var(--ink);list-style:none}
.ticks svg{flex:none;width:19px;height:19px;margin-top:2px;color:var(--brand-bright)} .specs{display:grid;grid-template-columns:1fr;gap:clamp(16px,1.8vw,22px)}@media(min-width:620px){.specs{grid-template-columns:repeat(2,1fr)}}@media(min-width:980px){.specs{grid-template-columns:repeat(3,1fr)}}
.spec{padding:clamp(22px,2.2vw,30px);background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-1)}
.spec .n{display:block;font:700 13px/1 var(--font-body);letter-spacing:.14em;color:var(--accent);margin-bottom:14px}
.spec h3{font:700 18.5px/1.25 var(--font-display);color:var(--ink);margin-bottom:8px}
.spec p{font:400 15px/1.6 var(--font-body);color:var(--muted);text-wrap:pretty}
.spec-num{background:var(--bg-alt);border-color:transparent} .ph-slot{display:none;position:relative;flex-direction:column;justify-content:center;gap:8px;padding:26px;min-height:190px;border-radius:var(--radius-lg);border:1.5px dashed color-mix(in oklch,var(--brand) 42%,var(--line));background-image:repeating-linear-gradient(135deg,color-mix(in oklch,var(--brand) 6%,var(--bg-alt)) 0 10px,var(--bg-alt) 10px 20px);text-align:left}
.ph-slot b{font:600 11px/1 ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.14em;text-transform:uppercase;color:var(--brand)}
.ph-slot span{font:400 13.5px/1.5 ui-monospace,SFMono-Regular,Menlo,monospace;color:var(--muted);max-width:44ch}
.ph-slot--tall{min-height:320px;aspect-ratio:4/3} .mats{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:16px}
.mat{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow-1)}
.mat .mat-img{aspect-ratio:3/2;background:var(--bg-alt)}
.mat .mat-img img{width:100%;height:100%;object-fit:cover}
.mat-body{padding:16px 18px 20px}
.mat-body h4{font:700 16.5px/1.25 var(--font-display);color:var(--ink);margin-bottom:5px}
.mat-body p{font:400 14px/1.55 var(--font-body);color:var(--muted)} .xlinks{display:flex;flex-wrap:wrap;gap:12px}
.xlink{display:inline-flex;align-items:center;gap:10px;padding:13px 19px;border-radius:999px;background:var(--surface);border:1px solid var(--line);font:600 15px/1 var(--font-body);color:var(--ink);text-decoration:none;box-shadow:var(--shadow-1);transition:border-color .2s,color .2s,transform .2s}
.xlink:hover{border-color:var(--brand);color:var(--brand);transform:translateY(-2px)}
.xlink svg{width:16px;height:16px;color:var(--brand)} .psec{padding:clamp(62px,7vw,104px) 0}
.psec--alt{background:var(--bg-alt)}
.psec--tight{padding:clamp(44px,4.6vw,66px) 0}
.psec--dark{background:var(--green-900);color:#fff}
.psec--dark .sec-head h2,.psec--dark .spec h3{color:#fff}
.psec--dark .sec-head .lede,.psec--dark .spec p{color:rgba(255,255,255,.76)}
.psec--dark .spec{background:#274924;border-color:rgba(255,255,255,.16);box-shadow:none}
.psec--dark .eyebrow{color:var(--gold-soft)}
.psec--dark .hand{color:var(--gold-soft)} .ctaband{background:var(--brand);color:#fff}
.ctaband .wrap{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:26px;padding:clamp(34px,4vw,56px) 0}
.ctaband h2{font:800 clamp(25px,2.7vw,38px)/1.12 var(--font-display);letter-spacing:-.01em;color:#fff;max-width:26ch;text-wrap:balance}
.ctaband p{margin-top:10px;font:400 16.5px/1.55 var(--font-body);color:rgba(255,255,255,.84);max-width:52ch}
.ctaband-act{display:flex;flex-wrap:wrap;gap:14px;align-items:center}
.ctaband .btn--solid{background:#fff;color:var(--green-900)}
.ctaband .btn--solid:hover{background:var(--gold-soft);color:var(--green-900)}
.ctaband .btn--ghost{border-color:rgba(255,255,255,.55);color:#fff}
.ctaband .btn--ghost:hover{border-color:#fff;background:rgba(255,255,255,.12);color:#fff} .calc-teaser{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:clamp(22px,3vw,44px);align-items:center;padding:clamp(26px,3vw,40px);background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow-1)}
.calc-teaser h3{font:700 clamp(21px,2vw,27px)/1.18 var(--font-display);color:var(--ink);margin-bottom:10px}
.calc-teaser p{font:400 15.5px/1.6 var(--font-body);color:var(--muted);margin-bottom:18px}
.calc-teaser .tiny{font:500 13px/1.4 var(--font-body);color:var(--muted);margin-top:12px}
@media(max-width:920px){
.pintro .wrap{grid-template-columns:1fr}
.frow{grid-template-columns:minmax(0,1fr)}.frow--flip .frow-media{order:0}
.ctaband .wrap{flex-direction:column;align-items:flex-start}
}
@media(max-width:600px){
.phero-content{padding:120px 0 40px}
.phero-facts div{min-width:120px}
} body[data-notes] .ph-slot{display:flex}a{color:var(--brand)}a:hover{color:var(--green-900)}
.ahero{position:relative;min-height:clamp(380px,48vh,540px);display:flex;align-items:flex-end;overflow:hidden}
.ahero-media{position:absolute;inset:0}
.ahero-media img{width:100%;height:100%;object-fit:cover;display:block}
.ahero-scrim{position:absolute;inset:0;background:linear-gradient(to top,rgba(14,24,18,.9) 0%,rgba(14,24,18,.62) 45%,rgba(14,24,18,.35) 100%)}
.ahero-content{position:relative;z-index:2;width:100%;padding:clamp(120px,13vw,160px) 0 clamp(34px,4vw,54px)}
.ahero h1{font:800 clamp(30px,4.4vw,56px)/1.08 var(--font-display);letter-spacing:-.02em;color:#fff;margin:14px 0 14px;max-width:22ch;text-wrap:balance}
.ahero .stand{font:400 clamp(16.5px,1.5vw,19.5px)/1.6 var(--font-body);color:rgba(255,255,255,.85);max-width:62ch;text-wrap:pretty}
.ameta{display:flex;flex-wrap:wrap;align-items:center;gap:10px 18px;margin-top:18px;font:600 13.5px/1.4 var(--font-body);color:rgba(255,255,255,.78)}
.ameta .kind{padding:6px 12px;border-radius:999px;background:var(--gold-soft);color:#2b2410;font:800 11px/1 var(--font-body);letter-spacing:.12em;text-transform:uppercase}
.alayout{display:grid;grid-template-columns:1fr;gap:clamp(30px,4vw,64px)}
@media(min-width:1000px){.alayout{grid-template-columns:minmax(0,1fr) 290px}}
.abody h2{font:800 clamp(24px,2.4vw,34px)/1.16 var(--font-display);letter-spacing:-.01em;color:var(--ink);margin:clamp(34px,3.6vw,52px) 0 14px;text-wrap:balance}
.abody h2:first-child{margin-top:0}
.abody h3{font:700 clamp(19px,1.8vw,23px)/1.25 var(--font-display);color:var(--ink);margin:clamp(24px,2.4vw,34px) 0 10px}
.abody p{font:400 clamp(16.5px,1.35vw,18px)/1.75 var(--font-body);color:var(--ink);margin:0 0 18px;text-wrap:pretty}
.abody ul{list-style:none;display:flex;flex-direction:column;gap:11px;margin:0 0 22px}
.abody ul li{display:grid;grid-template-columns:auto minmax(0,1fr);gap:12px;font:400 16.5px/1.65 var(--font-body);color:var(--ink)}
.abody ul li svg{width:19px;height:19px;margin-top:5px;flex:none;color:var(--brand-bright)}
.abody figure{margin:clamp(26px,3vw,40px) 0}
.abody figure img{width:100%;border-radius:var(--radius-lg);display:block;box-shadow:var(--shadow-1)}
.abody figcaption{margin-top:10px;font:500 13.5px/1.5 var(--font-body);color:var(--muted)}
.pull{margin:clamp(28px,3vw,44px) 0;padding:clamp(22px,2.4vw,34px);border-radius:var(--radius-lg);background:var(--green-900)}
.pull p{font:700 clamp(19px,1.9vw,25px)/1.35 var(--font-display);color:#fff;margin:0;text-wrap:balance}
.pull span{display:block;margin-top:12px;font:500 14px/1.5 var(--font-body);color:var(--gold-soft)}
.ptable{margin:clamp(22px,2.4vw,34px) 0;border:1px solid var(--line);border-radius:var(--radius-lg);overflow:hidden;background:var(--surface);box-shadow:var(--shadow-1)}
.ptr{display:grid;grid-template-columns:minmax(0,1.1fr) auto;gap:16px;padding:15px clamp(16px,2vw,24px);border-top:1px solid var(--line);align-items:baseline}
.ptr:first-child{border-top:0;background:var(--bg-alt)}
.ptr:first-child span{font:800 11.5px/1.3 var(--font-body);letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.ptr b{font:600 15.5px/1.4 var(--font-body);color:var(--ink)}
.ptr em{font:700 15.5px/1.4 var(--font-body);color:var(--brand);font-style:normal;white-space:nowrap}
.takeaways{margin:clamp(28px,3vw,44px) 0;padding:clamp(22px,2.4vw,34px);border-radius:var(--radius-lg);background:var(--bg-alt);border:1px solid var(--line)}
.takeaways h3{margin:0 0 14px}
.aside-stick{position:sticky;top:110px;display:grid;gap:18px}
.abox{padding:22px;border-radius:var(--radius-lg);background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow-1)}
.abox h4{font:700 16.5px/1.3 var(--font-display);color:var(--ink);margin-bottom:9px}
.abox p{font:400 14.5px/1.6 var(--font-body);color:var(--muted);margin:0 0 14px}
.abox .btn{width:100%;justify-content:center}
.toc{display:flex;flex-direction:column;gap:9px}
.toc a{font:600 14.5px/1.45 var(--font-body);color:var(--ink);text-decoration:none;padding-left:13px;border-left:2px solid var(--line)}
.toc a:hover{color:var(--brand);border-color:var(--brand)}.lf{display:grid;gap:18px;font-family:var(--font-body);color:var(--ink)}
.lf-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:14px}
.lf-f{display:grid;gap:7px}
.lf-f>label,.lf-q{font:700 12px/1.2 var(--font-body);letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.lf-f>label i,.lf-q i{font-style:normal;color:var(--brand)}
.lf input[type=text],.lf input[type=email],.lf input[type=tel],.lf select,.lf textarea{width:100%;box-sizing:border-box;padding:14px 16px;border:1px solid var(--line);border-radius:12px;background:#fff;font:500 16px/1.3 var(--font-body);color:var(--ink);transition:border-color .15s,box-shadow .15s}
.lf textarea{min-height:96px;resize:vertical}
.lf select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' fill='none' stroke='%2345614a' stroke-width='2'%3E%3Cpath d='M1 1l5 5 5-5'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 16px center;padding-right:40px}
.lf input:focus,.lf select:focus,.lf textarea:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 3px color-mix(in oklch,var(--brand) 18%,transparent)}
.lf ::placeholder{color:color-mix(in oklch,var(--muted) 70%,transparent)}
.lf-chips{display:flex;flex-wrap:wrap;gap:8px}
.lf-chips label{position:relative;cursor:pointer}
.lf-chips input{position:absolute;opacity:0;pointer-events:none}
.lf-chips span{display:inline-flex;align-items:center;min-height:44px;padding:0 16px;border:1px solid var(--line);border-radius:999px;background:#fff;font:600 14.5px/1 var(--font-body);color:var(--ink);transition:background .15s,border-color .15s,color .15s}
.lf-chips label:hover span{border-color:var(--brand)}
.lf-chips input:checked+span{background:var(--brand);border-color:var(--brand);color:#fff}
.lf-chips input:focus-visible+span{box-shadow:0 0 0 3px color-mix(in oklch,var(--brand) 25%,transparent)}
.lf-consent{display:grid;gap:10px;padding-top:4px}
.lf-consent label{display:grid;grid-template-columns:20px minmax(0,1fr);gap:12px;align-items:start;font:400 13.5px/1.5 var(--font-body);color:var(--muted);cursor:pointer}
.lf-consent input{width:20px;height:20px;margin:1px 0 0;accent-color:var(--brand)}
.lf-consent a{color:var(--brand)}
.lf-submit{display:flex;flex-wrap:wrap;align-items:center;gap:14px 20px}
.lf-submit .btn{min-height:54px;padding-inline:30px}
.lf-submit small{font:400 13.5px/1.45 var(--font-body);color:var(--muted)}
.lf-hide{display:none}
.lf-note{font:400 13px/1.5 ui-monospace,Menlo,monospace;color:var(--muted);padding:10px 14px;border:1px dashed var(--line);border-radius:10px;background:var(--bg-alt)}
.lf-done{display:grid;gap:10px;padding:28px;border-radius:16px;background:var(--bg-alt);text-align:left}
.lf-done b{font:800 22px/1.2 var(--font-display);color:var(--ink)}
.lf-done p{margin:0;color:var(--muted);font:400 15.5px/1.6 var(--font-body)}:root{--bg:#faf6ed;--bg-alt:#f2ebdb;--surface:#fff;--ink:#1a2419;--muted:#5d6757;--line:#e4dcc8;--brand:var(--green-700);--brand-bright:var(--green-500);--accent:var(--gold);--hand-color:var(--green-500);--header-bg:rgba(250,246,237,.88)} body{background:var(--bg)!important;color:var(--ink)}
body h1,body h2,body h3,body h4{font-family:var(--font-display)} .admin-bar .site-header{top:32px}
@media(max-width:782px){.admin-bar .site-header{top:46px}}
#content{display:block}
.abody--wp>*:first-child{margin-top:0}
.abody--wp ul,.abody--wp ol{list-style:revert;display:block;padding-left:1.4em;margin:0 0 22px}
.abody--wp ul li,.abody--wp ol li{display:list-item;margin:0 0 8px;font:400 clamp(16.5px,1.35vw,18px)/1.7 var(--font-body);color:var(--ink)}
.abody--wp img{max-width:100%;height:auto;border-radius:var(--radius-lg)}
.abody--wp .wp-block-image,.abody--wp figure{margin:clamp(26px,3vw,40px) 0}
.abody--wp blockquote{margin:clamp(28px,3vw,44px) 0;padding:clamp(22px,2.4vw,34px);border-radius:var(--radius-lg);background:var(--green-900);color:#fff}
.abody--wp blockquote p{font:700 clamp(19px,1.9vw,25px)/1.35 var(--font-display);color:#fff;margin:0}
.abody--wp table{width:100%;border-collapse:collapse;margin:0 0 24px}
.abody--wp td,.abody--wp th{padding:12px;border-bottom:1px solid var(--line);text-align:left}
.lno-pager{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;margin-top:44px}
.lno-pager .page-numbers{padding:10px 16px;border:1px solid var(--line);border-radius:999px;text-decoration:none;font-weight:700;color:var(--ink)}
.lno-pager .current{background:var(--brand);border-color:var(--brand);color:#fff}
.screen-reader-text{border:0;clip:rect(1px,1px,1px,1px);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px} .bhero{padding:clamp(130px,14vw,180px) 0 clamp(40px,4vw,60px);background:var(--green-900);color:#fff}
.bhero h1{font:800 clamp(34px,5vw,60px)/1.06 var(--font-display);letter-spacing:-.02em;color:#fff;margin-bottom:16px;text-wrap:balance;max-width:20ch}
.bhero h1 em{font-style:italic;color:var(--gold-soft)}
.bhero p{font:400 clamp(16.5px,1.5vw,19.5px)/1.6 var(--font-body);color:rgba(255,255,255,.82);max-width:62ch;text-wrap:pretty}
.feat{display:grid;grid-template-columns:1fr;gap:0;border-radius:var(--radius-lg);overflow:hidden;background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow-2);text-decoration:none}
@media(min-width:860px){.feat{grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr)}}
.feat-img{aspect-ratio:16/10;overflow:hidden;background:var(--bg-alt)}
.feat-img img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .5s ease}
.feat:hover .feat-img img{transform:scale(1.03)}
.feat-body{padding:clamp(24px,3vw,44px);display:flex;flex-direction:column;justify-content:center;gap:12px}
.feat-body .post-kind{font:800 11px/1 var(--font-body);letter-spacing:.13em;text-transform:uppercase;color:var(--accent)}
.feat-body h2{font:800 clamp(24px,2.6vw,36px)/1.14 var(--font-display);letter-spacing:-.01em;color:var(--ink);text-wrap:balance}
.feat-body p{font:400 16px/1.62 var(--font-body);color:var(--muted);margin:0;text-wrap:pretty}
.feat-meta{display:flex;flex-wrap:wrap;gap:14px;font:600 13px/1.4 var(--font-body);color:var(--muted)}
.filters{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:clamp(24px,2.6vw,34px)}
.filters button{padding:10px 17px;border-radius:999px;border:1px solid var(--line);background:var(--surface);color:var(--ink);font:600 14.5px/1.3 var(--font-body);cursor:pointer;transition:background .18s,border-color .18s,color .18s}
.filters button:hover{border-color:var(--brand)}
.filters button[aria-pressed="true"]{background:var(--brand);border-color:var(--brand);color:#fff}
.post.is-hidden{display:none}
.post-meta{display:flex;flex-wrap:wrap;gap:12px;font:600 12.5px/1.4 var(--font-body);color:var(--muted);margin-top:2px}
.subscribe{display:grid;grid-template-columns:1fr;gap:clamp(20px,2.6vw,40px);align-items:center;padding:clamp(26px,3vw,44px);border-radius:var(--radius-lg);background:#274924;border:1px solid rgba(255,255,255,.17)}
@media(min-width:820px){.subscribe{grid-template-columns:minmax(0,1fr) auto}}
.subscribe h3{font:800 clamp(21px,2.1vw,29px)/1.18 var(--font-display);color:#fff;margin-bottom:10px;text-wrap:balance}
.subscribe p{font:400 15.5px/1.65 var(--font-body);color:rgba(255,255,255,.8);margin:0;max-width:56ch;text-wrap:pretty} body.blog{padding:0} .feat-img,.post-img{background:radial-gradient(circle at 76% 26%,rgba(199,157,70,.25),transparent 31%),linear-gradient(135deg,#234528,#152d1d)} .inq-embed--live{min-height:0;background:#fff;padding:clamp(26px,3vw,42px);display:block}
.inq-form-label{margin:0 0 22px;padding-bottom:14px;border-bottom:1px solid var(--line);font:800 11px/1.3 var(--font-body);letter-spacing:.13em;text-transform:uppercase;color:var(--accent)}
.inq-embed--live iframe{display:block;width:100%;max-width:100%;min-height:508px;border:0;background:#fff}
@media(max-width:900px){.inq-embed--live{padding:clamp(20px,5vw,30px)}}
.frow[id]{scroll-margin-top:110px}
.subscribe .btn--ghost{color:#fff;border-color:rgba(255,255,255,.6);background:transparent}.subscribe .btn--ghost:hover{background:#fff;color:var(--green-900);border-color:#fff} body.single-post{font-family:var(--font-body)}