/* ============================================================
   Peaceful Petals — stylesheet
   Dark editorial memorial-florist system. Calm motion only.
   ============================================================ */

*, *::before, *::after { box-sizing: border-box; }

html { scroll-behavior: smooth; }

body {
  margin: 0;
  font-family: var(--font-body);
  font-size: var(--fs-body);
  line-height: 1.7;
  color: var(--color-text);
  background: var(--color-bg);
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
}

/* Layered radial depth + grain on dark base */
body::before {
  content: "";
  position: fixed;
  inset: 0;
  pointer-events: none;
  z-index: 0;
  background:
    radial-gradient(1200px 700px at 85% -10%, rgba(217, 175, 63, 0.07), transparent 60%),
    radial-gradient(900px 600px at -10% 40%, rgba(110, 89, 103, 0.10), transparent 55%);
}
body::after {
  content: "";
  position: fixed;
  inset: 0;
  pointer-events: none;
  z-index: 0;
  opacity: 0.05;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2'/%3E%3C/filter%3E%3Crect width='120' height='120' filter='url(%23n)' opacity='0.6'/%3E%3C/svg%3E");
}

main, header, footer { position: relative; z-index: 1; }

h1, h2, h3, h4 {
  font-family: var(--font-display);
  font-weight: 500;
  line-height: 1.15;
  letter-spacing: -0.015em;
  margin: 0 0 var(--space-2);
}
h1 { font-size: var(--fs-h1); }
h2 { font-size: var(--fs-h2); }
h3 { font-size: var(--fs-h3); }
h4 { font-size: var(--fs-h4); font-family: var(--font-body); font-weight: 600; letter-spacing: 0; }
p { margin: 0 0 var(--space-2); }
a { color: var(--color-accent); text-decoration-thickness: 1px; text-underline-offset: 3px; }
img { max-width: 100%; display: block; }
strong { font-weight: 600; }

::selection { background: rgba(217, 175, 63, 0.35); color: var(--white); }

:focus-visible {
  outline: 2px solid var(--color-accent-soft);
  outline-offset: 3px;
  border-radius: 2px;
}

.skip-link {
  position: absolute;
  left: var(--space-2);
  top: -100px;
  z-index: 200;
  background: var(--color-accent);
  color: var(--ink);
  padding: var(--space-1) var(--space-2);
  border-radius: var(--radius-sm);
  font-weight: 600;
  transition: top var(--dur-fast) var(--ease-out);
}
.skip-link:focus { top: var(--space-2); }

.container {
  width: 100%;
  max-width: var(--maxw);
  margin-inline: auto;
  padding-inline: var(--gutter);
}
.container--text { max-width: var(--maxw-text); }

/* ---------- Eyebrow / section heads ---------- */
.eyebrow {
  display: inline-flex;
  align-items: center;
  gap: var(--space-1);
  font-size: var(--fs-tiny);
  font-weight: 600;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--color-accent);
  margin-bottom: var(--space-2);
}
.eyebrow::before {
  content: "";
  width: 28px;
  height: 1px;
  background: var(--color-accent);
  opacity: 0.7;
}
.section-head { max-width: 640px; margin-bottom: var(--space-5); }
.section-head p { color: var(--color-muted); font-size: 1.1rem; }
.on-light .section-head p, .on-light p.lead { color: var(--color-muted-dark); }

/* ---------- Header ---------- */
.site-header {
  position: sticky;
  top: 0;
  z-index: 100;
  background: rgba(23, 21, 27, 0.82);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  border-bottom: 1px solid var(--color-border);
}
.site-header__inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-2);
  height: var(--header-h);
  min-width: 0;
}
.brand {
  display: flex;
  align-items: center;
  gap: 12px;
  text-decoration: none;
  color: var(--color-text);
  min-width: 0;
}
.brand > span { min-width: 0; }
.brand__mark { width: 40px; height: 40px; flex: none; }
.brand__name {
  font-family: var(--font-script);
  font-size: 1.75rem;
  line-height: 1;
  color: var(--color-accent);
  white-space: nowrap;
}
.brand__tag {
  display: block;
  font-family: var(--font-body);
  font-size: 0.6rem;
  letter-spacing: 0.28em;
  text-transform: uppercase;
  color: var(--color-muted);
  margin-top: 2px;
}
.main-nav {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 2px;
  min-width: 0;
  flex: 1 1 auto;
}
.main-nav a {
  color: var(--color-text);
  text-decoration: none;
  font-size: var(--fs-small);
  font-weight: 500;
  padding: 8px 9px;
  border-radius: var(--radius-full);
  white-space: nowrap;
  transition: color var(--dur-fast), background var(--dur-fast);
}
.main-nav a:hover { color: var(--color-accent-soft); background: rgba(217, 175, 63, 0.08); }
.main-nav a[aria-current="page"] { color: var(--color-accent); }
.header-cta { display: flex; align-items: center; gap: var(--space-1); flex: none; }

.nav-toggle {
  display: none;
  background: none;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-sm);
  color: var(--color-text);
  width: 44px;
  height: 44px;
  cursor: pointer;
  align-items: center;
  justify-content: center;
}
.nav-toggle svg { width: 22px; height: 22px; }

/* ---------- Buttons ---------- */
.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  min-height: 48px;
  padding: 12px 26px;
  border-radius: var(--radius-button);
  font-family: var(--font-body);
  font-size: var(--fs-small);
  font-weight: 600;
  letter-spacing: 0.02em;
  text-decoration: none;
  cursor: pointer;
  border: 1px solid transparent;
  transition: transform var(--dur-fast) var(--ease-out), box-shadow var(--dur-fast), background var(--dur-fast), color var(--dur-fast), border-color var(--dur-fast);
  will-change: transform;
}
.btn:active { transform: translateY(1px) scale(0.99); }
.btn--primary {
  background: var(--gold);
  color: var(--ink);
  box-shadow: var(--shadow-gold);
}
.btn--primary:hover { transform: translateY(-2px); box-shadow: 0 4px 14px rgba(217,175,63,0.28), 0 18px 44px rgba(217,175,63,0.16); }
.btn--ghost {
  background: transparent;
  color: var(--color-text);
  border-color: var(--color-border);
}
.btn--ghost:hover { border-color: var(--color-accent); color: var(--color-accent-soft); }
.btn--dark {
  background: var(--ink);
  color: var(--cream);
  border-color: var(--ink);
}
.btn--dark:hover { background: var(--charcoal-2); transform: translateY(-2px); box-shadow: var(--shadow-md); }
.btn--sm { min-height: 40px; padding: 8px 18px; font-size: var(--fs-tiny); }
.btn svg { width: 17px; height: 17px; flex: none; }

/* ---------- Hero ---------- */
.hero {
  position: relative;
  min-height: clamp(600px, calc(100svh - var(--header-h)), 760px);
  display: flex;
  align-items: center;
  isolation: isolate;
  overflow: hidden;
  background: var(--ink);
}
.hero__media {
  position: absolute;
  inset: 0;
  z-index: 1;
  opacity: 0.96;
}
.hero__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.hero__media::after {
  content: "";
  position: absolute;
  inset: 0;
  background:
    linear-gradient(90deg, rgba(23,21,27,0.98) 0%, rgba(23,21,27,0.86) 28%, rgba(23,21,27,0.42) 58%, rgba(23,21,27,0.18) 100%),
    linear-gradient(0deg, rgba(23,21,27,0.78) 0%, transparent 34%);
}
.hero__content {
  width: 100%;
  padding: clamp(5rem, 12vh, 8rem) var(--gutter) clamp(4rem, 9vh, 6rem);
  max-width: var(--maxw);
  margin-inline: auto;
  position: relative;
  z-index: 2;
}
.hero__content h1 { max-width: 13ch; color: var(--white); font-size: clamp(3.35rem, 7vw, 6.5rem); }
.hero__content .lead {
  max-width: 46ch;
  font-size: 1.15rem;
  color: rgba(243, 238, 230, 0.88);
  margin-bottom: var(--space-4);
}
.hero__actions { display: flex; flex-wrap: wrap; gap: var(--space-2); }
.hero__proof {
  margin-top: var(--space-4);
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-2) var(--space-4);
  font-size: var(--fs-small);
  color: var(--color-muted);
}
.hero__proof span { display: inline-flex; align-items: center; gap: 8px; }
.hero__proof svg { width: 15px; height: 15px; color: var(--color-accent); flex: none; }
.hero__image-note {
  position: absolute;
  right: var(--gutter);
  bottom: var(--space-2);
  max-width: 28ch;
  color: rgba(243, 238, 230, 0.58);
  font-size: var(--fs-tiny);
  text-align: right;
  z-index: 3;
}

/* Page hero (interior pages) */
.page-hero {
  padding: clamp(4.5rem, 9vw, 7rem) 0 clamp(3.5rem, 6vw, 5rem);
  border-bottom: 1px solid var(--color-border);
  background:
    radial-gradient(700px 320px at 12% 0%, rgba(217, 175, 63, 0.06), transparent 60%);
}
.page-hero h1 { max-width: 16ch; }
.page-hero .lead { max-width: 52ch; color: var(--color-muted); font-size: 1.12rem; }

/* ---------- Sections ---------- */
.section { padding: var(--space-7) 0; }
.section--tight { padding: var(--space-5) 0; }
.section--light {
  background: var(--color-light);
  color: var(--color-text-dark);
}
.section--light h1, .section--light h2, .section--light h3 { color: var(--ink); }
.section--light a { color: #8a6b1c; }
.section--stone { background: var(--color-light-2); color: var(--color-text-dark); }
.section--stone h2, .section--stone h3 { color: var(--ink); }

/* ---------- Cards ---------- */
.service-rail {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  border-top: 1px solid var(--color-border);
  border-bottom: 1px solid var(--color-border);
}
.service-item {
  padding: var(--space-4) var(--space-3);
  min-width: 0;
}
.service-item + .service-item { border-left: 1px solid var(--color-border); }
.service-item__index {
  display: block;
  margin-bottom: var(--space-3);
  font-family: var(--font-display);
  font-size: 2rem;
  line-height: 1;
  color: var(--color-accent);
}
.service-item h3 { margin-bottom: var(--space-1); font-size: 1.45rem; }
.service-item p { color: var(--color-muted); font-size: 0.98rem; margin-bottom: var(--space-2); }
.service-item a { font-size: var(--fs-small); font-weight: 600; }
.card-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: var(--space-3);
}
.card {
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-sm);
  padding: var(--space-4);
  transition: transform var(--dur-med) var(--ease-out), box-shadow var(--dur-med), border-color var(--dur-med);
}
.card:hover { transform: translateY(-4px); box-shadow: var(--shadow-lg); border-color: rgba(217,175,63,0.4); }
.card__icon {
  width: 46px;
  height: 46px;
  border-radius: var(--radius-md);
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(217, 175, 63, 0.12);
  color: var(--color-accent);
  margin-bottom: var(--space-3);
}
.card__icon svg { width: 22px; height: 22px; }
.card h3 { margin-bottom: var(--space-1); }
.card p { color: var(--color-muted); font-size: 0.95rem; margin: 0; }
.section--light .card, .section--stone .card {
  background: var(--white);
  border-color: var(--color-border-light);
  box-shadow: var(--shadow-sm);
}
.section--light .card p, .section--stone .card p { color: var(--color-muted-dark); }

