  :root{
    --green-900:#163A22;
    --green-800:#1F4D2B;
    --green-700:#2B6338;
    --leaf:#DCE8C8;
    --leaf-soft:#EEF3E4;
    --paper:#F7F8F4;
    --white:#FFFFFF;
    --ink:#17241B;
    --ink-2:#4A5A4F;
    --line:#D9DED3;
    --snor:#E8702A;
    --snor-dark:#C85A1A;
    --radius-l:20px;
    --radius-m:12px;
    --radius-s:8px;
    --max:1120px;
    --gutter:clamp(16px, 4vw, 40px);
  }
  *{box-sizing:border-box}
  html{scroll-behavior:smooth}
  @media (prefers-reduced-motion:reduce){html{scroll-behavior:auto} *{transition:none!important;animation:none!important}}
  body{
    margin:0;background:var(--paper);color:var(--ink);
    font-family:"Bricolage Grotesque",ui-sans-serif,system-ui,sans-serif;
    font-size:17px;line-height:1.55;-webkit-font-smoothing:antialiased;
  }
  h1,h2,h3{margin:0;font-weight:700;letter-spacing:-0.015em;line-height:1.08;font-variation-settings:"opsz" 96}
  h1{font-size:clamp(38px,6vw,66px);font-weight:800;letter-spacing:-0.03em}
  h2{font-size:clamp(28px,4vw,42px)}
  h3{font-size:20px;line-height:1.3}
  p{margin:0}
  a{color:inherit}
  button{font:inherit;cursor:pointer}
  .wrap{max-width:var(--max);margin:0 auto;padding:0 var(--gutter)}
  .lede{font-size:clamp(17px,2vw,20px);color:var(--ink-2);max-width:56ch}
  :focus-visible{outline:3px solid var(--snor);outline-offset:3px;border-radius:4px}
  .sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}

  /* the guide line: the one decorative device */
  .snor{position:relative;height:2px;background:var(--snor);margin:0 auto;max-width:var(--max)}
  .snor::before,.snor::after{content:"";position:absolute;top:-5px;width:12px;height:12px;border-radius:50%;background:var(--snor)}
  .snor::before{left:0}.snor::after{right:0}

  /* header */
  header{position:sticky;top:0;z-index:20;background:rgba(247,248,244,.92);backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}
  .nav{display:flex;align-items:center;justify-content:space-between;height:68px;gap:16px}
  .brand{display:flex;align-items:center;gap:10px;text-decoration:none;font-weight:700;font-size:18px;letter-spacing:-0.01em;white-space:nowrap}
  .brand img{height:44px;width:auto;display:block}
  .nav ul{display:flex;gap:26px;list-style:none;margin:0;padding:0}
  .nav ul a{text-decoration:none;color:var(--ink-2);font-weight:500}
  .nav ul a:hover{color:var(--ink)}
  .btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border-radius:999px;padding:12px 20px;font-weight:600;text-decoration:none;border:1.5px solid transparent;white-space:nowrap}
  .btn-primary{background:var(--snor);color:#fff}
  .btn-primary:hover{background:var(--snor-dark)}
  .btn-ghost{border-color:var(--green-800);color:var(--green-800);background:transparent}
  .btn-ghost:hover{background:var(--leaf-soft)}
  .btn-dark{background:var(--green-800);color:#fff}
  .btn-dark:hover{background:var(--green-900)}
  .btn-block{width:100%;padding:15px 20px;font-size:17px}
  @media (max-width:1000px){.nav ul{display:none}}
  @media (max-width:600px){.nav .btn{display:none}}

  /* hero */
  .hero{background:var(--green-800);color:#fff;padding:clamp(40px,7vw,88px) 0 clamp(48px,7vw,96px)}
  .hero .wrap{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,520px);gap:clamp(32px,5vw,72px);align-items:start}
  .hero .lede{color:#D6E3CF}
  .hero-kicker{color:#B9D1A9;font-weight:500;margin-bottom:18px}
  .hero-points{list-style:none;margin:32px 0 0;padding:0;display:grid;gap:12px;color:#E8F0E1}
  .hero-points li{display:flex;gap:12px;align-items:flex-start}
  .hero-points li::before{content:"";flex:0 0 18px;height:2px;background:var(--snor);margin-top:13px}
  .hero-call{margin-top:36px;display:flex;gap:14px;flex-wrap:wrap;align-items:center;color:#D6E3CF}
  .hero-call a.tel{color:#fff;font-weight:700;text-decoration:none;font-size:20px;letter-spacing:-0.01em}
  @media (max-width:900px){.hero .wrap{grid-template-columns:1fr}}

  /* calculator */
  .calc{background:var(--white);color:var(--ink);border-radius:var(--radius-l);padding:clamp(20px,3vw,32px);box-shadow:0 24px 60px rgba(10,30,15,.25)}
  .calc-head{display:flex;justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:18px}
  .calc-head h2{font-size:24px}
  .calc-head span{color:var(--ink-2);font-size:15px}
  .hedge{border:1.5px solid var(--line);border-radius:var(--radius-m);padding:18px;margin-bottom:12px;background:var(--paper)}
  .hedge-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px}
  .hedge-top strong{font-size:17px}
  .hedge-top button{background:none;border:0;color:var(--ink-2);font-size:14px;padding:4px 6px;text-decoration:underline}
  .hedge-top button:disabled{visibility:hidden}
  .field{margin-bottom:14px}
  .field:last-child{margin-bottom:0}
  .field>label,.field>.lbl{display:block;font-weight:600;font-size:15px;margin-bottom:8px}
  .len{display:grid;grid-template-columns:1fr 92px;gap:14px;align-items:center}
  input[type=range]{width:100%;accent-color:var(--green-800);height:32px;margin:0}
  .num{display:flex;align-items:center;border:1.5px solid var(--line);border-radius:var(--radius-s);background:#fff;overflow:hidden}
  .num input{width:100%;border:0;padding:10px 0 10px 12px;font:inherit;font-weight:600;font-size:17px;min-width:0;background:transparent}
  .num input:focus{outline:none}
  .num span{padding:0 10px 0 2px;color:var(--ink-2);font-size:15px}
  .seg{display:grid;grid-template-columns:1fr 1fr;gap:8px}
  .seg label{position:relative}
  .seg input{position:absolute;opacity:0;inset:0}
  .seg span{display:flex;flex-direction:column;align-items:flex-start;border:1.5px solid var(--line);border-radius:var(--radius-s);padding:10px 12px;background:#fff;line-height:1.25}
  .seg span small{color:var(--ink-2);font-size:13px;margin-top:3px}
  .seg input:checked+span{border-color:var(--green-800);background:var(--leaf-soft);box-shadow:inset 0 0 0 1px var(--green-800)}
  .seg input:focus-visible+span{outline:3px solid var(--snor);outline-offset:2px}
  .hedge-sum{display:flex;justify-content:space-between;border-top:1px dashed var(--line);padding-top:12px;margin-top:16px;font-size:15px;color:var(--ink-2)}
  .hedge-sum b{color:var(--ink);font-size:17px}
  .add{background:none;border:1.5px dashed var(--green-800);color:var(--green-800);border-radius:var(--radius-s);padding:11px;width:100%;font-weight:600;margin-bottom:14px}
  .add:hover{background:var(--leaf-soft)}
  .check{display:flex;align-items:center;gap:12px;border:1.5px solid var(--line);border-radius:var(--radius-s);padding:12px 14px;background:#fff;cursor:pointer}
  .check input{width:20px;height:20px;accent-color:var(--green-800);margin:0}
  .check .grow{flex:1}
  .check small{display:block;color:var(--ink-2);font-size:13px}
  .total{margin-top:16px;background:var(--green-800);color:#fff;border-radius:var(--radius-m);padding:18px 20px}
  .total-row{display:flex;justify-content:space-between;align-items:baseline;gap:12px}
  .total-row .lbl{font-size:15px;color:#C9DBBE}
  .total-row .amt{font-size:clamp(30px,4vw,38px);font-weight:800;letter-spacing:-0.03em;line-height:1}
  .total ul{list-style:none;margin:12px 0 0;padding:12px 0 0;border-top:1px solid rgba(255,255,255,.18);display:grid;gap:4px;font-size:14px;color:#D6E3CF}
  .total ul li{display:flex;justify-content:space-between;gap:12px}
  .total ul li.note{color:#F2B38C;display:block}
  .total .fine{font-size:13px;color:#B9D1A9;margin-top:12px}
  details.req{margin-top:14px}
  details.req summary{list-style:none;cursor:pointer}
  details.req summary::-webkit-details-marker{display:none}
  details.req[open] summary .btn{display:none}
  .req-form{margin-top:14px;display:grid;gap:12px}
  .req-form h3{font-size:18px;margin-bottom:2px}
  .grid2{display:grid;grid-template-columns:1fr 1fr;gap:12px}
  @media (max-width:520px){.grid2{grid-template-columns:1fr}}
  .in label,.in .lbl-l{display:block;font-size:14px;font-weight:600;margin-bottom:6px}

  /* booking picker */
  .book{display:grid;gap:10px}
  .book .days{display:flex;gap:8px;overflow-x:auto;padding:2px 2px 6px;scrollbar-width:thin;-webkit-overflow-scrolling:touch}
  .book .day,.book .slot{border:1.5px solid var(--line);border-radius:var(--radius-s);background:#fff;padding:8px 10px;line-height:1.2;cursor:pointer;color:var(--ink);font:inherit;text-align:center}
  .book .day{flex:0 0 auto;min-width:66px}
  .book .day small,.book .slot small{display:block;font-size:12px;color:var(--ink-2);margin-top:2px}
  .book .day b{display:block;font-size:19px;font-weight:700;letter-spacing:-0.02em}
  .book .day span{font-size:12px;color:var(--ink-2)}
  .book .day[aria-pressed=true],.book .slot[aria-pressed=true]{border-color:var(--green-800);background:var(--leaf-soft);box-shadow:inset 0 0 0 1px var(--green-800)}
  .book .slots{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
  .book .slot{font-weight:600;font-size:15px}
  .book .picked{font-size:14px;color:var(--ink-2);margin:0}
  .book .picked b{color:var(--ink)}
  @media (max-width:420px){.book .slots{grid-template-columns:1fr}}

  .booksec{background:var(--white)}
  .booksec .wrap{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,560px);gap:clamp(32px,5vw,72px);align-items:start}
  .bookform{background:var(--paper);border:1.5px solid var(--line);border-radius:var(--radius-l);padding:clamp(20px,3vw,28px);display:grid;gap:14px}
  .bookform h3{font-size:18px}
  .book-points{list-style:none;margin:24px 0 0;padding:0;display:grid;gap:12px;color:var(--ink-2)}
  .book-points li{display:flex;gap:12px;align-items:flex-start}
  .book-points li::before{content:"";flex:0 0 18px;height:2px;background:var(--snor);margin-top:13px}
  @media (max-width:900px){.booksec .wrap{grid-template-columns:1fr}}
  .in input,.in select,.in textarea{width:100%;border:1.5px solid var(--line);border-radius:var(--radius-s);padding:11px 12px;font:inherit;background:#fff;color:var(--ink)}
  .in input[type=file]{padding:8px;font-size:14px}
  .in small{display:block;color:var(--ink-2);font-size:13px;margin-top:5px}
  .hp{position:absolute;left:-9999px;top:-9999px}
  .sent{display:none;border:1.5px solid var(--green-700);background:var(--leaf-soft);border-radius:var(--radius-m);padding:18px;margin-top:14px}
  .sent.show{display:block}
  .sent h3{margin-bottom:6px}
  .sent p{color:var(--ink-2);font-size:15px}

  /* sections */
  section{padding:clamp(56px,8vw,104px) 0}
  .sec-head{max-width:62ch;margin-bottom:clamp(28px,4vw,44px)}
  .sec-head p{margin-top:12px}

  .prices{background:var(--white)}
  .price-table{width:100%;border-collapse:collapse;max-width:720px}
  .price-table th,.price-table td{text-align:left;padding:14px 0;border-bottom:1px solid var(--line);vertical-align:top}
  .price-table th{font-weight:600;font-size:15px;color:var(--ink-2)}
  .price-table td:last-child,.price-table th:last-child{text-align:right;white-space:nowrap}
  .price-table td b{font-size:19px;font-weight:700}
  .price-table td small{display:block;color:var(--ink-2);font-size:14px}
  .incl{margin-top:28px;display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px 32px;max-width:720px}
  .incl div{padding-left:18px;position:relative;color:var(--ink-2);font-size:15px}
  .incl div::before{content:"";position:absolute;left:0;top:11px;width:10px;height:2px;background:var(--snor)}
  .incl div b{display:block;color:var(--ink);font-size:16px}

  .steps ol{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,1fr);gap:32px;counter-reset:s}
  .steps li{counter-increment:s;border-top:2px solid var(--green-800);padding-top:18px}
  .steps li::before{content:counter(s);display:inline-grid;place-items:center;width:30px;height:30px;border-radius:50%;background:var(--green-800);color:#fff;font-weight:700;font-size:15px;margin-bottom:14px}
  .steps li p{color:var(--ink-2);margin-top:8px;font-size:16px}
  @media (max-width:760px){.steps ol{grid-template-columns:1fr;gap:24px}}

  .reviews{background:var(--leaf)}
  .rev-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
  .rev{background:var(--white);border-radius:var(--radius-m);padding:24px;display:flex;flex-direction:column;gap:14px}
  .rev q{quotes:"“" "”";font-size:17px;line-height:1.5}
  .rev q::before{color:var(--snor);font-weight:800}
  .rev footer{margin-top:auto;font-size:15px;color:var(--ink-2)}
  .rev footer b{color:var(--ink);display:block}
  .stars{color:var(--snor);letter-spacing:2px;font-size:15px}
  @media (max-width:860px){.rev-grid{grid-template-columns:1fr}}

  .faq-list{max-width:760px}
  .faq-list details{border-top:1px solid var(--line)}
  .faq-list details:last-child{border-bottom:1px solid var(--line)}
  .faq-list summary{cursor:pointer;padding:18px 40px 18px 0;font-weight:600;font-size:18px;list-style:none;position:relative}
  .faq-list summary::-webkit-details-marker{display:none}
  .faq-list summary::after{content:"+";position:absolute;right:4px;top:14px;font-size:26px;font-weight:400;color:var(--green-800)}
  .faq-list details[open] summary::after{content:"–"}
  .faq-list details p{padding:0 0 20px;color:var(--ink-2);max-width:62ch}

  .about{background:var(--white)}
  .about .wrap{display:grid;grid-template-columns:minmax(0,300px) minmax(0,1fr);gap:clamp(28px,5vw,64px);align-items:center}
  .portrait{aspect-ratio:4/5;border-radius:var(--radius-l);background:linear-gradient(160deg,var(--green-700),var(--green-900));position:relative;overflow:hidden}
  .portrait img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}
  .about-facts{display:flex;gap:32px;margin-top:24px;flex-wrap:wrap}
  .about-facts div b{display:block;font-size:30px;font-weight:800;letter-spacing:-0.03em;line-height:1}
  .about-facts div span{font-size:14px;color:var(--ink-2)}
  @media (max-width:760px){.about .wrap{grid-template-columns:1fr}.portrait{max-width:260px}}

  .contact{background:var(--green-900);color:#fff}
  .contact .wrap{display:grid;grid-template-columns:1fr 1fr;gap:48px}
  .contact h2{color:#fff}
  .contact p{color:#C9DBBE}
  .c-list{list-style:none;margin:28px 0 0;padding:0;display:grid;gap:18px}
  .c-list span{display:block;font-size:14px;color:#B9D1A9}
  .c-list a{color:#fff;text-decoration:none;font-weight:700;font-size:20px;letter-spacing:-0.01em}
  .c-list a:hover{text-decoration:underline;text-decoration-color:var(--snor)}
  .areas{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px}
  .areas span{border:1px solid rgba(255,255,255,.25);border-radius:999px;padding:5px 12px;font-size:14px;color:#E8F0E1}
  .foot{border-top:1px solid rgba(255,255,255,.14);margin-top:48px;padding-top:24px;display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;font-size:14px;color:#B9D1A9}
  .foot a{color:#B9D1A9}
  @media (max-width:760px){.contact .wrap{grid-template-columns:1fr;gap:32px}}

  /* mobile sticky action */
  .sticky-cta{display:none}
  @media (max-width:900px){
    .sticky-cta{display:flex;position:fixed;bottom:0;left:0;right:0;z-index:30;background:#fff;border-top:1px solid var(--line);padding:10px 16px calc(10px + env(safe-area-inset-bottom));gap:10px}
    .sticky-cta .btn{flex:1;padding:13px 10px}
    body{padding-bottom:72px}
  }

  /* subpages */
  .btn-light{border-color:#B9D1A9;color:#fff}
  .btn-light:hover{background:rgba(255,255,255,.1)}
  .page-hero{background:var(--green-800);color:#fff;padding:clamp(40px,6vw,72px) 0}
  .page-hero h1{font-size:clamp(34px,5vw,54px)}
  .page-hero .lede{color:#D6E3CF;margin-top:16px}
  .page-hero .wrap{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,380px);gap:clamp(28px,5vw,64px);align-items:center}
  .page-hero .portrait{box-shadow:0 24px 60px rgba(10,30,15,.3)}
  @media (max-width:760px){.page-hero .wrap{grid-template-columns:1fr}.page-hero .portrait{max-width:300px}}

  .work{display:grid;grid-template-columns:1fr 1fr;gap:36px 32px}
  .work figure{margin:0}
  .work figcaption{margin-top:12px;color:var(--ink-2);font-size:15px;max-width:52ch}
  .work figcaption b{display:block;color:var(--ink);font-size:17px}
  .compare{position:relative;aspect-ratio:4/3;border-radius:var(--radius-m);overflow:hidden;background:var(--leaf);user-select:none;-webkit-user-select:none;touch-action:pan-y}
  .compare img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block;pointer-events:none}
  .compare .before{clip-path:inset(0 calc(100% - var(--pos,50%)) 0 0)}
  .compare .handle{position:absolute;top:0;bottom:0;left:var(--pos,50%);width:2px;margin-left:-1px;background:var(--snor);pointer-events:none}
  .compare .handle::after{content:"◂ ▸";position:absolute;top:50%;left:50%;width:44px;height:44px;border-radius:50%;background:var(--snor);color:#fff;font-size:15px;font-weight:700;letter-spacing:1px;display:grid;place-items:center;transform:translate(-50%,-50%);box-shadow:0 2px 10px rgba(0,0,0,.3)}
  .compare input{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:ew-resize;margin:0}
  .compare .tag{position:absolute;top:12px;padding:4px 10px;border-radius:999px;font-size:13px;font-weight:600;background:rgba(23,36,27,.75);color:#fff;pointer-events:none}
  .compare .tag.l{left:12px}.compare .tag.r{right:12px}
  .compare:focus-within{outline:3px solid var(--snor);outline-offset:3px}
  @media (max-width:860px){.work{grid-template-columns:1fr}}

  .values{display:grid;grid-template-columns:repeat(3,1fr);gap:32px}
  .values div{border-top:2px solid var(--green-800);padding-top:18px}
  .values p{color:var(--ink-2);margin-top:8px;font-size:16px}
  @media (max-width:760px){.values{grid-template-columns:1fr;gap:24px}}
  .prose{max-width:62ch}
  .prose p+p{margin-top:16px}

  .cta-band{background:var(--leaf)}
  .cta-band .wrap{display:flex;align-items:center;justify-content:space-between;gap:24px;flex-wrap:wrap}
  .cta-band h2{font-size:clamp(24px,3vw,32px)}
  .cta-band p{color:var(--ink-2);margin-top:6px}

  .foot-min{background:var(--green-900);color:#B9D1A9;padding:36px 0;font-size:15px}
  .foot-min .wrap{display:flex;justify-content:space-between;gap:16px 32px;flex-wrap:wrap;align-items:center}
  .foot-min a{color:#fff;text-decoration:none;font-weight:600}
  .foot-min a:hover{text-decoration:underline;text-decoration-color:var(--snor)}
  .foot-min span{display:block}

/* Work page gallery */
.gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:28px}
.gallery img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:var(--radius-m);display:block;background:var(--leaf)}
@media (max-width:760px){.gallery{grid-template-columns:1fr 1fr;gap:10px}}
