/* ============================================================
   THEME: giftshop
   ============================================================
   Linked by publicTemplate.php after the core bundle (so these rules win
   the cascade) and BEFORE ThemeService::cssOverrides() (so any token the
   site owner sets on Admin Settings → Theme still wins over the defaults
   in :root below).

   The look: a friendly independent shop. Warm white ground, soft bands
   washed with the primary colour, rounded everything, pill buttons. The
   one motif is the shopfront AWNING -- a row of scallops hanging from the
   top strip, the homepage hero and every page header, and rising (upside
   down) into the footer. Hero photos sit in an arched shop window; a badge
   logo sits on a round plate; eyebrows are gift tags; the CTA is a voucher
   with a stitched edge. Products sit on a tinted plinth inside a white card.

   Colours are the core tokens (--clr-primary drives the bands, buttons and
   prices; --clr-secondary the offset shadows; --clr-accent the Sale tag;
   --clr-footer-bg the footer) so one theme serves any shop's palette.
   Tints are mixed from them with color-mix(). Pair with the "Poppins +
   Inter" font preset.

   Sections: 1 tokens · 2 shared bits · 3 header · 4 hero · 5 page header
   · 6 cta · 7 footer · 8 shop · 9 core-component refinements · 10 responsive
   ============================================================ */