/* ---------- Category tiles ---------- */
.tile-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: var(--space-3);
}
.tile {
  position: relative;
  display: block;
  border-radius: var(--radius-lg);
  overflow: hidden;
  text-decoration: none;
  aspect-ratio: 4 / 3.4;
  border: 1px solid var(--color-border);
}
.tile img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 700ms var(--ease-out);
}
.tile:hover img { transform: scale(1.045); }
.tile__label {
  position: absolute;
  inset: auto 0 0 0;
  padding: var(--space-4) var(--space-3) var(--space-3);
  background: linear-gradient(to top, rgba(23,21,27,0.92), rgba(23,21,27,0.35) 65%, transparent);
  color: var(--white);
}
.tile__label h3 { margin: 0 0 4px; color: var(--white); }
.tile__label span { font-size: var(--fs-small); color: rgba(243,238,230,0.75); }
.tile__arrow {
  position: absolute;
  top: var(--space-2);
  right: var(--space-2);
  width: 40px;
  height: 40px;
  border-radius: var(--radius-full);
  background: rgba(23,21,27,0.55);
  backdrop-filter: blur(6px);
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--color-accent-soft);
  transition: background var(--dur-fast), transform var(--dur-fast);
}
.tile:hover .tile__arrow { background: var(--color-accent); color: var(--ink); transform: rotate(-38deg); }
.tile__arrow svg { width: 17px; height: 17px; }

/* ---------- Product cards ---------- */
.product-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(270px, 1fr));
  gap: var(--space-3);
}
.product-card {
  display: flex;
  flex-direction: column;
  background: var(--white);
  color: var(--color-text-dark);
  border-radius: var(--radius-sm);
  overflow: hidden;
  border: 1px solid var(--color-border-light);
  box-shadow: var(--shadow-sm);
  transition: transform var(--dur-med) var(--ease-out), box-shadow var(--dur-med);
}
.product-card:hover { transform: translateY(-4px); box-shadow: var(--shadow-md); }
.product-card__media {
  position: relative;
  aspect-ratio: 4 / 3;
  overflow: hidden;
  background: var(--charcoal);
}
.product-card__media img { width: 100%; height: 100%; object-fit: cover; transition: transform 700ms var(--ease-out); }
.product-card:hover .product-card__media img { transform: scale(1.04); }
.badge {
  display: inline-block;
  font-size: var(--fs-tiny);
  font-weight: 600;
  letter-spacing: 0.06em;
  padding: 4px 10px;
  border-radius: var(--radius-full);
  background: var(--ink);
  color: var(--gold-soft);
}
.product-card__badge { position: absolute; top: 12px; left: 12px; }
.product-card__badge--concept {
  top: auto;
  right: 12px;
  bottom: 12px;
  left: auto;
  background: rgba(23, 21, 27, 0.78);
  color: var(--cream);
  border: 1px solid rgba(243, 238, 230, 0.28);
  backdrop-filter: blur(8px);
}
.product-card__badge--sale {
  background: var(--gold);
  color: var(--ink);
}
.product-card__body { padding: var(--space-3); display: flex; flex-direction: column; gap: 6px; flex: 1; }
.product-card__body h3 { font-size: 1.35rem; margin: 0; }
.product-card__meta { font-size: var(--fs-small); color: var(--color-muted-dark); }
.product-card__desc { font-size: 0.92rem; color: var(--color-muted-dark); margin: 0; flex: 1; }
.product-card__foot {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-1);
  margin-top: var(--space-2);
  padding-top: var(--space-2);
  border-top: 1px solid var(--color-border-light);
}
.price { font-family: var(--font-display); font-size: 1.3rem; font-weight: 600; color: var(--ink); }
.price--sale strong,
.product-price--sale strong { color: var(--gold); }
.price--sale s,
.product-price--sale s { color: var(--color-muted-dark); font-size: .8em; margin-right: .35rem; }
.price-note { font-size: var(--fs-tiny); color: var(--color-muted-dark); }

/* ---------- Split / editorial ---------- */
.split {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: var(--space-6);
  align-items: center;
}
.split--reverse > .split__media { order: 2; }
.split__media img {
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-lg);
  width: 100%;
  aspect-ratio: 4/3.2;
  object-fit: cover;
}
.split__content p { color: var(--color-muted); }
.section--light .split__content p, .section--stone .split__content p { color: var(--color-muted-dark); }
.check-list { list-style: none; padding: 0; margin: var(--space-3) 0 0; display: grid; gap: var(--space-2); }
.check-list li { display: flex; gap: 12px; align-items: flex-start; }
.check-list svg { width: 20px; height: 20px; flex: none; color: var(--color-accent); margin-top: 3px; }
.section--light .check-list svg { color: #8a6b1c; }

/* ---------- Steps ---------- */
.steps { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: var(--space-3); counter-reset: step; }
.step {
  position: relative;
  padding: var(--space-4) var(--space-3) var(--space-3);
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-lg);
  counter-increment: step;
}
.step::before {
  content: counter(step, decimal-leading-zero);
  font-family: var(--font-display);
  font-size: 2.2rem;
  color: var(--color-accent);
  opacity: 0.55;
  display: block;
  margin-bottom: var(--space-1);
}
.step h3 { font-size: 1.25rem; }
.step p { color: var(--color-muted); font-size: 0.95rem; margin: 0; }

/* ---------- Gallery ---------- */
.filter-bar {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-bottom: var(--space-4);
}
.filter-btn {
  border: 1px solid var(--color-border);
  background: transparent;
  color: var(--color-text);
  font-family: var(--font-body);
  font-size: var(--fs-small);
  font-weight: 500;
  padding: 8px 16px;
  min-height: 40px;
  border-radius: var(--radius-full);
  cursor: pointer;
  transition: color var(--dur-fast), background var(--dur-fast), border-color var(--dur-fast);
}
.filter-btn:hover { border-color: var(--color-accent); color: var(--color-accent-soft); }
.filter-btn[aria-pressed="true"] {
  background: var(--color-accent);
  border-color: var(--color-accent);
  color: var(--ink);
  font-weight: 600;
}
.gallery-grid {
  columns: 3 300px;
  column-gap: var(--space-3);
}
.gallery-item {
  break-inside: avoid;
  margin: 0 0 var(--space-3);
  border-radius: var(--radius-lg);
  overflow: hidden;
  border: 1px solid var(--color-border);
  background: var(--color-surface);
  transition: transform var(--dur-med) var(--ease-out), box-shadow var(--dur-med);
}
.gallery-item:hover { transform: translateY(-3px); box-shadow: var(--shadow-md); }
.gallery-item__btn {
  display: block;
  width: 100%;
  padding: 0;
  border: 0;
  background: none;
  cursor: zoom-in;
}
.gallery-item__btn img { width: 100%; }
.gallery-item figcaption {
  padding: 12px var(--space-2);
  font-size: var(--fs-small);
  color: var(--color-muted);
}
.gallery-item[hidden] { display: none; }

/* Lightbox */
.lightbox {
  position: fixed;
  inset: 0;
  z-index: 300;
  background: rgba(15, 13, 18, 0.94);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: var(--space-3);
  opacity: 0;
  pointer-events: none;
  transition: opacity var(--dur-med);
}
.lightbox.open { opacity: 1; pointer-events: auto; }
.lightbox__figure { max-width: min(920px, 94vw); }
.lightbox__figure img {
  max-height: 76vh;
  width: auto;
  max-width: 100%;
  margin: 0 auto;
  border-radius: var(--radius-md);
  box-shadow: var(--shadow-lg);
}
.lightbox__caption { text-align: center; color: var(--color-muted); font-size: var(--fs-small); margin-top: var(--space-2); }
.lightbox__btn {
  position: absolute;
  width: 48px;
  height: 48px;
  border-radius: var(--radius-full);
  border: 1px solid var(--color-border);
  background: rgba(38, 35, 43, 0.8);
  color: var(--color-text);
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: color var(--dur-fast), background var(--dur-fast), border-color var(--dur-fast);
}
.lightbox__btn:hover { background: var(--color-accent); color: var(--ink); }
.lightbox__btn svg { width: 20px; height: 20px; }
.lightbox__close { top: var(--space-3); right: var(--space-3); }
.lightbox__prev { left: var(--space-2); top: 50%; transform: translateY(-50%); }
.lightbox__next { right: var(--space-2); top: 50%; transform: translateY(-50%); }

/* ---------- Forms ---------- */
.form-shell {
  background: var(--white);
  color: var(--color-text-dark);
  border-radius: var(--radius-lg);
  padding: var(--space-5);
  box-shadow: var(--shadow-md);
  border: 1px solid var(--color-border-light);
}
.form-section { border: 0; padding: 0; margin: 0 0 var(--space-5); }
.form-section legend {
  font-family: var(--font-display);
  font-size: 1.5rem;
  color: var(--ink);
  margin-bottom: 4px;
  padding: 0;
}
.form-section .form-section__hint { font-size: var(--fs-small); color: var(--color-muted-dark); margin-bottom: var(--space-3); }
.form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: var(--space-3); }
.form-field { display: flex; flex-direction: column; gap: 6px; }
.form-field--full { grid-column: 1 / -1; }
.form-field label { font-size: var(--fs-small); font-weight: 600; color: var(--ink); }
.form-field label .opt { font-weight: 400; color: var(--color-muted-dark); }
.form-field input,
.form-field select,
.form-field textarea {
  font-family: var(--font-body);
  font-size: 1rem;
  padding: 13px 16px;
  border: 1.5px solid var(--color-light-2);
  border-radius: var(--radius-md);
  background: #FBF8F2;
  color: var(--color-text-dark);
  transition: border-color var(--dur-fast), box-shadow var(--dur-fast);
  width: 100%;
}
.form-field input:focus, .form-field select:focus, .form-field textarea:focus {
  outline: none;
  border-color: var(--gold);
  box-shadow: 0 0 0 3px rgba(217, 175, 63, 0.22);
}
.form-field textarea { min-height: 120px; resize: vertical; }
.form-field .field-hint { font-size: var(--fs-tiny); color: var(--color-muted-dark); }
.form-field [aria-invalid="true"] { border-color: var(--color-error); }
.field-error { font-size: var(--fs-tiny); color: #A8402F; font-weight: 500; display: none; }
.form-field [aria-invalid="true"] ~ .field-error { display: block; }
.choice-row { display: flex; flex-wrap: wrap; gap: 8px; }
.choice-chip { position: relative; }
.choice-chip input { position: absolute; opacity: 0; inset: 0; cursor: pointer; }
.choice-chip span {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  padding: 10px 18px;
  border: 1.5px solid var(--color-light-2);
  border-radius: var(--radius-full);
  font-size: var(--fs-small);
  font-weight: 500;
  color: var(--color-text-dark);
  background: #FBF8F2;
  transition: color var(--dur-fast), background var(--dur-fast), border-color var(--dur-fast);
  cursor: pointer;
}
.choice-chip input:checked + span {
  background: var(--ink);
  border-color: var(--ink);
  color: var(--gold-soft);
}
.choice-chip input:focus-visible + span { outline: 2px solid var(--gold); outline-offset: 2px; }
.consent-row { display: flex; gap: 12px; align-items: flex-start; font-size: var(--fs-small); color: var(--color-muted-dark); }
.consent-row input { width: 20px; height: 20px; margin-top: 2px; accent-color: var(--gold); flex: none; }
.form-actions { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-2); }
.form-note { font-size: var(--fs-tiny); color: var(--color-muted-dark); margin-top: var(--space-2); }
.form-success {
  text-align: center;
  padding: var(--space-5) var(--space-3);
}
.form-success svg { width: 56px; height: 56px; color: var(--color-success); margin: 0 auto var(--space-3); }
.form-success h3 { font-size: 1.8rem; }
.ref-number {
  display: inline-block;
  font-family: ui-monospace, monospace;
  background: var(--cream);
  border: 1px dashed var(--gold);
  padding: 6px 14px;
  border-radius: var(--radius-sm);
  color: var(--ink);
  font-weight: 600;
}

