/* Four Seasons C&L LLC
   Brand comes from their logo: leaf green ("FOUR"), sky blue ("SEASONS" and the wave), black line art.
   Headings: Archivo. Body: Inter. */

:root{
  --ink:#0F1F17;
  --forest:#12301F;
  --forest-2:#0B2216;
  --leaf:#357A1C;
  --leaf-dark:#2A6316;
  --leaf-bright:#8FD35F;
  --sky:#1C97E0;
  --sky-deep:#0D6BAB;
  --paper:#FFFFFF;
  --sand:#F6F4EE;
  --mist:#EDF3EA;
  --stone:#59635B;
  --line:#E3E1D8;
  --line-strong:#CFCDC2;
  --radius:16px;
  --shadow:0 10px 30px rgba(15,31,23,.10);
  --shadow-lg:0 24px 60px rgba(15,31,23,.18);
  --display:'Archivo','Helvetica Neue',Arial,sans-serif;
  --sans:'Inter',system-ui,-apple-system,'Segoe UI',Roboto,Arial,sans-serif;
  --wrap:1200px;
  --gutter:clamp(18px,4vw,40px);
}

*,*::before,*::after{ box-sizing:border-box; }
html{ -webkit-text-size-adjust:100%; scroll-behavior:smooth; scroll-padding-top:96px; }
body{ margin:0; font-family:var(--sans); font-size:17px; line-height:1.6; color:var(--ink); background:var(--paper); -webkit-font-smoothing:antialiased; }
img,video{ max-width:100%; height:auto; display:block; }
a{ color:var(--sky-deep); text-underline-offset:3px; }
h1,h2,h3{ font-family:var(--display); line-height:1.08; letter-spacing:-.02em; margin:0; font-weight:800; text-wrap:balance; }
p{ margin:0; }
:focus-visible{ outline:3px solid var(--sky); outline-offset:2px; border-radius:6px; }
.wrap{ width:min(var(--wrap), 100% - 2*var(--gutter)); margin-inline:auto; }
.i{ width:1.15em; height:1.15em; flex:none; fill:none; stroke:currentColor; stroke-width:2; stroke-linecap:round; stroke-linejoin:round; }
.skip{ position:absolute; left:-999px; top:0; }
.skip:focus{ left:12px; top:12px; z-index:200; background:#fff; color:var(--ink); padding:10px 14px; border-radius:8px; box-shadow:var(--shadow); }
.ribbon{ background:#F2C200; color:#1B1B1B; font:700 12.5px/1.2 var(--sans); letter-spacing:.08em; text-transform:uppercase; text-align:center; padding:9px 12px; }

/* ---------- buttons ---------- */
.btn{ display:inline-flex; align-items:center; justify-content:center; gap:.55em; font:600 16px/1 var(--sans); padding:15px 22px; border-radius:999px; border:2px solid transparent; text-decoration:none; cursor:pointer; white-space:nowrap; transition:background .18s, color .18s, border-color .18s, transform .18s, box-shadow .18s; }
.btn-primary{ background:var(--leaf); color:#fff; }
.btn-primary:hover{ background:var(--leaf-dark); transform:translateY(-1px); box-shadow:0 8px 20px rgba(53,122,28,.28); }
.btn-light{ background:rgba(255,255,255,.12); color:#fff; border-color:rgba(255,255,255,.75); backdrop-filter:blur(4px); }
.btn-light:hover{ background:#fff; color:var(--ink); border-color:#fff; }
.btn-ghost{ background:transparent; color:var(--ink); border-color:var(--line-strong); }
.btn-ghost:hover{ border-color:var(--ink); }
.btn-white{ background:#fff; color:var(--ink); }
.btn-white:hover{ transform:translateY(-1px); box-shadow:0 8px 20px rgba(0,0,0,.22); }
.btn-lg{ padding:18px 28px; font-size:17px; }
.btn-sm{ padding:12px 18px; font-size:15px; }
.actions{ display:flex; flex-wrap:wrap; gap:12px; margin-top:30px; }

/* ---------- header ---------- */
.hdr{ position:sticky; top:0; z-index:50; background:rgba(255,255,255,.95); backdrop-filter:saturate(1.4) blur(10px); border-bottom:1px solid transparent; transition:border-color .2s, box-shadow .2s; }
.hdr.scrolled{ border-color:var(--line); box-shadow:0 6px 24px rgba(15,31,23,.06); }
.hdr-in{ display:flex; align-items:center; gap:24px; height:78px; }
.brand{ display:flex; align-items:center; gap:12px; text-decoration:none; color:var(--ink); flex:none; }
.brand img{ height:56px; width:auto; }
.brand-t{ display:flex; flex-direction:column; }
.brand-n{ font:800 21px/1 var(--display); letter-spacing:-.01em; text-transform:uppercase; white-space:nowrap; }
.brand-n .g{ color:var(--leaf); }
.brand-n .b{ color:var(--sky-deep); }
.brand-s{ font:600 10.5px/1.2 var(--sans); letter-spacing:.13em; text-transform:uppercase; color:var(--stone); margin-top:6px; white-space:nowrap; }
.nav{ display:flex; align-items:center; gap:4px; margin-left:auto; }
.nav-link{ font:600 15.5px/1 var(--sans); color:var(--ink); text-decoration:none; padding:12px 14px; border-radius:10px; background:none; border:0; cursor:pointer; display:inline-flex; align-items:center; gap:6px; white-space:nowrap; }
.nav-link:hover, .nav-link[aria-current="page"], .has-sub.open > .nav-link{ background:var(--mist); }
.nav-link .i{ width:16px; height:16px; transition:transform .2s; }
.has-sub{ position:relative; }
.has-sub.open > .nav-link .i{ transform:rotate(180deg); }
.sub{ position:absolute; top:calc(100% + 10px); left:-8px; min-width:320px; background:#fff; border:1px solid var(--line); border-radius:16px; box-shadow:var(--shadow-lg); padding:10px; display:none; }
.sub::before{ content:""; position:absolute; top:-12px; left:0; right:0; height:12px; }
.has-sub.open .sub{ display:grid; }
.sub a{ display:block; padding:11px 12px; border-radius:10px; color:var(--ink); text-decoration:none; font:500 15.5px/1.25 var(--sans); }
.sub a:hover, .sub a[aria-current="page"]{ background:var(--mist); }
.sub a.sub-partner{ border-top:1px solid var(--line); border-radius:0 0 10px 10px; margin-top:6px; padding-top:14px; }
.sub a.sub-partner small{ display:block; color:var(--stone); font-size:13px; margin-top:3px; }
.hdr-cta{ display:flex; align-items:center; gap:16px; flex:none; }
.hdr-phone{ font:700 16px/1 var(--sans); color:var(--ink); text-decoration:none; display:inline-flex; align-items:center; gap:8px; white-space:nowrap; }
.hdr-phone .i{ color:var(--leaf); }
.nav-btn{ display:none; width:46px; height:46px; border-radius:12px; border:1.5px solid var(--line-strong); background:#fff; color:var(--ink); cursor:pointer; align-items:center; justify-content:center; }
.nav-btn .i{ width:22px; height:22px; }
.nav-btn .i-close{ display:none; }
.nav-btn[aria-expanded="true"] .i-open{ display:none; }
.nav-btn[aria-expanded="true"] .i-close{ display:block; }
@media (min-width:1101px){
  .has-sub:hover .sub, .has-sub:focus-within .sub{ display:grid; }
}
@media (max-width:1100px){
  .hdr-in{ gap:12px; }
  .nav-btn{ display:inline-flex; order:3; }
  .hdr-cta{ margin-left:auto; }
  .nav{ position:absolute; top:100%; left:0; right:0; margin:0; background:#fff; flex-direction:column; align-items:stretch; gap:0; padding:10px var(--gutter) 22px; border-bottom:1px solid var(--line); box-shadow:0 24px 40px rgba(15,31,23,.12); max-height:calc(100dvh - 78px); overflow:auto; display:none; }
  .nav.open{ display:flex; }
  .nav-link{ padding:15px 4px; font-size:17px; border-radius:0; border-bottom:1px solid var(--line); justify-content:space-between; }
  .nav-link:hover, .nav-link[aria-current="page"], .has-sub.open > .nav-link{ background:none; }
  .sub-btn{ pointer-events:none; color:var(--stone); font-size:12.5px; letter-spacing:.13em; text-transform:uppercase; border-bottom:0; padding-bottom:6px; }
  .sub-btn .i{ display:none; }
  .sub{ position:static; display:grid; grid-template-columns:1fr 1fr; gap:0 14px; min-width:0; border:0; box-shadow:none; padding:0 0 10px; border-bottom:1px solid var(--line); border-radius:0; }
  .sub::before{ display:none; }
  .sub a{ padding:11px 4px; font-size:16px; }
  .sub a.sub-partner{ grid-column:1 / -1; }
}
@media (max-width:640px){
  .hdr-in{ height:68px; }
  .brand img{ height:46px; }
  .brand-n{ font-size:17px; }
  .brand-s{ font-size:9px; letter-spacing:.1em; margin-top:4px; }
  .hdr-cta .btn{ display:none; }
  .hdr-phone{ width:46px; height:46px; border-radius:12px; background:var(--leaf); justify-content:center; }
  .hdr-phone span{ display:none; }
  .hdr-phone .i{ color:#fff; width:20px; height:20px; }
  .nav{ max-height:calc(100dvh - 68px); }
  .sub{ grid-template-columns:1fr; }
}

@media (max-width:420px){
  .btn{ white-space:normal; text-align:center; line-height:1.25; }
  .btn-lg{ padding:16px 20px; font-size:16px; }
  .actions .btn{ flex:1 1 100%; }
}
@media (max-width:360px){
  .hdr-in{ gap:8px; }
  .brand{ gap:8px; }
  .brand img{ height:40px; }
  .brand-n{ font-size:15px; }
  .brand-s{ display:none; }
  .hdr-phone, .nav-btn{ width:42px; height:42px; }
}

/* ---------- shared section pieces ---------- */
.sec{ padding-block:clamp(60px,8vw,108px); }
.sec.sand{ background:var(--sand); }
.sec.tight{ padding-block:clamp(40px,5vw,64px); }
.eyebrow{ display:flex; align-items:center; gap:10px; font:700 13px/1.2 var(--sans); letter-spacing:.14em; text-transform:uppercase; color:var(--leaf); margin-bottom:16px; }
.eyebrow.on-dark{ color:#CFE9BF; }
.wave{ width:34px; height:8px; flex:none; fill:none; stroke:var(--sky); stroke-width:2.2; stroke-linecap:round; }
.sec-head{ max-width:760px; margin-bottom:clamp(28px,4vw,48px); }
.sec-head h2{ font-size:clamp(1.8rem,3.4vw,2.75rem); }
.sec-head .lede{ margin-top:14px; font-size:1.1rem; color:var(--stone); }
.sec-head.row{ display:flex; align-items:flex-end; justify-content:space-between; gap:20px 32px; max-width:none; flex-wrap:wrap; }
.sec-head.row > div{ max-width:760px; }
.more{ font:600 1rem/1 var(--sans); color:var(--leaf); text-decoration:none; display:inline-flex; align-items:center; gap:8px; padding-bottom:6px; white-space:nowrap; }
.more:hover{ text-decoration:underline; }
.rv-on .rv{ opacity:0; transform:translateY(16px); transition:opacity .6s ease, transform .6s ease; }
.rv-on .rv.in{ opacity:1; transform:none; }

/* ---------- home hero ---------- */
.hero{ position:relative; isolation:isolate; color:#fff; min-height:min(88vh,780px); display:flex; align-items:flex-end; background:var(--forest-2); }
.hero-bg{ position:absolute; inset:0; z-index:-2; }
.hero-bg img{ width:100%; height:100%; object-fit:cover; object-position:62% 60%; }
.hero::after{ content:""; position:absolute; inset:0; z-index:-1; background:linear-gradient(90deg, rgba(7,22,14,.92) 0%, rgba(7,22,14,.74) 36%, rgba(7,22,14,.22) 68%, rgba(7,22,14,.04) 100%), linear-gradient(0deg, rgba(7,22,14,.6) 0%, rgba(7,22,14,0) 42%); }
.hero-in{ padding-block:clamp(72px,12vh,128px) clamp(48px,8vh,84px); }
.hero h1{ font-size:clamp(2.3rem,5.4vw,4.3rem); max-width:800px; text-shadow:0 2px 24px rgba(0,0,0,.25); }
.hero-lede{ font-size:clamp(1.05rem,1.5vw,1.25rem); max-width:610px; margin-top:22px; color:rgba(255,255,255,.92); }
.trust{ list-style:none; display:flex; flex-wrap:wrap; gap:10px 26px; margin:34px 0 0; padding:0; font:600 14.5px/1.25 var(--sans); color:rgba(255,255,255,.94); }
.trust li{ display:inline-flex; align-items:center; gap:8px; }
.trust .i{ color:var(--leaf-bright); }
@media (max-width:460px){ .eyebrow{ font-size:11.5px; letter-spacing:.11em; gap:8px; } .wave{ width:28px; } }
@media (max-width:700px){
  .hero{ min-height:640px; }
  .hero::after{ background:linear-gradient(0deg, rgba(7,22,14,.95) 0%, rgba(7,22,14,.78) 52%, rgba(7,22,14,.28) 100%); }
  .hero-bg img{ object-position:center; }
  .hero .btn{ flex:1 1 auto; }
  .trust{ gap:8px 18px; font-size:13.5px; }
}

/* ---------- service cards ---------- */
.cards{ display:grid; grid-template-columns:repeat(4,1fr); gap:18px; }
.card{ display:flex; flex-direction:column; background:#fff; border:1px solid var(--line); border-radius:var(--radius); overflow:hidden; text-decoration:none; color:var(--ink); transition:transform .2s, box-shadow .2s, border-color .2s; }
.card:hover{ transform:translateY(-4px); box-shadow:var(--shadow); border-color:transparent; }
.card-img{ display:block; aspect-ratio:4/3; overflow:hidden; background:var(--mist); }
.card-img img{ width:100%; height:100%; object-fit:cover; transition:transform .5s; }
.card:hover .card-img img{ transform:scale(1.05); }
.card-body{ display:flex; flex-direction:column; gap:8px; padding:18px 18px 20px; flex:1; }
.card-t{ font:700 1.15rem/1.2 var(--display); letter-spacing:-.01em; }
.card-d{ color:var(--stone); font-size:.95rem; line-height:1.5; }
.card-more{ margin-top:auto; padding-top:8px; font:600 .92rem/1 var(--sans); color:var(--leaf); display:inline-flex; align-items:center; gap:6px; }
.card-more .i{ transition:transform .2s; }
.card:hover .card-more .i{ transform:translateX(4px); }
.cards.three{ grid-template-columns:repeat(3,1fr); }
@media (max-width:1080px){ .cards{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:760px){
  .cards.three{ grid-template-columns:1fr; }
  .cards.three .card{ flex-direction:row; }
  .cards.three .card-img{ width:38%; aspect-ratio:auto; flex:none; }
}
@media (max-width:560px){
  .cards{ gap:12px; }
  .cards:not(.three) .card-d{ display:none; }
  .cards:not(.three) .card-body{ padding:12px 12px 14px; gap:6px; }
  .cards:not(.three) .card-t{ font-size:1rem; }
  .cards:not(.three) .card-more{ font-size:.85rem; }
}

/* ---------- split: text + clip ---------- */
.split{ display:grid; grid-template-columns:1.05fr .95fr; gap:clamp(28px,5vw,72px); align-items:center; }
.split h2{ font-size:clamp(1.8rem,3.4vw,2.75rem); }
.split .lede{ margin-top:16px; font-size:1.1rem; color:var(--stone); }
.points{ list-style:none; margin:30px 0 0; padding:0; display:grid; gap:22px; }
.points li{ display:grid; grid-template-columns:46px 1fr; gap:16px; }
.points .n{ width:46px; height:46px; border-radius:12px; background:var(--mist); color:var(--leaf); display:grid; place-items:center; }
.points .n .i{ width:22px; height:22px; }
.points h3{ font-size:1.12rem; letter-spacing:-.01em; font-weight:700; }
.points p{ color:var(--stone); margin-top:4px; }
.clip{ margin:0; justify-self:center; position:relative; isolation:isolate; width:min(100%,370px); }
.clip::before{ content:""; position:absolute; inset:20px -18px 34px 18px; border-radius:26px; background:var(--mist); z-index:-1; }
.clip video{ width:100%; height:auto; aspect-ratio:9/16; object-fit:cover; border-radius:26px; box-shadow:var(--shadow-lg); background:var(--forest); }
.clip figcaption{ margin-top:14px; font-size:.92rem; color:var(--stone); text-align:center; }
@media (max-width:860px){
  .split{ grid-template-columns:1fr; }
  .clip{ width:min(76%,320px); }
}

/* ---------- photo masonry ---------- */
.masonry{ columns:3; column-gap:14px; }
.tile{ display:block; position:relative; margin:0 0 14px; break-inside:avoid; border-radius:14px; overflow:hidden; background:var(--mist); }
.tile img{ width:100%; height:auto; transition:transform .5s; }
.tile:hover img{ transform:scale(1.04); }
.tile::after{ content:""; position:absolute; inset:0; background:linear-gradient(0deg, rgba(7,22,14,.4), rgba(7,22,14,0) 45%); opacity:0; transition:opacity .25s; }
.tile-zoom{ position:absolute; right:12px; bottom:12px; width:38px; height:38px; border-radius:50%; background:#fff; color:var(--ink); display:grid; place-items:center; opacity:0; transform:translateY(6px); transition:opacity .25s, transform .25s; z-index:1; }
.tile-zoom .i{ width:17px; height:17px; }
.tile:hover::after, .tile:focus-visible::after{ opacity:1; }
.tile:hover .tile-zoom, .tile:focus-visible .tile-zoom{ opacity:1; transform:none; }
.tile[hidden]{ display:none; }
.masonry.two{ columns:2; }
@media (max-width:900px){ .masonry{ columns:2; } }
@media (max-width:460px){ .masonry{ column-gap:10px; } .tile{ margin-bottom:10px; border-radius:10px; } }
.filters{ display:flex; flex-wrap:wrap; gap:8px; margin-bottom:26px; }
.filters button{ font:600 .93rem/1 var(--sans); padding:11px 16px; border-radius:999px; border:1.5px solid var(--line-strong); background:#fff; color:var(--ink); cursor:pointer; transition:background .15s, color .15s, border-color .15s; }
.filters button:hover{ border-color:var(--ink); }
.filters button[aria-pressed="true"]{ background:var(--ink); border-color:var(--ink); color:#fff; }
.filters button span{ opacity:.6; margin-left:4px; font-weight:500; }
.count{ color:var(--stone); font-size:.95rem; margin-bottom:18px; }

/* ---------- steps ---------- */
.steps{ list-style:none; margin:0; padding:0; display:grid; grid-template-columns:repeat(4,1fr); gap:18px; counter-reset:s; }
.steps li{ background:#fff; border:1px solid var(--line); border-radius:var(--radius); padding:26px 22px; counter-increment:s; }
.steps li::before{ content:counter(s); display:grid; place-items:center; width:40px; height:40px; border-radius:50%; background:var(--leaf); color:#fff; font:800 1rem/1 var(--display); margin-bottom:16px; }
.steps h3{ font-size:1.12rem; font-weight:700; letter-spacing:-.01em; }
.steps p{ color:var(--stone); margin-top:8px; font-size:.97rem; }
@media (max-width:980px){ .steps{ grid-template-columns:1fr 1fr; } }
@media (max-width:560px){ .steps{ grid-template-columns:1fr; } .steps li{ display:grid; grid-template-columns:40px 1fr; column-gap:16px; padding:20px 18px; } .steps li::before{ grid-row:1 / span 2; margin:0; } .steps p{ grid-column:2; } }

/* ---------- proof band ---------- */
.proof{ display:grid; grid-template-columns:auto 1fr; gap:clamp(28px,6vw,88px); align-items:center; }
.proof-stat{ display:flex; align-items:center; gap:22px; }
.proof-n{ font:800 clamp(4rem,9vw,6.6rem)/.9 var(--display); letter-spacing:-.045em; color:var(--leaf); }
.proof-l{ max-width:340px; font-weight:600; line-height:1.45; }
.proof-l a{ display:inline-flex; align-items:center; gap:7px; margin-top:10px; font-weight:600; white-space:nowrap; }
.promise{ margin:0; padding-left:clamp(20px,3vw,36px); border-left:3px solid var(--sky); }
.promise p{ font:600 clamp(1.3rem,2.4vw,1.9rem)/1.3 var(--display); letter-spacing:-.012em; }
.promise cite{ display:block; margin-top:14px; font:500 .95rem/1.4 var(--sans); font-style:normal; color:var(--stone); }
.proof > *, .split > *, .af > *, .cta-grid > *, .phero-grid > *, .partner-grid > *, .duo > *{ min-width:0; }
@media (max-width:860px){ .proof{ grid-template-columns:1fr; } }
@media (max-width:520px){ .proof-stat{ flex-direction:column; align-items:flex-start; gap:10px; } .proof-l{ max-width:none; } .proof-l a{ white-space:normal; } }

/* ---------- partner band ---------- */
.partner{ background:var(--forest); color:#fff; position:relative; overflow:hidden; isolation:isolate; }
.partner::before{ content:""; position:absolute; inset:0; z-index:-1; opacity:.5; background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='240' height='48' viewBox='0 0 240 48'%3E%3Cpath d='M0 24c20-16 40-16 60 0s40 16 60 0 40-16 60 0 40 16 60 0' fill='none' stroke='%23ffffff' stroke-opacity='.07' stroke-width='2'/%3E%3C/svg%3E"); }
.partner-grid{ display:grid; grid-template-columns:1.1fr .9fr; gap:clamp(28px,5vw,72px); align-items:center; }
.partner h2{ font-size:clamp(1.8rem,3.4vw,2.6rem); }
.partner p{ color:rgba(255,255,255,.88); margin-top:16px; font-size:1.08rem; max-width:580px; }
.partner p a{ color:#fff; }
.lockup{ display:flex; align-items:center; justify-content:center; gap:clamp(12px,2.2vw,26px); background:rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.16); border-radius:22px; padding:clamp(20px,3vw,36px); }
.lockup-fs{ background:#fff; border-radius:16px; padding:10px; flex:none; }
.lockup-fs img{ width:clamp(92px,11vw,128px); height:auto; }
.lockup-x{ font:300 2rem/1 var(--sans); color:rgba(255,255,255,.5); }
.lockup-dt{ display:flex; align-items:center; gap:12px; text-decoration:none; color:#fff; }
.lockup-dt svg{ width:56px; height:56px; flex:none; border-radius:10px; }
.lockup-dt b{ display:block; font:700 1.12rem/1.15 var(--display); }
.lockup-dt small{ display:block; color:rgba(255,255,255,.72); font-size:.82rem; margin-top:4px; }
.lockup-dt:hover b{ text-decoration:underline; }
@media (max-width:860px){ .partner-grid{ grid-template-columns:1fr; } }
@media (max-width:420px){ .lockup{ flex-direction:column; } .lockup-x{ display:none; } }

/* ---------- service area + faq ---------- */
.af{ display:grid; grid-template-columns:.9fr 1.1fr; gap:clamp(28px,5vw,72px); align-items:start; }
.af h2{ font-size:clamp(1.6rem,2.8vw,2.2rem); }
.area-card{ background:var(--sand); border-radius:20px; padding:clamp(24px,3vw,38px); }
.area-card p{ margin-top:14px; color:#33413A; }
.chips{ display:flex; flex-wrap:wrap; gap:8px; list-style:none; margin:22px 0 0; padding:0; }
.chips li{ background:#fff; border:1px solid var(--line); border-radius:999px; padding:9px 14px; font:600 .9rem/1 var(--sans); }
.faq{ border-bottom:1px solid var(--line); }
.faq:first-of-type{ border-top:1px solid var(--line); }
.faq summary{ list-style:none; cursor:pointer; display:flex; justify-content:space-between; align-items:center; gap:16px; padding:20px 0; font:700 1.08rem/1.3 var(--display); letter-spacing:-.005em; }
.faq summary::-webkit-details-marker{ display:none; }
.faq summary .i{ transition:transform .2s; color:var(--leaf); width:20px; height:20px; }
.faq[open] summary .i{ transform:rotate(45deg); }
.faq-a{ padding:0 0 22px; color:var(--stone); max-width:700px; }
.faq-list{ margin-top:24px; }
.faq-wrap{ max-width:820px; }
@media (max-width:860px){ .af{ grid-template-columns:1fr; } }

/* ---------- contact block + form ---------- */
.cta-grid{ display:grid; grid-template-columns:.9fr 1.1fr; gap:clamp(28px,5vw,64px); align-items:start; }
.cta-grid h2{ font-size:clamp(1.8rem,3.4vw,2.75rem); }
.cta-grid h1{ font-size:clamp(2.1rem,4.4vw,3.4rem); }
.cta-grid .lede{ margin-top:16px; font-size:1.1rem; color:#33413A; }
.contact-list{ list-style:none; margin:30px 0 0; padding:0; display:grid; gap:14px; }
.contact-list li{ display:grid; grid-template-columns:46px 1fr; gap:14px; align-items:center; }
.contact-list .ic{ width:46px; height:46px; border-radius:12px; background:#fff; border:1px solid var(--line); display:grid; place-items:center; color:var(--leaf); }
.contact-list .ic .i{ width:20px; height:20px; }
.contact-list small{ display:block; color:var(--stone); font-size:.85rem; line-height:1.3; }
.contact-list a, .contact-list b{ font-weight:600; color:var(--ink); text-decoration:none; overflow-wrap:anywhere; }
.contact-list a:hover{ text-decoration:underline; }
.form{ background:#fff; border:1px solid var(--line); border-radius:20px; padding:clamp(20px,3vw,34px); box-shadow:var(--shadow); display:grid; gap:16px; }
.form label{ display:grid; gap:7px; font:600 .9rem/1.2 var(--sans); }
.form label span{ font-weight:400; color:var(--stone); }
.form input, .form select, .form textarea{ font:400 16px/1.4 var(--sans); padding:13px 14px; border:1.5px solid var(--line-strong); border-radius:10px; background:#fff; color:var(--ink); width:100%; }
.form textarea{ resize:vertical; min-height:110px; }
.form input:focus-visible, .form select:focus-visible, .form textarea:focus-visible{ outline:3px solid rgba(28,151,224,.35); outline-offset:0; border-color:var(--sky-deep); }
.row2{ display:grid; grid-template-columns:1fr 1fr; gap:14px; }
.form-note{ font-size:.9rem; color:var(--stone); }
.form-note strong{ color:#B4402F; }
.send-options{ border-top:1px solid var(--line); padding-top:18px; display:grid; gap:12px; }
.send-options h3{ font-size:1.2rem; font-weight:700; }
.send-options p{ color:var(--stone); font-size:.95rem; }
.send-grid{ display:flex; flex-wrap:wrap; gap:10px; }
.send-preview{ min-height:150px; font-size:14px !important; color:var(--stone) !important; background:var(--sand) !important; }
@media (max-width:860px){ .cta-grid{ grid-template-columns:1fr; } }
@media (max-width:560px){ .row2{ grid-template-columns:1fr; } .send-grid .btn{ flex:1 1 100%; } }

/* ---------- inner page hero ---------- */
.phero{ background:linear-gradient(180deg, var(--sand), #fff); padding-block:clamp(26px,3.6vw,48px) clamp(44px,6vw,84px); }
.phero-grid{ display:grid; grid-template-columns:1.05fr .95fr; gap:clamp(28px,5vw,72px); align-items:center; }
.crumbs{ font:500 .88rem/1.3 var(--sans); color:var(--stone); margin-bottom:22px; }
.crumbs a{ color:var(--stone); }
.phero h1{ font-size:clamp(2.1rem,4.4vw,3.5rem); }
.phero .lede{ margin-top:18px; font-size:1.13rem; color:#33413A; max-width:610px; }
.phero p + p.body{ margin-top:14px; }
.phero .body{ margin-top:14px; color:#33413A; max-width:610px; }
.checks{ list-style:none; margin:26px 0 0; padding:0; display:grid; grid-template-columns:1fr 1fr; gap:11px 22px; font-weight:500; }
.checks li{ display:grid; grid-template-columns:22px 1fr; gap:10px; align-items:start; line-height:1.4; }
.checks .i{ color:var(--leaf); margin-top:2px; width:20px; height:20px; }
.checks.one{ grid-template-columns:1fr; }
.phero-img{ position:relative; isolation:isolate; }
.phero-img::before{ content:""; position:absolute; inset:22px -16px -16px 22px; border-radius:24px; background:var(--mist); z-index:-1; }
.phero-img img{ width:100%; aspect-ratio:1/1.08; object-fit:cover; border-radius:24px; box-shadow:var(--shadow-lg); }
.badge{ position:absolute; left:-14px; bottom:28px; background:#fff; border-radius:14px; box-shadow:var(--shadow); padding:12px 16px; display:flex; align-items:center; gap:10px; font:600 .9rem/1.3 var(--sans); max-width:240px; }
.badge .i{ color:var(--leaf); width:24px; height:24px; }
.badge small{ display:block; font-weight:500; color:var(--stone); }
.phero.plain .phero-grid{ grid-template-columns:1fr; }
.phero.plain h1, .phero.plain .lede{ max-width:820px; }
@media (max-width:900px){
  .phero-grid{ grid-template-columns:1fr; }
  .phero-img img{ aspect-ratio:16/11; }
  .phero-img::before{ display:none; }
  .badge{ left:12px; bottom:12px; }
}
@media (max-width:520px){ .checks{ grid-template-columns:1fr; } }

/* ---------- small pieces ---------- */
.note{ background:var(--mist); border-left:4px solid var(--leaf); border-radius:12px; padding:18px 22px; margin-top:28px; max-width:860px; }
.band{ background:var(--forest); color:#fff; border-radius:24px; padding:clamp(28px,4vw,52px); display:flex; flex-wrap:wrap; gap:20px 40px; align-items:center; justify-content:space-between; position:relative; overflow:hidden; isolation:isolate; }
.band::before{ content:""; position:absolute; inset:0; z-index:-1; opacity:.5; background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='240' height='48' viewBox='0 0 240 48'%3E%3Cpath d='M0 24c20-16 40-16 60 0s40 16 60 0 40-16 60 0 40 16 60 0' fill='none' stroke='%23ffffff' stroke-opacity='.07' stroke-width='2'/%3E%3C/svg%3E"); }
.band h2{ font-size:clamp(1.5rem,2.8vw,2.2rem); }
.band p{ color:rgba(255,255,255,.84); margin-top:8px; max-width:560px; }
.band .actions{ margin-top:0; }
.facts{ background:#fff; border:1px solid var(--line); border-radius:20px; padding:clamp(16px,2.4vw,28px) clamp(20px,3vw,32px); box-shadow:var(--shadow); }
.facts dl{ margin:0; }
.facts dl > div{ display:grid; grid-template-columns:150px 1fr; gap:12px; padding:14px 0; border-bottom:1px solid var(--line); }
.facts dl > div:last-child{ border-bottom:0; }
.facts dt{ color:var(--stone); font-size:.92rem; }
.facts dd{ margin:0; font-weight:600; overflow-wrap:anywhere; }
.facts dd a{ color:var(--ink); }
.facts dd small{ display:block; font-weight:500; margin-top:2px; }
.grid4{ list-style:none; margin:0; padding:0; display:grid; grid-template-columns:repeat(4,1fr); gap:18px; }
.grid4 li{ background:#fff; border:1px solid var(--line); border-radius:var(--radius); padding:24px 22px; }
.grid4 .n{ width:44px; height:44px; border-radius:12px; background:var(--mist); color:var(--leaf); display:grid; place-items:center; margin-bottom:14px; }
.grid4 h3{ font-size:1.1rem; font-weight:700; letter-spacing:-.01em; }
.grid4 p{ color:var(--stone); margin-top:8px; font-size:.97rem; }
.grid4.three{ grid-template-columns:repeat(3,1fr); }
@media (max-width:980px){ .grid4, .grid4.three{ grid-template-columns:1fr 1fr; } }
@media (max-width:560px){ .grid4, .grid4.three{ grid-template-columns:1fr; } .facts dl > div{ grid-template-columns:1fr; gap:2px; } }
.duo{ display:grid; grid-template-columns:1fr 1fr; gap:20px; }
.duo-card{ border-radius:22px; padding:clamp(24px,3vw,38px); border:1px solid var(--line); background:#fff; display:flex; flex-direction:column; gap:14px; }
.duo-card h3{ font-size:1.5rem; }
.duo-card p{ color:var(--stone); }
.duo-card .checks{ margin-top:6px; }
.duo-card .btn{ margin-top:auto; align-self:flex-start; }
.duo-card .checks + .btn{ margin-top:14px; }
.duo-card.dt{ background:#14181B; border-color:#14181B; color:#F7F4EF; }
.duo-card.dt p{ color:rgba(247,244,239,.78); }
.duo-card.dt .checks .i{ color:#D6A75B; }
.duo-card.dt .btn{ background:#D6A75B; color:#14181B; }
.duo-card.dt .btn:hover{ background:#E3B972; transform:translateY(-1px); }
.duo-brand{ display:flex; align-items:center; gap:12px; font:700 .8rem/1.2 var(--sans); letter-spacing:.13em; text-transform:uppercase; color:var(--stone); }
.duo-card.dt .duo-brand{ color:#D6A75B; }
.duo-brand img{ height:44px; width:auto; background:#fff; border-radius:8px; padding:3px; }
.duo-brand svg{ width:44px; height:44px; border-radius:8px; }
@media (max-width:820px){ .duo{ grid-template-columns:1fr; } }
.linklist{ list-style:none; margin:0; padding:0; display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.linklist a{ display:flex; justify-content:space-between; align-items:center; gap:14px; padding:18px 20px; border:1px solid var(--line); border-radius:14px; text-decoration:none; color:var(--ink); font-weight:600; background:#fff; transition:border-color .15s, box-shadow .15s, transform .15s; }
.linklist a:hover{ border-color:var(--leaf); box-shadow:var(--shadow); transform:translateY(-2px); }
.linklist .i{ color:var(--leaf); }
@media (max-width:700px){ .linklist{ grid-template-columns:1fr; } }
.center{ text-align:center; }
.mt{ margin-top:clamp(24px,3vw,40px); }

/* ---------- footer ---------- */
.ftr{ background:var(--forest-2); color:rgba(255,255,255,.82); padding-block:clamp(48px,6vw,80px) 28px; font-size:.96rem; }
.ftr-grid{ display:grid; grid-template-columns:1.35fr 1fr .8fr 1.15fr; gap:clamp(24px,4vw,56px); }
.ftr h3{ font:700 .8rem/1 var(--sans); letter-spacing:.14em; text-transform:uppercase; color:#fff; margin-bottom:18px; }
.ftr a{ color:rgba(255,255,255,.82); text-decoration:none; }
.ftr a:hover{ color:#fff; text-decoration:underline; }
.ftr ul{ list-style:none; margin:0; padding:0; display:grid; gap:11px; }
.ftr-logo{ background:#fff; border-radius:14px; padding:8px; display:inline-block; }
.ftr-logo img{ width:118px; height:auto; }
.ftr-about{ margin-top:18px; max-width:320px; line-height:1.55; }
.ftr-lic{ margin-top:14px; font-weight:600; color:#fff; }
.ftr-contact li{ display:grid; grid-template-columns:20px 1fr; gap:10px; align-items:start; }
.ftr-contact .i{ margin-top:3px; color:var(--leaf-bright); width:17px; height:17px; }
.ftr-contact a{ overflow-wrap:anywhere; }
.ftr-bottom{ margin-top:clamp(32px,5vw,56px); padding-top:22px; border-top:1px solid rgba(255,255,255,.14); display:flex; flex-wrap:wrap; gap:8px 24px; justify-content:space-between; font-size:.86rem; color:rgba(255,255,255,.62); }
.ftr-bottom a{ color:rgba(255,255,255,.8); text-decoration:underline; }
@media (max-width:900px){ .ftr-grid{ grid-template-columns:1fr 1fr; } }
@media (max-width:520px){ .ftr-grid{ grid-template-columns:1fr; } }

/* ---------- phone action bar ---------- */
.callbar{ display:none; }
@media (max-width:760px){
  .callbar{ position:fixed; left:0; right:0; bottom:0; z-index:60; display:grid; grid-template-columns:1fr 1.5fr; gap:10px; padding:10px 14px calc(10px + env(safe-area-inset-bottom)); background:rgba(255,255,255,.97); backdrop-filter:blur(10px); border-top:1px solid var(--line); transform:translateY(110%); transition:transform .25s; }
  .callbar.show{ transform:none; }
  .callbar .btn{ padding:14px 10px; }
  .ftr{ padding-bottom:104px; }
}

/* ---------- photo viewer ---------- */
.lb{ position:fixed; inset:0; z-index:100; background:rgba(6,14,10,.95); display:none; }
.lb.open{ display:block; }
.lb-stage{ position:absolute; inset:60px 72px 76px; display:flex; align-items:center; justify-content:center; }
.lb-stage img{ max-width:100%; max-height:100%; width:auto; height:auto; border-radius:8px; box-shadow:0 20px 60px rgba(0,0,0,.5); }
.lb button{ position:absolute; z-index:2; background:rgba(255,255,255,.12); color:#fff; border:0; width:48px; height:48px; border-radius:50%; font:400 28px/1 var(--sans); cursor:pointer; display:grid; place-items:center; }
.lb button:hover{ background:rgba(255,255,255,.26); }
.lb-close{ top:10px; right:14px; }
.lb-prev{ left:12px; top:50%; transform:translateY(-50%); }
.lb-next{ right:12px; top:50%; transform:translateY(-50%); }
.lb-cap{ position:absolute; left:0; right:0; bottom:0; padding:16px 22px calc(16px + env(safe-area-inset-bottom)); display:flex; justify-content:space-between; gap:16px; color:rgba(255,255,255,.9); font-size:.93rem; }
.lb-cap strong{ color:#fff; }
.lb-n{ flex:none; color:rgba(255,255,255,.6); }
body.lb-lock{ overflow:hidden; }
@media (max-width:700px){
  .lb-stage{ inset:62px 8px 96px; }
  .lb-prev{ left:6px; }
  .lb-next{ right:6px; }
  .lb button{ width:42px; height:42px; background:rgba(0,0,0,.45); }
}

@media (prefers-reduced-motion:reduce){
  html{ scroll-behavior:auto; }
  .rv-on .rv{ opacity:1; transform:none; transition:none; }
  *{ transition-duration:.01ms !important; animation-duration:.01ms !important; }
}
@media print{
  .hdr, .callbar, .ribbon, .lb, .ftr{ display:none !important; }
  .hero{ color:#000; min-height:0; }
  .hero-bg, .hero::after{ display:none; }
}
