:root {
  --bg:#fff; --fg:#111; --muted:#666; --brand:#1a1a1a; --accent:#e6e6e6;
  --primary:#2a7a5e; --primary-contrast:#fff; --maxw:1200px; --radius:12px;
  --shadow-sm: 0 2px 8px rgba(0,0,0,.07);
  --shadow-md: 0 8px 24px rgba(0,0,0,.12);
  --shadow-lg: 0 16px 40px rgba(0,0,0,.15);
  --transition: .3s cubic-bezier(.25,.46,.45,.94);
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin:0; font-family: system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, sans-serif; color:var(--fg); background:var(--bg); line-height:1.6; }
img { max-width:100%; height:auto; border-radius:var(--radius); display:block; }
.container { max-width: var(--maxw); margin: 0 auto; padding: 1rem clamp(1rem, 2vw, 2rem); }
.flex { display:flex; gap:1rem; }
.between { justify-content: space-between; }
.center { align-items: center; }
.grid-2 { display:grid; grid-template-columns: 1fr 1fr; gap: 2rem; }
.grid-3 { display:grid; grid-template-columns: repeat(3, 1fr); gap: 2rem; }
.columns { columns: 2; gap: 1.5rem; }
.nowrap { white-space: nowrap; }
.muted { color: var(--muted); }