/* Enquiry basket */
.basket-bar {
  position: fixed;
  bottom: var(--space-3);
  left: 50%;
  transform: translate(-50%, 140%);
  z-index: 150;
  background: var(--charcoal-2);
  border: 1px solid var(--color-accent);
  color: var(--color-text);
  border-radius: var(--radius-full);
  padding: 10px 10px 10px 22px;
  display: flex;
  align-items: center;
  gap: var(--space-2);
  box-shadow: var(--shadow-lg);
  transition: transform var(--dur-med) var(--ease-spring);
  font-size: var(--fs-small);
  max-width: calc(100vw - 32px);
}
.basket-bar.visible { transform: translate(-50%, 0); }
.basket-bar .btn { flex: none; }

/* ---------- Reviews ---------- */
.review-card {
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  border-top: 2px solid var(--color-accent);
  border-radius: var(--radius-md);
  padding: var(--space-3);
}
.review-card blockquote { margin: 0 0 var(--space-2); font-family: var(--font-display); font-size: 1.25rem; line-height: 1.5; }
.review-card cite { font-style: normal; font-size: var(--fs-small); color: var(--color-muted); }
.proof-strip {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-2) var(--space-5);
  align-items: center;
  justify-content: center;
  text-align: center;
  padding: var(--space-4);
  border-top: 1px solid var(--color-border);
  border-bottom: 1px solid var(--color-border);
  font-size: var(--fs-small);
  color: var(--color-muted);
}
.proof-strip strong { color: var(--color-accent); font-weight: 600; }

/* ---------- FAQ ---------- */
.faq-list { display: grid; gap: var(--space-2); max-width: 780px; }
.faq-item {
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
  background: var(--color-surface);
  overflow: hidden;
}
.faq-item summary {
  cursor: pointer;
  padding: var(--space-2) var(--space-3);
  font-weight: 600;
  font-size: 1.02rem;
  list-style: none;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: var(--space-2);
  min-height: 56px;
  transition: color var(--dur-fast);
}
.faq-item summary::-webkit-details-marker { display: none; }
.faq-item summary::after {
  content: "+";
  font-family: var(--font-display);
  font-size: 1.6rem;
  color: var(--color-accent);
  transition: transform var(--dur-fast);
  flex: none;
}
.faq-item[open] summary::after { transform: rotate(45deg); }
.faq-item summary:hover { color: var(--color-accent-soft); }
.faq-item .faq-answer { padding: 0 var(--space-3) var(--space-3); color: var(--color-muted); font-size: 0.97rem; }

/* ---------- TODO / status chips (owner-facing honesty) ---------- */
.status-chip {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: var(--fs-tiny);
  font-weight: 600;
  letter-spacing: 0.04em;
  padding: 3px 10px;
  border-radius: var(--radius-full);
  border: 1px dashed var(--plum);
  color: var(--plum);
  background: rgba(110, 89, 103, 0.08);
}
.section--light .status-chip, .form-shell .status-chip { background: rgba(110, 89, 103, 0.1); }
.todo-note {
  border: 1px dashed var(--plum);
  border-radius: var(--radius-md);
  padding: var(--space-2) var(--space-3);
  font-size: var(--fs-small);
  color: var(--color-muted);
  background: rgba(110, 89, 103, 0.07);
}
.section--light .todo-note { color: var(--color-muted-dark); }

/* ---------- Contact ---------- */
.contact-grid { display: grid; grid-template-columns: 1fr 1.2fr; gap: var(--space-5); align-items: start; }
.contact-methods { display: grid; gap: var(--space-2); }
.contact-method {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  padding: var(--space-2) var(--space-3);
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
  text-decoration: none;
  color: var(--color-text);
  transition: border-color var(--dur-fast), transform var(--dur-fast);
}
.contact-method:hover { border-color: var(--color-accent); transform: translateX(4px); }
.contact-method svg { width: 22px; height: 22px; color: var(--color-accent); flex: none; }
.contact-method strong { display: block; font-size: 0.95rem; }
.contact-method span { font-size: var(--fs-small); color: var(--color-muted); }

/* ---------- CTA band ---------- */
.cta-band {
  text-align: center;
  padding: var(--space-7) var(--space-3);
  background:
    radial-gradient(600px 300px at 50% 120%, rgba(217, 175, 63, 0.12), transparent 65%),
    var(--color-surface);
  border-top: 1px solid var(--color-border);
}
.cta-band h2 { max-width: 20ch; margin-inline: auto; }
.cta-band p { color: var(--color-muted); max-width: 48ch; margin: 0 auto var(--space-4); }
.cta-band .hero__actions { justify-content: center; }

/* ---------- Footer ---------- */
.site-footer {
  border-top: 1px solid var(--color-border);
  background: #131118;
  padding: var(--space-6) 0 calc(var(--space-4) + 64px);
}
.footer-grid {
  display: grid;
  grid-template-columns: 1.4fr 1fr 1fr 1fr;
  gap: var(--space-4);
  margin-bottom: var(--space-5);
}
.footer-grid h4 { color: var(--color-accent); font-size: var(--fs-small); letter-spacing: 0.14em; text-transform: uppercase; margin-bottom: var(--space-2); }
.footer-grid ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
.footer-grid a { color: var(--color-muted); text-decoration: none; font-size: var(--fs-small); }
.footer-grid a:hover { color: var(--color-accent-soft); }
.footer-brand p { color: var(--color-muted); font-size: var(--fs-small); max-width: 34ch; }
.footer-bottom {
  border-top: 1px solid rgba(217, 175, 63, 0.12);
  padding-top: var(--space-3);
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: var(--space-2);
  font-size: var(--fs-tiny);
  color: var(--color-muted);
}

/* ---------- Sticky mobile action bar ---------- */
.mobile-bar {
  position: fixed;
  bottom: 0;
  left: 0;
  right: 0;
  z-index: 120;
  display: none;
  gap: 1px;
  background: var(--color-border);
  border-top: 1px solid var(--color-border);
}
.mobile-bar a {
  flex: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  min-height: 56px;
  background: var(--charcoal);
  color: var(--color-text);
  text-decoration: none;
  font-size: var(--fs-small);
  font-weight: 600;
}
.mobile-bar a.mobile-bar__call { background: var(--color-accent); color: var(--ink); }
.mobile-bar svg { width: 18px; height: 18px; }

/* ---------- Admin ---------- */
.admin-table { width: 100%; border-collapse: collapse; font-size: var(--fs-small); }
.admin-table th, .admin-table td { text-align: left; padding: 10px 12px; border-bottom: 1px solid var(--color-border); vertical-align: top; }
.admin-table th { color: var(--color-accent); font-size: var(--fs-tiny); letter-spacing: 0.1em; text-transform: uppercase; }
.admin-table td { color: var(--color-text); }
.admin-status {
  font-size: var(--fs-tiny);
  font-weight: 700;
  padding: 3px 10px;
  border-radius: var(--radius-full);
  background: rgba(217, 175, 63, 0.14);
  color: var(--color-accent-soft);
  white-space: nowrap;
}
.admin-detail { background: var(--color-surface); border: 1px solid var(--color-border); border-radius: var(--radius-md); padding: var(--space-3); margin-bottom: var(--space-2); }
.admin-detail h3 { margin-bottom: var(--space-1); }
.admin-detail dl { display: grid; grid-template-columns: 160px 1fr; gap: 4px 16px; font-size: var(--fs-small); margin: var(--space-2) 0; }
.admin-detail dt { color: var(--color-muted); }
.admin-detail dd { margin: 0; }
.admin-history { font-size: var(--fs-tiny); color: var(--color-muted); border-left: 2px solid var(--color-border); padding-left: var(--space-2); margin-top: var(--space-2); }

/* ---------- Placeholder imagery ---------- */
.placeholder-img { width: 100%; height: 100%; object-fit: cover; }

/* ---------- Reveal animation base (JS enhances) ---------- */
.reveal { opacity: 0; transform: translateY(24px); transition: opacity 700ms var(--ease-out), transform 700ms var(--ease-out); }
.reveal.in { opacity: 1; transform: none; }

/* ---------- Responsive ---------- */
@media (max-width: 960px) {
  .split { grid-template-columns: 1fr; gap: var(--space-4); }
  .split--reverse > .split__media { order: 0; }
  .contact-grid { grid-template-columns: 1fr; }
  .footer-grid { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 1120px) {
  .main-nav {
    position: fixed;
    top: var(--header-h);
    left: 0;
    right: 0;
    z-index: 110;
    flex-direction: column;
    align-items: stretch;
    justify-content: flex-start;
    background: var(--ink);
    border-bottom: 1px solid var(--color-border);
    padding: var(--space-2) var(--gutter) var(--space-3);
    gap: 2px;
    transform: translateY(-8px);
    opacity: 0;
    pointer-events: none;
    transition: opacity var(--dur-fast), transform var(--dur-fast);
    max-height: calc(100dvh - var(--header-h) - 56px);
    overflow-y: auto;
  }
  .main-nav.open { transform: none; opacity: 1; pointer-events: auto; }
  .main-nav a { padding: 14px 16px; font-size: 1rem; }
  .nav-toggle { display: flex; }
  .header-cta .btn { display: none; }
}

@media (max-width: 820px) {
  :root { --header-h: 64px; }
  .brand__name { font-size: 1.55rem; }
  .main-nav {
    position: fixed;
    top: var(--header-h);
    left: 0;
    right: 0;
    flex-direction: column;
    align-items: stretch;
    background: var(--ink);
    border-bottom: 1px solid var(--color-border);
    padding: var(--space-2) var(--space-3) var(--space-3);
    gap: 2px;
    transform: translateY(-8px);
    opacity: 0;
    pointer-events: none;
    transition: opacity var(--dur-fast), transform var(--dur-fast);
    max-height: calc(100dvh - var(--header-h) - 56px);
    overflow-y: auto;
  }
  .main-nav.open { transform: none; opacity: 1; pointer-events: auto; }
  .main-nav a { padding: 14px 16px; font-size: 1rem; }
  .nav-toggle { display: flex; }
  .header-cta .btn { display: none; }
  .mobile-bar { display: flex; }
  .site-footer { padding-bottom: calc(var(--space-4) + 72px); }
  .form-grid { grid-template-columns: 1fr; }
  .form-shell { padding: var(--space-4) var(--space-3); }
  .hero { min-height: min(78vh, 700px); }
  .section { padding: var(--space-6) 0; }
  .basket-bar { bottom: 64px; }
  .hero__media::after {
    background:
      linear-gradient(180deg, rgba(23,21,27,0.55) 0%, rgba(23,21,27,0.82) 55%, rgba(23,21,27,0.98) 100%);
  }
  .hero__content {
    padding-top: clamp(2.5rem, 6vh, 4rem);
    padding-bottom: calc(clamp(3rem, 7vh, 4.5rem) + 2rem);
  }
  .hero__image-note { display: none; }
}

@media (max-width: 700px) {
  .service-rail { grid-template-columns: 1fr; }
  .service-item + .service-item { border-left: 0; border-top: 1px solid var(--color-border); }
  .service-item { padding: var(--space-3) 0; }
}

@media (max-width: 480px) {
  .footer-grid { grid-template-columns: 1fr; }
  .hero__actions .btn { width: 100%; }
  .brand__tag { display: none; }
}

/* ---------- Reduced motion ---------- */
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
  }
  .reveal { opacity: 1; transform: none; }
}