/* ── 1. Token defaults (admin overrides still win, see above) ─── */
:root{
  --topbar-height:0px;                 /* the strip scrolls away; keeps cms.css sticky offsets right */
  --font-heading-weight:700;           /* "Heading weight" on the Theme tab overrides */

  --clr-navbar-bg:#fff;
  --clr-navbar-link:var(--gs-ink);
  --clr-navbar-link-hover:var(--clr-primary);
  --clr-navbar-brand:var(--gs-ink);

  --gs-ink:#1b2530;                    /* headings */
  --gs-text:#45505c;                   /* body */
  --gs-muted:#6b7682;
  --gs-paper:#fffdf9;                  /* page ground: a warm white */
  --gs-line:color-mix(in srgb,var(--clr-primary) 14%,#e9e6e0);
  --gs-tint:color-mix(in srgb,var(--clr-primary) 9%,#fff);
  --gs-tint-soft:color-mix(in srgb,var(--clr-primary) 5%,#fff);
  --gs-primary-dk:color-mix(in srgb,var(--clr-primary) 82%,#000);

  --gs-radius:18px;
  --gs-radius-lg:28px;
  --gs-shadow:0 1px 2px rgba(20,30,40,.06),0 8px 24px -12px rgba(20,30,40,.22);
  --gs-shadow-lift:0 2px 4px rgba(20,30,40,.08),0 18px 36px -14px rgba(20,30,40,.32);
  --gs-offset:color-mix(in srgb,var(--clr-secondary) 38%,transparent);

  --gs-scallop-r:12px;                 /* awning scallop radius */
}

body{background:var(--gs-paper);color:var(--gs-text);-webkit-font-smoothing:antialiased}
h1,h2,h3,h4,h5{font-family:var(--font-serif);font-weight:var(--font-heading-weight,700);letter-spacing:-.01em;line-height:1.15;color:var(--gs-ink)}
a{color:var(--clr-primary)}
::selection{background:var(--clr-primary);color:var(--clr-on-primary,#fff)}
:focus-visible{outline:3px solid color-mix(in srgb,var(--clr-primary) 55%,transparent);outline-offset:2px}

/* ── 2. Shared: awning, gift tag, buttons ──────────────────────── */
/* The awning: semicircles in the band's own colour hanging below it. A
   radial gradient, not an image, so it needs no file and no CSP entry and
   takes whatever colour the band is. Set --gs-awning to that colour. */
.gsAwning{position:relative;--gs-awning:var(--gs-tint)}
.gsAwning::after{
  content:'';position:absolute;left:0;right:0;top:100%;z-index:2;pointer-events:none;
  height:var(--gs-scallop-r);
  background:radial-gradient(circle at 50% 0,var(--gs-awning) calc(var(--gs-scallop-r) - .5px),transparent var(--gs-scallop-r))
             0 0/calc(var(--gs-scallop-r) * 2) var(--gs-scallop-r) repeat-x;
}

/* A luggage-label gift tag: pointed left end, punched hole, a slight tilt. */
.gsTag{
  position:relative;display:inline-flex;align-items:center;
  margin-bottom:1.35rem;padding:.42rem 1rem .42rem 1.65rem;
  background:#fff;color:var(--clr-primary);
  font-family:var(--font-sans);font-size:.74rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;
  clip-path:polygon(14px 0,100% 0,100% 100%,14px 100%,0 50%);
  border-radius:0 6px 6px 0;transform:rotate(-2deg);
  filter:drop-shadow(0 2px 3px rgba(20,30,40,.12));
}
.gsTag::before{
  content:'';position:absolute;left:11px;top:50%;width:7px;height:7px;margin-top:-3.5px;
  border-radius:50%;background:var(--gs-tint);box-shadow:inset 0 0 0 1.5px color-mix(in srgb,var(--clr-primary) 35%,transparent);
}

.gsBtn{
  display:inline-flex;align-items:center;justify-content:center;gap:.55rem;
  padding:.85rem 1.7rem;border:2px solid var(--clr-primary);border-radius:999px;
  background:var(--clr-primary);color:var(--clr-on-primary,#fff);
  font-family:var(--font-sans);font-size:.95rem;font-weight:600;line-height:1.2;text-decoration:none;
  transition:background .2s,border-color .2s,color .2s,transform .2s,box-shadow .2s;
}
.gsBtn:hover,.gsBtn:focus-visible{background:var(--gs-primary-dk);border-color:var(--gs-primary-dk);color:var(--clr-on-primary,#fff);transform:translateY(-2px);box-shadow:0 10px 20px -12px var(--gs-primary-dk)}
.gsBtn--ghost{background:transparent;color:var(--clr-primary)}
.gsBtn--ghost:hover,.gsBtn--ghost:focus-visible{background:var(--clr-primary);border-color:var(--clr-primary);color:var(--clr-on-primary,#fff)}
.gsBtn--light{background:#fff;border-color:#fff;color:var(--clr-primary)}
.gsBtn--light:hover,.gsBtn--light:focus-visible{background:var(--gs-tint);border-color:var(--gs-tint);color:var(--gs-primary-dk)}
.gsBtn--outline-light{background:transparent;border-color:rgba(255,255,255,.75);color:#fff}
.gsBtn--outline-light:hover,.gsBtn--outline-light:focus-visible{background:#fff;border-color:#fff;color:var(--clr-primary)}

/* ── 3. Header ─────────────────────────────────────────────────── */
.gsStrip{
  position:relative;z-index:1000;                 /* its scallops hang over the sticky bar */
  --gs-awning:var(--clr-topbar-bg,var(--clr-primary));
  background:var(--gs-awning);color:var(--clr-topbar-link,#fff);font-size:.82rem;
}
.gsStrip::after{
  content:'';position:absolute;left:0;right:0;top:100%;height:9px;pointer-events:none;
  background:radial-gradient(circle at 50% 0,var(--gs-awning) 8.5px,transparent 9px) 0 0/18px 9px repeat-x;
}
.gsStrip__wrap{display:flex;align-items:center;justify-content:space-between;gap:.5rem 1.5rem;min-height:38px;padding-top:.3rem;padding-bottom:.3rem}
.gsStrip__end{display:flex;align-items:center;gap:.25rem 1.25rem;margin-left:auto}
.gsStrip__item{display:inline-flex;align-items:center;gap:.5rem;color:inherit;text-decoration:none}
.gsStrip__item i{opacity:.8;font-size:.8em}
.gsStrip a{color:var(--clr-topbar-link,#fff);text-decoration:none}
.gsStrip a:hover,.gsStrip a:focus-visible{color:var(--clr-topbar-link-hover,#fff);text-decoration:underline;text-underline-offset:.2em}
.gsStrip__social{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;border-radius:50%;background:rgba(255,255,255,.14)}
.gsStrip__social:hover{background:rgba(255,255,255,.28);text-decoration:none!important}

/* Fixed height and shadow-only on scroll: nothing in layout moves, so no
   scroll-anchoring judder at navbar.js's .is-scrolled threshold. */
.gsHeader{
  position:sticky;top:0;z-index:999;background:var(--clr-navbar-bg);
  border-bottom:1px solid var(--gs-line);transition:box-shadow .25s;
}
.gsHeader.is-scrolled{box-shadow:0 8px 22px -14px rgba(20,30,40,.35)}
.gsHeader__wrap{display:flex;align-items:center;gap:1.25rem;min-height:calc(var(--nav-logo-height,64px) + 1.5rem)}
.gsHeader--under-strip .gsHeader__wrap{padding-top:.35rem}
.gsHeader__brand{display:flex;align-items:center;gap:.75rem;flex-shrink:0;min-width:0;text-decoration:none}
.gsHeader__logo{height:var(--nav-logo-height,64px);width:auto;max-width:240px;object-fit:contain}
.gsHeader__name{font-family:var(--font-serif);font-size:clamp(1.1rem,1.8vw,1.35rem);font-weight:var(--font-heading-weight,700);line-height:1.15;color:var(--clr-navbar-brand)}
.gsHeader__nav{flex:1;min-width:0}
.gsHeader__menu{display:flex;justify-content:center;flex-wrap:wrap;gap:.15rem;list-style:none;margin:0;padding:0}
.gsHeader__item{position:relative}
.gsHeader__link{
  display:inline-flex;align-items:center;gap:.35rem;
  padding:.55rem .95rem;border:0;border-radius:999px;background:none;cursor:pointer;
  font-family:var(--font-sans);font-size:var(--nav-link-size,.95rem);font-weight:600;
  color:var(--clr-navbar-link);text-decoration:none;transition:background .2s,color .2s;
}
.gsHeader__link:hover,.gsHeader__link:focus-visible,
.gsHeader__item--parent:focus-within>.gsHeader__link{background:var(--gs-tint);color:var(--clr-navbar-link-hover)}
.gsHeader__caret{font-size:.6rem;opacity:.6}
.gsHeader__sub{
  position:absolute;top:calc(100% + 6px);left:50%;min-width:230px;
  margin:0;padding:.5rem;list-style:none;
  background:#fff;border:1px solid var(--gs-line);border-radius:var(--gs-radius);box-shadow:var(--gs-shadow-lift);
  opacity:0;visibility:hidden;transform:translate(-50%,6px);
  transition:opacity .18s,transform .18s,visibility 0s .18s;
}
.gsHeader__sub::before{content:'';position:absolute;left:0;right:0;bottom:100%;height:8px}  /* hover bridge */
.gsHeader__item--parent:hover>.gsHeader__sub,
.gsHeader__item--parent:focus-within>.gsHeader__sub{opacity:1;visibility:visible;transform:translate(-50%,0);transition-delay:0s}
.gsHeader__sub-link{display:block;padding:.55rem .9rem;border-radius:12px;font-size:.93rem;font-weight:500;color:var(--gs-ink);text-decoration:none;white-space:nowrap}
.gsHeader__sub-link:hover,.gsHeader__sub-link:focus-visible{background:var(--gs-tint);color:var(--clr-primary)}

.gsHeader__actions{display:flex;align-items:center;gap:.3rem;flex-shrink:0;margin-left:auto}
.gsHeader__icon{
  position:relative;display:inline-flex;align-items:center;justify-content:center;
  width:44px;height:44px;padding:0;border:0;border-radius:50%;background:none;cursor:pointer;
  color:var(--clr-navbar-link);font-size:1.05rem;text-decoration:none;transition:background .2s,color .2s;
}
.gsHeader__icon:hover,.gsHeader__icon:focus-visible{background:var(--gs-tint);color:var(--clr-primary)}
.gsHeader__icon--count{background:var(--gs-tint-soft)}
.gsHeader__count{
  position:absolute;top:1px;right:-1px;
  min-width:20px;height:20px;padding:0 5px;
  display:inline-flex;align-items:center;justify-content:center;
  background:var(--clr-primary);color:var(--clr-on-primary,#fff);border:2px solid var(--clr-navbar-bg);
  font-family:var(--font-sans);font-size:.66rem;font-weight:700;line-height:1;border-radius:999px;
}
.gsHeader__count--inline{position:static;border:0;margin-left:.5rem}
.gsHeader__burger{
  display:none;flex-direction:column;justify-content:center;gap:5px;
  width:44px;height:44px;padding:0;border:0;border-radius:50%;background:var(--gs-tint);cursor:pointer;
}
.gsHeader__burger span{display:block;width:20px;height:2px;border-radius:2px;background:var(--gs-ink);margin:0 auto}

/* Search overlay (core markup, see header.php) as a rounded card. */
.gsSearch .siteNav__search-overlay-bg{background:rgba(20,30,40,.5)}
.gsSearch .siteNav__search-form{margin:0 auto;background:#fff;border-radius:var(--gs-radius-lg);padding:2.25rem;box-shadow:0 24px 48px -20px rgba(0,0,0,.45)}
.gsSearch .siteNav__search-label{font-family:var(--font-serif);font-size:1.5rem;font-weight:var(--font-heading-weight,700);color:var(--gs-ink);margin-bottom:1.1rem}
.gsSearch .siteNav__search-row{border:2px solid var(--gs-line);border-radius:999px;padding:.3rem .35rem .3rem 1.1rem}
.gsSearch .siteNav__search-row:focus-within{border-color:var(--clr-primary)}
.gsSearch .siteNav__search-row input{font-size:1.05rem;min-width:0}
.gsSearch .siteNav__search-go{border-radius:999px;background:var(--clr-primary);color:var(--clr-on-primary,#fff);font-weight:600;padding:.6rem 1.3rem}

/* Mobile drawer -- navbar.css paints .offcanvas in --clr-primary; go white. */
.gsDrawer.offcanvas{background:#fff!important;width:330px!important;border-radius:var(--gs-radius-lg) 0 0 var(--gs-radius-lg)}
.gsDrawer__head{padding:1.25rem 1.5rem;border-bottom:1px solid var(--gs-line)}
.gsDrawer__title{font-family:var(--font-serif);font-weight:var(--font-heading-weight,700);font-size:1.1rem;color:var(--gs-ink)}
.gsDrawer__body{padding:1.25rem 1.25rem 1.5rem;display:flex;flex-direction:column}
.gsDrawer__search{display:flex;align-items:center;border:2px solid var(--gs-line);border-radius:999px;padding:0 .4rem 0 1rem;margin-bottom:1rem}
.gsDrawer__search:focus-within{border-color:var(--clr-primary)}
.gsDrawer__search input{flex:1;min-width:0;border:0;background:none;padding:.65rem 0;font-size:.95rem;color:var(--gs-ink);outline:none}
.gsDrawer__search button{border:0;background:none;color:var(--clr-primary);padding:0 .5rem}
.gsDrawer__list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.2rem}
.gsDrawer__link{
  display:flex;align-items:center;justify-content:space-between;width:100%;
  padding:.8rem 1rem;border:0;border-radius:14px;background:none;cursor:pointer;text-align:left;
  font-family:var(--font-sans);font-size:1.05rem;font-weight:600;color:var(--gs-ink);text-decoration:none;
}
.gsDrawer__link:hover,.gsDrawer__link:focus-visible{background:var(--gs-tint);color:var(--clr-primary)}
.gsDrawer__link .mobileNav__toggle-ico{font-size:.65rem;color:var(--gs-muted)}
.gsDrawer__sub{padding:.1rem 0 .4rem 1rem}
.gsDrawer__sub-link{display:block;padding:.5rem 1rem;border-radius:12px;font-size:.95rem;color:var(--gs-text);text-decoration:none}
.gsDrawer__sub-link:hover{background:var(--gs-tint-soft);color:var(--clr-primary)}
.gsDrawer__contact{margin-top:auto;padding:1.25rem;border-radius:var(--gs-radius);background:var(--gs-tint-soft);display:flex;flex-direction:column;gap:.65rem;font-size:.86rem;color:var(--gs-text)}
.gsDrawer__contact a,.gsDrawer__contact span{display:flex;align-items:flex-start;gap:.6rem;color:inherit;text-decoration:none}
.gsDrawer__contact i{color:var(--clr-primary);margin-top:.2em}
.gsDrawer__contact a:hover{color:var(--clr-primary)}

/* ── 4. Hero ───────────────────────────────────────────────────── */
.gsHero{background:var(--gs-tint);padding:clamp(3rem,7vw,5.5rem) 0 clamp(3.75rem,8vw,6.25rem);overflow-x:clip}
.gsHero__grid{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:clamp(2rem,6vw,5.5rem);align-items:center}
.gsHero__title{font-size:clamp(2.4rem,5.2vw,4.25rem);line-height:1.05;letter-spacing:-.02em;margin:0 0 1.25rem}
.gsHero__sub{font-size:clamp(1.05rem,1.5vw,1.25rem);line-height:1.65;color:var(--gs-text);margin:0 0 2rem;max-width:34rem}
.gsHero__links{display:flex;flex-wrap:wrap;align-items:center;gap:.85rem}

/* The arched shop window, with an offset "second pane" in the secondary colour. */
.gsHero__window{
  position:relative;margin:0;justify-self:center;width:min(100%,460px);aspect-ratio:4/5;
  border:10px solid #fff;border-radius:999px 999px var(--gs-radius-lg) var(--gs-radius-lg);
  background:#fff;overflow:hidden;
  box-shadow:22px 22px 0 0 var(--gs-offset),var(--gs-shadow-lift);
}
.gsHero__slides{position:absolute;inset:0}
.gsHero__slides img{width:100%;height:100%;object-fit:cover}

/* No photo yet: the logo as the shop sign, on a round plate with a stitched ring. */
.gsHero__sign{
  justify-self:center;display:flex;align-items:center;justify-content:center;
  width:min(100%,400px);aspect-ratio:1;padding:9%;border-radius:50%;background:#fff;
  outline:2px dashed color-mix(in srgb,var(--clr-primary) 38%,transparent);outline-offset:12px;
  box-shadow:22px 22px 0 0 var(--gs-offset),var(--gs-shadow);
}
.gsHero__sign img{width:100%;height:100%;object-fit:contain}

.gsHero--centred .gsHero__grid{grid-template-columns:1fr}
.gsHero--centred .gsHero__content{max-width:48rem;margin:0 auto;text-align:center}
.gsHero--centred .gsHero__sub{margin-left:auto;margin-right:auto}
.gsHero--centred .gsHero__links{justify-content:center}

/* ── 5. Inner page header ──────────────────────────────────────── */
.gsPageHead{background:var(--gs-tint);padding:clamp(2.25rem,5vw,3.5rem) 0 clamp(2.25rem,5vw,3.25rem);text-align:center}
.gsPageHead__crumbs{justify-content:center;margin:0 0 .85rem;padding:0;font-size:.8rem;font-weight:600}
.gsPageHead__crumbs .breadcrumb-item,.gsPageHead__crumbs .breadcrumb-item+.breadcrumb-item::before{color:var(--gs-muted)}
.gsPageHead__crumbs a{color:var(--clr-primary);text-decoration:none}
.gsPageHead__crumbs a:hover{text-decoration:underline;text-underline-offset:.2em}
.gsPageHead__crumbs .active{color:var(--gs-ink)}
.gsPageHead__title{font-size:clamp(2rem,4.2vw,3rem);margin:0 auto;max-width:46rem}
.gsPageHead__desc{margin:.9rem auto 0;max-width:38rem;font-size:1.1rem;line-height:1.6;color:var(--gs-text)}
.gsPageHead__links{display:flex;flex-wrap:wrap;justify-content:center;gap:.85rem;margin-top:1.5rem}

/* ── 6. CTA ────────────────────────────────────────────────────── */
.gsCta{padding:clamp(3rem,7vw,5rem) 0}
.gsCta__card{
  position:relative;max-width:58rem;margin:0 auto;text-align:center;
  padding:clamp(2.75rem,6vw,4.25rem) clamp(1.5rem,5vw,4rem);
  background:var(--clr-primary);color:var(--clr-on-primary,#fff);border-radius:var(--gs-radius-lg);
  outline:2px dashed color-mix(in srgb,var(--clr-on-primary,#fff) 45%,transparent);outline-offset:-14px;
  box-shadow:16px 16px 0 0 var(--gs-offset);
}
.gsCta__title{font-size:clamp(1.75rem,3.4vw,2.5rem);color:var(--clr-on-primary,#fff);margin:0 0 .85rem}
.gsCta__body{font-size:1.1rem;line-height:1.6;margin:0 auto 1.9rem;max-width:36rem;opacity:.92}
.gsCta__links{display:flex;flex-wrap:wrap;justify-content:center;gap:.85rem}

/* ── 7. Footer ─────────────────────────────────────────────────── */
.gsFooter{
  position:relative;margin-top:var(--gs-scallop-r);
  background:var(--clr-footer-bg);color:var(--clr-footer-link);padding:clamp(3.25rem,7vw,4.75rem) 0 1.75rem;
}
.gsFooter::before{
  content:'';position:absolute;left:0;right:0;bottom:100%;height:var(--gs-scallop-r);pointer-events:none;
  background:radial-gradient(circle at 50% 100%,var(--clr-footer-bg) calc(var(--gs-scallop-r) - .5px),transparent var(--gs-scallop-r))
             0 0/calc(var(--gs-scallop-r) * 2) var(--gs-scallop-r) repeat-x;
}
.gsFooter__grid{display:grid;grid-template-columns:minmax(0,1.5fr) repeat(3,minmax(0,1fr));gap:2.5rem}
.gsFooter__grid--no-shop{grid-template-columns:minmax(0,1.6fr) repeat(2,minmax(0,1fr))}
.gsFooter__logo{display:inline-flex;align-items:center;justify-content:center;padding:.45rem;border-radius:999px;background:#fff;text-decoration:none}
.gsFooter__logo img{height:96px;width:auto;max-width:240px;object-fit:contain}
.gsFooter__logo:has(.gsFooter__name){padding:.6rem 1.25rem}
.gsFooter__name{font-family:var(--font-serif);font-weight:var(--font-heading-weight,700);font-size:1.2rem;color:var(--gs-ink)}
.gsFooter__tagline{max-width:22rem;margin:1.1rem 0 0;font-size:.95rem;line-height:1.65;color:var(--clr-footer-link)}
.gsFooter__social{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:1.25rem}
.gsFooter__social a{
  display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:50%;
  background:rgba(255,255,255,.1);color:#fff;text-decoration:none;transition:background .2s,transform .2s;
}
.gsFooter__social a:hover,.gsFooter__social a:focus-visible{background:var(--clr-primary);transform:translateY(-2px)}
.gsFooter__head{margin:0 0 1rem;font-family:var(--font-serif);font-size:1rem;font-weight:var(--font-heading-weight,700);color:#fff}
.gsFooter__head--hours{margin-top:1.75rem}
.gsFooter__list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.6rem;font-size:.93rem}
.gsFooter__list a{color:var(--clr-footer-link);text-decoration:none;transition:color .2s}
.gsFooter__list a:hover,.gsFooter__list a:focus-visible{color:var(--clr-footer-link-hover);text-decoration:underline;text-underline-offset:.2em}
.gsFooter__list--contact li{display:flex;gap:.7rem;align-items:flex-start;line-height:1.55}
.gsFooter__list--contact i{width:1rem;margin-top:.25em;color:rgba(255,255,255,.55)}
.gsFooter__hours{margin:0;font-size:.88rem;display:grid;gap:.3rem;max-width:15rem}
.gsFooter__hoursRow{display:flex;justify-content:space-between;gap:1rem}
.gsFooter__hoursRow dt{font-weight:600;color:#fff}
.gsFooter__hoursRow dd{margin:0;color:var(--clr-footer-link)}
.gsFooter__bottom{
  margin-top:3rem;padding-top:1.4rem;border-top:1px solid rgba(255,255,255,.14);
  display:flex;flex-wrap:wrap;align-items:center;gap:.75rem 1.75rem;font-size:.8rem;color:rgba(255,255,255,.6);
}
.gsFooter__meta{display:flex;flex-wrap:wrap;gap:.25rem 1rem}
.gsFooter__bottom .footerLegalIds{color:rgba(255,255,255,.6)}
.gsFooter__legal{display:flex;flex-wrap:wrap;gap:.5rem 1.25rem}
.gsFooter__legal a,.gsFooter__credit a{color:rgba(255,255,255,.75);text-decoration:none}
.gsFooter__legal a:hover,.gsFooter__credit a:hover{color:#fff;text-decoration:underline}
.gsFooter__credit{margin-left:auto}

/* ── 8. Shop (ecommerce plugin, through its stable shop-* hooks) ──
   Rendered only when the plugin is on; harmless otherwise. A product is a
   white card with its photo on a tinted plinth, lifting on hover. */
.shop__intro{font-size:1.1rem;color:var(--gs-text)!important;max-width:44rem;margin:0 auto 2.25rem;text-align:center}

.shop-sidebar__list.list-group{border:0;border-radius:var(--gs-radius);gap:.25rem;background:none}
.shop-sidebar__link.list-group-item{
  border:0;border-radius:12px!important;background:none;padding:.65rem 1rem;
  font-weight:600;color:var(--gs-text);transition:background .2s,color .2s;
}
.shop-sidebar__link.list-group-item:hover{background:var(--gs-tint-soft);color:var(--clr-primary)}
.shop-sidebar__link.list-group-item.active{background:var(--gs-tint);color:var(--clr-primary)}
.shop-sidebar__link--sale.list-group-item{color:var(--clr-accent)}

.shop-toolbar .form-control,.shop-toolbar .form-select,.shop-filters .form-control,.shop-filters .form-select{border-radius:999px;border-color:var(--gs-line)}
.shop-toolbar .form-control:focus,.shop-toolbar .form-select:focus{border-color:var(--clr-primary);box-shadow:0 0 0 .2rem var(--gs-tint)}

.shop-grid.row{--bs-gutter-x:1.5rem;--bs-gutter-y:1.75rem}
.shop-card.card{
  overflow:hidden;background:#fff;border:1px solid var(--gs-line);border-radius:var(--gs-radius);
  box-shadow:none!important;color:var(--gs-ink)!important;transition:transform .3s ease,box-shadow .3s ease,border-color .3s;
}
.shop-card.card:hover,.shop-card.card:focus-visible{transform:translateY(-5px);box-shadow:var(--gs-shadow-lift)!important;border-color:transparent}
.shop-card__frame{margin:.6rem .6rem 0;border-radius:calc(var(--gs-radius) - 6px);background:var(--gs-tint-soft)!important}
.shop-card__image{transition:transform .45s ease}
.shop-card:hover .shop-card__image{transform:scale(1.04)}
.shop-card__body.card-body{padding:1rem 1.15rem 1.2rem}
.shop-card__title{font-family:var(--font-sans);font-size:1rem;font-weight:600;line-height:1.35;margin-bottom:.4rem;color:var(--gs-ink)}
.shop-card__subtitle{color:var(--gs-muted)!important}
.shop-card__price{display:flex;align-items:baseline;gap:.5rem;font-size:1.05rem}
.shop-card__now{color:var(--clr-primary);font-weight:700!important}
.shop-card__now.text-danger{color:var(--clr-accent)!important}
/* The Sale badge becomes a little swing tag. */
.shop-card__badge--sale.badge{
  margin:.9rem!important;padding:.4rem .75rem .4rem 1.15rem;border-radius:0 6px 6px 0;
  background:var(--clr-accent)!important;color:#fff!important;font-size:.7rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;
  clip-path:polygon(9px 0,100% 0,100% 100%,9px 100%,0 50%);transform:rotate(-4deg);
}
.shop-card__stock.badge{background:var(--gs-tint)!important;color:var(--gs-ink)!important;border-radius:999px;font-weight:600;padding:.4em .8em}
.shop-empty{font-size:1.1rem;color:var(--gs-muted)}

.shop-showcase{padding:clamp(3.25rem,7vw,5rem) 0!important}
.shop-showcase__title{font-size:clamp(1.75rem,3vw,2.3rem)}
.shop-showcase__all{
  display:inline-flex;align-items:center;gap:.4rem;padding:.5rem 1rem;border-radius:999px;
  background:var(--gs-tint);color:var(--clr-primary);font-weight:600;font-size:.9rem;text-decoration:none;transition:background .2s;
}
.shop-showcase__all:hover{background:color-mix(in srgb,var(--clr-primary) 16%,#fff)}
.shop-showcase__all i{font-size:.75rem;transition:transform .2s}
.shop-showcase__all:hover i{transform:translateX(3px)}

/* Product page */
.shop-product__image{border-radius:var(--gs-radius-lg)!important;background:var(--gs-tint-soft);box-shadow:var(--gs-shadow)!important}
.shop-product__thumb{border-radius:12px!important;border:2px solid transparent;background:var(--gs-tint-soft);transition:border-color .2s,transform .2s}
.shop-product__thumb:hover,.shop-product__thumb:focus-visible{border-color:var(--clr-primary);transform:translateY(-2px)}
.shop-product__placeholder{border-radius:var(--gs-radius-lg)!important;background:var(--gs-tint-soft)!important}
.shop-product__subtitle{font-size:1.15rem;color:var(--gs-muted)}
.shop-product__price{font-family:var(--font-serif);font-weight:700;color:var(--clr-primary)}
.shop-product__was{font-family:var(--font-sans);font-weight:400;color:var(--gs-muted)}
.shop-product__sale-badge{border-radius:999px!important;background:var(--clr-accent)!important}
.shop-product__stock{color:var(--clr-accent);font-weight:600}
.shop-product__description{font-size:1rem;line-height:1.75;color:var(--gs-text)}
.shop-product__variant .form-label,.shop-product__qty .form-label,
.shop-checkout__form .form-label{font-size:.85rem;font-weight:600;color:var(--gs-ink)}
.shop-product__add.btn{width:100%;max-width:24rem}
.shop-product__specs{border-radius:var(--gs-radius);background:var(--gs-tint-soft);padding:.5rem 1.25rem;margin-left:0;margin-right:0}
.shop-product__spec-label,.shop-product__spec-value{padding:.7rem 0;margin:0;border-bottom:1px solid var(--gs-line)}
.shop-product__spec-label{font-weight:600;color:var(--gs-ink)}
.shop-product__spec-value{color:var(--gs-text)}

/* Buttons and fields across product / cart / checkout / tracking / orders */
.shop-product__add.btn,.shop-cart__checkout.btn,.shop-checkout__submit.btn,.shop-track__submit.btn,
.shop-result__cta.btn,.shop-orders__view.btn{
  border-radius:999px;background:var(--clr-primary);border:2px solid var(--clr-primary);color:var(--clr-on-primary,#fff);
  font-weight:600;padding:.85rem 1.75rem;transition:background .2s,border-color .2s,transform .2s;
}
.shop-product__add.btn:hover,.shop-cart__checkout.btn:hover,.shop-checkout__submit.btn:hover,
.shop-track__submit.btn:hover,.shop-result__cta.btn:hover,.shop-orders__view.btn:hover{background:var(--gs-primary-dk);border-color:var(--gs-primary-dk);transform:translateY(-1px)}
.shop-product__add--soldout.btn{background:var(--gs-tint);border-color:var(--gs-tint);color:var(--gs-muted)}
.shop-cart__continue.btn,.shop-cart__remove.btn{border-radius:999px}
.shop-checkout__summary.card,.shop-order__card.card{border-radius:var(--gs-radius);border:1px solid var(--gs-line);box-shadow:none;overflow:hidden}
.shop-cart__table{border-radius:var(--gs-radius);overflow:hidden}
.shop-checkout__summary-header.card-header{background:var(--gs-tint);border-bottom:1px solid var(--gs-line);font-weight:700;color:var(--gs-ink)}
.shop-product__form .form-control,.shop-product__form .form-select,.shop-checkout__form .form-control,.shop-checkout__form .form-select,
.shop-track__form .form-control,.shop-cart .form-control{border-radius:12px;border-color:var(--gs-line)}
.shop-product__form .form-control:focus,.shop-product__form .form-select:focus,.shop-checkout__form .form-control:focus,.shop-checkout__form .form-select:focus,
.shop-track__form .form-control:focus,.shop-cart .form-control:focus{border-color:var(--clr-primary);box-shadow:0 0 0 .2rem var(--gs-tint)}
.shop-cart__product{font-weight:600;color:var(--gs-ink)}
.shop-result__icon{color:var(--clr-primary)!important}
.shop-rating{color:var(--clr-accent)}

/* ── 9. Core components, set in the house style ────────────────── */
.btn-forest,.btn-amber,.btn-accent,.btn-mystic,.btn-forest-outline,.btn-ghost-light,.btn-primary{border-radius:999px;font-weight:600;padding:.75rem 1.5rem}
.btn-primary{background:var(--clr-primary);border-color:var(--clr-primary);color:var(--clr-on-primary,#fff)}
.btn-primary:hover,.btn-primary:focus{background:var(--gs-primary-dk);border-color:var(--gs-primary-dk)}

/* CMS page-builder blocks (cms.css): a short rounded accent under each
   heading, prose held to a readable measure, alternate sections on a soft
   tint, Cards as rounded white cards. */
.cmsBlock{padding-top:clamp(2.75rem,5vw,4.25rem);padding-bottom:clamp(2rem,4vw,3rem)}
.cmsBlock__heading{font-size:clamp(1.75rem,3vw,2.35rem);color:var(--gs-ink);margin-bottom:1.5rem;display:block}
.cmsBlock__heading::before{display:none}
.cmsBlock__heading::after{content:'';display:block;width:3rem;height:5px;margin-top:.7rem;border-radius:5px;background:var(--clr-primary)}
.text-center .cmsBlock__heading::after,.cmsBlock__heading.text-center::after{margin-left:auto;margin-right:auto}
.cmsBlock__body{max-width:46rem;font-size:1.04rem;line-height:1.8;color:var(--gs-text)}
.cmsBlock__body strong{color:var(--gs-ink)}
.cmsBlock__body h2,.cmsBlock__body h3,.cmsBlock__body h4{margin-top:2rem}
.cmsBlock__body blockquote{margin:2rem 0;padding:1.25rem 1.5rem;border-radius:var(--gs-radius);background:var(--gs-tint-soft);border-left:5px solid var(--clr-primary);font-size:1.15rem;color:var(--gs-ink)}
.cmsBlock__body ul > li::before{background:var(--clr-primary)}
.cmsBlock__body a{color:var(--clr-primary);text-decoration-thickness:1.5px;text-underline-offset:.2em}
.cmsBlock__rule{border-color:var(--gs-line)}
.cms-content-section:nth-child(even){background:var(--gs-tint-soft)}
.cms-content-section .text-center .cmsBlock__body,
.cms-content-section.text-center .cmsBlock__body{margin-left:auto;margin-right:auto;text-align:center}
.cms-content-section iframe,.cms-content-section .ratio{border-radius:var(--gs-radius);overflow:hidden}
.cms-content-section img{border-radius:var(--gs-radius)}
.cmsCards__card{border-radius:var(--gs-radius);border:1px solid var(--gs-line);box-shadow:none;background:#fff;transition:transform .3s,box-shadow .3s}
.cmsCards__card:hover,.cmsCards__card:focus-within{transform:translateY(-4px);box-shadow:var(--gs-shadow-lift)}
.cmsCards__title{font-family:var(--font-serif);font-weight:var(--font-heading-weight,700)}
.cmsCards__icon{color:var(--clr-primary)}
.cmsCards__btn.btn{border-radius:999px}

/* Testimonials: the core band is --clr-primary with on-primary text, and
   often follows the hero directly -- on the paper ground instead (so the
   hero's scallops show), with the text colours put back to match. */
.reviews{background:var(--gs-paper);color:var(--gs-text);padding:clamp(3.5rem,7vw,5rem) 0}
.reviews__head h2{color:var(--gs-ink)}
.reviews__head .section-eyebrow{color:var(--clr-primary)}
.reviewCard{background:#fff;border:1px solid var(--gs-line);border-radius:var(--gs-radius);box-shadow:none;color:var(--gs-text)}
.reviewCard__text{color:var(--gs-text)}
.reviewCard__name{color:var(--gs-ink)}
.reviewCard__loc{color:var(--gs-muted)}
.reviewCard__stars{color:var(--clr-accent)}
.reviews__ctrl{border-radius:50%;background:#fff;border:1px solid var(--gs-line);color:var(--gs-ink)}
.reviews__ctrl:hover{background:var(--gs-tint)}
.reviews__dots button{background:var(--gs-line)}
.reviews__dots button[aria-current="true"]{background:var(--clr-primary)}

/* Services grid, if a site uses it. */
.svcCard{border-radius:var(--gs-radius);border:1px solid var(--gs-line);box-shadow:none}
.svcCard:hover{box-shadow:var(--gs-shadow-lift)}

/* Contact page: keep the core's primary info card, rounded to match. */
.contact-info-card,.contact-form-card{border-radius:var(--gs-radius-lg)}
.contact-form-card{border:1px solid var(--gs-line);box-shadow:none}
.contact-form-card .form-control{border-radius:12px;border-color:var(--gs-line)}
.contact-form-card .form-control:focus{border-color:var(--clr-primary);box-shadow:0 0 0 .2rem var(--gs-tint)}
.contact-submit-btn.btn{border-radius:999px;background:var(--clr-primary);border-color:var(--clr-primary);font-weight:600}
.contact-submit-btn.btn:hover{background:var(--gs-primary-dk);border-color:var(--gs-primary-dk)}

/* Newsletter block above the footer: a soft tinted band, not the core's
   dark gradient, so the footer's scallops have something to rise into. */
.footerCta{background:var(--gs-tint)}
.footerCta::before,.footerCta::after{display:none}
.footerCta__eyebrow{background:#fff;border-color:transparent;color:var(--clr-primary)}
.footerCta__title{font-family:var(--font-serif);color:var(--gs-ink)}
.footerCta__sub,.footerCta__note{color:var(--gs-text)}
.footerCta__point{background:#fff;border-color:transparent;color:var(--gs-ink)}
.footerCta__form-wrap{background:#fff;border:1px solid var(--gs-line);box-shadow:var(--gs-shadow);backdrop-filter:none}
.footerCta__form input{background:var(--gs-paper);border:1px solid var(--gs-line);border-radius:999px;color:var(--gs-ink)}
.footerCta__form input::placeholder{color:var(--gs-muted)}
.footerCta__form input:focus{border-color:var(--clr-primary);box-shadow:0 0 0 .2rem var(--gs-tint)}
.footerCta__form button{border-radius:999px;background:var(--clr-primary);color:var(--clr-on-primary,#fff)}
.footerCta__form button:hover{background:var(--gs-primary-dk)}
.footerCta__feedback--ok{color:var(--clr-primary)}

/* Coming-soon holding page sits on --clr-primary: keep its type light. */
.comingSoon__name,.comingSoon__title{color:var(--clr-on-primary,#fff)}

/* ── 10. Responsive ────────────────────────────────────────────── */
@media (max-width:1199px){
  .gsHeader__link{padding:.5rem .7rem}
}
@media (max-width:991px){
  .gsHeader__nav,.gsHeader__icon--admin{display:none}
  .gsHeader__burger{display:flex}
  .gsHeader__wrap{min-height:4.5rem}
  .gsHeader__logo{height:min(var(--nav-logo-height,64px),52px)}
  .gsStrip__item--address,.gsStrip__item--email{display:none}
  .gsStrip__end{margin:0 auto}
  .gsHero__grid{grid-template-columns:1fr}
  .gsHero__content{text-align:center}
  .gsHero__sub{margin-left:auto;margin-right:auto}
  .gsHero__links{justify-content:center}
  .gsHero__window{width:min(100%,360px);order:-1}
  .gsHero__sign{width:min(78%,280px);order:-1}
  .gsFooter__grid,.gsFooter__grid--no-shop{grid-template-columns:repeat(2,minmax(0,1fr))}
  .gsFooter__brand{grid-column:1/-1}
}
@media (max-width:575px){
  :root{--gs-scallop-r:9px}
  .gsHeader__name{font-size:1rem}
  .gsHeader__brand .gsHeader__logo + .gsHeader__name{display:none}
  .gsSearch .siteNav__search-form{padding:1.5rem}
  .gsSearch.siteNav__search-overlay{padding-top:96px}
  .gsHero__title{font-size:2.3rem}
  .gsHero__window{box-shadow:12px 12px 0 0 var(--gs-offset),var(--gs-shadow)}
  .gsHero__sign{box-shadow:12px 12px 0 0 var(--gs-offset),var(--gs-shadow)}
  .gsCta__card{box-shadow:8px 8px 0 0 var(--gs-offset);outline-offset:-10px}
  .gsFooter__grid,.gsFooter__grid--no-shop{grid-template-columns:1fr}
  .gsFooter__credit{margin-left:0}
  .shop-grid.row{--bs-gutter-x:.85rem;--bs-gutter-y:1rem}
  .shop-card__body.card-body{padding:.8rem .85rem 1rem}
  .shop-card__title{font-size:.92rem}
}
@media (prefers-reduced-motion:reduce){
  .gsBtn,.gsHeader,.shop-card.card,.shop-card__image,.cmsCards__card,.gsFooter__social a{transition:none}
  .gsBtn:hover,.shop-card.card:hover,.shop-card:hover .shop-card__image,.cmsCards__card:hover{transform:none}
}
