/* MultiPro Services — demo v2 design system (premium hybrid, logo palette) */
:root{
  --bg:#FFFFFF; --bg-soft:#F3F8F1; --surface:#FFFFFF;
  --ink:#0F2E16; --muted:#54685A;
  --green:#019101;--green-fill:#018501; --green-deep:#017001; --green-dark:#0B3D14;
  --blue:#1F99D6; --blue-deep:#1478AC;
  --dark:#0B140D;
  --line:rgba(15,46,22,.13); --line-soft:rgba(15,46,22,.08);
  --shadow:0 10px 34px rgba(15,46,22,.08);
  --r:18px; --maxw:1180px;
  --display:'Fraunces',serif; --body:'Instrument Sans',sans-serif;
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
body{font-family:var(--body);background:var(--bg);color:var(--ink);font-size:16.5px;line-height:1.65;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}
::selection{background:rgba(1,145,1,.18)}
img{display:block;max-width:100%}
a{color:inherit}
.container{max-width:var(--maxw);margin:0 auto;padding:0 24px}

/* ---------- nav ---------- */
.nav{position:fixed;top:0;left:0;right:0;z-index:200;background:rgba(255,255,255,.96);border-bottom:1px solid transparent;transition:box-shadow .35s,border-color .35s}
.nav.solid{border-color:var(--line-soft);box-shadow:0 6px 30px rgba(15,46,22,.07)}
.nav-inner{max-width:1300px;margin:0 auto;padding:10px 24px;display:flex;align-items:center;gap:20px}
.brand{display:flex;align-items:center;text-decoration:none;flex:none}
.brand img{height:66px;width:auto}
.nav-links{display:flex;gap:20px;margin-left:auto;align-items:center;flex-wrap:nowrap}
.nav-links a{text-decoration:none;font-weight:500;font-size:.92rem;color:var(--ink);opacity:.85;transition:opacity .2s,color .2s;padding:4px 0;white-space:nowrap}
.nav-links a:hover{opacity:1;color:var(--green-deep)}
.nav-links a.on{color:var(--green-deep);opacity:1;font-weight:600}
.lang-toggle{display:flex;border:1px solid var(--line);border-radius:999px;overflow:hidden;flex:none}
.lang-toggle button{border:0;background:transparent;font-family:var(--body);font-weight:600;font-size:.78rem;padding:6px 12px;cursor:pointer;color:var(--muted)}
.lang-toggle button.on{background:var(--green-fill);color:#fff}
.nav-cta{display:inline-block;background:var(--green-fill);color:#fff;text-decoration:none;font-weight:600;font-size:.88rem;padding:10px 20px;border-radius:999px;transition:background .2s,transform .2s;white-space:nowrap;flex:none}
.nav-cta:hover{background:var(--green-deep);transform:translateY(-1px)}
.nav-links a.nav-cta,.mobile-menu a.nav-cta{padding:11px 22px;color:#fff;opacity:1;font-size:.88rem;border-bottom:0}
.nav-links a.nav-cta:hover{color:#fff}
.burger{display:none;margin-left:auto;background:none;border:0;cursor:pointer;padding:8px}
.burger span{display:block;width:24px;height:2px;background:var(--ink);margin:5px 0;transition:transform .3s,opacity .3s}
.mobile-menu{display:none}

/* ---------- shared type ---------- */
.eyebrow{display:inline-flex;align-items:center;gap:9px;font-size:.72rem;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--muted)}
.eyebrow::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--blue);flex:none}
h1,h2{font-family:var(--display);font-weight:430;letter-spacing:-.012em;line-height:1.1}
h2{font-size:clamp(1.9rem,3.4vw,2.7rem);margin:16px 0 14px}
h2 em,h1 em{font-style:italic;color:var(--green-deep)}
.sec-head{max-width:680px;margin-bottom:52px}
.sec-head.center{margin-left:auto;margin-right:auto;text-align:center}
.sec-head.center .eyebrow{justify-content:center}
.sec-head p{color:var(--muted);font-size:1.05rem}
section.block{padding:92px 0}
section.block.soft{background:var(--bg-soft)}

/* ---------- buttons ---------- */
.btn{display:inline-block;text-decoration:none;font-weight:600;font-size:1rem;padding:15px 28px;border-radius:999px;transition:transform .2s,background .2s,border-color .2s,color .2s;cursor:pointer;border:0;font-family:var(--body)}
.btn-green{background:var(--green-fill);color:#fff}
.btn-green:hover{background:var(--green-deep);transform:translateY(-2px)}
.btn-ghost{background:transparent;color:#fff;border:1px solid rgba(255,255,255,.55)}
.btn-ghost:hover{border-color:#fff;transform:translateY(-2px)}
.btn-outline{background:transparent;color:var(--green-deep);border:1px solid var(--green)}
.btn-outline:hover{background:var(--green);color:#fff;transform:translateY(-2px)}
.link-cta{position:relative;display:inline-flex;align-items:center;gap:9px;text-decoration:none;font-weight:600;font-size:1rem;color:var(--green-deep);padding:5px 0}
.link-cta::after{content:"\2192";transition:transform .25s}
.link-cta:hover::after{transform:translateX(5px)}
.link-cta::before{content:"";position:absolute;left:0;bottom:0;height:2px;width:100%;background:var(--green);transform:scaleX(.32);transform-origin:left;transition:transform .35s cubic-bezier(.2,.6,.2,1)}
.link-cta:hover::before{transform:scaleX(1)}

/* ---------- hero (home) ---------- */
.hero{position:relative;min-height:92vh;display:flex;align-items:flex-end;overflow:hidden}
.hero-bg{position:absolute;inset:0}
.hero-bg img{width:100%;height:100%;object-fit:cover;object-position:center 60%}
.hero-bg::after{content:"";position:absolute;inset:0;background:
  linear-gradient(to right,rgba(8,22,11,.66) 0%,rgba(8,22,11,.32) 46%,rgba(8,22,11,.06) 75%),
  linear-gradient(to top,rgba(6,16,8,.6) 0%,transparent 45%)}
.hero-inner{position:relative;z-index:2;max-width:var(--maxw);margin:0 auto;width:100%;padding:150px 24px 72px;color:#F7FAF5}
.hero .eyebrow{color:#DDEBD8}
.hero .eyebrow::before{background:#5FC2F0}
.hero h1{font-size:clamp(2.5rem,5.6vw,4.4rem);margin:18px 0 20px;max-width:13ch;color:#FFFFFF}
.hero h1 em{color:#8FE08F}
.hero p.lead{font-size:clamp(1.02rem,1.5vw,1.2rem);max-width:52ch;color:#E4EEE0;margin-bottom:30px}
.hero-actions{display:flex;gap:14px;flex-wrap:wrap;margin-bottom:34px}
.hero-chips{display:flex;gap:10px;flex-wrap:wrap}
.chip{font-size:.82rem;font-weight:600;padding:8px 16px;border:1px solid rgba(255,255,255,.4);border-radius:999px;color:#F0F6EC;background:rgba(8,22,11,.3);backdrop-filter:blur(6px)}
.hero-chips .chip{display:inline-flex;align-items:center;gap:8px}
.hero-chips .chip::before{content:"";width:6px;height:6px;border-radius:50%;background:#8FE08F;flex:none}
/* v7 (2026-08-27, night): no backdrop blur on the hero chips. Four blurred regions over a playing film are four blur
   passes per frame; a slightly deeper tint reads the same. */
.hero-chips .chip{-webkit-backdrop-filter:none;backdrop-filter:none;background:rgba(8,22,11,.44)}

/* ---------- page hero (subpages) ---------- */
.page-hero{padding:168px 0 64px;background:linear-gradient(180deg,var(--bg-soft) 0%,var(--bg) 100%)}
.page-hero h1{font-size:clamp(2.3rem,4.4vw,3.4rem);margin:16px 0 14px;max-width:20ch}
.page-hero p{color:var(--muted);font-size:1.08rem;max-width:62ch}

/* ---------- service cards (home overview) ---------- */
.svc-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:22px}
.svc-grid>*{grid-column:span 2}
.svc-grid>*:nth-child(4),.svc-grid>*:nth-child(5){grid-column:span 3}
.svc{background:var(--surface);border:1px solid var(--line-soft);border-radius:var(--r);overflow:hidden;transition:transform .3s,box-shadow .3s;display:flex;flex-direction:column;box-shadow:var(--shadow);text-decoration:none}
.svc:hover{transform:translateY(-5px);box-shadow:0 24px 50px rgba(15,46,22,.13)}
.svc-img{aspect-ratio:4/2.9;overflow:hidden;position:relative}
.svc-img img{width:100%;height:100%;object-fit:cover;transition:transform .6s ease}
.svc:hover .svc-img img{transform:scale(1.045)}
.svc-body{padding:22px 24px 24px;display:flex;flex-direction:column;flex:1}
.svc h3{font-family:var(--display);font-weight:500;font-size:1.28rem;margin-bottom:8px}
.svc p{color:var(--muted);font-size:.95rem;margin-bottom:12px}
.svc .more{margin-top:auto;font-weight:600;font-size:.9rem;color:var(--green-deep)}
.svc:hover .more{text-decoration:underline}

/* ---------- service detail rows (services page) ---------- */
.svc-row{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:center;padding:56px 0;border-bottom:1px solid var(--line-soft)}
.svc-row:last-of-type{border-bottom:0}
.svc-row .img{border-radius:var(--r);overflow:hidden;aspect-ratio:4/3.2;box-shadow:var(--shadow)}
.svc-row .img img{width:100%;height:100%;object-fit:cover}
.svc-row h2{font-size:clamp(1.6rem,2.6vw,2.1rem)}
.svc-row p{color:var(--muted);margin-bottom:14px}
.svc-row ul{list-style:none;margin:6px 0 20px}
.svc-row li{font-size:.95rem;padding:6px 0 6px 24px;position:relative}
.svc-row li::before{content:"";position:absolute;left:2px;top:14px;width:7px;height:7px;border-radius:50%;background:var(--green)}
.svc-row.flip .img{order:2}
.gen-note{font-size:.72rem;color:var(--muted);opacity:.75;font-style:italic;margin-top:10px}

/* ---------- seasons panel ---------- */
.seasons{background:var(--green-dark);color:#F0F6EC;border-radius:28px;overflow:hidden;display:grid;grid-template-columns:1.05fr 1fr;min-height:460px}
.seasons-txt{padding:60px 56px;display:flex;flex-direction:column;justify-content:center}
.seasons .eyebrow{color:#BFDDC6}.seasons .eyebrow::before{background:#5FC2F0}
.seasons h2{color:#FAFCF7}
.seasons h2 em{color:#8FE08F}
.seasons p{color:#CFDECF;max-width:46ch;margin-bottom:14px}
.seasons-img{position:relative;min-height:320px}
.seasons-img img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.season-tags{display:flex;gap:10px;flex-wrap:wrap;margin:18px 0 26px}
.season-tags .chip{border-color:rgba(240,246,236,.3);background:rgba(240,246,236,.08);color:#E8F1E4;backdrop-filter:none}
.seasons .btn-green{align-self:flex-start}

/* ---------- process ---------- */
.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:26px}
.step{position:relative;background:var(--surface);border:1px solid var(--line-soft);border-radius:var(--r);padding:34px 30px 36px;box-shadow:var(--shadow)}
.step-num{display:inline-flex;align-items:center;justify-content:center;width:62px;height:62px;border-radius:50%;background:rgba(31,153,214,.09);box-shadow:inset 0 0 0 1px rgba(31,153,214,.18);font-family:var(--display);font-style:italic;font-weight:400;font-size:1.75rem;color:var(--blue);line-height:1}
.step h3{font-family:var(--display);font-weight:500;font-size:1.25rem;margin:18px 0 8px}
.step p{color:var(--muted);font-size:.96rem}
.step a{color:var(--green-deep);font-weight:600;text-decoration:none}
.step a:hover{text-decoration:underline}
@media(min-width:961px){
  .step:not(:last-child)::after{content:"\2192";position:absolute;right:-22px;top:50%;transform:translateY(-50%);font-size:1.25rem;color:var(--blue);opacity:.55;z-index:2}
}

/* ---------- testimonials ---------- */
.testi-teaser{display:grid;grid-template-columns:1.2fr .8fr;gap:56px;align-items:center}
.testi-teaser blockquote,.tcard blockquote{font-family:var(--display);font-weight:400;line-height:1.42;letter-spacing:-.005em}
.testi-teaser blockquote{font-size:clamp(1.4rem,2.4vw,1.85rem)}
.testi-teaser blockquote em,.tcard em{font-style:italic;color:var(--green-deep)}
.testi-teaser figcaption,.tcard figcaption{margin-top:22px;font-size:.95rem;color:var(--muted);font-weight:600;display:flex;align-items:center;gap:13px}
.t-ava{width:46px;height:46px;border-radius:50%;flex:none;display:flex;align-items:center;justify-content:center;font-family:var(--display);font-style:italic;font-weight:500;font-size:1.02rem;background:rgba(1,145,1,.09);color:var(--green-deep);box-shadow:0 0 0 2px rgba(1,145,1,.16)}
.t-id{display:flex;flex-direction:column;line-height:1.4}
.t-id b{color:var(--ink);font-weight:600}
.t-id span{font-weight:400;font-size:.85rem}
.testi-img{border-radius:var(--r);overflow:hidden;aspect-ratio:4/4.4;box-shadow:var(--shadow)}
.testi-img img{width:100%;height:100%;object-fit:cover}
.tgrid{display:grid;grid-template-columns:1fr 1fr;gap:22px}
.tcard{position:relative;background:var(--surface);border:1px solid var(--line-soft);border-radius:var(--r-leaf);padding:40px 38px 32px;box-shadow:var(--shadow);display:flex;flex-direction:column;overflow:hidden}
.tgrid .tcard:nth-child(even){border-radius:var(--r-leaf-flip)}
.tgrid .tcard:nth-child(2),.tgrid .tcard:nth-child(3){background:#F7FBF5}
.tcard blockquote{font-size:1.18rem;position:relative;z-index:1}
.tcard .mark{position:absolute;top:6px;right:22px;font-family:var(--display);font-style:italic;font-size:7.5rem;color:var(--green);line-height:1;margin:0;pointer-events:none}
.tcard figcaption{margin-top:auto;padding-top:24px;border-top:1px solid var(--line-soft)}
.tcard blockquote{margin-bottom:24px}

/* ---------- gallery ---------- */
.ba-grid{display:grid;grid-template-columns:1fr 1fr;gap:26px}
.ba{position:relative;border-radius:var(--r);overflow:hidden;box-shadow:var(--shadow);border:1px solid var(--line-soft);background:var(--surface)}
.ba-stage{position:relative;aspect-ratio:4/3.4;overflow:hidden;touch-action:pan-y}
.ba-stage img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;pointer-events:none}
.ba-stage .after{clip-path:inset(0 0 0 50%)}
.ba-handle{position:absolute;top:0;bottom:0;left:50%;width:2px;background:#fff;box-shadow:0 0 12px rgba(0,0,0,.45);pointer-events:none}
.ba-handle::after{content:"\2194";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:42px;height:42px;border-radius:50%;background:#fff;color:var(--ink);display:flex;align-items:center;justify-content:center;font-size:1.1rem;font-weight:700;box-shadow:0 4px 16px rgba(0,0,0,.3)}
.ba input[type=range]{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:ew-resize;margin:0}
.ba-tag{position:absolute;top:14px;font-size:.7rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;padding:5px 12px;border-radius:999px;color:#fff;pointer-events:none}
.ba-tag.b{left:14px;background:rgba(11,20,13,.72)}
.ba-tag.a{right:14px;background:var(--green-fill)}
.ba-cap{padding:16px 20px;font-size:.93rem;font-weight:600}
.ba-cap .ba-t{display:block}.ba-cap .ba-d{display:block;font-weight:400;font-size:.83rem;color:var(--muted);margin-top:2px}
.gal-grid{columns:3;column-gap:20px}
.gal-grid figure{break-inside:avoid;margin-bottom:20px;border-radius:var(--r);overflow:hidden;box-shadow:var(--shadow);position:relative}
.gal-grid img{width:100%;height:auto;transition:transform .5s}
.gal-grid figure:hover img{transform:scale(1.03)}
.gal-grid figcaption{position:absolute;left:0;right:0;bottom:0;padding:26px 16px 12px;background:linear-gradient(transparent,rgba(11,20,13,.72));color:#fff;font-size:.82rem;font-weight:600}

/* ---------- form ---------- */
.quote-wrap{background:var(--surface);border:1px solid var(--line-soft);border-radius:28px;padding:56px;display:grid;grid-template-columns:.85fr 1.15fr;gap:56px;box-shadow:var(--shadow)}
.quote-side h2{margin-top:14px}
.quote-side p{color:var(--muted)}
.quote-side .contact-quick{margin-top:26px;display:flex;flex-direction:column;gap:10px;font-size:.98rem}
.quote-side .contact-quick a{font-weight:600;text-decoration:none;color:var(--ink)}
.quote-side .contact-quick a:hover{color:var(--green-deep)}
form .row{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.field{margin-bottom:16px}
.field label{display:block;font-size:.82rem;font-weight:600;margin-bottom:6px;letter-spacing:.02em}
.field input,.field select,.field textarea{width:100%;font-family:var(--body);font-size:16px;padding:13px 15px;border:1px solid var(--line);border-radius:12px;background:var(--bg-soft);color:var(--ink);transition:border-color .2s,box-shadow .2s}
.field textarea{min-height:110px;resize:vertical}
.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--green);box-shadow:0 0 0 3px rgba(1,145,1,.13);background:#fff}
.field.err input,.field.err select{border-color:#B4552E}
.field .msg{display:none;font-size:.78rem;color:#B4552E;margin-top:5px}
.field.err .msg{display:block}
.form-ok{display:none;background:rgba(1,145,1,.08);border:1px solid rgba(1,145,1,.3);border-radius:14px;padding:18px 20px;font-size:.95rem;margin-top:6px}
.form-ok.show{display:block}
.form-note{font-size:.74rem;color:var(--muted);opacity:.75;margin-top:12px}
.form-hints{font-size:.78rem;color:var(--muted);margin-top:14px;line-height:1.6}

/* ---------- faq ---------- */
.faq{max-width:760px;margin:0 auto}
.faq-item{border-bottom:1px solid var(--line-soft)}
.faq-item button{width:100%;background:none;border:0;text-align:left;font-family:var(--display);font-weight:500;font-size:1.15rem;color:var(--ink);padding:24px 44px 24px 4px;cursor:pointer;position:relative;line-height:1.35}
.faq-item button{transition:color .2s}
.faq-item button:hover{color:var(--green-deep)}
.faq-item button::after{content:"+";position:absolute;right:8px;top:50%;transform:translateY(-50%);font-family:var(--body);font-weight:400;font-size:1.5rem;color:var(--green);transition:transform .3s}
.faq-item.open button::after{transform:translateY(-50%) rotate(45deg)}
.faq-a{max-height:0;overflow:hidden;transition:max-height .4s ease}
.faq-a p{color:var(--muted);font-size:.98rem;padding:0 4px 24px;max-width:64ch}

/* ---------- contact cards + map ---------- */
.contact-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;align-items:stretch}
.ccard{background:var(--surface);border:1px solid var(--line-soft);border-radius:var(--r);padding:30px;box-shadow:var(--shadow)}
.c-ico{width:46px;height:46px;border-radius:14px;background:rgba(1,145,1,.09);color:var(--green-deep);display:flex;align-items:center;justify-content:center;margin-bottom:18px}
.c-ico svg{width:22px;height:22px}
.ccard h3{font-family:var(--display);font-weight:500;font-size:1.15rem;margin-bottom:10px}
.ccard p,.ccard a{color:var(--muted);font-size:.97rem;text-decoration:none}
.ccard a{display:block;padding:3px 0;font-weight:600;color:var(--ink)}
.ccard a:hover{color:var(--green-deep)}
.map-wrap{position:relative;border-radius:var(--r);overflow:hidden;border:1px solid var(--line-soft);box-shadow:var(--shadow);width:100%}
.map-wrap img{width:100%;height:auto;display:block}
.map-pin{position:absolute;left:65.6%;top:46.7%;width:20px;height:20px;margin:-10px 0 0 -10px;border-radius:50%;background:var(--green);border:3px solid #fff;box-shadow:0 3px 10px rgba(0,0,0,.35)}
.map-pin::after{content:"";position:absolute;left:50%;top:50%;width:56px;height:56px;margin:-28px 0 0 -28px;border-radius:50%;border:2px solid var(--green);opacity:.45;animation:mpulse 2.6s ease-out infinite}
@keyframes mpulse{0%{transform:scale(.5);opacity:.6}100%{transform:scale(1.15);opacity:0}}
@media(prefers-reduced-motion:reduce){.map-pin::after{animation:none;opacity:.3}}
.map-label{position:absolute;left:65.6%;top:46.7%;margin:14px 0 0 -10px;transform:translateX(-42%);background:#fff;color:var(--ink);font-size:.76rem;font-weight:700;padding:5px 12px;border-radius:999px;box-shadow:0 3px 12px rgba(0,0,0,.22);white-space:nowrap}
.map-open{position:absolute;right:14px;bottom:14px;background:rgba(255,255,255,.94);color:var(--ink);font-size:.8rem;font-weight:600;text-decoration:none;padding:9px 16px;border-radius:999px;box-shadow:0 3px 12px rgba(0,0,0,.2);transition:background .2s,color .2s}
.map-open:hover{background:var(--green);color:#fff}

/* ---------- CTA band ---------- */
.cta-band{background:var(--green-dark);border-radius:28px;padding:64px 56px;text-align:center;color:#F0F6EC}
.cta-band h2{color:#FAFCF7}
.cta-band h2 em{color:#8FE08F}
.cta-band p{color:#CFDECF;max-width:54ch;margin:0 auto 28px}

/* ---------- footer ---------- */
footer{background:var(--dark);color:#B9C6BB;padding:72px 0 36px;margin-top:0;overflow:hidden}
.foot-ghost{position:absolute;right:-18px;bottom:-40px;z-index:0;font-family:var(--display);font-style:italic;font-weight:400;font-size:clamp(4.8rem,13vw,10.5rem);line-height:1;color:#8FE08F;opacity:.05;pointer-events:none;white-space:nowrap;user-select:none}
.foot-grid{position:relative;z-index:1;display:grid;grid-template-columns:1.25fr .85fr 1.1fr;gap:52px;align-items:start}
.foot-grid img{height:88px;width:auto;margin-bottom:16px}
.foot-grid p{font-size:.92rem;max-width:34ch;line-height:1.7}
.foot-grid .foot-h{font-family:var(--body);font-size:.76rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:#9DB7A2;margin-bottom:18px;position:relative;padding-bottom:12px}
.foot-grid .foot-h::after{content:"";position:absolute;left:0;bottom:0;width:26px;height:2px;background:var(--green)}
.foot-grid a{display:block;color:#D5DFD6;text-decoration:none;font-size:.93rem;padding:5px 0;width:fit-content;transition:color .2s,transform .2s}
.foot-grid a:hover{color:#8FE08F;transform:translateX(3px)}
.foot-tel{font-family:var(--display);font-weight:450;font-size:1.4rem;color:#F0F6EC;letter-spacing:.015em;line-height:1.35}
.foot-grid a.foot-tel:hover{transform:none;color:#8FE08F}
.foot-mail{margin-top:2px}
.foot-social{display:flex;gap:10px;flex-wrap:wrap;margin-top:20px}
.foot-grid .foot-social a{display:inline-flex;align-items:center;gap:8px;border:1px solid rgba(255,255,255,.16);border-radius:999px;padding:8px 15px;font-size:.84rem;font-weight:600;color:#D5DFD6;transition:border-color .25s,color .25s,background .25s}
.foot-grid .foot-social a:hover{border-color:rgba(143,224,143,.55);color:#8FE08F;background:rgba(143,224,143,.06);transform:none}
.foot-social svg{width:15px;height:15px;flex:none}
.foot-bottom{position:relative;z-index:1;border-top:1px solid rgba(255,255,255,.1);margin-top:52px;padding-top:24px;display:flex;justify-content:flex-start;align-items:baseline;flex-wrap:wrap;gap:8px 32px;font-size:.8rem;color:#8B9C8C}

/* ---------- reveals (v3: animation-based, so hover transitions stay crisp) ---------- */
html.js .rv{opacity:0}
html.js .rv.in{animation:rvIn .85s cubic-bezier(.2,.6,.2,1) both}
@keyframes rvIn{from{opacity:0;transform:translateY(26px);filter:blur(6px)}to{opacity:1;transform:none;filter:none}}
html.js .svc-grid .rv:nth-child(2),html.js .steps .rv:nth-child(2),html.js .tgrid .rv:nth-child(2),html.js .ba-grid .rv:nth-child(2),html.js .contact-grid .rv:nth-child(2){animation-delay:.1s}
html.js .svc-grid .rv:nth-child(3),html.js .steps .rv:nth-child(3),html.js .tgrid .rv:nth-child(3),html.js .contact-grid .rv:nth-child(3){animation-delay:.2s}
html.js .svc-grid .rv:nth-child(4),html.js .tgrid .rv:nth-child(4){animation-delay:.3s}
html.js .svc-grid .rv:nth-child(5){animation-delay:.4s}
html.js .svc-grid .rv:nth-child(6){animation-delay:.5s}
@media(prefers-reduced-motion:reduce){html.js .rv{opacity:1}html.js .rv.in{animation:none}}

/* ---------- responsive ---------- */
@media(max-width:960px){
  .svc-grid{grid-template-columns:1fr 1fr}
  .svc-grid>*,.svc-grid>*:nth-child(4),.svc-grid>*:nth-child(5){grid-column:auto}
  .steps{grid-template-columns:1fr}
  .seasons{grid-template-columns:1fr}
  .seasons-txt{padding:46px 34px}
  .testi-teaser{grid-template-columns:1fr;gap:34px}
  .quote-wrap{grid-template-columns:1fr;padding:40px 30px;gap:36px}
  .contact-grid{grid-template-columns:1fr}
  .svc-row{grid-template-columns:1fr;gap:28px;padding:42px 0}
  .svc-row.flip .img{order:0}
  .ba-grid{grid-template-columns:1fr}
  .gal-grid{columns:2}
  .tgrid{grid-template-columns:1fr}
  .foot-grid{grid-template-columns:1fr;gap:38px}
}
@media(max-width:860px){
  .nav-links{display:none}
  .burger{display:block}
  .mobile-menu{display:block;position:fixed;inset:0;z-index:190;background:rgba(255,255,255,.98);backdrop-filter:blur(10px);opacity:0;pointer-events:none;transition:opacity .3s}
  .mobile-menu.open{opacity:1;pointer-events:auto}
  .mobile-menu nav{display:flex;flex-direction:column;gap:6px;padding:110px 32px}
  .mobile-menu a{font-family:var(--display);font-size:1.5rem;text-decoration:none;padding:12px 0;border-bottom:1px solid var(--line-soft);color:var(--ink)}
  .mobile-menu a.on{color:var(--green-deep)}
  .mobile-menu .nav-cta{border:0;border-radius:999px;text-align:center;margin-top:22px;font-size:1.05rem;color:#fff}
  .mobile-menu .lang-toggle{align-self:flex-start;margin-top:18px}
  body.menu-open{overflow:hidden}
  .burger.x span:nth-child(1){transform:translateY(7px) rotate(45deg)}
  .burger.x span:nth-child(2){opacity:0}
  .burger.x span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
  .brand img{height:52px}
}
@media(max-width:600px){
  section.block{padding:64px 0}
  .svc-grid{grid-template-columns:1fr}
  .svc-grid>*,.svc-grid>*:nth-child(4),.svc-grid>*:nth-child(5){grid-column:auto}
  .hero-inner{padding:130px 20px 56px}
  .hero{min-height:88vh}
  form .row{grid-template-columns:1fr}
  .quote-wrap{padding:32px 22px}
  .gal-grid{columns:1}
  .page-hero{padding:140px 0 48px}
  .cta-band{padding:48px 26px}
  .tcard{padding:32px 26px 26px}
  .tcard .mark{font-size:5.5rem;right:14px}
  footer{padding:56px 0 30px}
}

/* ---------- assistant widget ---------- */
elevenlabs-convai{
  --el-base:#FFFFFF;
  --el-base-hover:#F3F8F1;
  --el-base-active:#E7F1E6;
  --el-base-border:rgba(15,46,22,.14);
  --el-base-primary:#0F2E16;
  --el-base-subtle:#54685A;
  --el-base-error:#C0392B;
  --el-accent:#019101;
  --el-accent-hover:#017001;
  --el-accent-active:#016201;
  --el-accent-border:rgba(1,145,1,.45);
  --el-accent-primary:#FFFFFF;
  --el-accent-subtle:rgba(1,145,1,.12);
  --el-sheet-radius:18px;
  --el-compact-sheet-radius:18px;
  --el-input-radius:12px;
  --font-sans:'Instrument Sans',system-ui,sans-serif;
  opacity:0;pointer-events:none;visibility:hidden;transition:opacity .3s ease;
}
html.mp-chat-open elevenlabs-convai{opacity:1;pointer-events:auto;visibility:visible}

/* --- launcher: a small brand object, not a generic bubble --- */
#mpChat{
  position:fixed;right:24px;bottom:24px;z-index:150;
  display:flex;align-items:center;gap:11px;
  padding:9px 20px 9px 9px;border-radius:999px;
  background:linear-gradient(180deg,#FFFFFF 0%,#FBFDFA 100%);
  border:1px solid rgba(15,46,22,.10);
  box-shadow:0 1px 2px rgba(15,46,22,.06),0 10px 24px -6px rgba(15,46,22,.18),0 22px 48px -18px rgba(1,145,1,.28);
  cursor:pointer;color:var(--ink);
  font-family:var(--body);font-size:.9rem;font-weight:600;letter-spacing:.002em;white-space:nowrap;
  opacity:0;transform:translateY(12px) scale(.97);pointer-events:none;
  transition:opacity .5s ease,transform .5s cubic-bezier(.2,.7,.2,1),box-shadow .3s ease,border-color .3s ease;
}
#mpChat.on{opacity:1;transform:none;pointer-events:auto}
#mpChat:hover{
  border-color:rgba(1,145,1,.28);
  box-shadow:0 1px 2px rgba(15,46,22,.06),0 16px 30px -8px rgba(15,46,22,.22),0 30px 60px -20px rgba(1,145,1,.38);
  transform:translateY(-2px);
}
#mpChat:active{transform:translateY(0) scale(.985)}
#mpChat:focus-visible{outline:2px solid var(--green);outline-offset:3px}
html.mp-chat-open #mpChat{opacity:0;transform:translateY(12px) scale(.97);pointer-events:none}

/* the logo itself is the avatar, ringed in brand green */
#mpChat .mp-chat-orb{
  width:34px;height:34px;border-radius:50%;flex:none;position:relative;
  background:url("mark.svg") center/100% 100% no-repeat;
  box-shadow:0 0 0 3px rgba(1,145,1,.12),0 2px 6px rgba(1,145,1,.28);
}
/* a live dot, so it reads as somebody actually there */
#mpChat .mp-chat-orb::after{
  content:"";position:absolute;right:-1px;bottom:-1px;
  width:10px;height:10px;border-radius:50%;
  background:var(--green);box-shadow:0 0 0 2.5px #fff;
}
@media(prefers-reduced-motion:no-preference){
  #mpChat .mp-chat-orb::after{animation:mpLive 2.8s ease-in-out infinite}
  @keyframes mpLive{
    0%,100%{box-shadow:0 0 0 2.5px #fff,0 0 0 3px rgba(1,145,1,.35)}
    50%{box-shadow:0 0 0 2.5px #fff,0 0 0 7px rgba(1,145,1,0)}
  }
}
@media(max-width:768px){
  #mpChat{right:16px;bottom:18px;width:58px;height:58px;padding:0;justify-content:center;border-radius:50%;gap:0}
  #mpChat .mp-chat-txt{display:none}
  #mpChat .mp-chat-orb{width:38px;height:38px}
}

/* ============================================================
   v3 SIGNATURE LAYER — living hero, editorial serif, organic shape
   ============================================================ */
:root{--r-leaf:22px 22px 22px 84px;--r-leaf-flip:22px 22px 84px 22px}

/* --- living hero: slow cinematic drift + video hydration slot --- */
html.js .hero-bg img,html.js .hero-bg video{transform-origin:52% 62%;animation:heroDrift 30s ease-in-out infinite alternate;will-change:transform}
/* starts at scale(1) so the still is pixel-identical to the film's first and last
   frames at every handoff — any other resting scale makes the landing pop */
@keyframes heroDrift{from{transform:scale(1)}to{transform:scale(1.09) translate(-1.4%,1.1%)}}
.hero-bg video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 60%;opacity:0;transition:opacity 1.2s ease}
.hero-bg.hv-on video{opacity:1}
/* v6: the animated-image film shown when video autoplay is refused (Safari / iOS Low Power Mode); v7 runs it on the
   same 20 s clock as the video, one fresh element per pass */
/* v9 (2026-08-27, late): a refused autoplay keeps the still, silently. No control on the hero. */
/* v6b (2026-08-27): while a film layer is showing, the drift keyframes are paused on every hero layer. The footage carries
   its own camera motion, so the drift added nothing visible but a full-viewport transform per frame; on a throttled GPU
   (Safari Low Power Mode) that is the difference between smooth and laggy. Phase stays where it was, so the fade back to
   the still is still seamless. */
.hero-bg.hv-on img,.hero-bg.hv-on video{animation-play-state:paused}
@media(prefers-reduced-motion:reduce){html.js .hero-bg img,html.js .hero-bg video{animation:none}}

/* --- hero load choreography --- */
html.js .hero .eyebrow,html.js .hero h1,html.js .hero p.lead,html.js .hero-actions,html.js .hero-chips{opacity:0;animation:heroUp .95s cubic-bezier(.2,.6,.2,1) both}
html.js .hero h1{animation-delay:.12s}
html.js .hero p.lead{animation-delay:.26s}
html.js .hero-actions{animation-delay:.4s}
html.js .hero-chips{animation-delay:.54s}
@keyframes heroUp{from{opacity:0;transform:translateY(26px)}to{opacity:1;transform:none}}
html.js .page-hero .eyebrow,html.js .page-hero h1,html.js .page-hero p{opacity:0;animation:heroUp .85s cubic-bezier(.2,.6,.2,1) both}
html.js .page-hero h1{animation-delay:.1s}
html.js .page-hero p{animation-delay:.22s}
@media(prefers-reduced-motion:reduce){
  html.js .hero .eyebrow,html.js .hero h1,html.js .hero p.lead,html.js .hero-actions,html.js .hero-chips,
  html.js .page-hero .eyebrow,html.js .page-hero h1,html.js .page-hero p{animation:none;opacity:1}
}

/* --- services marquee strip --- */
.mq{overflow:hidden;padding:22px 0;border-bottom:1px solid var(--line-soft);background:var(--bg)}
.mq-track{display:flex;width:max-content}
html.js .mq-track{animation:mqScroll 46s linear infinite}
@keyframes mqScroll{to{transform:translateX(-50%)}}
.mq-group{display:flex;align-items:center;flex:none}
.mq-group span{display:inline-flex;align-items:center;font-size:.88rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);white-space:nowrap}
.mq-group span::after{content:"";width:6px;height:6px;border-radius:50%;background:var(--green);margin:0 28px;display:inline-block;flex:none}
.mq-group span.it{font-family:var(--display);font-style:italic;font-weight:400;font-size:1.12rem;letter-spacing:0;text-transform:none;color:var(--green-deep)}
@media(prefers-reduced-motion:reduce){html.js .mq-track{animation:none}}
@media(max-width:600px){.mq{padding:16px 0}.mq-group span{font-size:.78rem}.mq-group span::after{margin:0 18px}}

/* --- organic leaf radius on editorial imagery --- */
.svc-row .img{border-radius:var(--r-leaf)}
.svc-row.flip .img{border-radius:var(--r-leaf-flip)}
.testi-img{border-radius:var(--r-leaf)}
.seasons{border-radius:28px 28px 28px 96px}
.cta-band{border-radius:28px 28px 96px 28px}
@media(max-width:600px){
  :root{--r-leaf:18px 18px 18px 48px;--r-leaf-flip:18px 18px 48px 18px}
  .seasons{border-radius:22px 22px 22px 56px}
  .cta-band{border-radius:22px 22px 56px 22px}
}

/* --- grain texture on dark panels --- */
.seasons,.cta-band,footer{position:relative}
.seasons::after,.cta-band::after,footer::after{content:"";position:absolute;inset:0;pointer-events:none;opacity:.05;border-radius:inherit;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}

/* --- section numerals on service rows --- */
.svc-rows{counter-reset:svc}
.svc-rows .svc-row h2::before{counter-increment:svc;content:counter(svc,decimal-leading-zero);display:block;font-family:var(--display);font-style:italic;font-weight:400;font-size:1.9rem;color:var(--blue);opacity:.9;line-height:1;margin-bottom:8px}

/* --- ghost word on subpage heroes --- */
.page-hero{position:relative;overflow:hidden}
.page-hero .container{position:relative;z-index:1}
.page-hero::after{content:attr(data-ghost);position:absolute;right:-14px;bottom:-38px;z-index:0;font-family:var(--display);font-style:italic;font-weight:400;font-size:clamp(4.6rem,13vw,10.5rem);line-height:1;color:var(--green-dark);opacity:.06;pointer-events:none;white-space:nowrap}

/* --- richer cards --- */
.svc-img::after{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(11,61,20,.28),transparent 52%);opacity:.8;transition:opacity .45s}
.svc:hover .svc-img::after{opacity:.25}
.svc:hover{border-color:rgba(1,145,1,.4)}
.svc .more{display:inline-flex;align-items:center;gap:7px}
.svc .more::after{content:"\2192";transition:transform .25s}
.svc:hover .more::after{transform:translateX(4px)}
.step{transition:transform .3s,box-shadow .3s,border-color .3s}
.step:hover{transform:translateY(-4px);border-color:rgba(31,153,214,.4);box-shadow:0 20px 44px rgba(15,46,22,.12)}
.tcard{transition:transform .3s,box-shadow .3s,border-color .3s}
.tcard:hover{transform:translateY(-3px);border-color:rgba(1,145,1,.3)}
.tcard .mark{opacity:.09}
.ccard{transition:transform .3s,box-shadow .3s,border-color .3s}
.ccard:hover{transform:translateY(-3px);border-color:rgba(1,145,1,.3)}

/* --- seasons panel: living image --- */
html.js .seasons-img img{animation:seasonsDrift 34s ease-in-out infinite alternate;transform-origin:center}
@keyframes seasonsDrift{from{transform:scale(1)}to{transform:scale(1.09)}}
@media(prefers-reduced-motion:reduce){html.js .seasons-img img{animation:none}}

/* --- button shimmer --- */
.btn{position:relative;overflow:hidden}
.btn-green::after,.nav-cta::after{content:"";position:absolute;top:0;bottom:0;left:-70%;width:44%;background:linear-gradient(105deg,transparent,rgba(255,255,255,.4),transparent);transform:skewX(-18deg);transition:left .55s ease;pointer-events:none}
.btn-green:hover::after,.nav-cta:hover::after{left:125%}
.nav-cta{position:relative;overflow:hidden}

/* --- CTA band: slow glow --- */
.cta-band{overflow:hidden}
.cta-band::before{content:"";position:absolute;width:560px;height:560px;border-radius:50%;background:radial-gradient(circle,rgba(143,224,143,.17),transparent 64%);top:-200px;right:-140px;pointer-events:none}
html.js .cta-band::before{animation:ctaGlow 13s ease-in-out infinite alternate}
@keyframes ctaGlow{to{transform:translate(-80px,50px)}}
@media(prefers-reduced-motion:reduce){html.js .cta-band::before{animation:none}}
.cta-band>*{position:relative;z-index:2}

/* --- footer hairline --- */
footer::before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,var(--green),var(--blue))}

/* --- nav: shrink when solid --- */
.brand img{transition:height .3s ease}
.nav.solid .brand img{height:54px}
@media(max-width:860px){.nav.solid .brand img{height:46px}}

/* ---------- online booking (contact) ---------- */
.bk{display:grid;grid-template-columns:.85fr 1.15fr;gap:44px;align-items:start;
    background:var(--bg-soft);border:1px solid var(--line-soft);border-radius:calc(var(--r) + 6px);padding:40px 40px 44px}
.bk-head h2{margin:14px 0 12px}
.bk-head p{color:var(--muted)}
.bk-facts{list-style:none;margin:22px 0 0;display:grid;gap:10px}
.bk-facts li{position:relative;padding-left:26px;font-size:.95rem;color:var(--ink)}
.bk-facts li::before{content:"";position:absolute;left:2px;top:9px;width:8px;height:8px;border-radius:50%;
    background:var(--green);box-shadow:0 0 0 4px rgba(1,145,1,.13)}
.bk-cal{background:#FBFDFA;border:1.5px dashed rgba(1,145,1,.32);border-radius:var(--r);
    min-height:420px;display:flex;align-items:center;justify-content:center;padding:20px}
.bk-cal.is-live{display:block;padding:6px;min-height:560px;background:var(--surface);border:1px solid var(--line-soft);box-shadow:var(--shadow)}
.bk-soon{text-align:center;max-width:36ch}
.bk-ico{width:64px;height:64px;margin:0 auto 20px;border-radius:18px;background:rgba(1,145,1,.09);color:var(--green-deep);display:flex;align-items:center;justify-content:center}
.bk-ico svg{width:30px;height:30px}
.bk-soon p{font-family:var(--display);font-weight:430;font-size:1.15rem;color:var(--ink);line-height:1.35}
.bk-soon .bk-soon-alt{font-family:var(--body);font-size:.92rem;color:var(--muted);margin-top:12px;line-height:1.6}
@media(max-width:960px){
  .bk{grid-template-columns:1fr;gap:30px;padding:32px 26px 34px}
  .bk-cal{min-height:360px}
  .bk-cal.is-live{min-height:620px}
}
@media(max-width:600px){
  .bk{padding:26px 18px 28px;border-radius:var(--r)}
}

/* booking: the section hides itself until booking.js has a Cal.com link */
#reserver.bk-off{display:none!important}
.skip{position:absolute;left:-999px;top:12px;z-index:9999;background:#fff;color:var(--green-deep);padding:10px 16px;border-radius:8px;font-weight:700;text-decoration:none}.skip:focus{left:12px}
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--green-deep);outline-offset:3px}
#mpChat.busy{opacity:.85;pointer-events:none}

/* ---------- phone symmetry pass (2026-08-27) ----------
   Below 600px the leaf corners, the loose desktop rhythm and the inline button widths are
   gone: every box gets the same 20px corner and the same padding, every button the full
   width at one height, every chip row a grid. Above 600px there is room for the looser
   desktop composition, so nothing there changes. */
@media(max-width:600px){
  :root{--r-leaf:20px;--r-leaf-flip:20px}
  .seasons,.cta-band,.quote-wrap,.svc,.step,.tcard,.ccard,.bk,.testi-img,.svc-row .img{border-radius:20px}
  /* one padding for every panel */
  .step,.ccard,.quote-wrap,.bk{padding:30px 24px}
  .tcard{padding:30px 24px 24px}
  .seasons-txt{padding:40px 24px 36px}
  .cta-band{padding:44px 22px}
  /* buttons: full width, one height, centred label */
  .hero-actions{flex-direction:column;align-items:stretch;gap:12px;margin-bottom:28px}
  .hero-actions .btn,.cta-band .btn,.seasons .btn,.acts .btn,.testi-teaser .btn,.sec-cta .btn,form .btn[type=submit]{display:flex;width:100%;justify-content:center;align-items:center;text-align:center;min-height:54px;padding:15px 16px;font-size:.96rem;line-height:1.25}
  .cta-band .btn{font-size:.94rem;padding:15px 12px}
  .seasons .btn-green{align-self:stretch}
  .acts{display:flex;flex-direction:column;align-items:stretch;gap:12px}
  .sec-cta{margin-top:32px!important}
  /* chip rows become grids, so nothing wraps 3+1 or 2+1 */
  .hero-chips{display:grid;grid-template-columns:1fr;gap:8px}
  .hero-chips .chip{width:100%;justify-content:flex-start;padding:9px 16px}
  .season-tags{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:18px 0 24px}
  .season-tags .chip{text-align:center}
  .foot-grid .foot-social{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
  .foot-grid .foot-social a{justify-content:center;padding:10px 6px;font-size:.8rem;gap:6px}
  /* gallery: a two-column lattice of equal squares instead of one long ragged column */
  .gal-grid{columns:auto;display:grid;grid-template-columns:1fr 1fr;gap:12px}
  .gal-grid figure{margin:0;aspect-ratio:1;border-radius:16px}
  .gal-grid img{height:100%;object-fit:cover}
  .gal-grid figcaption{padding:20px 10px 9px;font-size:.72rem;line-height:1.3}
}
.c-addr{font-style:normal;color:var(--muted);font-size:.92rem;line-height:1.5;margin-top:2px}

/* Sticky call bar (phones only, injected by site.js).
   Sits under the chat orb in the stacking order and pushes it up while visible, so the two
   never overlap. The body gains matching padding so the bar never covers the last line of a page. */
.callbar{display:none}
@media(max-width:600px){
  .callbar{
    display:flex;gap:10px;position:fixed;left:0;right:0;bottom:0;z-index:140;
    padding:10px 12px calc(10px + env(safe-area-inset-bottom,0px));
    background:rgba(255,255,255,.97);backdrop-filter:none;
    border-top:1px solid rgba(15,46,22,.10);box-shadow:0 -6px 20px rgba(15,46,22,.10);
    transform:translateY(110%);visibility:hidden;pointer-events:none;
    transition:transform .34s cubic-bezier(.22,.61,.36,1),visibility 0s linear .34s;
  }
  .callbar.on{transform:none;visibility:visible;pointer-events:auto;transition:transform .34s cubic-bezier(.22,.61,.36,1),visibility 0s}
  .cb-a{
    flex:1;display:inline-flex;align-items:center;justify-content:center;gap:8px;
    min-height:50px;border-radius:999px;text-decoration:none;font-weight:600;font-size:.98rem;
    transition:background .2s,color .2s,transform .12s;
  }
  .cb-a svg{width:19px;height:19px;flex:none}
  .cb-a:active{transform:scale(.97)}
  .cb-call{background:var(--green-fill);color:#fff}
  .cb-wa{background:#fff;color:var(--green-deep);border:1.5px solid var(--green-fill)}
  .cb-a:focus-visible{outline:3px solid var(--green-deep);outline-offset:2px}
  body.cb-on{padding-bottom:72px}
  body.cb-on #mpChat{bottom:84px}
  body.menu-open .callbar{visibility:hidden;pointer-events:none}
}
@media(prefers-reduced-motion:reduce){.callbar{transition:none}.cb-a{transition:none}}