/* ============================================================
   Shop-first rebuild
   ============================================================ */
[hidden]{display:none!important}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.btn--block{width:100%;justify-content:center}.btn--light{background:var(--cream);color:var(--ink);border-color:var(--cream)}.text-link{color:var(--cream);font-weight:600;text-underline-offset:5px}
.header-call{font-size:.72rem;line-height:1.25;text-decoration:none;color:var(--color-muted);text-align:right}.header-call strong{display:block;color:var(--cream);font-size:.82rem}
.cart-link{display:flex;align-items:center;gap:8px;color:var(--cream);text-decoration:none;text-transform:uppercase;letter-spacing:.12em;font-size:.7rem}.cart-link b{display:grid;place-items:center;width:22px;height:22px;border-radius:50%;background:var(--cream);color:var(--ink);font-size:.7rem}.cart-link b.has-items{background:var(--gold)}

.store-hero{min-height:calc(100svh - var(--header-h));display:grid;grid-template-columns:minmax(0,48%) minmax(0,52%);background:#1c1920}
.store-hero__copy{padding:clamp(5rem,10vw,10rem) max(var(--gutter),calc((100vw - var(--maxw))/2)) 4rem;display:flex;flex-direction:column;justify-content:center}
.store-hero h1{font-size:clamp(4rem,7.2vw,7.2rem);line-height:.8;letter-spacing:-.045em;margin:.7rem 0 2rem}
.store-hero .lead{max-width:600px;color:#c9c0b7;font-size:clamp(1rem,1.4vw,1.18rem)}
.store-hero__image{position:relative;min-height:680px;overflow:hidden}.store-hero__image img{width:100%;height:100%;object-fit:cover}.store-hero__image:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(28,25,32,.28),transparent 35%)}
.image-caption{position:absolute;z-index:2;right:20px;bottom:18px;color:#fff;background:rgba(23,21,27,.72);padding:7px 10px;font-size:.64rem;letter-spacing:.05em}
.store-hero__proof{display:flex;gap:28px;margin-top:3rem;padding-top:1.5rem;border-top:1px solid rgba(255,255,255,.12);color:#c9c0b7;font-size:.78rem}.store-hero__proof span{display:flex;align-items:center;gap:7px}.store-hero__proof svg{width:15px;color:var(--gold)}
.category-strip{display:grid;grid-template-columns:repeat(4,1fr);background:var(--cream);color:var(--ink);border-bottom:1px solid var(--color-border-light)}
.category-strip a{position:relative;padding:2.1rem clamp(1rem,2vw,2.4rem);text-decoration:none;color:inherit;border-right:1px solid var(--color-border-light);transition:background .2s}.category-strip a:hover{background:#fff}.category-strip span{display:block;color:#9a8e83;font-size:.7rem;margin-bottom:.7rem}.category-strip strong{display:block;font-family:var(--font-display);font-size:1.65rem;font-weight:500}.category-strip small{color:var(--color-muted-dark)}
.section--shop-featured{background:#fff;color:var(--ink)}.section-head--row{max-width:none;display:flex;justify-content:space-between;align-items:end}.section-head--row>a{color:var(--ink);font-weight:600}
.product-grid--four{grid-template-columns:repeat(4,1fr)}.section--shop-featured .product-card{background:#f7f4ef;color:var(--ink);border:0}.section--shop-featured .product-card__body{color:var(--ink)}.section--shop-featured .price{color:var(--ink)}
.journey-split{display:grid;grid-template-columns:2fr 1fr}.journey-card--hire{min-height:620px;position:relative;display:flex;align-items:end;overflow:hidden}.journey-card__image{position:absolute;inset:0}.journey-card__image img{width:100%;height:100%;object-fit:cover}.journey-card__image:after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(0,0,0,.92),rgba(0,0,0,.05) 70%)}.journey-card__copy{position:relative;z-index:1;max-width:700px;padding:clamp(2rem,5vw,5rem);color:#fff}.journey-card h2{font-size:clamp(2.6rem,5vw,5rem);line-height:.92}.journey-card--bespoke{background:#75616c;color:#fff;padding:clamp(2rem,5vw,5rem);display:flex;flex-direction:column;justify-content:center}.journey-card--bespoke h2{font-size:clamp(2.5rem,4vw,4.2rem)}.journey-card--bespoke a{color:#fff;font-weight:700;text-underline-offset:6px}
.values-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(1.5rem,4vw,4rem)}.value{border-left:1px solid var(--color-border-light);padding-left:2rem}.value>strong{font-size:.7rem;letter-spacing:.15em;color:#8b7d72}.value h3{font-size:1.4rem;margin:1.4rem 0 .6rem}.value p{font-size:.9rem;color:var(--color-muted-dark)}
.home-contact{padding:clamp(3rem,7vw,6rem) max(var(--gutter),calc((100vw - var(--maxw))/2));display:flex;justify-content:space-between;align-items:center;gap:2rem;background:var(--ink)}.home-contact h2{font-size:clamp(2.5rem,5vw,4.8rem)}.home-contact>div:first-child{max-width:650px}

.shop-hero{padding:clamp(5rem,10vw,9rem) 0 4rem;background:var(--cream);color:var(--ink)}.shop-hero__inner{display:grid;grid-template-columns:1.5fr 1fr;gap:4rem;align-items:end}.shop-hero h1{font-size:clamp(4rem,8vw,7rem);line-height:.83;letter-spacing:-.045em}.shop-hero__intro{font-size:1.1rem;line-height:1.7;color:var(--color-muted-dark);max-width:520px}
.shop-shell{background:#fff;color:var(--ink);padding:2rem 0 7rem;min-height:70vh}.shop-toolbar{display:flex;justify-content:space-between;gap:1rem;border-top:1px solid var(--color-border-light);border-bottom:1px solid var(--color-border-light);padding:1.2rem 0;margin-bottom:3rem}.shop-search{flex:1}.shop-search input,.shop-sort select{background:#f5f2ed;color:var(--ink);border:1px solid transparent;padding:.8rem 1rem;min-height:46px}.shop-search input{width:min(100%,520px)}.shop-sort{display:flex;align-items:center;gap:.7rem;font-size:.78rem;font-weight:700}
.shop-layout{display:grid;grid-template-columns:220px 1fr;gap:clamp(2rem,5vw,5rem)}.shop-filters{position:sticky;top:calc(var(--header-h) + 24px);align-self:start}.shop-filters h2{font:600 .76rem var(--font-body);text-transform:uppercase;letter-spacing:.13em;margin-bottom:1.2rem}.shop-filter{display:block;width:100%;text-align:left;background:none;border:0;border-bottom:1px solid var(--color-border-light);padding:.9rem 0;color:var(--color-muted-dark);cursor:pointer}.shop-filter.is-active{color:var(--ink);font-weight:700}.shop-help{margin-top:2.5rem;padding:1.4rem;background:#f5f0e9}.shop-help p{font-size:.82rem;color:var(--color-muted-dark)}.shop-help a{color:var(--ink);font-weight:700}
.shop-results-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.2rem;font-size:.78rem;color:var(--color-muted-dark)}.shop-results-head p{margin:0}.shop-results-head a{color:var(--ink)}.product-grid--shop{grid-template-columns:repeat(3,1fr);gap:2.4rem 1.2rem}.shop-shell .product-card{background:transparent;border:0;color:var(--ink);box-shadow:none}.shop-shell .product-card__body{padding:1.1rem 0}.shop-shell .product-card__media{aspect-ratio:4/5;background:#f2eee8}.shop-shell .product-card__media img{height:100%;object-fit:cover}.shop-shell .price{color:var(--ink)}.product-card__link{font-size:.78rem;font-weight:700;color:inherit;text-decoration:none;border-bottom:1px solid;padding-bottom:3px}.price-note--ready{color:#43654f}.shop-empty{padding:4rem;background:#f5f0e9;text-align:center}

.product-page{background:#fff;color:var(--ink);padding:2rem 0 7rem}.breadcrumbs{display:flex;gap:.65rem;align-items:center;padding:1.5rem 0 2rem;font-size:.74rem;color:var(--color-muted-dark)}.breadcrumbs a{color:inherit;text-decoration:none}.product-detail{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(380px,.9fr);gap:clamp(3rem,7vw,7rem);align-items:start}.product-gallery__main{background:#f2eee8;aspect-ratio:4/5;overflow:hidden}.product-gallery__main img{width:100%;height:100%;object-fit:cover}.concept-note{font-size:.68rem;color:var(--color-muted-dark)}.product-buybox{position:sticky;top:calc(var(--header-h) + 24px);padding-top:1rem}.product-kicker{text-transform:uppercase;letter-spacing:.16em;font-size:.68rem;color:#8b7d72}.product-buybox h1{font-size:clamp(3rem,5vw,5rem);line-height:.9;letter-spacing:-.035em}.product-price{font:500 1.6rem var(--font-body);margin:1.4rem 0}.product-description{color:var(--color-muted-dark);font-size:1.05rem;line-height:1.75}.product-options{display:grid;gap:1rem;margin:2rem 0}.product-options label,.checkout-form label,.product-editor label,.admin-login label{display:grid;gap:.45rem;font-size:.78rem;font-weight:700}.product-options label span,.checkout-form label span{font-weight:400;color:var(--color-muted-dark)}.product-options select,.product-options input,.checkout-form input,.checkout-form textarea,.product-editor input,.product-editor select,.product-editor textarea,.admin-login input,.admin-toolbar input{width:100%;background:#f5f2ed;color:var(--ink);border:1px solid #ded7ce;padding:.85rem 1rem;border-radius:2px}.product-purchase-row{display:grid;grid-template-columns:76px 1fr;gap:.8rem}.quantity{display:grid;grid-template-columns:1fr;gap:.3rem;font-size:.7rem}.quantity input{width:100%;height:48px;border:1px solid #d6cec3;text-align:center}.btn--buy{min-height:48px}.buy-now{display:block;text-align:center;margin-top:.7rem;color:var(--ink);font-weight:700}.checkout-note{padding:1rem;background:#f4efe8;color:var(--color-muted-dark);font-size:.8rem}.product-assurance{display:grid;gap:1rem;margin:2rem 0;padding:1.5rem 0;border-block:1px solid var(--color-border-light)}.product-assurance div{display:grid;grid-template-columns:145px 1fr;font-size:.78rem}.product-assurance span{color:var(--color-muted-dark)}.product-assurance a{color:inherit}.product-facts summary{font-weight:700;cursor:pointer}.product-facts dl{display:grid;grid-template-columns:120px 1fr;gap:.7rem;margin-top:1rem;font-size:.8rem}.product-facts dt{color:var(--color-muted-dark)}.product-facts dd{margin:0}

.commerce-page{background:#f7f3ed;color:var(--ink);min-height:75vh;padding:2rem 0 7rem}.commerce-heading{max-width:650px;margin-bottom:3rem}.commerce-heading h1,.commerce-page h1{font-size:clamp(3.6rem,7vw,6rem);line-height:.9}.cart-layout,.checkout-grid{display:grid;grid-template-columns:1.4fr .7fr;gap:clamp(2rem,6vw,6rem);align-items:start}.cart-items{display:grid;gap:1px}.cart-item{display:grid;grid-template-columns:130px 1fr auto;gap:1.5rem;background:#fff;padding:1.2rem}.cart-item img{width:130px;height:150px;object-fit:cover;background:#eee}.cart-item a{color:inherit;text-decoration:none}.cart-item h2{font-size:1.5rem}.cart-item p{font-size:.8rem;color:var(--color-muted-dark)}.cart-qty{display:inline-grid;grid-template-columns:32px 36px 32px;border:1px solid #d9d2c9}.cart-qty button{border:0;background:transparent;font-size:1.1rem}.cart-qty span{display:grid;place-items:center}.cart-remove{display:block;margin-top:.8rem;border:0;background:none;padding:0;text-decoration:underline;font-size:.72rem;color:var(--color-muted-dark)}.order-summary{background:#fff;padding:2rem;position:sticky;top:calc(var(--header-h) + 24px)}.order-summary h2{font-size:1.8rem}.summary-row,.summary-total,.checkout-line{display:flex;justify-content:space-between;gap:1rem;padding:1rem 0;border-bottom:1px solid var(--color-border-light);font-size:.8rem}.summary-total{font-size:1.1rem;margin-bottom:1.5rem}.secure-note{font-size:.68rem;line-height:1.55;color:var(--color-muted-dark);text-align:center}.continue-shopping{display:block;text-align:center;color:var(--ink);font-size:.75rem}.empty-state{padding:4rem 2rem;background:#fff;text-align:center}.checkout-form{background:#fff;padding:clamp(1.5rem,4vw,3rem);margin-top:2rem}.checkout-consent{display:flex!important;grid-template-columns:auto 1fr!important;align-items:start;margin:1.5rem 0}.checkout-consent input{width:auto}.checkout-error{background:#f9e4e0;color:#7a2f23;padding:1rem;margin:1rem 0}.success-panel{text-align:center;background:#fff;padding:clamp(2rem,8vw,6rem)}.success-mark{display:grid;place-items:center;width:56px;height:56px;margin:0 auto 1.5rem;border-radius:50%;background:#dfeee3}.success-mark svg{width:24px}

.booking-card{background:#fff;color:var(--ink);padding:clamp(1.5rem,4vw,3rem);box-shadow:var(--shadow-sm)}.booking-card__head{display:grid;grid-template-columns:44px 1fr;gap:1rem;margin-bottom:2rem}.booking-card__head>span{display:grid;place-items:center;width:40px;height:40px;border-radius:50%;background:var(--ink);color:#fff}.booking-card__head h3{margin:0}.booking-card__head p{color:var(--color-muted-dark)}

.admin-page{min-height:80vh;background:#f4f1eb;color:var(--ink);padding-bottom:6rem}.admin-nav{display:flex;gap:.5rem;padding:1rem 0;border-bottom:1px solid var(--color-border-light);overflow:auto}.admin-nav a{padding:.7rem 1rem;color:var(--color-muted-dark);text-decoration:none;white-space:nowrap;font-size:.78rem}.admin-nav a[aria-current]{background:var(--ink);color:#fff}.admin-nav a:last-child{margin-left:auto}.admin-login{max-width:440px;margin:8rem auto;background:#fff;padding:3rem;display:grid;gap:1.2rem}.admin-title{display:flex;justify-content:space-between;align-items:end;gap:2rem;padding:4rem 0 2rem}.admin-title h1{font-size:clamp(3rem,6vw,5rem)}.admin-product-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(360px,.7fr);gap:2rem;align-items:start}.admin-toolbar{display:flex;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1rem}.admin-product-list{display:grid;gap:1px}.admin-product-row{display:grid;grid-template-columns:74px 1fr auto;align-items:center;gap:1rem;width:100%;padding:.7rem;background:#fff;border:0;text-align:left;cursor:pointer}.admin-product-row img{width:74px;height:74px;object-fit:cover}.admin-product-row span{display:grid;gap:.25rem}.admin-product-row small{color:var(--color-muted-dark)}.admin-product-state{font-size:.68rem;background:#ece7df;padding:.45rem .65rem}.admin-product-state.is-live{background:#dfeee3;color:#28583a}.product-editor{position:sticky;top:calc(var(--header-h) + 20px);background:#fff;padding:1.5rem;max-height:calc(100vh - var(--header-h) - 40px);overflow:auto}.product-editor__head{display:flex;justify-content:space-between}.product-editor__head button{border:0;background:none;font-size:1.7rem}.toggle-field{display:flex!important;grid-template-columns:auto 1fr!important;align-items:center}.toggle-field input{width:auto}.admin-card-head{display:flex;justify-content:space-between;align-items:center;gap:1rem}.admin-detail{background:#fff!important;color:var(--ink)!important;margin-bottom:1rem}.admin-detail dl{display:grid;grid-template-columns:130px 1fr}.admin-detail dt{color:var(--color-muted-dark)}.admin-detail dd{margin:0}.admin-status{background:#ece7df;color:var(--ink);padding:.4rem .6rem;font-size:.68rem}
body:has(.admin-page) .site-header,body:has(.admin-page) .site-footer,body:has(.admin-page) .mobile-bar{display:none}body:has(.admin-page) .admin-page{min-height:100vh}

@media(max-width:1100px){.product-grid--four{grid-template-columns:repeat(2,1fr)}.product-grid--shop{grid-template-columns:repeat(2,1fr)}.values-grid{grid-template-columns:repeat(2,1fr)}.journey-split{grid-template-columns:1fr}.journey-card--bespoke{min-height:480px}.admin-product-layout{grid-template-columns:1fr}.product-editor{position:relative;top:auto;max-height:none}}
@media(max-width:820px){.header-call{display:none}.store-hero{grid-template-columns:1fr;min-height:auto}.store-hero__copy{padding-top:5rem;padding-bottom:3rem}.store-hero h1{font-size:clamp(3.7rem,16vw,6rem)}.store-hero__image{min-height:58svh}.category-strip{grid-template-columns:repeat(2,1fr)}.journey-card--hire{min-height:560px}.values-grid{grid-template-columns:1fr}.value{padding-left:1.3rem}.home-contact{display:block}.shop-hero__inner{grid-template-columns:1fr;gap:1.5rem}.shop-layout{grid-template-columns:1fr}.shop-filters{position:static;display:flex;overflow:auto;gap:.5rem}.shop-filters h2,.shop-help{display:none}.shop-filter{white-space:nowrap;width:auto;border:1px solid var(--color-border-light);padding:.7rem 1rem}.shop-filter.is-active{background:var(--ink);color:#fff}.product-detail{grid-template-columns:1fr}.product-buybox{position:static}.cart-layout,.checkout-grid{grid-template-columns:1fr}.order-summary{position:static}.mobile-bar{display:none}.site-footer{padding-bottom:var(--space-4)}}
@media(max-width:560px){.category-strip{grid-template-columns:1fr 1fr}.category-strip a{padding:1.3rem}.category-strip small{display:none}.category-strip strong{font-size:1.25rem}.product-grid--four,.product-grid--shop{grid-template-columns:1fr}.shop-toolbar{align-items:stretch}.shop-sort{display:none}.store-hero__proof{display:grid;gap:10px}.journey-card__copy{padding:2rem}.journey-card h2{font-size:2.8rem}.cart-item{grid-template-columns:90px 1fr}.cart-item img{width:90px;height:110px}.cart-item>strong{grid-column:2}.admin-title{display:block}.admin-title .btn{margin-top:1rem}.admin-product-row{grid-template-columns:58px 1fr}.admin-product-row img{width:58px;height:58px}.admin-product-state{grid-column:2;justify-self:start}.product-purchase-row{grid-template-columns:68px 1fr}}

/* ============================================================
   Client preview refinement — quiet craft studio
   ============================================================ */

body {
  color: var(--ink);
  background: var(--cream);
}

body::before,
body::after { display: none; }

h1,
h2,
h3 { text-wrap: balance; }

h1,
h2 {
  line-height: 1;
  letter-spacing: -0.035em;
}

p { text-wrap: pretty; }

a { color: #745d27; }
a:not(.btn):visited { color: #67556a; }

.main-nav a:visited,
.brand:visited,
.cart-link:visited,
.product-card__title:visited,
.product-card__link:visited,
.contact-method:visited,
.site-footer a:visited { color: inherit; }

.eyebrow,
.page-hero__context,
.journey-card__label {
  display: block;
  margin: 0 0 1.1rem;
  color: var(--plum);
  font-size: 0.88rem;
  font-weight: 600;
  letter-spacing: 0;
  line-height: 1.45;
  text-transform: none;
}

.eyebrow::before { display: none; }

.section-head {
  max-width: 680px;
  margin-bottom: clamp(2rem, 4vw, 3.5rem);
}

.section-head p {
  color: var(--color-muted-dark);
  font-size: 1.05rem;
}

.site-header {
  background: rgba(244, 240, 232, 0.96);
  border-bottom-color: var(--color-border-light);
  backdrop-filter: blur(18px);
  -webkit-backdrop-filter: blur(18px);
}

.brand { color: var(--ink); }
.brand { min-height: 44px; }
.brand__name { color: #755d68; }
.brand__tag { color: var(--color-muted-dark); }

.main-nav a {
  position: relative;
  color: var(--ink);
  border-radius: 0;
  padding: 11px 10px;
}

.main-nav a:hover { color: #745d27; background: transparent; }

.main-nav a[aria-current="page"] { color: var(--ink); }
.main-nav a[aria-current="page"]::after {
  content: "";
  position: absolute;
  right: 10px;
  bottom: 5px;
  left: 10px;
  height: 1px;
  background: var(--gold);
}

.header-call { color: var(--color-muted-dark); }
.header-call { display: inline-flex; flex-direction: column; justify-content: center; min-height: 44px; }
.header-call strong { color: var(--ink); }

.cart-link {
  min-width: 44px;
  min-height: 44px;
  justify-content: center;
  color: var(--ink);
  letter-spacing: 0;
  text-transform: none;
  font-size: 0.78rem;
}

.cart-link b {
  width: 24px;
  height: 24px;
  background: var(--ink);
  color: var(--cream);
}

.nav-toggle {
  color: var(--ink);
  border-color: var(--color-border);
  border-radius: var(--radius-md);
}

.btn {
  min-height: 50px;
  padding: 13px 24px;
  border-radius: var(--radius-button);
  letter-spacing: 0;
  box-shadow: none;
  transition: background-color var(--dur-fast), color var(--dur-fast), border-color var(--dur-fast), transform var(--dur-fast);
}

.btn--primary {
  background: var(--ink);
  color: var(--white);
  box-shadow: none;
}

.btn--primary:hover {
  background: #40383d;
  box-shadow: none;
  transform: translateY(-1px);
}

.btn--ghost {
  color: var(--ink);
  border-color: rgba(36, 33, 38, 0.34);
}

.btn--ghost:hover {
  color: var(--ink);
  border-color: var(--ink);
}

.btn--light {
  background: var(--white);
  color: var(--ink);
  border-color: var(--white);
}

.text-link {
  display: inline-flex;
  align-items: center;
  min-height: 48px;
  color: var(--ink);
  font-weight: 600;
  text-underline-offset: 6px;
}

.page-hero {
  padding: clamp(4.5rem, 8vw, 7rem) 0 clamp(3.75rem, 6vw, 5rem);
  color: var(--ink);
  background: var(--cream);
  border-bottom-color: var(--color-border-light);
}

.page-hero h1 {
  max-width: 19ch;
  font-size: clamp(3.4rem, 6.5vw, 6.8rem);
  line-height: 0.94;
}

.page-hero .lead {
  max-width: 58ch;
  color: var(--color-muted-dark);
  font-size: clamp(1rem, 1.4vw, 1.15rem);
}

.section {
  padding: clamp(4.5rem, 8vw, 7.5rem) 0;
  color: var(--ink);
  background: var(--cream);
}

.section--light { background: var(--color-light); }
.section--stone { background: var(--stone); }

.card-grid { gap: 0 clamp(1.5rem, 4vw, 4rem); }

.card {
  padding: 1.75rem 0 2rem;
  color: var(--ink);
  background: transparent;
  border: 0;
  border-top: 1px solid var(--color-border);
  border-radius: 0;
  box-shadow: none;
}

.card:hover,
.section--light .card:hover,
.section--stone .card:hover {
  transform: none;
  border-color: rgba(36, 33, 38, 0.35);
  box-shadow: none;
}

.card__icon {
  width: 30px;
  height: 30px;
  margin-bottom: 1.25rem;
  color: var(--plum);
  background: transparent;
  border-radius: 0;
  justify-content: flex-start;
}

.card p,
.section--light .card p,
.section--stone .card p { color: var(--color-muted-dark); }

.product-card,
.section--shop-featured .product-card,
.shop-shell .product-card {
  color: var(--ink);
  background: transparent;
  border: 0;
  border-radius: 0;
  box-shadow: none;
}

.product-card:hover,
.section--shop-featured .product-card:hover,
.shop-shell .product-card:hover {
  transform: none;
  box-shadow: none;
}

.product-card__media,
.shop-shell .product-card__media {
  aspect-ratio: 4 / 5;
  border-radius: var(--radius-sm);
  background: #E9E2D8;
}

.product-gallery__main img,
.split__media img,
.gallery-item__btn img {
  transform: translateZ(0);
  backface-visibility: hidden;
}

.product-card__body,
.section--shop-featured .product-card__body,
.shop-shell .product-card__body {
  padding: 1rem 0 0;
  color: var(--ink);
}

.product-card__body h3 { font-size: 1.35rem; }
.product-card__title { display: flex; align-items: flex-start; min-height: 44px; color: inherit; text-decoration: none; }
.product-card__title:hover { text-decoration: underline; text-underline-offset: 4px; }
.product-card__desc,
.product-card__meta { color: var(--color-muted-dark); }

.product-stock { color: var(--gold); font-size: .84rem; font-weight: 600; }
.product-stock--empty { color: var(--color-muted-dark); }

.product-card__foot {
  align-items: end;
  padding-top: 0.85rem;
  border-top: 0;
}

.product-card__link {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  color: inherit;
  border-bottom: 0;
  text-decoration: underline;
  text-underline-offset: 5px;
}

.split { gap: clamp(2.5rem, 7vw, 7rem); }
.split__media img {
  border-radius: var(--radius-sm);
  box-shadow: none;
}

.check-list { gap: 0; }
.check-list li {
  padding: 1rem 0;
  border-top: 1px solid var(--color-border);
}

.gallery-grid { column-gap: 1.25rem; }
.gallery-item {
  margin-bottom: 1.75rem;
  color: var(--ink);
  background: transparent;
  border: 0;
  border-radius: 0;
  box-shadow: none;
}

.gallery-item:hover { transform: none; box-shadow: none; }
.gallery-item__btn img { border-radius: var(--radius-sm); }
.gallery-item figcaption { padding: 0.7rem 0 0; color: var(--color-muted-dark); }

.filter-btn {
  min-height: 44px;
  color: var(--ink);
  border-color: var(--color-border);
  background: transparent;
}

.filter-btn:hover { color: var(--ink); border-color: var(--ink); }
.filter-btn[aria-pressed="true"] { background: var(--ink); border-color: var(--ink); color: var(--white); }

.form-shell,
.booking-card,
.checkout-form,
.order-summary {
  border-radius: var(--radius-md);
  box-shadow: var(--shadow-sm);
}

.form-shell { padding: clamp(1.5rem, 4vw, 3rem); }

.form-field input,
.form-field select,
.form-field textarea {
  min-height: 48px;
  border-width: 1px;
  border-radius: 6px;
  background: #FAF7F1;
}

.contact-methods { gap: 0; }
.contact-method {
  padding: 1rem 0;
  color: var(--ink);
  background: transparent;
  border: 0;
  border-bottom: 1px solid var(--color-border);
  border-radius: 0;
}

.contact-method:hover { color: #745d27; border-color: var(--gold); transform: none; }
.contact-method span { color: var(--color-muted-dark); }

.faq-item {
  color: var(--ink);
  background: transparent;
  border: 0;
  border-bottom: 1px solid var(--color-border);
  border-radius: 0;
}

.faq-item .faq-answer { color: var(--color-muted-dark); }

.reveal { opacity: 1; transform: none; }

.cta-band,
.home-contact {
  color: var(--cream);
  background: var(--ink);
}

.cta-band p,
.home-contact p { color: #C9C1BA; }
.cta-band .btn--primary,
.home-contact .btn--primary { background: var(--gold); color: var(--ink); }
.cta-band .btn--ghost { color: var(--cream); border-color: rgba(244, 240, 232, 0.36); }
.home-contact .text-link { color: var(--cream); }

.site-footer {
  color: var(--cream);
  background: #1D1A1E;
  border-top: 0;
}

.site-footer .brand { color: var(--cream); }
.site-footer .brand__name { color: var(--gold-soft); }
.site-footer .footer-brand p,
.site-footer .footer-grid a,
.site-footer .footer-bottom { color: #B9B1AA; }
.footer-grid h4 {
  color: var(--cream);
  font-size: 0.9rem;
  letter-spacing: 0;
  text-transform: none;
}

/* Home */
.store-hero {
  position: relative;
  isolation: isolate;
  display: grid;
  min-height: min(860px, calc(100svh - var(--header-h)));
  overflow: hidden;
  background: var(--cream);
}

.store-hero__image {
  position: absolute;
  inset: 0;
  min-height: 0;
}

.store-hero__image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}

.store-hero__image::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, rgba(244, 240, 232, 0.99) 0%, rgba(244, 240, 232, 0.96) 33%, rgba(244, 240, 232, 0.68) 48%, rgba(244, 240, 232, 0.06) 72%);
}

.store-hero__copy {
  position: relative;
  z-index: 2;
  width: 100%;
  max-width: var(--maxw);
  min-height: inherit;
  margin-inline: auto;
  padding: clamp(5rem, 10vw, 8rem) var(--gutter);
  justify-content: center;
}

.store-hero__copy > * { max-width: 560px; }

.store-hero h1 {
  margin: 0 0 1.7rem;
  color: var(--ink);
  font-size: clamp(4.8rem, 8vw, 8.3rem);
  line-height: 0.84;
  letter-spacing: -0.055em;
}

.store-hero .lead {
  max-width: 510px;
  color: #514A4A;
  font-size: clamp(1.05rem, 1.35vw, 1.2rem);
}

.store-hero .hero__actions { margin-top: 0.5rem; }

.store-hero__proof {
  display: flex;
  align-items: center;
  gap: 0.55rem;
  margin-top: 2.25rem;
  padding-top: 0;
  color: var(--color-muted-dark);
  border-top: 0;
  font-size: 0.82rem;
}

.store-hero__proof svg { width: 15px; color: var(--gold); }

.image-caption {
  right: 1rem;
  bottom: 1rem;
  max-width: 42ch;
  padding: 0.55rem 0.75rem;
  color: rgba(255,255,255,0.92);
  background: rgba(36,33,38,0.72);
  border-radius: 3px;
  letter-spacing: 0;
}

.category-strip {
  display: flex;
  align-items: center;
  gap: clamp(1.5rem, 4vw, 4rem);
  padding: 0 max(var(--gutter), calc((100vw - var(--maxw)) / 2));
  color: var(--ink);
  background: var(--white);
  border-block: 1px solid var(--color-border-light);
}

.category-strip__title {
  flex: none;
  color: var(--color-muted-dark);
  font-size: 0.82rem;
  font-weight: 600;
}

.category-strip__links {
  display: flex;
  align-items: center;
  gap: clamp(1.25rem, 3vw, 2.75rem);
  overflow-x: auto;
}

.category-strip a {
  flex: none;
  min-height: 62px;
  padding: 0;
  color: var(--ink);
  border: 0;
  font-family: var(--font-display);
  font-size: 1.08rem;
  text-decoration: none;
}

.category-strip a:hover { background: transparent; text-decoration: underline; text-underline-offset: 5px; }

.section--shop-featured { color: var(--ink); background: var(--white); }
.section-head--row { max-width: none; }
.section-head--row > a { min-height: 44px; color: var(--ink); }
.product-grid--four { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: clamp(1rem, 2vw, 1.75rem); }

.journey-split {
  display: grid;
  grid-template-columns: minmax(0, 1.35fr) minmax(340px, 0.65fr);
}

.journey-card--hire {
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(320px, 0.85fr);
  min-height: 620px;
  color: var(--ink);
  background: var(--cream);
}

.journey-card__image {
  position: relative;
  min-height: 100%;
}

.journey-card__image img { width: 100%; height: 100%; object-fit: cover; }
.journey-card__image--dashboard { background: #000; }
.journey-card__image--dashboard img { object-fit: contain; }
.journey-card__image::after { display: none; }

.journey-card__copy {
  align-self: center;
  max-width: 620px;
  padding: clamp(2.5rem, 5vw, 5rem);
  color: var(--ink);
}

.journey-card h2 {
  font-size: clamp(2.7rem, 4.8vw, 5.2rem);
  line-height: 0.94;
}

.journey-card__copy p:not(.journey-card__label) { color: var(--color-muted-dark); }

.journey-card--bespoke {
  min-height: 620px;
  padding: clamp(2.5rem, 5vw, 5rem);
  color: var(--white);
  background: var(--plum);
}

.journey-card--bespoke h2 { font-size: clamp(2.8rem, 4.3vw, 4.8rem); }
.journey-card--bespoke .journey-card__label { color: #E0D2D8; }
.journey-card--bespoke a { color: var(--white); }

.values-grid {
  grid-template-columns: repeat(3, 1fr);
  gap: clamp(1.5rem, 4vw, 4rem);
}

.value { padding: 0; border: 0; border-top: 1px solid var(--color-border); }
.value h3 { margin: 1.35rem 0 0.55rem; }

.home-contact { padding: clamp(4rem, 7vw, 6.5rem) max(var(--gutter), calc((100vw - var(--maxw)) / 2)); }
.home-contact h2 { color: var(--cream); font-size: clamp(2.8rem, 5vw, 5rem); }

/* Shop and product pages */
.shop-hero {
  padding: clamp(5rem, 9vw, 8rem) 0 clamp(3rem, 5vw, 4.5rem);
  color: var(--ink);
  background: var(--cream);
}

.shop-hero h1 {
  max-width: 12ch;
  font-size: clamp(4.2rem, 7vw, 7.4rem);
  line-height: 0.9;
}

.shop-hero__intro { color: var(--color-muted-dark); }
.shop-shell { padding-top: 1rem; background: var(--white); }

.shop-search input,
.shop-sort select {
  border: 1px solid var(--color-border-light);
  border-radius: var(--radius-button);
  background: var(--cream);
}

.shop-filter { min-height: 48px; }
.shop-filter.is-active { color: var(--ink); }
.shop-results-head a { display: inline-flex; align-items: center; min-height: 44px; }
.shop-help { background: var(--cream); border-radius: var(--radius-md); }

.product-page { background: var(--white); }
.product-gallery__main { border-radius: var(--radius-sm); }
.product-gallery__main--contain {
  aspect-ratio: 4 / 5;
  background: #000;
}
.product-gallery__main--contain img { object-fit: contain; }
.product-gallery__main--pending { aspect-ratio: auto; height: clamp(240px, 35vw, 400px); }
.product-gallery__main--landscape { aspect-ratio: 1080 / 926; }
.shop-shell .product-card__media.product-card__media--contain img,
.section--shop-featured .product-card__media.product-card__media--contain img {
  object-fit: contain;
}
.product-image-caption {
  margin: 0.75rem 0 0;
  color: var(--color-muted-dark);
  font-size: 0.76rem;
  line-height: 1.5;
}
.product-help-links { display: flex; flex-wrap: wrap; gap: 0.35rem 1rem; }
.product-gallery__secondary { margin: 1.5rem 0 0; }
.product-gallery__secondary figcaption {
  margin-top: 0.7rem;
  color: var(--color-muted-dark);
  font-size: 0.78rem;
  line-height: 1.5;
}
.product-kicker {
  color: var(--plum);
  letter-spacing: 0;
  text-transform: none;
  font-size: 0.86rem;
}
.product-buybox h1 { font-size: clamp(3.4rem, 5vw, 5.4rem); }
.product-options h2 {
  margin: 0 0 0.25rem;
  font-size: 1.35rem;
}
.product-facts__list {
  list-style: none;
  margin: 0;
  padding: 0;
}
.product-facts__list li + li { margin-top: 0.3rem; }
.product-options textarea { width: 100%; padding: .85rem 1rem; border: 1px solid var(--color-border); font: inherit; min-height: 140px; resize: vertical; }
.checkout-options { display: block; margin-top: .5rem; color: var(--color-muted); font-size: .8rem; white-space: pre-line; overflow-wrap: anywhere; }
.product-options select,
.product-options input,
.product-options textarea,
.checkout-form input,
.checkout-form textarea,
.product-editor input,
.product-editor select,
.product-editor textarea,
.admin-login input,
.admin-toolbar input {
  min-height: 48px;
  border-radius: 6px;
  background: #FAF7F1;
}

.checkout-note { border-radius: 6px; }
.breadcrumbs a,
.product-assurance a,
.journey-card--bespoke > a,
.faq-list + p a { display: inline-flex; align-items: center; min-height: 44px; }
.breadcrumbs a { min-width: 44px; justify-content: center; }
.cart-item h2 a { display: flex; align-items: center; min-height: 44px; }
.cart-qty { grid-template-columns: 44px 40px 44px; }
.cart-qty button { min-width: 44px; min-height: 44px; cursor: pointer; }
.cart-remove,
.buy-now,
.continue-shopping { display: inline-flex; align-items: center; min-height: 44px; }
.cart-remove { min-width: 44px; }
.continue-shopping { justify-content: center; width: 100%; }

/* Footer and mobile */
@media (max-width: 1120px) {
  .main-nav {
    isolation: isolate;
    background-color: var(--cream);
    background-image: linear-gradient(var(--cream), var(--cream));
    border-bottom-color: var(--color-border-light);
    box-shadow: 0 16px 32px rgba(36,33,38,0.08);
  }
  .main-nav.open { transform: translateZ(0); }
  .main-nav a { color: var(--ink); }
  .main-nav a[aria-current="page"]::after { display: none; }
  .journey-split { grid-template-columns: 1fr; }
  .journey-card--bespoke { min-height: 430px; }
  .values-grid { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 820px) {
  :root { --header-h: 68px; --gutter: 1.25rem; }

  .site-header__inner { gap: 0.65rem; }
  .brand { gap: 9px; }
  .brand__mark { width: 34px; height: 34px; }
  .brand__name { font-size: 1.45rem; }
  .header-call { display: none; }
  .cart-link span { display: none; }
  .nav-toggle { width: 44px; height: 44px; }

  .page-hero {
    padding: 3.5rem 0 3rem;
  }

  .page-hero h1 {
    max-width: 13ch;
    font-size: clamp(3rem, 13vw, 4.3rem);
    line-height: 0.96;
  }

  .page-hero .lead { max-width: 34ch; }
  .section { padding: 4rem 0; }

  .store-hero {
    display: flex;
    flex-direction: column;
    min-height: 0;
  }

  .store-hero__image {
    position: relative;
    order: 0;
    height: clamp(390px, 57svh, 560px);
    min-height: 0;
  }

  .store-hero__image img { object-position: 68% center; }
  .store-hero__image::after {
    display: block;
    background: linear-gradient(0deg, rgba(36,33,38,0.28), transparent 36%);
  }

  .image-caption { right: 0.75rem; bottom: 0.75rem; max-width: 32ch; font-size: 0.61rem; }

  .store-hero__copy {
    order: 1;
    min-height: 0;
    padding: 2.75rem var(--gutter) 3.5rem;
    background: var(--cream);
  }

  .store-hero h1 {
    max-width: 7ch;
    margin-bottom: 1.35rem;
    font-size: clamp(3.75rem, 16vw, 5.2rem);
    line-height: 0.88;
  }

  .store-hero .lead { max-width: 32ch; font-size: 1.02rem; }
  .store-hero .hero__actions { align-items: flex-start; }
  .store-hero__proof { flex-wrap: wrap; margin-top: 1.75rem; }

  .category-strip {
    display: block;
    padding: 1rem 0 0.7rem var(--gutter);
  }

  .category-strip__title { margin-bottom: 0.35rem; }
  .category-strip__links { gap: 1.5rem; padding-right: var(--gutter); }
  .category-strip a { min-height: 48px; display: inline-flex; align-items: center; }

  .section-head--row { align-items: flex-end; gap: 1.25rem; }
  .section-head--row > a { flex: none; }

  .journey-card--hire { grid-template-columns: 1fr; min-height: 0; }
  .journey-card__image { min-height: min(72vw, 520px); }
  .journey-card__image--dashboard { min-height: min(135vw, 560px); }
  .journey-card__copy { padding: 2.75rem var(--gutter) 3.5rem; }
  .journey-card h2 { font-size: clamp(2.8rem, 12vw, 4.4rem); }
  .journey-card--bespoke { min-height: 0; padding: 4rem var(--gutter); }

  .values-grid { grid-template-columns: 1fr; gap: 2.5rem; }
  .value { padding-left: 0; }

  .home-contact { display: block; padding: 4rem var(--gutter); }
  .home-contact .hero__actions { align-items: flex-start; }

  .shop-hero { padding: 4rem 0 2.5rem; }
  .shop-hero__inner { gap: 1.25rem; }
  .shop-hero h1 { max-width: 9ch; font-size: clamp(3.4rem, 14vw, 5rem); }
  .shop-toolbar { margin-bottom: 1.75rem; padding: 1rem 0; }
  .shop-filters { padding-bottom: 0.35rem; }
  .shop-filter { min-height: 44px; border-radius: var(--radius-button); }
  .shop-filter.is-active { color: var(--white); }

  .product-detail { gap: 2rem; }
  .product-gallery__main { aspect-ratio: 1 / 1; }
  .product-gallery__main--contain { aspect-ratio: 4 / 5; }
  .product-gallery__main--landscape { aspect-ratio: 1080 / 926; }
  .product-gallery__main--pending { aspect-ratio: auto; height: 220px; }
  .product-buybox { padding-top: 0; }
  .product-buybox h1 { font-size: clamp(3rem, 12vw, 4.2rem); }
  .product-assurance div { grid-template-columns: 130px 1fr; }

  .form-shell { padding: 1.5rem 1.15rem; }
  .form-section { margin-bottom: 2.5rem; }
  .contact-grid { gap: 3.25rem; }

  .mobile-bar { display: none; }
  .site-footer { padding-bottom: 2.5rem; }
}

@media (max-width: 620px) {
  .hero__actions { flex-direction: column; align-items: stretch; }
  .hero__actions .btn { width: 100%; }
  .hero__actions .text-link { justify-content: center; }

  .section-head--row { display: block; }
  .section-head--row > a { display: inline-flex; margin-top: 0.75rem; }

  .product-grid--four {
    display: grid;
    grid-auto-flow: column;
    grid-auto-columns: minmax(76vw, 300px);
    grid-template-columns: none;
    gap: 1rem;
    margin-right: calc(var(--gutter) * -1);
    padding-right: var(--gutter);
    overflow-x: auto;
    overscroll-behavior-inline: contain;
    scroll-snap-type: inline mandatory;
    scrollbar-width: none;
  }

  .product-grid--four::-webkit-scrollbar { display: none; }
  .product-grid--four .product-card { scroll-snap-align: start; }

  .product-grid--shop {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 2rem 0.75rem;
  }

  .product-grid--shop .product-card__body h3 { font-size: 1.08rem; line-height: 1.1; }
  .product-grid--shop .product-card__title { min-height: 48px; }
  .product-grid--shop .product-card__meta,
  .product-grid--shop .product-card__desc,
  .product-grid--shop .price-note { display: none; }
  .product-grid--shop .product-card__foot { display: block; margin-top: 0.35rem; padding-top: 0; }
  .product-grid--shop .price { font-family: var(--font-body); font-size: 0.9rem; }
  .product-grid--shop .product-card__link { min-height: 44px; font-size: 0.74rem; }
  .product-grid--shop .product-card__badge--concept { right: 6px; bottom: 6px; font-size: 0.58rem; }

  .gallery-grid { columns: 1; }
  .gallery-item { margin-bottom: 2rem; }

  .product-purchase-row { grid-template-columns: 72px 1fr; }
  .breadcrumbs { flex-wrap: wrap; padding-bottom: 1.25rem; }

  .footer-grid {
    grid-template-columns: 1fr 1fr;
    gap: 2.5rem 1.5rem;
  }
  .footer-brand,
  .footer-grid > div:last-child { grid-column: 1 / -1; }
  .site-footer li a { display: flex; align-items: center; min-height: 44px; }
  .footer-bottom { display: grid; }
}

@media (max-width: 380px) {
  :root { --gutter: 1rem; }
  .brand__name { font-size: 1.32rem; }
  .store-hero h1 { font-size: 3.45rem; }
  .product-grid--shop { grid-template-columns: 1fr; }
  .product-grid--shop .product-card__meta,
  .product-grid--shop .product-card__desc { display: block; }
}

/* Supplied brand artwork: keep the rose-and-script lockup legible at both sizes. */
:root { --header-h: 96px; }

.brand {
  gap: 0;
  min-height: 44px;
}

.brand__logo {
  display: block;
  width: 145px;
  height: 94px;
  flex: none;
  object-fit: contain;
}

.footer-brand .brand__logo {
  width: 150px;
  height: 98px;
}

@media (max-width: 820px) {
  :root { --header-h: 82px; }

  .brand__logo {
    width: 112px;
    height: 78px;
  }

  .footer-brand .brand__logo {
    width: 132px;
    height: 86px;
  }
}

/* ============================================================
   Dark-only appearance
   ============================================================ */

html { background: var(--color-bg); }

.main-nav { background: var(--cream); }

:root[data-theme="dark"] {
  color-scheme: dark;
}

:root[data-theme="dark"] body {
  color: var(--ink);
  background: var(--cream);
}

:root[data-theme="dark"] a { color: var(--gold-soft); }
:root[data-theme="dark"] a:not(.btn):visited { color: var(--plum); }
:root[data-theme="dark"] .site-header {
  background: rgba(5, 5, 5, 0.96);
  border-bottom-color: var(--color-border-light);
}
:root[data-theme="dark"] .main-nav { background: var(--cream); }
:root[data-theme="dark"] .main-nav a:hover { color: var(--gold-soft); }
:root[data-theme="dark"] .main-nav a[aria-current="page"] { color: var(--gold-soft); }
:root[data-theme="dark"] .main-nav a[aria-current="page"]::after { background: var(--gold); }
:root[data-theme="dark"] .btn--primary {
  color: #050505;
  background: var(--gold);
  border-color: var(--gold);
}
:root[data-theme="dark"] .btn--primary:hover {
  color: #050505;
  background: var(--gold-soft);
  border-color: var(--gold-soft);
}
:root[data-theme="dark"] .btn--dark {
  color: #050505;
  background: var(--gold);
  border-color: var(--gold);
}
:root[data-theme="dark"] .btn--dark:hover {
  color: #050505;
  background: var(--gold-soft);
  border-color: var(--gold-soft);
}
:root[data-theme="dark"] .btn--light {
  color: var(--gold-soft);
  background: transparent;
  border-color: rgba(201, 166, 93, 0.58);
}
:root[data-theme="dark"] .btn--ghost { border-color: var(--color-border); }
:root[data-theme="dark"] .btn--ghost:hover { color: var(--gold-soft); border-color: var(--gold); }
:root[data-theme="dark"] .cart-link b { color: var(--cream); }

:root[data-theme="dark"] .store-hero,
:root[data-theme="dark"] .shop-hero,
:root[data-theme="dark"] .page-hero,
:root[data-theme="dark"] .section--light,
:root[data-theme="dark"] .section--stone,
:root[data-theme="dark"] .category-strip,
:root[data-theme="dark"] .section--shop-featured,
:root[data-theme="dark"] .shop-shell,
:root[data-theme="dark"] .product-page,
:root[data-theme="dark"] .commerce-page,
:root[data-theme="dark"] .admin-page {
  background: var(--cream);
  color: var(--ink);
}

:root[data-theme="dark"] .store-hero__image::after {
  background: linear-gradient(90deg, rgba(0, 0, 0, 0.98) 0%, rgba(0, 0, 0, 0.92) 33%, rgba(0, 0, 0, 0.56) 54%, rgba(0, 0, 0, 0.12) 80%);
}
:root[data-theme="dark"] .store-hero h1,
:root[data-theme="dark"] .shop-hero h1,
:root[data-theme="dark"] .page-hero h1,
:root[data-theme="dark"] .section--light h1,
:root[data-theme="dark"] .section--light h2,
:root[data-theme="dark"] .section--light h3,
:root[data-theme="dark"] .section--stone h2,
:root[data-theme="dark"] .section--stone h3 { color: var(--ink); }
:root[data-theme="dark"] .store-hero .lead { color: var(--color-muted-dark); }
:root[data-theme="dark"] .store-hero__proof { color: var(--color-muted-dark); }
:root[data-theme="dark"] .category-strip { border-color: var(--color-border-light); }
:root[data-theme="dark"] .category-strip a:hover { background: transparent; }
:root[data-theme="dark"] .category-strip__title,
:root[data-theme="dark"] .category-strip small { color: var(--color-muted-dark); }

:root[data-theme="dark"] .section--light .card,
:root[data-theme="dark"] .section--stone .card,
:root[data-theme="dark"] .section--shop-featured .product-card,
:root[data-theme="dark"] .card,
:root[data-theme="dark"] .booking-card,
:root[data-theme="dark"] .form-shell,
:root[data-theme="dark"] .checkout-form,
:root[data-theme="dark"] .order-summary,
:root[data-theme="dark"] .success-panel,
:root[data-theme="dark"] .admin-login,
:root[data-theme="dark"] .product-editor {
  background: var(--color-surface);
  color: var(--ink);
  border-color: var(--color-border);
}
:root[data-theme="dark"] .product-card__media,
:root[data-theme="dark"] .shop-shell .product-card__media,
:root[data-theme="dark"] .product-gallery__main { background: #161616; }
:root[data-theme="dark"] .product-card__body,
:root[data-theme="dark"] .section--shop-featured .product-card__body { color: var(--ink); }
:root[data-theme="dark"] .product-card__desc,
:root[data-theme="dark"] .product-card__meta,
:root[data-theme="dark"] .section-head p,
:root[data-theme="dark"] .shop-hero__intro,
:root[data-theme="dark"] .product-description,
:root[data-theme="dark"] .shop-results-head,
:root[data-theme="dark"] .product-assurance span,
:root[data-theme="dark"] .secure-note { color: var(--color-muted-dark); }
:root[data-theme="dark"] .value > strong,
:root[data-theme="dark"] .product-kicker { color: var(--plum); }
:root[data-theme="dark"] .journey-card--hire { background: var(--cream); color: var(--ink); }
:root[data-theme="dark"] .journey-card__copy { color: var(--ink); }
:root[data-theme="dark"] .journey-card--bespoke { background: #151515; color: var(--ink); }
:root[data-theme="dark"] .journey-card--bespoke .journey-card__label { color: var(--plum); }
:root[data-theme="dark"] .journey-card--bespoke a { color: var(--ink); }

:root[data-theme="dark"] .form-field input,
:root[data-theme="dark"] .form-field select,
:root[data-theme="dark"] .form-field textarea,
:root[data-theme="dark"] .shop-search input,
:root[data-theme="dark"] .shop-sort select,
:root[data-theme="dark"] .product-options select,
:root[data-theme="dark"] .product-options input,
:root[data-theme="dark"] .product-options textarea,
:root[data-theme="dark"] .checkout-form input,
:root[data-theme="dark"] .checkout-form textarea,
:root[data-theme="dark"] .product-editor input,
:root[data-theme="dark"] .product-editor select,
:root[data-theme="dark"] .product-editor textarea,
:root[data-theme="dark"] .admin-login input,
:root[data-theme="dark"] .admin-toolbar input {
  color: var(--ink);
  background: #151515;
  border-color: var(--color-border);
}
:root[data-theme="dark"] .choice-chip span {
  color: var(--ink);
  background: #151515;
  border-color: var(--color-border);
}
:root[data-theme="dark"] .choice-chip input:checked + span {
  color: #050505;
  background: var(--gold);
  border-color: var(--gold);
}
:root[data-theme="dark"] .checkout-note,
:root[data-theme="dark"] .shop-help,
:root[data-theme="dark"] .shop-empty,
:root[data-theme="dark"] .empty-state { background: #141414; color: var(--ink); }
:root[data-theme="dark"] .cart-item,
:root[data-theme="dark"] .admin-product-row { background: var(--color-surface); color: var(--ink); }
:root[data-theme="dark"] .cart-item img { background: #161616; }
:root[data-theme="dark"] .cart-qty { border-color: var(--color-border); }
:root[data-theme="dark"] .admin-detail { background: var(--color-surface) !important; color: var(--ink) !important; }
:root[data-theme="dark"] .shop-filter.is-active,
:root[data-theme="dark"] .filter-btn[aria-pressed="true"] {
  color: var(--gold-soft);
  background: rgba(201, 166, 93, 0.12);
  border-color: rgba(201, 166, 93, 0.58);
}
:root[data-theme="dark"] .admin-nav a[aria-current] { background: var(--color-surface-2); color: var(--gold-soft); }
:root[data-theme="dark"] .admin-product-state { background: #1C1C1C; color: var(--ink); }
:root[data-theme="dark"] .admin-product-state.is-live { background: #2D4A38; color: #C8F0D2; }
:root[data-theme="dark"] .checkout-error { background: #4B2927; color: #FFD1C8; }
:root[data-theme="dark"] .success-mark { background: #2D4A38; }

:root[data-theme="dark"] .cta-band,
:root[data-theme="dark"] .home-contact {
  color: var(--ink);
  background: #000000;
}
:root[data-theme="dark"] .cta-band h2,
:root[data-theme="dark"] .home-contact h2 { color: var(--ink); }
:root[data-theme="dark"] .cta-band p,
:root[data-theme="dark"] .home-contact p { color: #C8BFB9; }
:root[data-theme="dark"] .cta-band .btn--ghost,
:root[data-theme="dark"] .home-contact .text-link { color: var(--ink); }
:root[data-theme="dark"] .site-footer {
  color: var(--ink);
  background: #000000;
}
:root[data-theme="dark"] .site-footer h4,
:root[data-theme="dark"] .site-footer .brand { color: var(--ink); }
:root[data-theme="dark"] .site-footer .footer-brand p,
:root[data-theme="dark"] .site-footer .footer-grid a,
:root[data-theme="dark"] .site-footer .footer-bottom { color: #B7ADA7; }

@media (max-width: 820px) {
  .store-hero {
    position: relative;
    display: grid;
    min-height: max(760px, calc(100svh - var(--header-h)));
    overflow: hidden;
    isolation: isolate;
  }

  .store-hero__image {
    position: absolute;
    inset: 0;
    order: unset;
    width: 100%;
    height: 100%;
  }

  .store-hero__image img { object-position: 68% center; }

  .store-hero__image::after {
    display: block;
    background: linear-gradient(180deg, rgba(244, 240, 232, 0.02) 12%, rgba(244, 240, 232, 0.14) 34%, rgba(244, 240, 232, 0.78) 62%, rgba(244, 240, 232, 0.98) 91%);
  }

  .store-hero__copy {
    position: relative;
    z-index: 2;
    order: unset;
    min-height: inherit;
    padding: clamp(11rem, 29svh, 15rem) var(--gutter) 8rem;
    background: transparent;
    justify-content: flex-end;
  }

  .store-hero h1 {
    max-width: 8ch;
    margin-bottom: 1rem;
    font-size: clamp(3.55rem, 15vw, 4.9rem);
  }

  .store-hero .lead { max-width: 33ch; }
  .store-hero .hero__actions { margin-top: 0.2rem; }
  .store-hero__proof { margin-top: 1.35rem; }
  .store-hero .image-caption { display: none; }

  :root[data-theme="dark"] .store-hero__image::after {
    background: linear-gradient(180deg, rgba(0, 0, 0, 0.03) 10%, rgba(0, 0, 0, 0.12) 34%, rgba(0, 0, 0, 0.82) 65%, rgba(0, 0, 0, 0.98) 92%);
  }

  :root[data-theme="dark"] .store-hero h1 {
    color: #F3EEE6;
    text-shadow: 0 2px 18px rgba(0, 0, 0, 0.24);
  }

  :root[data-theme="dark"] .store-hero .lead,
  :root[data-theme="dark"] .store-hero__proof { color: #D8D0CB; }
}