/* ── Header ─────────────────────────────────────────────────────────────────── */
.site-header {
  position: sticky; top:0; z-index: 1000;
  background: rgba(255,255,255,.95);
  backdrop-filter: blur(8px);
  border-bottom: 1px solid #eee;
  box-shadow: var(--shadow-sm);
  transition: box-shadow var(--transition);
}
.logo { font-weight: 700; letter-spacing: 0.3px; text-decoration:none; color:var(--fg); font-size:1.1rem; }
.nav { display:flex; gap:1rem; list-style: none; padding:0; margin:0; }
.nav a {
  text-decoration:none; color:var(--fg); padding: .6rem .8rem; border-radius: 8px;
  transition: background var(--transition), color var(--transition);
  position: relative;
}
.nav a:not(.btn)::after {
  content:''; position:absolute; bottom:4px; left:.8rem; right:.8rem;
  height:2px; background:var(--primary); border-radius:2px;
  transform:scaleX(0); transition:transform var(--transition);
}
.nav a:not(.btn):hover::after, .nav a:not(.btn)[aria-current="page"]::after { transform:scaleX(1); }
.nav a:hover, .nav a:focus { background: #f6f6f6; }
.nav-toggle { display:none; background:none; border:1px solid #ddd; border-radius:8px; padding:.4rem .7rem; cursor:pointer; }

/* ── Sticky CTA ─────────────────────────────────────────────────────────────── */
.sticky-cta {
  position: sticky; top:56px;
  background: linear-gradient(135deg, #f9f7f4 0%, #fff 100%);
  border-bottom: 1px solid #eee;
  display:flex; gap:.5rem; justify-content:center; flex-wrap:wrap; padding:.65rem;
  box-shadow: 0 2px 6px rgba(0,0,0,.04);
}
.sticky-cta .btn { padding:.5rem 1rem; font-size:.9rem; }

/* ── Buttons ────────────────────────────────────────────────────────────────── */
.btn {
  display:inline-block; padding:.8rem 1.4rem; border-radius: 999px;
  border:1px solid var(--fg); text-decoration:none; color:var(--fg);
  transition: transform var(--transition), box-shadow var(--transition), background var(--transition), filter var(--transition);
  font-weight: 500;
}
.btn:hover { background:#f6f6f6; transform:translateY(-1px); box-shadow:var(--shadow-sm); }
.btn-primary {
  background: var(--primary); border-color: var(--primary); color: var(--primary-contrast);
  animation: none;
}
.btn-primary:hover { filter: brightness(1.1); transform:translateY(-2px); box-shadow: 0 6px 20px rgba(42,122,94,.35); }
.btn.outline { background: transparent; }
.link-arrow { text-decoration:none; color:var(--primary); font-weight:500; }
.link-arrow::after { content:" →"; transition: margin-left var(--transition); }
.link-arrow:hover::after { margin-left: 4px; }

/* Pulse on standalone CTAs */
.cta-wide .btn-primary {
  animation: pulse-green 2.8s ease-in-out infinite;
}
@keyframes pulse-green {
  0%, 100% { box-shadow: 0 0 0 0 rgba(42,122,94,.4); }
  50%       { box-shadow: 0 0 0 10px rgba(42,122,94,0); }
}

/* ── Hero ───────────────────────────────────────────────────────────────────── */
.hero {
  display:grid; grid-template-columns: 1.1fr .9fr; gap:2rem; align-items:center;
  padding-top: 2rem; padding-bottom: 2rem;
}
.hero-text h1 {
  font-size: clamp(1.8rem, 3vw, 3rem); line-height: 1.2;
  background: linear-gradient(135deg, #111 0%, #2a7a5e 100%);
  -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text;
}
.hero-text .cta-group { display:flex; gap:.75rem; flex-wrap:wrap; margin-top:1.25rem; }
.hero-media { position:relative; overflow:hidden; border-radius: var(--radius); }
.hero-media img {
  transition: transform 8s ease-out;
  transform: scale(1.03);
  will-change: transform;
}
.hero-media:hover img { transform: scale(1); }

.section-kicker {
  margin: 0 0 .55rem;
  font-size: .78rem;
  letter-spacing: .16em;
  text-transform: uppercase;
  color: #6c7d76;
}

.concierge-entry,
.shop-guide {
  padding: 1rem 0 2.25rem;
}

.concierge-entry-card,
.shop-guide {
  background:
    radial-gradient(circle at top right, rgba(212,168,83,.14), transparent 35%),
    linear-gradient(135deg, #fcfaf6 0%, #f6fbf8 100%);
  border: 1px solid rgba(42,122,94,.12);
  border-radius: 24px;
  box-shadow: 0 24px 60px rgba(31,75,59,.08);
}

.concierge-entry-card {
  padding: clamp(1.35rem, 3vw, 2.2rem);
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(220px, .85fr);
  gap: 1.2rem 1.6rem;
  align-items: center;
}
.concierge-entry-copy,
.concierge-entry-stats,
.concierge-entry-actions,
.journey-pills {
  grid-column: 1;
}
.concierge-entry-visual {
  grid-column: 2;
  grid-row: 1 / span 4;
}

.concierge-entry-copy h2,
.shop-guide-lead h2 {
  margin: 0 0 .65rem;
  font-size: clamp(1.55rem, 3vw, 2.4rem);
  line-height: 1.15;
  color: #183c2f;
}

.concierge-entry-copy p,
.shop-guide-lead p {
  max-width: 66ch;
  color: #546760;
}

.concierge-entry-stats {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1rem;
  margin: 1.35rem 0;
}

.entry-stat {
  padding: 1rem 1.05rem;
  border-radius: 18px;
  background: rgba(255,255,255,.74);
  border: 1px solid rgba(42,122,94,.12);
}

.entry-stat strong,
.shop-guide-card h3 {
  display: block;
  color: #183c2f;
}

.entry-stat span {
  display: block;
  margin-top: .3rem;
  color: #657871;
  font-size: .92rem;
}

.concierge-entry-actions,
.shop-guide-actions,
.shop-guide-card-actions,
.journey-pills {
  display: flex;
  flex-wrap: wrap;
  gap: .75rem;
}

.journey-pills {
  margin-top: 1rem;
}

.journey-pill,
.shop-guide-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .35rem;
  min-height: 44px;
  padding: .7rem 1rem;
  border-radius: 999px;
  border: 1px solid rgba(42,122,94,.18);
  background: rgba(255,255,255,.84);
  color: #1c5a45;
  font: inherit;
  font-size: .92rem;
  font-weight: 600;
  text-decoration: none;
  cursor: pointer;
  transition: transform var(--transition), box-shadow var(--transition), border-color var(--transition), background var(--transition);
}

.journey-pill:hover,
.shop-guide-link:hover {
  transform: translateY(-1px);
  border-color: rgba(42,122,94,.35);
  box-shadow: var(--shadow-sm);
  background: #fff;
}
.concierge-entry-visual,
.shop-guide-visual {
  display: grid;
  justify-items: center;
  gap: .9rem;
}
.concierge-visual-note {
  display: grid;
  gap: .25rem;
  max-width: 20rem;
  text-align: center;
  color: #5f7069;
}
.concierge-visual-note strong {
  color: #183c2f;
  font-size: .95rem;
}
.concierge-visual-note span {
  font-size: .88rem;
  line-height: 1.45;
}
.shop-guide-mini-actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: .65rem;
  margin-top: .2rem;
}
.concierge-lily-stage,
.concierge-lily-mark {
  position: relative;
  display: grid;
  place-items: center;
  width: 7.4rem;
  height: 7.4rem;
  filter: drop-shadow(0 18px 24px rgba(42,122,94,.16));
}
.concierge-lily-stage-large {
  width: 9rem;
  height: 9rem;
}
.lily-aura {
  position: absolute;
  inset: 10%;
  border-radius: 999px;
  background:
    radial-gradient(circle, rgba(255,255,255,.94) 0%, rgba(255,241,248,.72) 38%, rgba(212,168,83,.12) 68%, transparent 74%);
  animation: lily-aura-pulse 4.8s ease-in-out infinite;
}
.lily-stem {
  position: absolute;
  bottom: 10%;
  width: .48rem;
  height: 42%;
  border-radius: 999px;
  background: linear-gradient(180deg, #4b8b61 0%, #1f5a3f 100%);
  transform-origin: bottom center;
  animation: lily-sway 5.8s ease-in-out infinite;
}
.lily-leaf {
  position: absolute;
  bottom: 21%;
  width: 1.65rem;
  height: .92rem;
  border-radius: 100% 0 100% 0;
  background: linear-gradient(135deg, #7db184 0%, #2b704e 100%);
  opacity: .95;
}
.lily-leaf-left {
  left: 22%;
  transform: rotate(-30deg);
}
.lily-leaf-right {
  right: 22%;
  transform: scaleX(-1) rotate(-30deg);
}
.lily-bloom {
  position: absolute;
  top: 14%;
  width: 58%;
  height: 58%;
  transform-origin: 50% 70%;
  animation: lily-sway 5.8s ease-in-out infinite;
}
.lily-petal {
  position: absolute;
  left: 50%;
  top: 50%;
  width: 2rem;
  height: 3rem;
  margin-left: -1rem;
  margin-top: -1.5rem;
  border-radius: 74% 74% 54% 54%;
  background:
    linear-gradient(180deg, rgba(255,255,255,.95) 0%, rgba(255,219,235,.95) 46%, rgba(241,171,201,.9) 100%);
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.42);
  transform-origin: 50% 84%;
}
.lily-petal-top { transform: translateY(-1rem) scale(.98); }
.lily-petal-left { transform: translate(-1.2rem, -.15rem) rotate(-52deg) scale(.92); }
.lily-petal-right { transform: translate(1.2rem, -.15rem) rotate(52deg) scale(.92); }
.lily-petal-bottom-left { transform: translate(-.8rem, .95rem) rotate(-128deg) scale(.82); }
.lily-petal-bottom-right { transform: translate(.8rem, .95rem) rotate(128deg) scale(.82); }
.lily-core {
  position: absolute;
  left: 50%;
  top: 50%;
  width: .95rem;
  height: .95rem;
  margin-left: -.475rem;
  margin-top: -.2rem;
  border-radius: 999px;
  background: radial-gradient(circle, #fff6ca 0%, #d4a853 72%, #a77a29 100%);
  box-shadow: 0 0 0 6px rgba(255,255,255,.18);
}

.delivery-proof {
  display: grid;
  grid-template-columns: minmax(0, 1.08fr) minmax(0, .92fr);
  gap: clamp(1.2rem, 3vw, 2.4rem);
  align-items: center;
  padding: .5rem 0 2.25rem;
}

.delivery-proof-media {
  position: relative;
}

.delivery-proof-media img {
  width: 100%;
  max-height: 760px;
  object-fit: cover;
  border-radius: 28px;
  box-shadow: 0 28px 70px rgba(21, 38, 32, .14);
}

.delivery-proof-badge {
  position: absolute;
  left: 1.2rem;
  bottom: 1.2rem;
  display: inline-flex;
  align-items: center;
  gap: .45rem;
  padding: .75rem 1rem;
  border-radius: 999px;
  background: rgba(24, 60, 47, .9);
  color: #fff;
  font-size: .88rem;
  font-weight: 600;
  box-shadow: 0 12px 26px rgba(0,0,0,.18);
}

.delivery-proof-copy h2 {
  margin: 0 0 .75rem;
  font-size: clamp(1.7rem, 3vw, 2.6rem);
  line-height: 1.08;
  color: #183c2f;
}

.delivery-proof-copy p {
  color: #556963;
}

.delivery-proof-list {
  display: grid;
  gap: .9rem;
  margin: 1.2rem 0 1.35rem;
}

.delivery-proof-item {
  padding: 1rem 1.05rem;
  border-radius: 18px;
  background: linear-gradient(135deg, #f9f6f1 0%, #f4fbf7 100%);
  border: 1px solid rgba(42,122,94,.1);
}

.delivery-proof-item strong {
  display: block;
  color: #16392d;
}

.delivery-proof-item span {
  display: block;
  margin-top: .3rem;
  color: #667972;
  font-size: .94rem;
}

/* ── Trust badges ──────────────────────────────────────────────────────────── */
.trust-badges {
  list-style:none; display:flex; flex-wrap:wrap; gap:.75rem 1rem;
  padding:0; margin:1.25rem 0 0 0;
}
.trust-badges li {
  color: var(--muted); font-size:.9rem;
  display:flex; align-items:center; gap:.35rem;
}
.trust-badges li::before {
  content:'✓'; color:var(--primary); font-weight:700; font-size:.85rem;
}

/* ── Category cards ────────────────────────────────────────────────────────── */
.categories { padding: 2rem 0; }
.categories h2 { text-align:center; font-size:clamp(1.4rem,2.5vw,2rem); margin-bottom:.5rem; }
.categories .subhead { text-align:center; color:var(--muted); margin-bottom:1.5rem; }
.categories .cards { display:grid; grid-template-columns: repeat(4, 1fr); gap:1rem; }
.card {
  border: 1px solid #eee; border-radius: var(--radius); overflow:hidden;
  text-decoration:none; color:inherit;
  transition: transform var(--transition), box-shadow var(--transition), border-color var(--transition);
  box-shadow: var(--shadow-sm);
}
.card:hover {
  transform: translateY(-6px) scale(1.01);
  box-shadow: var(--shadow-md);
  border-color: var(--primary);
}
.card img {
  width:100%; aspect-ratio:4/3; object-fit:cover;
  transition: transform var(--transition);
}
.card:hover img { transform:scale(1.04); }
.card h3 { padding: .8rem; margin:0; font-size:1rem; }

/* ── Features / About section ─────────────────────────────────────────────── */
.features { padding: 2rem 0; }
.features h2 { font-size:clamp(1.3rem,2.5vw,1.8rem); }
.features .feature-list { list-style: none; padding:0; }
.features .feature-list li {
  margin: .75rem 0; padding-left: 1.4rem; position:relative;
}
.features .feature-list li::before {
  content:'✦'; position:absolute; left:0; color:var(--primary); font-size:.7rem; top:.35rem;
}
.quote {
  background: linear-gradient(135deg, #f8faf9 0%, #f0f7f4 100%);
  padding: 1.5rem; border-radius: var(--radius);
  border-left: 3px solid var(--primary);
  box-shadow: var(--shadow-sm);
}
.quote blockquote { margin:0; font-style:italic; font-size:1.05rem; line-height:1.7; color:#333; }
.quote-cite { margin:.75rem 0 0 0; color:var(--muted); font-size:.9rem; }

/* ── Product grid (shop page) ──────────────────────────────────────────────── */
.page-hero { padding: 1.5rem 0; }
.page-hero h1 { font-size: clamp(1.6rem, 3vw, 2.4rem); margin-bottom:.4rem; }
.product-grid { display:grid; grid-template-columns: repeat(4, 1fr); gap:1.25rem; padding: 1rem 0 2rem; }
.product {
  border: 1px solid #eee; border-radius: var(--radius); padding: 1rem;
  display:flex; flex-direction:column;
  transition: transform var(--transition), box-shadow var(--transition), border-color var(--transition);
  box-shadow: var(--shadow-sm);
  background:#fff;
}
.product:hover {
  transform: translateY(-6px);
  box-shadow: var(--shadow-md);
  border-color: var(--primary);
}
.product img {
  width: 100%; aspect-ratio: 4/3; height:auto;
  object-fit: contain; object-position: center;
  background: #f6f2ee; border-radius: 10px; display:block;
  transition: transform var(--transition);
}
.product:hover img { transform:scale(1.02); }
.product h3 { margin: .75rem 0 .3rem; font-size:1.05rem; }
.product p { margin:.25rem 0; font-size:.95rem; color:var(--muted); }
.product .price {
  font-weight:700; font-size:1.15rem; color:var(--primary);
  margin:.5rem 0;
}
.product .btn { margin-top:.5rem; text-align:center; }
.pay-online { margin-top:.5rem; }

.shop-guide {
  margin-bottom: 1.5rem;
  padding: clamp(1.35rem, 3vw, 2.2rem);
}

.shop-guide-lead {
  margin-bottom: 1.35rem;
  text-align: center;
  display: grid;
  justify-items: center;
  gap: 1rem;
}

.shop-guide-lead .section-kicker {
  justify-content: center;
}

.shop-guide-lead p {
  margin-left: auto;
  margin-right: auto;
}

.shop-guide-actions {
  justify-content: center;
}

.shop-guide-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1rem;
}

.shop-guide-card {
  padding: 1.15rem;
  border-radius: 18px;
  background: rgba(255,255,255,.78);
  border: 1px solid rgba(42,122,94,.1);
}

.shop-guide-card p {
  color: #5c6d67;
}

/* ── FAQ ────────────────────────────────────────────────────────────────────── */
.faq { padding: 2rem 0; }
.faq h2 { font-size:clamp(1.3rem,2.5vw,1.8rem); margin-bottom:1rem; }
.faq details {
  border: 1px solid #eee; border-radius: var(--radius);
  margin-bottom: .6rem; overflow:hidden;
  transition: box-shadow var(--transition);
}
.faq details:hover { box-shadow: var(--shadow-sm); }
.faq details[open] { border-color: var(--primary); box-shadow: var(--shadow-sm); }
.faq summary {
  padding: 1rem 1.25rem; cursor:pointer; font-weight:600;
  list-style:none; display:flex; justify-content:space-between; align-items:center;
  user-select:none;
}
.faq summary::-webkit-details-marker { display:none; }
.faq summary::after {
  content:'＋'; font-size:1.1rem; color:var(--primary);
  transition: transform var(--transition);
  flex-shrink:0;
}
.faq details[open] summary::after { transform:rotate(45deg); }
.faq details p { padding: 0 1.25rem 1rem; margin:0; color:#444; line-height:1.7; }

/* ── CTA wide ───────────────────────────────────────────────────────────────── */
.cta-wide {
  text-align:center;
  background: linear-gradient(135deg, #f0f7f4 0%, #e6f2ed 100%);
  padding: 3rem 2rem; border-radius: var(--radius);
  margin: 2rem auto;
  box-shadow: var(--shadow-sm);
}
.cta-wide h2 { font-size:clamp(1.4rem,2.5vw,2rem); margin-bottom:.5rem; }

/* ── Local SEO section ─────────────────────────────────────────────────────── */
.seo-copy,
.local-seo {
  padding: 1.5rem 0;
  max-width: 920px;
  margin-left: auto;
  margin-right: auto;
  text-align: center;
}
.seo-copy h2,
.local-seo h2 {
  font-size: clamp(1.2rem, 2vw, 1.6rem);
  margin-bottom: .75rem;
}
.seo-copy p,
.local-seo p {
  max-width: 780px;
  margin: 0 auto 1rem;
}
.seo-copy p:last-child,
.local-seo p:last-child {
  margin-bottom: 0;
}

/* ── Footer ─────────────────────────────────────────────────────────────────── */
.site-footer { margin-top:2rem; padding-top:1.5rem; border-top:1px solid #eee; background:#fafaf9; }
.site-footer h4 { margin:0 0 .5rem; color:var(--primary); }
.site-footer a { color:var(--fg); text-decoration:none; }
.site-footer a:hover { color:var(--primary); }
.site-footer .legal {
  display:flex; justify-content: space-between;
  border-top:1px solid #eee; padding-top:1rem; margin-top:1rem;
  font-size:.9rem; color:var(--muted);
}
.site-footer .legal a { color:var(--muted); }
.site-footer .legal a:hover { color:var(--primary); }

/* Concierge widget */
.concierge-shell {
  position: fixed;
  right: 1.1rem;
  bottom: 1.1rem;
  z-index: 1200;
}
.concierge-trigger {
  position: relative;
  display: block;
  border: 0;
  border-radius: 34px 30px 36px 28px;
  background:
    radial-gradient(circle at 18% 24%, rgba(255,244,249,.42), transparent 22%),
    radial-gradient(circle at 30% 58%, rgba(255,255,255,.18), transparent 28%),
    radial-gradient(circle at top right, rgba(255,255,255,.32), transparent 34%),
    linear-gradient(135deg, #173d31 0%, #2a7a5e 62%, #d4a853 140%);
  color: #fff;
  font: inherit;
  font-weight: 600;
  padding: 1rem 1.2rem 1rem 5.85rem;
  min-width: min(330px, calc(100vw - 2.2rem));
  box-shadow: 0 22px 44px rgba(42,122,94,.26);
  cursor: pointer;
  transition: transform .22s ease, box-shadow .22s ease;
  overflow: hidden;
}
.concierge-trigger:hover {
  transform: translateY(-2px);
  box-shadow: 0 28px 50px rgba(42,122,94,.28);
}
.concierge-trigger::after {
  content: "";
  position: absolute;
  inset: auto auto -18% -4%;
  width: 58%;
  height: 135%;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(255,255,255,.12) 0%, rgba(255,255,255,0) 72%);
  pointer-events: none;
}
.concierge-trigger-icon {
  position: absolute;
  left: .2rem;
  top: 50%;
  transform: translateY(-50%);
  width: 3.7rem;
  height: 3.7rem;
  border-radius: 999px;
  background: transparent;
  box-shadow: none;
  opacity: .96;
}
.concierge-trigger-copy {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  text-align: left;
  gap: .14rem;
  padding-left: .15rem;
}
.concierge-trigger-copy strong {
  font-size: 1rem;
  line-height: 1.15;
}
.concierge-trigger-copy small {
  font-size: .78rem;
  opacity: .86;
  line-height: 1.25;
}
.concierge-panel {
  position: absolute;
  right: 0;
  bottom: calc(100% + .85rem);
  width: min(380px, calc(100vw - 2rem));
  border-radius: 20px;
  overflow: hidden;
  background: #fffdf9;
  border: 1px solid rgba(42,122,94,.18);
  box-shadow: 0 24px 50px rgba(0,0,0,.18);
}
.concierge-header {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 1rem;
  padding: 1rem 1rem .85rem;
  background:
    radial-gradient(circle at top right, rgba(255,255,255,.45), transparent 42%),
    linear-gradient(135deg, #1f4b3b 0%, #2a7a5e 100%);
  color: #fff;
}
.concierge-header h2 {
  margin: 0;
  font-size: 1.05rem;
}
.concierge-eyebrow {
  margin: 0 0 .25rem;
  font-size: .72rem;
  letter-spacing: .08em;
  text-transform: uppercase;
  opacity: .78;
}
.concierge-close {
  width: 2rem;
  height: 2rem;
  border: 0;
  border-radius: 999px;
  background: rgba(255,255,255,.14);
  color: #fff;
  cursor: pointer;
  font: inherit;
  font-weight: 700;
}
.concierge-messages {
  max-height: 360px;
  overflow-y: auto;
  padding: 1rem;
  background:
    linear-gradient(180deg, rgba(255,255,255,.94), rgba(248,244,239,.98)),
    repeating-linear-gradient(
      0deg,
      transparent,
      transparent 28px,
      rgba(42,122,94,.03) 28px,
      rgba(42,122,94,.03) 29px
    );
}
.concierge-message {
  display: flex;
  margin-bottom: .85rem;
}
.concierge-message p {
  margin: 0;
  max-width: 88%;
  padding: .8rem .95rem;
  border-radius: 16px;
  line-height: 1.45;
  box-shadow: 0 6px 14px rgba(0,0,0,.05);
}
.concierge-message-bot { justify-content: flex-start; }
.concierge-message-bot p {
  background: #fff;
  color: #20322b;
  border-top-left-radius: 6px;
}
.concierge-message-user { justify-content: flex-end; }
.concierge-message-user p {
  background: #2a7a5e;
  color: #fff;
  border-top-right-radius: 6px;
}
.concierge-actions,
.concierge-inline-actions {
  display: flex;
  flex-wrap: wrap;
  gap: .5rem;
}
.concierge-actions {
  padding: 0 1rem 1rem;
}
.concierge-chip,
.concierge-inline-link {
  border-radius: 999px;
  text-decoration: none;
  font: inherit;
  font-size: .84rem;
  font-weight: 600;
}
.concierge-chip {
  border: 1px solid rgba(42,122,94,.22);
  background: #fff;
  color: #1d5a45;
  padding: .55rem .8rem;
  cursor: pointer;
}
.concierge-inline-actions {
  padding-top: .55rem;
}
.concierge-inline-link {
  background: #edf7f2;
  color: #195139;
  padding: .5rem .8rem;
}
.concierge-input {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: .65rem;
  padding: 1rem;
  border-top: 1px solid rgba(42,122,94,.12);
  background: #fff;
}
.concierge-text {
  width: 100%;
  border: 1px solid #d9e2de;
  border-radius: 14px;
  padding: .85rem .95rem;
  font: inherit;
  background: #fcfcfb;
}
.concierge-send {
  border: 0;
  border-radius: 14px;
  background: #1f4b3b;
  color: #fff;
  font: inherit;
  font-weight: 600;
  padding: 0 1rem;
  cursor: pointer;
}
.concierge-shell.is-open .concierge-trigger,
.concierge-shell.is-thinking .concierge-trigger {
  box-shadow: 0 28px 52px rgba(42,122,94,.32);
}
.concierge-shell.is-open .lily-bloom,
.concierge-shell.is-open .lily-stem {
  animation-duration: 4.4s;
}
.concierge-shell.is-thinking .lily-aura {
  animation-duration: 1.8s;
}
.concierge-shell.is-thinking .lily-bloom {
  animation: lily-thinking 1.35s ease-in-out infinite;
}

.concierge-spotlight {
  position: fixed;
  left: 50%;
  bottom: 7rem;
  width: min(560px, calc(100vw - 2rem));
  padding: 1.15rem 1.15rem 1rem;
  border-radius: 24px;
  background:
    radial-gradient(circle at top right, rgba(212,168,83,.18), transparent 34%),
    linear-gradient(135deg, rgba(255,250,245,.98) 0%, rgba(246,251,248,.98) 100%);
  border: 1px solid rgba(42,122,94,.15);
  box-shadow: 0 24px 60px rgba(21,38,32,.18);
  transform: translate(-50%, 24px);
  opacity: 0;
  pointer-events: none;
  transition: opacity .28s ease, transform .28s ease;
  z-index: 1190;
}
.concierge-spotlight.is-visible {
  opacity: 1;
  transform: translate(-50%, 0);
  pointer-events: auto;
}
.concierge-spotlight-close {
  position: absolute;
  top: .85rem;
  right: .85rem;
  width: 2rem;
  height: 2rem;
  border: 0;
  border-radius: 999px;
  background: rgba(31,75,59,.08);
  color: #204133;
  font: inherit;
  font-weight: 700;
  cursor: pointer;
}
.concierge-spotlight-kicker {
  margin: 0 0 .35rem;
  font-size: .76rem;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: #678076;
}
.concierge-spotlight h3 {
  margin: 0 0 .45rem;
  font-size: clamp(1.15rem, 2.4vw, 1.6rem);
  line-height: 1.18;
  color: #183c2f;
}
.concierge-spotlight p {
  margin: 0;
  color: #5f7069;
}
.concierge-spotlight-actions {
  display: flex;
  flex-wrap: wrap;
  gap: .7rem;
  margin-top: .9rem;
}

/* ── Scroll reveal ─────────────────────────────────────────────────────────── */
.reveal {
  opacity:0;
  transform: translateY(28px);
  transition: opacity .65s ease, transform .65s ease;
}
.reveal.visible {
  opacity:1;
  transform: translateY(0);
}
.reveal-delay-1 { transition-delay:.1s; }
.reveal-delay-2 { transition-delay:.2s; }
.reveal-delay-3 { transition-delay:.3s; }
.reveal-delay-4 { transition-delay:.4s; }

/* ── Accessibility ─────────────────────────────────────────────────────────── */
.skip-link { position:absolute; left:-9999px; top:auto; width:1px; height:1px; overflow:hidden; }
.skip-link:focus { position:static; width:auto; height:auto; padding:.5rem; background:#000; color:#fff; }

/* ── Responsive ─────────────────────────────────────────────────────────────── */
@media (max-width: 960px) {
  .grid-2, .grid-3, .product-grid, .categories .cards, .hero { grid-template-columns: 1fr; }
  .sticky-cta { top:48px; }
  .site-footer .legal { flex-direction: column; gap:.5rem; }
  .nav { display:none; flex-direction:column; background:#fff; position:absolute; top:100%; left:0; right:0; padding:1rem; border-bottom:1px solid #eee; box-shadow:var(--shadow-md); }
  .nav-toggle { display:inline-block; }
  .hero-text h1 { -webkit-text-fill-color: #111; }
  .concierge-entry-card { grid-template-columns: 1fr; }
  .delivery-proof { grid-template-columns: 1fr; }
  .product-grid { grid-template-columns: repeat(2,1fr); }
  .categories .cards { grid-template-columns: repeat(2,1fr); }
  .concierge-entry-stats,
  .shop-guide-grid { grid-template-columns: 1fr; }
  .concierge-entry-copy,
  .concierge-entry-stats,
  .concierge-entry-actions,
  .journey-pills,
  .concierge-entry-visual { grid-column: auto; }
  .concierge-entry-visual { grid-row: auto; }
  .concierge-entry-visual,
  .shop-guide-visual { order: -1; }
  .concierge-shell {
    right: .75rem;
    left: .75rem;
    bottom: .75rem;
  }
  .concierge-panel {
    width: 100%;
  }
  .concierge-trigger {
    width: 100%;
    min-width: 0;
    padding-left: 4.95rem;
  }
  .concierge-trigger-icon {
    left: .18rem;
    width: 3.3rem;
    height: 3.3rem;
  }
  .concierge-spotlight {
    bottom: 6.2rem;
    width: calc(100vw - 1.5rem);
  }
}
@media (max-width: 480px) {
  .product-grid { grid-template-columns: 1fr; }
  .categories .cards { grid-template-columns: 1fr; }
  .trust-badges { gap:.5rem; }
  .concierge-trigger-copy small { display: none; }
  .concierge-spotlight { bottom: 6rem; }
}

/* ── Form styles ─────────────────────────────────────────────────────────────── */
.form { display:grid; gap: .8rem; }
.form input, .form textarea, .form select {
  width:100%; padding:.7rem .8rem; border:1px solid #ddd; border-radius:10px; font:inherit;
  transition: border-color var(--transition), box-shadow var(--transition);
}
.form input:focus, .form textarea:focus, .form select:focus {
  outline:none; border-color:var(--primary); box-shadow:0 0 0 3px rgba(42,122,94,.15);
}
.form-note { color: var(--muted); font-size:.95rem; }
.map-embed iframe { width:100%; height:300px; border:0; border-radius: var(--radius); }

@keyframes lily-sway {
  0%, 100% { transform: rotate(-3deg); }
  50% { transform: rotate(3deg); }
}

@keyframes lily-aura-pulse {
  0%, 100% { transform: scale(.94); opacity: .88; }
  50% { transform: scale(1.04); opacity: 1; }
}

@keyframes lily-thinking {
  0%, 100% { transform: translateY(0) scale(1); }
  50% { transform: translateY(-4px) scale(1.05); }
}
