/* Quiet, readable surfaces for choosing a memorial tribute. */
body { line-height: 1.7; }
.footer-grid .footer-heading { color: var(--color-accent); font: 600 var(--fs-small)/1.5 var(--font-body); letter-spacing: 0.1em; text-transform: uppercase; margin-bottom: var(--space-2); }
h1, h2, h3 { letter-spacing: -0.025em; }
h2, h3 { line-height: 1.12; }
:root[data-theme="dark"] .site-header { background: var(--color-bg); }
.site-header__inner, .main-nav, .header-cta { min-width: 0; }
.main-nav { gap: 0.15rem; }
.main-nav a { font-size: 0.9rem; white-space: nowrap; }
.header-cta { flex-shrink: 0; }
.cart-link span { display: inline; }
.cart-link b:not(.has-items) { display: none; }
.cart-link { min-height: 44px; }
.remembrance-hero {
  background: var(--color-bg);
  color: var(--color-text);
  padding: clamp(4rem, 7vw, 6rem) var(--gutter) var(--space-6);
  min-height: 640px;
  display: flex;
  flex-direction: column;
  justify-content: center;
}
.remembrance-hero__inner { width: 100%; max-width: var(--maxw); margin-inline: auto; }
.remembrance-hero--centred { text-align: center; }
.remembrance-hero h1 {
  font: 400 clamp(3.1rem, 7.5vw, 6.75rem)/1.04 var(--font-display);
  letter-spacing: -0.035em;
  margin: 0;
}
.remembrance-hero h1 span { display: block; }
.remembrance-hero__lead {
  color: var(--color-muted-dark);
  font-size: 1.0625rem;
  line-height: 1.75;
  max-width: 37ch;
  margin: var(--space-4) auto;
}
.remembrance-hero__actions {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--space-2);
}
.remembrance-hero__actions .btn { min-height: 52px; padding-inline: var(--space-4); }
.remembrance-hero__actions .text-link {
  min-height: 44px;
  display: inline-flex;
  align-items: center;
  font-size: 0.9375rem;
  font-weight: 400;
}
.remembrance-hero__place { margin: var(--space-4) 0 0; color: var(--color-muted); font-size: var(--fs-small); }
:root[data-theme="dark"] .main-nav a:visited,
:root[data-theme="dark"] .product-card__title:visited,
:root[data-theme="dark"] .product-card__link:visited { color: var(--color-text); }
.btn, .product-card__link, .text-link { font-size: 0.95rem; }
.btn:hover, .card:hover, .product-card:hover { transform: none; }
.btn:active { opacity: 0.85; }
.btn:focus-visible, a:focus-visible, button:focus-visible, summary:focus-visible,
input:focus-visible, textarea:focus-visible, select:focus-visible {
  outline: 2px solid var(--color-accent-soft);
  outline-offset: 4px;
}
.store-hero { min-height: min(740px, calc(100svh - var(--header-h))); }
.store-hero__copy { padding-block: clamp(3rem, 6vw, 5.5rem); }
.store-hero h1 {
  max-width: 11ch;
  font-size: clamp(3.8rem, 6.8vw, 6.3rem);
  line-height: 1.02;
  letter-spacing: -0.035em;
  margin-bottom: var(--space-3);
}
.store-hero .lead { max-width: 36ch; line-height: 1.75; }
.store-hero__proof { font-size: 0.9rem; margin-top: var(--space-3); }
.page-hero { padding-block: clamp(2.75rem, 5vw, 4.5rem); }
.page-hero h1, .shop-hero h1 {
  max-width: 20ch;
  font-size: clamp(2.5rem, 4.8vw, 4.8rem);
  line-height: 1.08;
}
.section { padding-block: clamp(3rem, 6vw, 5rem); }
.section-head h2 { max-width: 24ch; }
.product-grid--featured-hearts { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-4); }
.product-grid--featured-hearts .product-card__media { aspect-ratio: 6 / 5; }
.product-grid--featured-hearts .product-card__body h3 { font-size: 1.7rem; }
:root[data-theme="dark"] .section--shop-featured .product-card { background: transparent; }
.product-card__media--contain img { object-fit: contain; padding: var(--space-1); }
.product-card__media img, .product-card:hover .product-card__media img,
.gallery-item__btn:hover img { transform: none; transition: none; }
.product-card__desc { line-height: 1.65; }
.photo-pending { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: var(--space-2); width: 100%; height: 100%; min-height: 180px; padding: var(--space-3); background: var(--color-surface); color: var(--color-muted-dark); font: 0.95rem/1.6 var(--font-body); }
.photo-pending svg { width: 40px; height: 40px; color: var(--color-accent); }
.split__media img[src*="/hearts/"] { object-fit: contain; }
.hire-piece .split__media img { object-fit: contain; background: #080808; }
.product-photo-link { font-size: 0.9rem; }
.product-page > .container > .breadcrumbs { padding-block: var(--space-3); }
.product-card__foot { gap: var(--space-2); }
.price-note, .product-card__meta { font-size: 0.85rem; line-height: 1.6; }
.journey-split { grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr); }
.journey-card--hire { grid-template-columns: 1fr; min-height: 480px; }
.journey-card--bespoke { min-height: 480px; }
.journey-card__copy, .journey-card--bespoke { padding: clamp(1.75rem, 3.5vw, 3rem); }
.journey-card h2, .journey-card--bespoke h2 { font-size: clamp(2.2rem, 3vw, 3.2rem); line-height: 1.12; }
.home-contact { padding-block: var(--space-6); }
.home-contact h2 { font-size: var(--fs-h2); }
.home-contact p { max-width: 54ch; }
.shop-hero__intro { max-width: 48ch; line-height: 1.8; }
.shop-filter { min-height: 48px; font-size: 0.95rem; }
.shop-help p { font-size: 0.9rem; }
.shop-help a { display: inline-flex; align-items: center; min-height: 44px; }
.shop-search input, .shop-sort select { font-size: 1rem; min-height: 48px; }
.product-detail { grid-template-columns: minmax(0, 1fr) minmax(0, 0.9fr); column-gap: clamp(2rem, 6vw, 5rem); row-gap: 0; align-items: start; }
.product-heading { grid-column: 2; grid-row: 1; }
.product-heading h1 { font-size: clamp(2.3rem, 3.6vw, 3.8rem); line-height: 1.1; margin: 0 0 var(--space-2); }
.product-heading .product-price { margin-bottom: var(--space-3); }
.product-gallery { grid-column: 1; grid-row: 1 / 3; }
.product-buybox { grid-column: 2; grid-row: 2; position: static; min-width: 0; }
.product-description { font-size: 1rem; line-height: 1.75; }
.product-description p { margin-bottom: var(--space-2); }
.product-timing { padding-block: var(--space-2); border-block: 1px solid var(--color-border-light); font-size: 0.95rem; }
.product-timing strong { color: var(--color-text); margin-right: 0.5rem; }
.product-options { margin-block: var(--space-4); gap: var(--space-3); }
.product-options h2 { font-size: 1.8rem; margin-bottom: 0; }
.product-options__hint { margin: 0; color: var(--color-muted-dark); font-size: 0.95rem; line-height: 1.65; }
.product-options label { font-size: 1rem; gap: 0.5rem; }
.product-options label span { font-size: 0.875rem; }
.product-options input, .product-options select, .quantity input { font-size: 1rem; min-height: 50px; }
.product-purchase-row:has([data-enquire-product]) { grid-template-columns: 1fr; }
.product-purchase-row .btn { white-space: normal; }
.product-assurance { gap: var(--space-3); }
.product-assurance strong { font-size: 0.95rem; }
.product-assurance span { font-size: 0.875rem; line-height: 1.6; }
.product-assurance a { display: inline-flex; align-items: center; min-height: 44px; }
.checkout-note { line-height: 1.7; font-size: 0.9rem; }
.product-facts summary, .faq-item summary { min-height: 52px; font-size: 1.05rem; line-height: 1.5; }
.product-facts dl { font-size: 0.95rem; line-height: 1.7; }
.faq-list { max-width: var(--maxw-text); margin-inline: auto; }
.faq-answer { font-size: 1rem; line-height: 1.8; }
.contact-grid { grid-template-columns: minmax(0, 0.8fr) minmax(0, 1.2fr); gap: clamp(2rem, 5vw, 4.5rem); }
.contact-method span { overflow-wrap: anywhere; }
.contact-method strong { font-size: 1rem; }
.contact-method span span { font-size: 0.95rem; }
.form-grid > *, .form-field { min-width: 0; }
.form-field input, .form-field select, .form-field textarea,
.checkout-form input, .checkout-form select, .checkout-form textarea { font-size: 1rem; }
.form-section legend { font-size: 1.45rem; }
.form-section__hint, .field-hint, .consent-row, .form-note { font-size: 0.9rem; line-height: 1.7; }
.choice-chip span { min-height: 44px; font-size: 0.9rem; }
.choice-chip input:focus-visible + span { outline: 2px solid var(--color-accent-soft); outline-offset: 3px; }
.enquiry-essentials { margin-bottom: var(--space-4); }
.enquiry-more { margin-block: var(--space-3) var(--space-4); padding-block: var(--space-2); border-block: 1px solid var(--color-border); }
.enquiry-more > summary { padding-block: 0.5rem; min-height: 48px; cursor: pointer; font-size: 1rem; }
.enquiry-more > summary span { color: var(--color-muted-dark); font-size: 0.875rem; }
.enquiry-more > summary:hover { color: var(--color-accent-soft); }
.enquiry-more[open] > summary { margin-bottom: var(--space-3); }
.enquiry-more .form-section { margin-bottom: 0; }
.enquiry-feedback { padding: var(--space-3); margin-top: var(--space-3); border: 1px solid var(--color-accent); border-radius: var(--radius-md); background: var(--color-bg); }
.enquiry-feedback h3 { font-size: 1.5rem; }
.enquiry-feedback p, .enquiry-feedback label { font-size: 0.95rem; }
.enquiry-feedback textarea { display: block; width: 100%; margin-top: 0.5rem; padding: var(--space-2); color: var(--color-text); background: var(--color-surface); border: 1px solid var(--color-border); font: 1rem/1.6 var(--font-body); resize: vertical; }
.booking-card__head { grid-template-columns: 1fr; }
.booking-card > #form-body > .form-field { margin-block: var(--space-3); }
.commerce-page h1 { font-size: clamp(2.6rem, 4.8vw, 4.5rem); line-height: 1.12; }
.cart-qty { grid-template-columns: 44px 40px 44px; }
.cart-qty button { min-height: 44px; color: var(--color-text); }
.cart-remove { min-height: 44px; font-size: 0.9rem; }
.secure-note, .continue-shopping { font-size: 0.875rem; line-height: 1.7; }
.site-footer { border-top: 1px solid var(--color-border-light); }
.site-footer a { overflow-wrap: anywhere; }
.site-footer li a { min-height: 44px; display: inline-flex; align-items: center; }
@media (max-width: 1150px) { .header-call { display: none; } }
@media (max-width: 1000px) {
  .journey-split { grid-template-columns: 1fr; }
  .journey-card--bespoke { min-height: auto; padding-block: var(--space-5); }
}
@media (max-width: 820px) {
  .hire-piece .split__media { order: -1; }
  .main-nav { max-height: calc(100svh - var(--header-h)); overflow-y: auto; }
  .remembrance-hero { min-height: 570px; padding-block: var(--space-5); text-align: center; }
  .remembrance-hero h1 { font-size: clamp(2.75rem, 11.7vw, 4.5rem); line-height: 1.08; }
  .remembrance-hero__actions { width: 100%; }
  .remembrance-hero__actions .btn { width: min(100%, 340px); }
  .store-hero { min-height: 640px; }
  .store-hero__copy { min-height: 640px; padding: 7rem var(--gutter) 2.75rem; justify-content: flex-start; }
  .store-hero h1 { max-width: 11ch; font-size: clamp(3.05rem, 12.8vw, 4.7rem); line-height: 1.04; }
  :root[data-theme="dark"] .store-hero__image::after { background: linear-gradient(180deg, color-mix(in srgb, var(--color-bg) 48%, transparent), color-mix(in srgb, var(--color-bg) 68%, transparent) 42%, var(--color-bg) 100%); }
  .store-hero .lead { max-width: 32ch; font-size: 1.05rem; }
  .store-hero .hero__actions { align-items: flex-start; gap: 0.5rem; }
  .store-hero .hero__actions .btn { width: 100%; }
  .store-hero__proof { margin-top: var(--space-2); }
  .product-detail { display: flex; flex-direction: column; gap: var(--space-3); }
  .product-heading, .product-gallery, .product-buybox { width: 100%; }
  .product-heading h1 { max-width: 17ch; }
  .product-heading .product-price { margin-bottom: 0; }
  .product-kicker { margin-bottom: 0.65rem; }
  .contact-grid { grid-template-columns: 1fr; }
  .contact-grid > div:first-child { max-width: 100%; }
  .home-contact .hero__actions { align-items: flex-start; }
}
@media (max-width: 620px) {
  .product-grid--featured-hearts, .product-grid--shop { grid-template-columns: 1fr; gap: var(--space-4); }
  .product-grid--shop .product-card__media { aspect-ratio: 6 / 5; }
  .product-grid--shop .product-card__body h3 { font-size: 1.5rem; }
  .product-grid--shop .price-note { display: block; font-size: 0.875rem; }
  .product-grid--shop .price { font-size: 1.1rem; }
  .product-grid--shop .product-card__foot { display: flex; align-items: center; }
  .product-grid--shop .product-card__link { font-size: 0.95rem; }
  .product-grid--shop .product-card__badge--concept { font-size: 0.75rem; }
  .journey-card--hire { min-height: auto; }
  .journey-card__image { min-height: 0; height: 240px; }
  .journey-card__image--dashboard { height: min(135vw, 560px); }
  .product-assurance { grid-template-columns: 1fr; }
  .product-assurance > div { display: grid; grid-template-columns: 100px 1fr; gap: 1rem; }
  .product-facts dl { grid-template-columns: 1fr; gap: 0.35rem; }
  .product-facts dd { margin: 0 0 1rem; }
  .form-shell, .booking-card { padding: 1.5rem 1rem; }
  .footer-grid { gap: var(--space-4); }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
  .reveal, [data-appear], [data-reveal], [data-stagger-child] { opacity: 1 !important; transform: none !important; }
}
