/* Florén Studio — atelier landing page.
   Brand type: Jost (display) + Poppins (text), regular weight only.
   Palette: warm paper and sand surfaces with a sage accent; one deep sage block.
   Spacing tiers: --space-lg for moments (tagline, webshop), --space-md for content sections, --space-sm inside sections. */

@font-face{font-family:Jost;src:url('../assets/fonts/jost-400.woff2') format('woff2');font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:Poppins;src:url('../assets/fonts/poppins-400.woff2') format('woff2');font-weight:400;font-style:normal;font-display:swap}

:root{
  --ease:cubic-bezier(.22,1,.36,1);
  --paper:#faf8f4;--sand:#f2ede4;--sand-2:#e9e2d6;--line:#e4ddd1;
  --ink:#211f1b;--muted:#6a645b;--sage:#4e5832;--sage-deep:#3b4426;--on-sage:#f6f3ec;
  --space-lg:128px;--space-md:96px;--space-sm:64px;--gutter:max(24px,calc((100% - 1200px) / 2));
  --header:88px;
  --r-pill:999px;--r-sm:8px;--r-md:16px;--r-lg:20px;
  color-scheme:light dark;scroll-behavior:smooth;scroll-padding-top:calc(var(--header) + 16px)
}
@media(prefers-color-scheme:dark){:root{--paper:#191816;--sand:#23211d;--sand-2:#2c2a25;--line:#3a3731;--ink:#f1ede6;--muted:#b9b2a6;--sage:#b6c38f;--sage-deep:#2c3320;--on-sage:#f1ede6}}
@media(max-width:900px){:root{--space-lg:96px;--space-md:80px;--space-sm:48px}}
@media(max-width:600px){:root{--space-lg:80px;--space-md:64px;--space-sm:40px;--gutter:20px;--header:76px}}

*{box-sizing:border-box}
body{margin:0;background:var(--paper);color:var(--ink);font:400 16px/1.6 Poppins,Arial,sans-serif;-webkit-font-smoothing:antialiased}
h1,h2,h3,p,figure,dl{margin:0}
h1,h2,h3{font-family:Jost,Arial,sans-serif;font-weight:400;text-wrap:balance}
h1{font-size:72px;line-height:1;letter-spacing:-.025em}
h2{font-size:48px;line-height:1.05;letter-spacing:-.015em}
h3{font-size:24px;line-height:1.33}
p,dd,li{text-wrap:pretty}
p+p{margin-top:16px}
@media(max-width:1023px){h1{font-size:60px}h2{font-size:36px;line-height:1.1}}
@media(max-width:600px){h1{font-size:48px}h2{font-size:36px}h3{font-size:20px;line-height:1.4}}
a{color:inherit;text-underline-offset:5px;text-decoration-thickness:1px;transition:color .3s var(--ease)}
a:hover{color:var(--sage)}
:focus-visible{outline:3px solid var(--sage);outline-offset:4px}
img{display:block;max-width:100%;height:auto}
address{font-style:normal}
a[href^="mailto:"]{overflow-wrap:anywhere}
::selection{background:var(--sage);color:var(--on-sage)}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

.wrap{padding-inline:var(--gutter)}
.section{padding-block:var(--space-md)}
.eyebrow{display:block;font:400 12px/1.33 Jost,Arial,sans-serif;letter-spacing:.18em;text-transform:uppercase;color:var(--sage);margin-bottom:24px}
.small{font-size:14px;line-height:1.43;color:var(--muted)}
.text-link{display:inline-flex;align-items:center;gap:6px;min-height:44px;font:400 16px/1.5 Jost,Arial,sans-serif}
.skip-link{border-radius:var(--r-sm);position:fixed;left:16px;top:16px;z-index:40;padding:12px 16px;background:var(--paper);transform:translateY(-200%)}
.skip-link:focus{transform:none}

/* Buttons */
.button{border-radius:var(--r-pill);display:inline-flex;align-items:center;justify-content:space-between;gap:24px;min-height:48px;padding:12px 24px;border:1px solid currentColor;text-decoration:none;font:400 12px/1.33 Jost,Arial,sans-serif;letter-spacing:.16em;text-transform:uppercase;cursor:pointer;transition:background-color .3s var(--ease),color .3s var(--ease),border-color .3s var(--ease),transform .3s var(--ease)}
.button:active{transform:translateY(1px)}
.button-light{background:var(--on-sage);color:#211f1b;border-color:var(--on-sage)}
.button-light:hover{background:#fff;border-color:#fff;color:#211f1b}
.button-outline{color:#fff;background:rgba(20,18,15,.2)}
.button-outline:hover{background:#fff;color:#211f1b}
.button-dark{background:var(--ink);color:var(--paper);border-color:var(--ink)}
.button-dark:hover{background:var(--sage);border-color:var(--sage);color:var(--on-sage)}
.actions{display:flex;flex-wrap:wrap;gap:16px;margin-top:32px}

/* Header: a compact bar that floats over the hero and stays on screen */
.site-header{position:sticky;top:0;z-index:30;height:var(--header);padding:12px var(--gutter);margin-bottom:calc(var(--header) * -1);pointer-events:none}
.header-bar{pointer-events:auto;position:relative;height:64px;display:flex;align-items:center;justify-content:space-between;gap:24px;padding:0 12px 0 24px;max-width:1200px;margin-inline:auto}/* The blur lives on a pseudo-element: a backdrop-filter on the bar itself would trap the fixed phone menu inside the bar. */.header-bar::before{content:"";position:absolute;inset:0;border-radius:var(--r-md);z-index:-1;background:color-mix(in srgb,var(--paper) 84%,transparent);-webkit-backdrop-filter:blur(16px) saturate(1.2);backdrop-filter:blur(16px) saturate(1.2);border:1px solid color-mix(in srgb,var(--line) 80%,transparent)}
.wordmark{display:inline-flex;flex-direction:column;align-items:center;text-decoration:none;font:400 24px/1 Jost,Arial,sans-serif;letter-spacing:.09em}
.wordmark span{font-size:8px;letter-spacing:.25em;margin-top:6px}
.site-nav{display:flex;align-items:center;gap:8px;font:400 14px/1.43 Jost,Arial,sans-serif}
.site-nav a{border-radius:var(--r-pill);display:inline-flex;align-items:center;gap:6px;min-height:44px;padding:0 12px;text-decoration:none;position:relative}
.site-nav a:not(.language-switch):not(.nav-shop)::after{content:"";position:absolute;left:12px;right:12px;bottom:8px;height:1px;background:var(--sage);transform:scaleX(0);transform-origin:left;transition:transform .5s var(--ease)}
.site-nav a:hover::after,.site-nav a[aria-current="true"]::after{transform:scaleX(1)}
.site-nav a[aria-current="true"]{color:var(--sage)}
.nav-shop{background:var(--ink);color:var(--paper);margin-left:8px}
.nav-shop:hover{background:var(--sage);color:var(--on-sage)}
.language-switch{border:1px solid var(--line);margin-left:8px}
.language-switch:hover{border-color:var(--sage)}
.header-tools{display:flex;align-items:center}
.header-tools .language-switch{border-radius:var(--r-pill);display:inline-flex;align-items:center;min-height:44px;padding:0 16px;font:400 14px Jost,Arial,sans-serif;text-decoration:none}
.menu-toggle{border-radius:var(--r-pill);display:none;width:48px;height:48px;border:0;background:none;color:inherit;cursor:pointer;place-items:center}
.menu-icon{position:relative;width:22px;height:12px;display:block}
.menu-icon span{position:absolute;left:0;right:0;height:1.5px;background:currentColor;transition:transform .5s var(--ease)}
.menu-icon span:first-child{top:0}.menu-icon span:last-child{bottom:0}
.menu-toggle[aria-expanded="true"] .menu-icon span:first-child{transform:translateY(5.25px) rotate(45deg)}
.menu-toggle[aria-expanded="true"] .menu-icon span:last-child{transform:translateY(-5.25px) rotate(-45deg)}
@media(max-width:1023px){
  .js-menu .menu-toggle{display:grid}
  .js-menu .site-nav{position:fixed;inset:0;z-index:-1;flex-direction:column;align-items:stretch;justify-content:flex-start;gap:0;padding:calc(var(--header) + 24px) var(--gutter) 32px;background:color-mix(in srgb,var(--paper) 94%,transparent);-webkit-backdrop-filter:blur(24px);backdrop-filter:blur(24px);font-size:30px;line-height:1.2;opacity:0;visibility:hidden;transition:opacity .3s var(--ease),visibility 0s .3s}
  .js-menu .site-nav a{border-radius:0;min-height:64px;padding:0;border-bottom:1px solid var(--line);opacity:0;transform:translateY(24px);transition:opacity .5s var(--ease),transform .5s var(--ease);transition-delay:calc(var(--i,0) * 60ms)}
  .js-menu .site-nav a::after{display:none}
  .js-menu .site-nav .nav-shop,.js-menu .site-nav .language-switch{border-radius:var(--r-pill);margin:24px 0 0;justify-content:center;font-size:16px;min-height:56px;border:1px solid var(--ink)}
  .js-menu .site-nav .language-switch{margin-top:12px;border-color:var(--line)}
  .menu-open .site-nav{opacity:1;visibility:visible;transition:opacity .3s var(--ease)}
  .menu-open .site-nav a{opacity:1;transform:none}
  .menu-open{overflow:hidden}
}
@media(max-width:600px){.header-bar{height:56px;padding:0 4px 0 16px}.site-header{padding-block:10px}.wordmark{font-size:20px}.wordmark span{font-size:7px}}
/* Without JavaScript the phone nav simply wraps under the bar. */
@media(max-width:1023px){html:not(.js-menu) .header-bar{height:auto;flex-wrap:wrap;padding-block:8px}html:not(.js-menu) .site-header{height:auto}html:not(.js-menu) .site-nav{flex-wrap:wrap;gap:0}}

/* Hero */
.hero{position:relative;min-height:max(600px,min(780px,100svh));display:flex;align-items:flex-end;overflow:hidden;background:#232a25;color:#fff}
.hero-image{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 40%}
/* Phones and tablets: bouquet on top, text over a dark fade below. */
.hero-shade{position:absolute;inset:0;background:linear-gradient(180deg,rgba(20,18,15,.15),rgba(20,18,15,.68) 52%)}
/* Desktop: the photo fills the right 62%; its dark green door fades into a matching panel behind the text. */
@media(min-width:1024px){.hero-image{left:38%;width:62%;object-position:50% 35%}.hero-shade{background:linear-gradient(90deg,#232a25 38%,rgba(35,42,37,.85) 44%,rgba(35,42,37,0) 62%)}}
@media(min-width:1024px) and (max-width:1439px){.hero h1,.hero p{max-width:min(560px,44vw)}}
.hero-content{position:relative;width:100%;padding:calc(var(--header) + 64px) var(--gutter) var(--space-sm)}
.hero .eyebrow{color:rgba(255,255,255,.85);margin-bottom:24px}
.hero h1,.hero p{max-width:680px}
.hero p{margin-top:24px;font-size:18px;line-height:1.56}
.hero a:focus-visible{outline-color:#fff}
.rating{display:inline-flex;align-items:center;gap:8px;margin-top:24px;min-height:44px;font:400 14px/1.43 Jost,Arial,sans-serif;letter-spacing:.02em;color:#fff;text-decoration:none}
.rating:hover{color:#fff;text-decoration:underline}
.hero .actions{margin-top:20px}
.hero .rating{margin-top:6px}
@media(max-width:600px){.hero{min-height:480px}.hero p{font-size:16px;line-height:1.5}}

/* Practical info bar */
.practical{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:64px;padding-block:48px;border-bottom:1px solid var(--line)}
.practical .eyebrow{margin-bottom:16px}
.practical .small{margin-top:12px;max-width:280px}
.hours{max-width:280px}
.hours div{display:flex;justify-content:space-between;gap:24px}
.hours dd{margin:0;font-variant-numeric:tabular-nums}
@media(max-width:900px){.practical{grid-template-columns:1fr 1fr;gap:24px 32px;padding-block:32px}}
@media(max-width:600px){.practical{gap:24px 16px;font-size:14px}}
@media(max-width:900px){.practical>div:nth-child(2){grid-column:1/-1;order:3}.practical .eyebrow{margin-bottom:8px}.hours{max-width:none}.practical a[href^="mailto:"]{overflow-wrap:anywhere}}

/* Atelier: editorial layout. Tall window photo anchors the left; heading, text and the coffee photo stack on the right; a fact row closes the section. */
.atelier{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:24px;row-gap:64px;align-items:start}
.atelier-detail{grid-column:1/6;grid-row:1/3;position:relative;align-self:stretch}
.atelier-detail img{width:100%;height:100%;min-height:560px;object-fit:cover;border-radius:var(--r-lg)}
.photo-label{position:absolute;left:16px;bottom:16px;margin:0;padding:8px 16px;border-radius:var(--r-pill);background:color-mix(in srgb,var(--paper) 78%,transparent);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);color:var(--ink);font:400 12px/1.33 Jost,Arial,sans-serif;letter-spacing:.16em;text-transform:uppercase}
.atelier-copy{grid-column:7/13;grid-row:1;padding-top:32px}
.atelier-copy h2{font-size:60px;line-height:1;letter-spacing:-.025em;margin-bottom:40px}
.atelier-text{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;color:var(--muted)}
.atelier-text p+p{margin-top:0}
.coffee{grid-column:7/13;grid-row:2;align-self:end;display:grid;grid-template-columns:minmax(0,1fr) 160px;gap:24px;align-items:end}
.coffee img{width:100%;aspect-ratio:3/2;object-fit:cover;border-radius:var(--r-lg)}
.coffee figcaption{margin:0;padding-bottom:4px;font:400 16px/1.5 Jost,Arial,sans-serif;color:var(--ink);border-top:1px solid var(--line);padding-top:12px}
figcaption{margin-top:12px;font-size:14px;color:var(--muted)}
.atelier-facts{grid-column:1/-1;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-top:1px solid var(--line);margin:0}
.atelier-facts div{padding:32px 32px 0 0}
.atelier-facts div+div{padding-left:32px;border-left:1px solid var(--line)}
.atelier-facts dt{font:400 36px/1.1 Jost,Arial,sans-serif;letter-spacing:-.015em}
.atelier-facts dd{margin:8px 0 0;font-size:14px;line-height:1.43;color:var(--muted)}
.botanical{stroke:var(--sage);fill:none;stroke-width:1;stroke-linecap:round}
.botanical path{stroke-dasharray:1;stroke-dashoffset:0}
@media(max-width:1100px){.atelier-copy h2{font-size:48px;line-height:1.05}.atelier-text{grid-template-columns:1fr;gap:16px}.coffee{grid-template-columns:1fr}.coffee figcaption{padding-top:12px}}
@media(max-width:800px){
  .atelier{grid-template-columns:1fr;row-gap:40px}
  .atelier-copy,.atelier-detail,.coffee,.atelier-facts{grid-column:1;grid-row:auto}
  .atelier-copy{order:1;padding-top:0}.atelier-detail{order:2;width:88%}.coffee{order:3;width:64%;justify-self:end;margin-top:-120px;position:relative;z-index:1;gap:12px}
  .atelier-detail img{min-height:0;aspect-ratio:4/5}
  .photo-label{top:16px;bottom:auto}
  .coffee img{border:6px solid var(--paper);border-radius:calc(var(--r-lg) + 6px)}
  .coffee figcaption{border-top:0;padding-top:0;font-size:14px}
  .atelier-facts{order:4;grid-template-columns:1fr}
  .atelier-facts div,.atelier-facts div+div{padding:20px 0;border-left:0;border-bottom:1px solid var(--line);display:flex;align-items:baseline;justify-content:space-between;gap:16px}
  .atelier-facts dt{font-size:24px}.atelier-facts dd{margin:0;text-align:right;max-width:60%}
}
@media(max-width:600px){.atelier-copy h2{font-size:36px;margin-bottom:24px}}

/* Tagline: a quiet, centred statement. Words brighten one at a time as they cross the trigger line; the botanical line draws itself alongside. */
.tagline{padding-block:var(--space-lg);border-block:1px solid var(--line);overflow:hidden}
.tagline-inner{position:relative;display:flex;flex-direction:column;align-items:center;text-align:center}
.tagline-eyebrow{display:flex;align-items:center;gap:16px;margin-bottom:40px}
.tagline-eyebrow::before,.tagline-eyebrow::after{content:"";width:48px;height:1px;background:currentColor;opacity:.5}
.tagline-text{position:relative;z-index:1;max-width:1000px;font:400 96px/1 Jost,Arial,sans-serif;letter-spacing:-.03em;text-wrap:balance}
.tagline-accent{color:var(--sage)}
.tagline-sign{margin-top:48px;font:400 12px/1.33 Jost,Arial,sans-serif;letter-spacing:.18em;text-transform:uppercase;color:var(--muted)}
.tagline-art{position:absolute;right:max(0px,calc(50% - 720px));top:50%;width:360px;margin-top:-130px;pointer-events:none}
.tagline-art .botanical{width:100%;height:auto;stroke-width:.6;opacity:.7}
.tagline-text .word{display:inline-block;transition:opacity .6s var(--ease),transform .6s var(--ease)}
.tagline.is-armed .word{opacity:.14;transform:translateY(.06em)}
.tagline.is-armed .word.is-lit{opacity:1;transform:none}
@media(max-width:1279px){.tagline-text{font-size:72px;line-height:1.04}.tagline-art{width:260px;right:-40px;top:auto;bottom:-24px;margin-top:0}}
@media(max-width:1023px){.tagline-text{font-size:60px}}
@media(max-width:600px){.tagline-text{font-size:40px;line-height:1.08}.tagline-eyebrow{margin-bottom:24px}.tagline-eyebrow::before,.tagline-eyebrow::after{width:24px}.tagline-sign{margin-top:32px}.tagline-art{display:none}}

.visit-strip{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px 24px;padding-block:16px;font-size:14px}
.visit-strip a,.visit-details a{display:inline-flex;align-items:center;min-height:44px}
.map.map-consent:not(.is-loaded){height:auto;min-height:0;padding:20px}
.products [id],#kaffe{scroll-margin-top:calc(var(--header) + 16px)}
/* Section heads */
.section-head{max-width:760px;margin-bottom:48px}
.section-head .eyebrow{margin-bottom:16px}

/* Flower collections */
.products{
  --collection-bg:#23221e;--collection-surface:#1a1916;--collection-text:#f1ede5;
  --collection-accent:#bcc69f;--collection-line:#34352c;
  background:var(--collection-bg);color:var(--collection-text);color-scheme:dark;padding-block:56px;
}
.products .section-head{margin-bottom:28px}
.products .section-head .eyebrow{color:var(--collection-accent);font-size:11px;letter-spacing:.18em;margin-bottom:12px}
.products .section-head h2{font-size:clamp(30px,4vw,44px);line-height:1.15;letter-spacing:-.025em}
.product-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.product{
  display:grid;grid-template-columns:minmax(0,1fr) 20px;align-content:start;gap:0 12px;min-width:0;
  padding:24px;color:var(--collection-text);text-decoration:none;background:var(--collection-surface);
  border:1px solid var(--collection-line);border-radius:14px;
  transition:border-color .3s var(--ease),background .3s var(--ease);
}
.product:hover{color:var(--collection-text);border-color:#646b51;background:#1e1e19}
.product-media{grid-column:1/-1;display:flex;align-items:center;justify-content:center;min-width:0;height:230px;margin-bottom:24px}
.product-media img{display:block;width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 8px 12px rgba(0,0,0,.18));transition:transform .4s var(--ease)}
.product:hover .product-media img{transform:translateY(-3px)}
.product-title{grid-column:1/-1;font:400 24px/1.25 Jost,Arial,sans-serif;letter-spacing:-.015em;overflow-wrap:normal}
.product-cta{grid-column:1;grid-row:3;margin-top:12px;color:var(--collection-accent);font:400 14px/1.5 Jost,Arial,sans-serif}
.product-arrow{grid-column:2;grid-row:3;align-self:end;display:block;width:20px;height:20px;color:var(--collection-accent);transition:transform .3s var(--ease)}
.product-arrow svg{display:block;width:100%;height:100%}
.product:hover .product-arrow{transform:translateX(3px)}
.product:focus-visible{outline:2px solid var(--collection-accent);outline-offset:4px}
@media(max-width:700px){
  .products{padding-block:40px}
  .products .section-head{margin-bottom:24px}
  .product-row{grid-template-columns:1fr;gap:12px}
  .product{
    grid-template-columns:90px minmax(0,1fr) 18px;grid-template-rows:1fr 1fr;
    align-content:center;column-gap:16px;padding:18px 20px 18px 14px;min-height:148px;
  }
  .product-media{grid-column:1;grid-row:1/3;height:112px;margin:0}
  .product-title{grid-column:2/4;grid-row:1;align-self:end;font-size:22px;line-height:1.2}
  .product-cta{grid-column:2;grid-row:2;align-self:start;margin-top:9px;font-size:14px}
  .product-arrow{grid-column:3;grid-row:2;align-self:start;margin-top:10px;width:18px;height:18px}
}
@media(max-width:359px){
  .product{grid-template-columns:72px minmax(0,1fr) 18px;column-gap:12px;padding:16px 14px 16px 10px;min-height:132px}
  .product-media{height:98px}
  .product-title{font-size:20px}
}

/* Service guide: editorial header, a quiet text index, and six services in one hairline-ruled grid. */
.flower-guide{scroll-margin-top:var(--header)}
.guide-intro{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:32px 64px;align-items:end;margin-bottom:64px}
.guide-head h2{font-size:60px;line-height:1;letter-spacing:-.025em}
.guide-aside>p{color:var(--muted)}
.guide-nav{display:flex;flex-wrap:wrap;gap:4px 20px;margin-top:24px;padding-top:20px;border-top:1px solid var(--line);font:400 14px/1.43 Jost,Arial,sans-serif}
.guide-nav a{display:inline-flex;align-items:center;min-height:32px;color:var(--muted);text-decoration:none;background:linear-gradient(currentColor,currentColor) 0 calc(100% - 4px)/0 1px no-repeat;transition:color .3s var(--ease),background-size .5s var(--ease)}
.guide-nav a:hover{color:var(--ink);background-size:100% 1px}
.service-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;background:var(--line);border:1px solid var(--line);border-radius:var(--r-lg);overflow:hidden}
.service-card{position:relative;display:flex;flex-direction:column;background:var(--paper);padding:40px;scroll-margin-top:calc(var(--header) + 16px);transition:background-color .5s var(--ease)}
.service-card:hover{background:color-mix(in srgb,var(--sand) 70%,var(--paper))}
.service-top{display:flex;align-items:baseline;justify-content:space-between;gap:16px;margin-bottom:40px}
.service-num{font:400 48px/1 Jost,Arial,sans-serif;letter-spacing:-.03em;color:var(--sage);opacity:.85;font-variant-numeric:tabular-nums}
.service-top .eyebrow{margin:0;color:var(--muted)}
.service-card h3{font-size:24px;line-height:1.33;margin-bottom:12px}
.service-summary{color:var(--muted);font-size:15px;line-height:1.65}
.service-more{margin-top:16px;font-size:14px;line-height:1.6;color:var(--muted)}
.service-more summary{display:inline-flex;align-items:center;gap:8px;min-height:44px;cursor:pointer;list-style:none;font:400 14px/1.43 Jost,Arial,sans-serif;color:var(--ink)}
.service-more summary::-webkit-details-marker{display:none}
.service-more summary::after{content:"+";font-size:18px;line-height:1;transition:transform .3s var(--ease)}
.service-more[open] summary::after{transform:rotate(45deg)}
.service-more p{margin-top:12px}
.service-link{margin-top:auto;padding-top:24px;display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:44px;font:400 16px/1.5 Jost,Arial,sans-serif;color:var(--sage);text-decoration:none;width:100%}
.service-link svg{display:block;width:20px;height:20px}.service-link span{flex:none;display:inline-block;transition:transform .5s var(--ease)}
.service-card:hover .service-link span,.service-link:hover span{transform:translate(3px,-3px)}
.service-link:hover{text-decoration:underline}
.care-note{border-radius:var(--r-md);margin-top:24px;background:var(--sand);padding:32px;scroll-margin-top:calc(var(--header) + 16px);display:grid;grid-template-columns:minmax(0,1fr) minmax(0,2fr);gap:16px 48px}
.care-note .eyebrow{grid-column:1/-1;margin-bottom:0}
.care-note p{color:var(--muted)}
.image-note{margin-top:24px;max-width:760px}
@media(max-width:1100px){.service-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.guide-head h2{font-size:48px;line-height:1.05}.service-card{padding:28px}}
@media(max-width:900px){.service-grid{grid-template-columns:1fr}.guide-intro{grid-template-columns:minmax(0,1fr);align-items:start;margin-bottom:40px}}
@media(max-width:700px){
  .service-grid{grid-template-columns:1fr}
  .service-card{padding:24px}.flower-guide .section-head{margin-bottom:24px}.flower-guide .section-head h2{font-size:32px;line-height:1.15}.service-card h3{font-size:22px}
  .service-link{padding-top:20px}
  .tagline{display:none}
}

/* Webshop hand-off: the one deep sage block */
.handoff{background:var(--sage-deep);color:var(--on-sage);text-align:center;padding-block:var(--space-lg)}
.handoff .eyebrow{color:color-mix(in srgb,var(--on-sage) 80%,transparent)}
.handoff h2{max-width:760px;margin-inline:auto}
.handoff p{margin:24px auto 32px;max-width:560px;color:color-mix(in srgb,var(--on-sage) 85%,transparent)}
.handoff a:focus-visible{outline-color:var(--on-sage)}


/* Visit */
.visit{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:32px 96px;align-items:end}
.visit-heading h2{margin-bottom:24px}
.invitation{font-size:18px;line-height:1.56}
.visit-details p{color:var(--muted)}
.map{border-radius:var(--r-md);overflow:hidden;grid-column:1/-1;display:block;width:100%;height:400px;border:0;background:var(--sand);margin-top:32px;color-scheme:light}
.map-consent{display:grid;place-items:center;padding:32px;color-scheme:normal}
.map-placeholder{max-width:420px;text-align:center}
.map-placeholder address{font:400 24px/1.33 Jost,Arial,sans-serif}
.map-placeholder .small{margin-top:16px}
.map-actions{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:12px 24px;margin-top:24px}
.map-consent iframe{display:block;width:100%;height:100%;border:0}
.map-consent.is-loaded{padding:0;display:block}
@media(max-width:800px){.visit{grid-template-columns:1fr;gap:24px}.map{height:320px;margin-top:16px}.invitation{font-size:16px;line-height:1.5}}

/* FAQ accordion: one answer open at a time; all answers stay in the HTML */
.faq{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.8fr);gap:96px;border-top:1px solid var(--line)}
.faq>div:first-child{position:sticky;top:calc(var(--header) + 32px);align-self:start}
.faq-item{border-top:1px solid var(--line)}
.faq-item:last-child{border-bottom:1px solid var(--line)}
.faq-item summary{display:flex;align-items:center;justify-content:space-between;gap:24px;min-height:64px;padding-block:16px;cursor:pointer;list-style:none}
.faq-item summary::-webkit-details-marker{display:none}
.faq-item summary::after{content:"+";flex:none;font:400 24px/1 Jost,Arial,sans-serif;color:var(--sage);transition:transform .3s var(--ease)}
.faq-item[open] summary::after{transform:rotate(45deg)}
.faq-item h3{font-size:20px;line-height:1.4}
.faq-item p{padding-bottom:24px;color:var(--muted);max-width:640px}
.faq-item summary:hover h3{color:var(--sage)}
@media(max-width:900px){.faq{grid-template-columns:1fr;gap:32px}.faq>div:first-child{position:static}}

/* Footer */
.site-footer{background:var(--sand);padding-top:var(--space-sm)}
.footer-grid{display:grid;grid-template-columns:1fr 1.15fr 1.15fr 1.2fr;gap:32px;font-size:14px}
.footer-grid .eyebrow{margin-bottom:16px}
.footer-grid p{margin-top:16px}
.footer-grid .wordmark{font-size:30px}
.footer-grid .wordmark span{font-size:9px;margin-top:8px}
.footer-grid a{overflow-wrap:anywhere}
.footer-bottom{display:flex;justify-content:space-between;align-items:center;gap:24px;border-top:1px solid var(--line);padding-block:24px;margin-top:48px;font-size:12px}
.footer-links{display:inline-flex;gap:8px;flex-wrap:wrap}
@media(max-width:900px){.footer-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:40px 32px}}
@media(max-width:600px){.footer-grid{grid-template-columns:1fr;gap:24px}.footer-grid .hours{max-width:320px}.footer-bottom span:first-child{max-width:180px}}

/* Simple text pages (404, privacy) */
.page-simple{max-width:768px;padding-top:calc(var(--header) + 64px);padding-bottom:var(--space-md);margin-inline:auto;box-sizing:content-box}
.page-simple h1{font-size:60px;margin-bottom:32px}
.page-simple h2{font-size:24px;line-height:1.33;margin:48px 0 16px}
.page-simple p{max-width:65ch}
.page-simple .actions{margin-top:40px}
.page-simple .button:not(.button-dark){color:var(--ink)}
@media(max-width:600px){.page-simple h1{font-size:36px}}

/* Motion: progressive enhancement. Content is fully visible without JS. */
@media(prefers-reduced-motion:no-preference){
  .motion .reveal:not(.is-entering){opacity:0}
  .reveal.is-entering{animation:rise-in .7s var(--ease) both}
  .reveal.is-entering .botanical path{animation:draw 1.4s var(--ease) both}
  @keyframes rise-in{from{opacity:0;transform:translateY(32px)}to{opacity:1;transform:none}}
  @keyframes draw{from{stroke-dashoffset:1}to{stroke-dashoffset:0}}
  @supports(animation-timeline:view()){.reveal{animation:rise-in var(--ease) both;animation-timeline:view();animation-range:entry 0% entry 70%}.botanical path{animation:draw var(--ease) both;animation-timeline:view();animation-range:entry 0% cover 45%}}
}
@media(prefers-reduced-motion:reduce){:root{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}.reveal{transform:none!important;opacity:1!important}.botanical path{stroke-dashoffset:0!important}.js-menu .site-nav a{opacity:1;transform:none}}
