

@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,300;0,400;0,500;0,600;1,300;1,400;1,500;1,600&family=DM+Sans:ital,opsz,wght@0,9..40,300;0,9..40,400;0,9..40,500;0,9..40,600;1,9..40,300;1,9..40,400&display=swap');
/* =============================================================================
   AscendaCo — Main CSS Entry Point
   Imports all partials in order.
   ============================================================================= */
/* =============================================================================
   01 — Design Tokens
   All CSS custom properties for the AscendaCo theme.
   ============================================================================= */
:root {
  /* ---------------------------------------------------------------------------
     Color System — Light (default)
     --------------------------------------------------------------------------- */

  /* Core palette */
  --clr-bg:             hsl(36, 33%, 97%);   /* off-white cream */
  --clr-fg:             hsl(20, 8%, 15%);    /* dark charcoal */
  --clr-primary:        hsl(28, 40%, 59%);   /* warm bronze/tan */
  --clr-secondary:      hsl(30, 14%, 43%);   /* dark brown */
  --clr-card:           hsl(30, 20%, 95%);   /* subtle off-white */
  --clr-muted:          hsl(30, 14%, 93%);   /* light beige */
  --clr-muted-fg:       hsl(25, 6%, 40%);    /* medium gray */
  --clr-border:         hsl(30, 18%, 91%);   /* light gray-brown */

  /* Semantic aliases */
  --clr-background:     var(--clr-bg);
  --clr-foreground:     var(--clr-fg);

  /* Popover / elevated surfaces */
  --clr-popover:        hsl(36, 33%, 97%);
  --clr-popover-fg:     hsl(20, 8%, 15%);

  /* Destructive / error */
  --clr-destructive:    hsl(0, 72%, 51%);
  --clr-destructive-fg: hsl(0, 0%, 100%);

  /* Success */
  --clr-success:        hsl(150, 30%, 40%);
  --clr-success-fg:     hsl(0, 0%, 100%);

  /* Warning */
  --clr-warning:        hsl(38, 92%, 50%);
  --clr-warning-fg:     hsl(20, 8%, 15%);

  /* ---------------------------------------------------------------------------
     Dark Section Colors (inline use on dark BG sections, not theme-level dark)
     --------------------------------------------------------------------------- */

  --clr-dark-bg:        hsl(20, 8%, 8%);
  --clr-dark-fg:        hsl(36, 33%, 97%);
  --clr-dark-muted:     hsl(20, 8%, 18%);
  --clr-dark-border:    hsl(20, 8%, 20%);
  --clr-dark-muted-fg:  hsl(30, 8%, 60%);

  /* ---------------------------------------------------------------------------
     Typography
     --------------------------------------------------------------------------- */

  --font-display: 'Cormorant Garamond', 'Cormorant', Georgia, serif;
  --font-body:    'DM Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;

  /* Font weights */
  --fw-light:    300;
  --fw-regular:  400;
  --fw-medium:   500;
  --fw-semibold: 600;

  /* Font sizes — fluid */
  --text-xs:   0.6875rem;  /* 11px */
  --text-sm:   0.75rem;    /* 12px */
  --text-base: 0.875rem;   /* 14px */
  --text-md:   0.9375rem;  /* 15px */
  --text-lg:   1rem;       /* 16px */
  --text-xl:   1.25rem;    /* 20px */
  --text-2xl:  1.5rem;     /* 24px */
  --text-3xl:  2rem;       /* 32px */
  --text-4xl:  2.75rem;    /* 44px */
  --text-5xl:  3.5rem;     /* 56px */

  /* Hero heading: clamp(2.75rem, 5vw, 4.5rem) */
  --text-hero:    clamp(2.75rem, 5vw, 4.5rem);
  /* Section h2: clamp(2rem, 3vw, 2.75rem) */
  --text-section: clamp(2rem, 3vw, 2.75rem);

  /* Line heights */
  --leading-tight:  1.05;
  --leading-snug:   1.2;
  --leading-normal: 1.5;
  --leading-relaxed:1.6;
  --leading-loose:  1.8;

  /* Letter spacings */
  --tracking-tighter: -0.02em;
  --tracking-tight:   -0.01em;
  --tracking-normal:   0em;
  --tracking-wide:     0.05em;
  --tracking-wider:    0.1em;
  --tracking-widest:   0.2em;
  --tracking-label:    0.3em;    /* section labels */
  --tracking-btn:      0.25em;   /* button text */

  /* ---------------------------------------------------------------------------
     Spacing Scale (Tailwind-equivalent ×0.25rem = 4px unit)
     --------------------------------------------------------------------------- */

  --space-0:   0;
  --space-px:  1px;
  --space-0-5: 0.125rem;  /* 2px */
  --space-1:   0.25rem;   /* 4px */
  --space-1-5: 0.375rem;  /* 6px */
  --space-2:   0.5rem;    /* 8px */
  --space-2-5: 0.625rem;  /* 10px */
  --space-3:   0.75rem;   /* 12px */
  --space-3-5: 0.875rem;  /* 14px */
  --space-4:   1rem;      /* 16px */
  --space-5:   1.25rem;   /* 20px */
  --space-6:   1.5rem;    /* 24px */
  --space-7:   1.75rem;   /* 28px */
  --space-8:   2rem;      /* 32px */
  --space-9:   2.25rem;   /* 36px */
  --space-10:  2.5rem;    /* 40px */
  --space-11:  2.75rem;   /* 44px */
  --space-12:  3rem;      /* 48px */
  --space-14:  3.5rem;    /* 56px */
  --space-16:  4rem;      /* 64px */
  --space-18:  4.5rem;    /* 72px */
  --space-20:  5rem;      /* 80px */
  --space-24:  6rem;      /* 96px */
  --space-28:  7rem;      /* 112px */
  --space-32:  8rem;      /* 128px */
  --space-36:  9rem;      /* 144px */
  --space-40:  10rem;     /* 160px */

  /* ---------------------------------------------------------------------------
     Container
     --------------------------------------------------------------------------- */

  --container-max:  1400px;
  --container-px:   clamp(1.5rem, 4vw, 2rem);
  --container-sm:   640px;
  --container-md:   768px;
  --container-lg:   1024px;
  --container-xl:   1280px;

  /* ---------------------------------------------------------------------------
     Section Spacing
     --------------------------------------------------------------------------- */

  --section-py:    clamp(5rem, 8vw, 7rem);
  --section-py-sm: clamp(3rem, 5vw, 4rem);

  /* ---------------------------------------------------------------------------
     Transitions & Easing
     --------------------------------------------------------------------------- */

  --ease-out-expo:  cubic-bezier(0.22, 1, 0.36, 1);
  --ease-in-out:    cubic-bezier(0.4, 0, 0.2, 1);
  --ease-bounce:    cubic-bezier(0.34, 1.56, 0.64, 1);

  --transition-fast: 150ms;
  --transition-base: 300ms;
  --transition-slow: 500ms;
  --transition-xl:   1200ms;

  /* Composed transition shorthands */
  --trans-fast: var(--transition-fast) var(--ease-out-expo);
  --trans-base: var(--transition-base) var(--ease-out-expo);
  --trans-slow: var(--transition-slow) var(--ease-out-expo);
  --trans-xl:   var(--transition-xl) var(--ease-out-expo);

  /* ---------------------------------------------------------------------------
     Z-Index Scale
     --------------------------------------------------------------------------- */

  --z-below:    -1;
  --z-base:      0;
  --z-raised:   10;
  --z-toolbar:  30;
  --z-nav:      50;
  --z-drawer:   60;
  --z-search:   70;
  --z-overlay:  80;
  --z-toast:    90;
  --z-modal:   100;

  /* ---------------------------------------------------------------------------
     Border Radius — always 0 (brand requirement)
     --------------------------------------------------------------------------- */

  --radius:    0;
  --radius-sm: 0;
  --radius-md: 0;
  --radius-lg: 0;
  --radius-xl: 0;

  /* ---------------------------------------------------------------------------
     Border
     --------------------------------------------------------------------------- */

  --border-width: 1px;
  --border:       1px solid var(--clr-border);

  /* ---------------------------------------------------------------------------
     Shadows
     --------------------------------------------------------------------------- */

  --shadow-xs: 0 1px 4px hsl(20 8% 15% / 0.04);
  --shadow-sm: 0 2px 8px hsl(20 8% 15% / 0.06);
  --shadow-md: 0 4px 20px hsl(20 8% 15% / 0.08);
  --shadow-lg: 0 8px 40px hsl(20 8% 15% / 0.10);
  --shadow-xl: 0 16px 60px hsl(20 8% 15% / 0.12);

  /* ---------------------------------------------------------------------------
     Layout Dimensions
     --------------------------------------------------------------------------- */

  --navbar-height:   68px;
  --announcement-h: 40px;

  /* Thumbnail / image ratios (for reference in JS) */
  --ratio-square:    1 / 1;
  --ratio-portrait:  3 / 4;
  --ratio-landscape: 4 / 3;
  --ratio-wide:      16 / 9;
  --ratio-tall:      4 / 5;
}
/* =============================================================================
   Dark Theme — applied via [data-theme="dark"] or .dark on <html>/<body>
   Overrides light tokens for a full site dark mode if ever needed.
   ============================================================================= */
[data-theme="dark"],
.dark {
  --clr-bg:       hsl(20, 8%, 8%);
  --clr-fg:       hsl(36, 33%, 97%);
  --clr-primary:  hsl(28, 40%, 59%);
  --clr-secondary:hsl(30, 14%, 65%);
  --clr-card:     hsl(20, 8%, 12%);
  --clr-muted:    hsl(20, 8%, 16%);
  --clr-muted-fg: hsl(30, 8%, 58%);
  --clr-border:   hsl(20, 8%, 22%);
  --clr-popover:  hsl(20, 8%, 12%);
  --clr-popover-fg: hsl(36, 33%, 97%);
}
/* =============================================================================
   02 — Reset
   Minimal, opinionated reset tuned for the AscendaCo theme.
   ============================================================================= */
/* Box model */
*,
*::before,
*::after {
  box-sizing: border-box;
}
/* Root */
html {
  scroll-behavior: smooth;
  -moz-text-size-adjust: 100%;
       text-size-adjust: 100%;
  -webkit-text-size-adjust: 100%;
  -moz-tab-size: 4;
    -o-tab-size: 4;
       tab-size: 4;
}
body {
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeLegibility;
}
/* Remove default margins */
*,
h1,
h2,
h3,
h4,
h5,
h6,
p,
figure,
blockquote,
dl,
dd {
  margin: 0;
}
/* Remove default padding and list style */
ul,
ol {
  list-style: none;
  padding: 0;
  margin: 0;
}
/* Media elements */
img,
video,
canvas,
svg,
audio {
  max-width: 100%;
  display: block;
}
img,
video {
  height: auto;
}
/* Links */
a {
  color: inherit;
  text-decoration: none;
}
/* Buttons */
button {
  cursor: pointer;
  border: none;
  background: none;
  padding: 0;
  font: inherit;
  color: inherit;
}
/* Form elements inherit font */
input,
select,
textarea,
optgroup {
  font: inherit;
  color: inherit;
}
/* Remove inner border/padding on Firefox buttons */
button::-moz-focus-inner,
[type="button"]::-moz-focus-inner,
[type="reset"]::-moz-focus-inner,
[type="submit"]::-moz-focus-inner {
  border-style: none;
  padding: 0;
}
/* Textarea resize only vertical */
textarea {
  resize: vertical;
}
/* Tables */
table {
  border-collapse: collapse;
  border-spacing: 0;
}
/* Horizontal rule */
hr {
  border: none;
  border-top: 1px solid var(--clr-border);
  margin: 0;
}
/* Quotes */
blockquote,
q {
  quotes: none;
}
/* Remove outline for non-keyboard focus */
:focus:not(:focus-visible) {
  outline: none;
}
/* Hidden attribute */
[hidden] {
  display: none !important;
}
/* Abbreviation */
abbr[title] {
  -webkit-text-decoration: underline dotted;
          text-decoration: underline dotted;
  cursor: help;
}
/* Code */
pre,
code,
kbd,
samp {
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
  font-size: 1em;
}
pre {
  overflow-x: auto;
}
/* Sub/Sup */
sub,
sup {
  font-size: 75%;
  line-height: 0;
  position: relative;
  vertical-align: baseline;
}
sub { bottom: -0.25em; }
sup { top: -0.5em; }
/* Summary */
summary {
  cursor: pointer;
}
/* Dialog */
dialog {
  padding: 0;
  border: none;
  background: transparent;
}
/* SVG */
svg {
  display: block;
  overflow: visible;
}
/* Pointer events on SVG paths */
svg path,
svg rect,
svg circle,
svg polygon {
  pointer-events: none;
}
/* =============================================================================
   03 — Typography
   Global type system: body, headings, utilities, editorial classes.
   ============================================================================= */
/* ---------------------------------------------------------------------------
   Google Fonts Import
   --------------------------------------------------------------------------- */
/* ---------------------------------------------------------------------------
   Base Body
   --------------------------------------------------------------------------- */
body {
  font-family: var(--font-body);
  font-size: var(--text-base);          /* 14px */
  font-weight: var(--fw-regular);
  line-height: var(--leading-relaxed);  /* 1.6 */
  letter-spacing: 0.01em;
  color: var(--clr-fg);
  background-color: var(--clr-bg);
}
/* ---------------------------------------------------------------------------
   Headings — Cormorant Garamond, light weight by default
   --------------------------------------------------------------------------- */
h1,
h2,
h3,
h4,
h5,
h6 {
  font-family: var(--font-display);
  font-weight: var(--fw-light);
  line-height: var(--leading-tight);
  letter-spacing: var(--tracking-tight);
  color: var(--clr-fg);
}
h1 {
  font-size: clamp(2.25rem, 4vw, 3.5rem);
  letter-spacing: -0.02em;
}
h2 {
  font-size: var(--text-section); /* clamp(2rem, 3vw, 2.75rem) */
}
h3 {
  font-size: clamp(1.5rem, 2.5vw, 2rem);
}
h4 {
  font-size: clamp(1.25rem, 2vw, 1.5rem);
}
h5 {
  font-size: 1.125rem;
}
h6 {
  font-size: 1rem;
  font-weight: var(--fw-medium);
  letter-spacing: 0.01em;
}
/* Intentional italics in headings (em/i look editorial) */
h1 em, h2 em, h3 em, h4 em, h5 em, h6 em,
h1 i,  h2 i,  h3 i,  h4 i,  h5 i,  h6 i {
  font-family: var(--font-display);
  font-style: italic;
  font-weight: inherit;
  color: var(--clr-primary);
}
/* ---------------------------------------------------------------------------
   Paragraphs
   --------------------------------------------------------------------------- */
p {
  margin-bottom: 1em;
}
p:last-child {
  margin-bottom: 0;
}
/* ---------------------------------------------------------------------------
   Strong / Bold
   --------------------------------------------------------------------------- */
strong,
b {
  font-weight: var(--fw-medium);
}
/* ---------------------------------------------------------------------------
   Links
   --------------------------------------------------------------------------- */
a {
  color: inherit;
  text-decoration: none;
  transition: color var(--trans-base);
}
a:hover {
  color: var(--clr-primary);
  text-decoration: underline;
  text-decoration-color: hsl(28 40% 59% / 0.5);
  text-underline-offset: 3px;
}
/* Suppress default WP underline on content links */
.asc-main a:not([class]) {
  text-decoration: underline;
  text-decoration-color: hsl(28 40% 59% / 0.4);
  text-underline-offset: 3px;
}
.asc-main a:not([class]):hover {
  text-decoration-color: var(--clr-primary);
}
/* ---------------------------------------------------------------------------
   Display Heading Utilities
   --------------------------------------------------------------------------- */
/* Very large editorial headings */
.asc-display-1 {
  font-family: var(--font-display);
  font-weight: var(--fw-light);
  font-size: clamp(3.5rem, 7vw, 6rem);
  line-height: 1;
  letter-spacing: -0.03em;
}
.asc-display-2 {
  font-family: var(--font-display);
  font-weight: var(--fw-light);
  font-size: clamp(2.75rem, 5vw, 4.5rem);
  line-height: 1.02;
  letter-spacing: -0.02em;
}
.asc-display-3 {
  font-family: var(--font-display);
  font-weight: var(--fw-light);
  font-size: var(--text-section);
  line-height: 1.08;
  letter-spacing: -0.01em;
}
/* ---------------------------------------------------------------------------
   Section Label / Eyebrow
   --------------------------------------------------------------------------- */
.asc-section-label,
.asc-eyebrow {
  display: block;
  font-family: var(--font-body);
  font-size: 10px;
  font-weight: var(--fw-medium);
  letter-spacing: var(--tracking-label); /* 0.3em */
  text-transform: uppercase;
  color: var(--clr-muted-fg);
  opacity: 0.55;
  margin-bottom: 0.75rem;
}
/* On dark sections */
.asc-section--dark .asc-section-label,
.asc-section--dark .asc-eyebrow {
  color: var(--clr-dark-fg);
  opacity: 0.45;
}
/* ---------------------------------------------------------------------------
   Lead Paragraph
   --------------------------------------------------------------------------- */
.asc-lead {
  font-size: clamp(0.9375rem, 1.5vw, 1rem); /* 15–16px */
  line-height: 1.75;
  color: var(--clr-muted-fg);
  max-width: 56ch;
}
/* ---------------------------------------------------------------------------
   Blockquote
   --------------------------------------------------------------------------- */
blockquote,
.asc-blockquote {
  border-left: 2px solid var(--clr-primary);
  padding-left: 1.5rem;
  margin-inline: 0;
  font-family: var(--font-display);
  font-style: italic;
  font-weight: var(--fw-light);
  font-size: clamp(1.25rem, 2vw, 1.5rem);
  line-height: 1.5;
  color: var(--clr-fg);
}
blockquote cite,
.asc-blockquote cite {
  display: block;
  font-family: var(--font-body);
  font-style: normal;
  font-size: 11px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--clr-muted-fg);
  margin-top: 0.75rem;
}
/* ---------------------------------------------------------------------------
   Code / Pre
   --------------------------------------------------------------------------- */
code {
  background-color: var(--clr-muted);
  padding: 0.125em 0.375em;
  font-size: 0.875em;
  border: 1px solid var(--clr-border);
}
pre {
  background-color: var(--clr-muted);
  border: 1px solid var(--clr-border);
  padding: 1.5rem;
  overflow-x: auto;
  margin-bottom: 1.5rem;
}
pre code {
  background: none;
  border: none;
  padding: 0;
}
/* ---------------------------------------------------------------------------
   Lists (within content areas)
   --------------------------------------------------------------------------- */
.asc-prose ul,
.entry-content ul,
.asc-prose ol,
.entry-content ol {
  padding-left: 1.25em;
  margin-bottom: 1em;
}
.asc-prose ul,
.entry-content ul {
  list-style: disc;
}
.asc-prose ol,
.entry-content ol {
  list-style: decimal;
}
.asc-prose li,
.entry-content li {
  margin-bottom: 0.375em;
  line-height: 1.65;
}
/* ---------------------------------------------------------------------------
   Small / Caption
   --------------------------------------------------------------------------- */
small,
.asc-caption {
  font-size: 11px;
  letter-spacing: 0.05em;
  color: var(--clr-muted-fg);
}
figcaption {
  font-size: 11px;
  letter-spacing: 0.04em;
  color: var(--clr-muted-fg);
  margin-top: 0.5rem;
}
/* ---------------------------------------------------------------------------
   Section Heading Group (label + h2 + optional subtitle)
   --------------------------------------------------------------------------- */
.asc-section-heading {
  max-width: 44ch;
}
.asc-section-heading--center {
  text-align: center;
  margin-inline: auto;
}
.asc-section-heading h2 {
  margin-bottom: 1rem;
}
.asc-section-heading p {
  color: var(--clr-muted-fg);
  font-size: var(--text-md);
  line-height: 1.7;
  margin-bottom: 0;
}
/* =============================================================================
   04 — Layout
   Container, section, grid helpers, page wrapper.
   ============================================================================= */
/* ---------------------------------------------------------------------------
   Page Wrapper
   --------------------------------------------------------------------------- */
.asc-page-wrapper {
  min-height: 100dvh;
  display: flex;
  flex-direction: column;
  background-color: var(--clr-bg);
}
.asc-main {
  flex: 1;
  width: 100%;
}
/* ---------------------------------------------------------------------------
   Container
   --------------------------------------------------------------------------- */
.asc-container {
  max-width: var(--container-max);
  margin-inline: auto;
  padding-inline: var(--container-px);
  width: 100%;
}
/* Narrow container for text-heavy sections */
.asc-container--narrow {
  max-width: 860px;
  margin-inline: auto;
  padding-inline: var(--container-px);
}
/* Wide (nearly full bleed) */
.asc-container--wide {
  max-width: 1600px;
  margin-inline: auto;
  padding-inline: var(--container-px);
}
/* ---------------------------------------------------------------------------
   Section
   --------------------------------------------------------------------------- */
.asc-section {
  padding-block: var(--section-py);
}
.asc-section--sm {
  padding-block: var(--section-py-sm);
}
/* Dark section variant */
.asc-section--dark {
  background-color: var(--clr-dark-bg);
  color: var(--clr-dark-fg);
}
.asc-section--dark h1,
.asc-section--dark h2,
.asc-section--dark h3,
.asc-section--dark h4 {
  color: var(--clr-dark-fg);
}
.asc-section--dark p {
  color: var(--clr-dark-muted-fg);
}
/* Card background section */
.asc-section--card {
  background-color: var(--clr-card);
}
/* Muted background section */
.asc-section--muted {
  background-color: var(--clr-muted);
}
/* ---------------------------------------------------------------------------
   Responsive Grid Helpers
   --------------------------------------------------------------------------- */
/* 2-column grid */
.asc-grid-2 {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1.5rem;
}
@media (min-width: 640px) {
  .asc-grid-2 {
    grid-template-columns: repeat(2, 1fr);
  }
}
/* 3-column grid */
.asc-grid-3 {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1.5rem;
}
@media (min-width: 640px) {
  .asc-grid-3 {
    grid-template-columns: repeat(2, 1fr);
  }
}
@media (min-width: 1024px) {
  .asc-grid-3 {
    grid-template-columns: repeat(3, 1fr);
  }
}
/* 4-column grid */
.asc-grid-4 {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 1.5rem;
}
@media (min-width: 768px) {
  .asc-grid-4 {
    grid-template-columns: repeat(3, 1fr);
  }
}
@media (min-width: 1024px) {
  .asc-grid-4 {
    grid-template-columns: repeat(4, 1fr);
  }
}
/* 5-column grid */
.asc-grid-5 {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 1.5rem;
}
@media (min-width: 768px) {
  .asc-grid-5 {
    grid-template-columns: repeat(3, 1fr);
  }
}
@media (min-width: 1280px) {
  .asc-grid-5 {
    grid-template-columns: repeat(5, 1fr);
  }
}
/* ---------------------------------------------------------------------------
   Split Layout (50/50 two-column)
   --------------------------------------------------------------------------- */
.asc-split {
  display: grid;
  grid-template-columns: 1fr;
  gap: 3rem;
  align-items: center;
}
@media (min-width: 1024px) {
  .asc-split {
    grid-template-columns: 1fr 1fr;
    gap: 4rem;
  }
}
/* Image right variant — reverses column order on desktop */
@media (min-width: 1024px) {
  .asc-split--image-right .asc-split__image {
    order: 2;
  }

  .asc-split--image-right .asc-split__content {
    order: 1;
  }
}
/* 55/45 split for product pages */
.asc-split--product {
  display: grid;
  grid-template-columns: 1fr;
  gap: 2rem;
}
@media (min-width: 1024px) {
  .asc-split--product {
    grid-template-columns: 55% 1fr;
    gap: 4rem;
    align-items: start;
  }
}
/* ---------------------------------------------------------------------------
   Flex Utilities
   --------------------------------------------------------------------------- */
.asc-flex {
  display: flex;
}
.asc-flex--center {
  display: flex;
  align-items: center;
  justify-content: center;
}
.asc-flex--between {
  display: flex;
  align-items: center;
  justify-content: space-between;
}
.asc-flex--gap-sm {
  gap: 0.5rem;
}
.asc-flex--gap {
  gap: 1rem;
}
.asc-flex--gap-lg {
  gap: 2rem;
}
/* ---------------------------------------------------------------------------
   Full Bleed
   --------------------------------------------------------------------------- */
.asc-full-bleed {
  width: 100vw;
  margin-inline: calc(-1 * var(--container-px));
}
/* ---------------------------------------------------------------------------
   Sticky Sidebar
   --------------------------------------------------------------------------- */
.asc-sticky {
  position: sticky;
  top: calc(var(--navbar-height) + 2rem);
}
/* ---------------------------------------------------------------------------
   Aspect Ratios
   --------------------------------------------------------------------------- */
.asc-aspect-square   { aspect-ratio: 1 / 1; }
.asc-aspect-portrait { aspect-ratio: 3 / 4; }
.asc-aspect-tall     { aspect-ratio: 4 / 5; }
.asc-aspect-wide     { aspect-ratio: 16 / 9; }
.asc-aspect-landscape{ aspect-ratio: 4 / 3; }
/* ---------------------------------------------------------------------------
   Cover Image helper
   --------------------------------------------------------------------------- */
.asc-img-cover {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  -o-object-position: center;
     object-position: center;
  display: block;
}
/* ---------------------------------------------------------------------------
   Overflow Hidden (for parallax/reveal wraps)
   --------------------------------------------------------------------------- */
.asc-overflow-hidden {
  overflow: hidden;
}
/* ---------------------------------------------------------------------------
   Content Max Width (prose)
   --------------------------------------------------------------------------- */
.asc-prose-width {
  max-width: 72ch;
}
.asc-narrow-width {
  max-width: 48ch;
}
/* =============================================================================
   05 — Components
   Buttons, form elements, badges, editorial elements, breadcrumb.
   ============================================================================= */
/* =============================================================================
   BUTTONS
   ============================================================================= */
.asc-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.5em;
  padding: 0.875rem 2rem;
  font-family: var(--font-body);
  font-size: 11px;
  font-weight: var(--fw-medium);
  letter-spacing: var(--tracking-btn); /* 0.25em */
  text-transform: uppercase;
  border-radius: var(--radius); /* 0 */
  transition: background-color var(--trans-base),
              color var(--trans-base),
              border-color var(--trans-base),
              opacity var(--trans-base);
  cursor: pointer;
  white-space: nowrap;
  text-decoration: none !important;
  -moz-user-select: none;
       user-select: none;
  -webkit-user-select: none;
  line-height: 1;
  border: 1px solid transparent;
}
.asc-btn:hover {
  text-decoration: none !important;
}
.asc-btn:focus-visible {
  outline: 2px solid var(--clr-primary);
  outline-offset: 2px;
}
.asc-btn:disabled,
.asc-btn[aria-disabled="true"] {
  opacity: 0.5;
  cursor: not-allowed;
  pointer-events: none;
}
/* Sizes */
.asc-btn--sm {
  padding: 0.625rem 1.25rem;
  font-size: 10px;
}
.asc-btn--lg {
  padding: 1.125rem 2.5rem;
  font-size: 12px;
}
/* Primary — dark background, light text */
.asc-btn--primary {
  background-color: var(--clr-fg);
  color: var(--clr-bg);
  border-color: var(--clr-fg);
}
.asc-btn--primary:hover {
  background-color: var(--clr-secondary);
  border-color: var(--clr-secondary);
  color: var(--clr-bg);
}
/* Primary inverse — for use on dark sections */
.asc-btn--primary-inverse {
  background-color: var(--clr-dark-fg);
  color: var(--clr-dark-bg);
  border-color: var(--clr-dark-fg);
}
.asc-btn--primary-inverse:hover {
  background-color: hsl(36 33% 90%);
  border-color: hsl(36 33% 90%);
  color: var(--clr-dark-bg);
}
/* Outline */
.asc-btn--outline {
  background-color: transparent;
  color: var(--clr-fg);
  border: 1px solid var(--clr-border);
}
.asc-btn--outline:hover {
  border-color: var(--clr-fg);
  color: var(--clr-fg);
}
/* Outline inverse (on dark sections) */
.asc-btn--outline-inverse {
  background-color: transparent;
  color: var(--clr-dark-fg);
  border: 1px solid var(--clr-dark-border);
}
.asc-btn--outline-inverse:hover {
  border-color: var(--clr-dark-fg);
}
/* Ghost — no border, no background */
.asc-btn--ghost {
  background-color: transparent;
  color: var(--clr-fg);
  border-color: transparent;
  padding-inline: 0;
}
.asc-btn--ghost:hover {
  color: var(--clr-primary);
  background-color: transparent;
}
/* Bronze / Primary color fill */
.asc-btn--bronze {
  background-color: var(--clr-primary);
  color: white;
  border-color: var(--clr-primary);
}
.asc-btn--bronze:hover {
  background-color: var(--clr-secondary);
  border-color: var(--clr-secondary);
}
/* Full width */
.asc-btn--full {
  width: 100%;
}
/* Icon only */
.asc-btn--icon {
  padding: 0;
  width: 40px;
  height: 40px;
  flex-shrink: 0;
}
/* Button group */
.asc-btn-group {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 1rem;
}
.asc-btn-group--stack {
  flex-direction: column;
  align-items: stretch;
}
/* =============================================================================
   FORM ELEMENTS
   ============================================================================= */
/* Form group wrapper */
.asc-form-group {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}
.asc-form-group label,
.asc-form-label {
  font-family: var(--font-body);
  font-size: 10px;
  font-weight: var(--fw-medium);
  letter-spacing: 0.15em;
  text-transform: uppercase;
  color: var(--clr-muted-fg);
}
/* Side-by-side inputs */
.asc-form-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1.25rem;
}
@media (max-width: 480px) {
  .asc-form-row {
    grid-template-columns: 1fr;
  }
}
/* Base input / bottom border style */
.asc-input,
.asc-select {
  width: 100%;
  padding: 0.75rem 0;
  background: transparent;
  border: none;
  border-bottom: 1px solid var(--clr-border);
  border-radius: 0;
  color: var(--clr-fg);
  font-size: var(--text-base);
  line-height: 1.5;
  outline: none;
  transition: border-color var(--trans-base);
  -webkit-appearance: none;
  -moz-appearance: none;
       appearance: none;
}
.asc-input::-moz-placeholder {
  color: var(--clr-muted-fg);
  opacity: 0.7;
}
.asc-input::placeholder {
  color: var(--clr-muted-fg);
  opacity: 0.7;
}
.asc-input:focus,
.asc-select:focus {
  border-bottom-color: var(--clr-primary);
}
.asc-input:disabled,
.asc-select:disabled {
  opacity: 0.5;
  cursor: not-allowed;
}
/* Select custom arrow */
.asc-select {
  cursor: pointer;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath d='M1 1l4 4 4-4' stroke='%238c7e72' stroke-width='1.5' fill='none' stroke-linecap='square'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 0.25rem center;
  padding-right: 1.5rem;
}
/* Textarea — full border */
.asc-textarea {
  width: 100%;
  padding: 0.875rem 1rem;
  background: transparent;
  border: 1px solid var(--clr-border);
  border-radius: 0;
  color: var(--clr-fg);
  font-size: var(--text-base);
  line-height: 1.6;
  outline: none;
  resize: vertical;
  min-height: 140px;
  transition: border-color var(--trans-base);
}
.asc-textarea::-moz-placeholder {
  color: var(--clr-muted-fg);
  opacity: 0.7;
}
.asc-textarea::placeholder {
  color: var(--clr-muted-fg);
  opacity: 0.7;
}
.asc-textarea:focus {
  border-color: var(--clr-primary);
}
/* Checkbox / Radio */
.asc-checkbox-group,
.asc-radio-group {
  display: flex;
  align-items: center;
  gap: 0.625rem;
  cursor: pointer;
}
.asc-checkbox-group input[type="checkbox"],
.asc-radio-group input[type="radio"] {
  width: 16px;
  height: 16px;
  flex-shrink: 0;
  accent-color: var(--clr-primary);
  cursor: pointer;
}
/* Field hint / error */
.asc-field-hint {
  font-size: 11px;
  color: var(--clr-muted-fg);
  letter-spacing: 0.02em;
}
.asc-field-error {
  font-size: 11px;
  color: var(--clr-destructive);
  letter-spacing: 0.02em;
}
/* =============================================================================
   EDITORIAL ELEMENTS
   ============================================================================= */
/* Decorative horizontal rule */
.asc-editorial-rule {
  width: 40px;
  height: 1px;
  background-color: var(--clr-primary);
  opacity: 0.5;
  margin-block: 1.5rem;
  border: none;
  flex-shrink: 0;
}
.asc-editorial-rule--center {
  margin-inline: auto;
}
.asc-editorial-rule--wide {
  width: 80px;
}
/* Editorial index number (italic display font) */
.asc-editorial-index {
  font-family: var(--font-display);
  font-style: italic;
  font-weight: var(--fw-light);
  font-size: 3rem;
  color: var(--clr-primary);
  opacity: 0.4;
  line-height: 1;
  -moz-user-select: none;
       user-select: none;
  -webkit-user-select: none;
}
/* Large decorative number */
.asc-editorial-index--lg {
  font-size: 5rem;
  opacity: 0.25;
}
/* =============================================================================
   BADGES
   ============================================================================= */
.asc-badge {
  display: inline-block;
  padding: 0.25rem 0.75rem;
  font-family: var(--font-body);
  font-size: 9px;
  font-weight: var(--fw-medium);
  letter-spacing: 0.15em;
  text-transform: uppercase;
  border: 1px solid var(--clr-border);
  border-radius: 0;
  color: var(--clr-muted-fg);
  background: transparent;
  white-space: nowrap;
}
.asc-badge--primary {
  background-color: var(--clr-primary);
  color: white;
  border-color: var(--clr-primary);
}
.asc-badge--dark {
  background-color: var(--clr-fg);
  color: var(--clr-bg);
  border-color: var(--clr-fg);
}
.asc-badge--new {
  background-color: var(--clr-fg);
  color: var(--clr-bg);
  border-color: var(--clr-fg);
}
.asc-badge--sale {
  background-color: hsl(0 60% 48%);
  color: white;
  border-color: hsl(0 60% 48%);
}
/* =============================================================================
   BREADCRUMB
   ============================================================================= */
.asc-breadcrumb {
  padding-block: 1rem;
}
.asc-breadcrumb__list {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0;
  font-size: 11px;
  color: var(--clr-muted-fg);
  letter-spacing: 0.05em;
  list-style: none;
  margin: 0;
  padding: 0;
}
.asc-breadcrumb__list li,
.asc-breadcrumb__item {
  display: flex;
  align-items: center;
}
.asc-breadcrumb__list li:not(:last-child)::after {
  content: '\00B7'; /* middle dot */
  margin-inline: 0.5rem;
  opacity: 0.5;
}
.asc-breadcrumb__list a,
.asc-breadcrumb__link {
  color: inherit;
  text-decoration: none !important;
  transition: color var(--trans-base);
}
.asc-breadcrumb__list a:hover,
.asc-breadcrumb__link:hover {
  color: var(--clr-fg);
  text-decoration: none;
}
.asc-breadcrumb__list .current,
.asc-breadcrumb__current,
.asc-breadcrumb__item--current {
  color: var(--clr-fg);
}
.asc-breadcrumb__sep {
  margin-inline: 0.5rem;
  opacity: 0.5;
}
/* =============================================================================
   CARD
   ============================================================================= */
.asc-card {
  background-color: var(--clr-card);
  border: 1px solid var(--clr-border);
  overflow: hidden;
}
.asc-card__body {
  padding: 1.5rem;
}
.asc-card__header {
  padding: 1.5rem 1.5rem 0;
}
.asc-card__footer {
  padding: 0 1.5rem 1.5rem;
  margin-top: auto;
}
/* =============================================================================
   ICON BUTTON
   ============================================================================= */
.asc-icon-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  border-radius: 0;
  background: transparent;
  border: none;
  color: var(--clr-fg);
  cursor: pointer;
  transition: background-color var(--trans-fast),
              color var(--trans-fast);
  flex-shrink: 0;
  position: relative;
}
.asc-icon-btn:hover {
  background-color: var(--clr-muted);
  color: var(--clr-fg);
}
.asc-icon-btn svg {
  width: 18px;
  height: 18px;
  stroke-width: 1.5;
}
/* =============================================================================
   DIVIDER
   ============================================================================= */
.asc-section-divider {
  border: none;
  border-top: 1px solid var(--clr-border);
  margin-block: 2.5rem;
}
/* =============================================================================
   NOTICE / ALERT
   ============================================================================= */
.asc-notice {
  padding: 1rem 1.25rem;
  border: 1px solid var(--clr-border);
  font-size: var(--text-base);
  line-height: 1.55;
}
.asc-notice--info {
  background-color: var(--clr-muted);
  border-color: var(--clr-border);
  color: var(--clr-fg);
}
.asc-notice--success {
  background-color: hsl(150 30% 96%);
  border-color: hsl(150 30% 80%);
  color: hsl(150 30% 25%);
}
.asc-notice--warning {
  background-color: hsl(38 92% 96%);
  border-color: hsl(38 92% 80%);
  color: hsl(38 60% 25%);
}
.asc-notice--error {
  background-color: hsl(0 72% 97%);
  border-color: hsl(0 72% 85%);
  color: hsl(0 72% 30%);
}
/* =============================================================================
   CONTACT FORM (template-specific BEM classes)
   The contact template uses `asc-contact-form__*` children rather than the
   generic `asc-form-group` / `asc-input` classes.  These rules map them to the
   same visual treatment.
   ============================================================================= */
.asc-contact-form__row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1.25rem;
}
@media (max-width: 480px) {
  .asc-contact-form__row {
    grid-template-columns: 1fr;
  }
}
.asc-contact-form__field {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}
.asc-contact-form__label {
  font-family: var(--font-body);
  font-size: 10px;
  font-weight: var(--fw-medium);
  letter-spacing: 0.15em;
  text-transform: uppercase;
  color: var(--clr-muted-fg);
}
.asc-contact-form__input,
.asc-contact-form__select {
  width: 100%;
  padding: 0.75rem 0;
  background: transparent;
  border: none;
  border-bottom: 1px solid var(--clr-border);
  border-radius: 0;
  color: var(--clr-fg);
  font-size: var(--text-base);
  line-height: 1.5;
  outline: none;
  transition: border-color var(--trans-base);
  -webkit-appearance: none;
  -moz-appearance: none;
       appearance: none;
}
.asc-contact-form__input::-moz-placeholder {
  color: var(--clr-muted-fg);
  opacity: 0.7;
}
.asc-contact-form__input::placeholder {
  color: var(--clr-muted-fg);
  opacity: 0.7;
}
.asc-contact-form__input:focus,
.asc-contact-form__select:focus {
  border-bottom-color: var(--clr-primary);
}
.asc-contact-form__select {
  cursor: pointer;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath d='M1 1l4 4 4-4' stroke='%238c7e72' stroke-width='1.5' fill='none' stroke-linecap='square'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 0.25rem center;
  padding-right: 1.5rem;
}
.asc-contact-form__textarea {
  width: 100%;
  padding: 0.875rem 1rem;
  background: transparent;
  border: 1px solid var(--clr-border);
  border-radius: 0;
  color: var(--clr-fg);
  font-size: var(--text-base);
  line-height: 1.6;
  outline: none;
  resize: vertical;
  min-height: 140px;
  transition: border-color var(--trans-base);
}
.asc-contact-form__textarea::-moz-placeholder {
  color: var(--clr-muted-fg);
  opacity: 0.7;
}
.asc-contact-form__textarea::placeholder {
  color: var(--clr-muted-fg);
  opacity: 0.7;
}
.asc-contact-form__textarea:focus {
  border-color: var(--clr-primary);
}
.asc-contact-form__submit {
  align-self: flex-start;
}
.asc-contact-form__response {
  font-size: var(--text-base);
  line-height: 1.55;
  padding: 1rem 1.25rem;
  border: 1px solid var(--clr-border);
}
.asc-contact-form__response[hidden] {
  display: none;
}
/* =============================================================================
   06 — Navbar
   Announcement bar, sticky navbar, dropdowns, mobile drawer.
   ============================================================================= */
/* =============================================================================
   ANNOUNCEMENT BAR
   ============================================================================= */
.asc-announcement-bar {
  background-color: var(--clr-fg);
  color: var(--clr-bg);
  text-align: center;
  padding-block: 0.625rem;
  position: relative;
  z-index: calc(var(--z-nav) + 1);
}
.asc-announcement-bar__text {
  font-family: var(--font-body);
  font-size: 11px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  opacity: 0.9;
  margin: 0;
}
.asc-announcement-bar__text a {
  color: inherit;
  text-decoration: underline;
  text-underline-offset: 2px;
  opacity: 0.8;
  transition: opacity var(--trans-fast);
}
.asc-announcement-bar__text a:hover {
  opacity: 1;
}
/* Close button (optional) */
.asc-announcement-bar__close {
  position: absolute;
  right: 1rem;
  top: 50%;
  transform: translateY(-50%);
  color: var(--clr-bg);
  opacity: 0.6;
  padding: 0.25rem;
  transition: opacity var(--trans-fast);
}
.asc-announcement-bar__close:hover {
  opacity: 1;
}
/* =============================================================================
   NAVBAR
   ============================================================================= */
.asc-navbar {
  position: sticky;
  top: 0;
  z-index: var(--z-nav);
  background-color: var(--clr-bg);
  border-bottom: 1px solid transparent;
  transition: border-color var(--trans-base),
              box-shadow var(--trans-base);
}
.asc-navbar--scrolled {
  border-bottom-color: var(--clr-border);
  box-shadow: 0 1px 20px hsl(20 8% 15% / 0.06);
}
/* Inner layout */
.asc-navbar__inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  height: var(--navbar-height);
  max-width: var(--container-max);
  margin-inline: auto;
  padding-inline: var(--container-px);
  gap: 2rem;
}
/* =============================================================================
   LOGO
   ============================================================================= */
.asc-navbar__logo {
  font-family: var(--font-display);
  font-weight: var(--fw-light);
  font-size: 1.5rem;
  letter-spacing: 0.06em;
  color: var(--clr-fg);
  flex-shrink: 0;
  text-decoration: none !important;
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  transition: opacity var(--trans-fast);
  line-height: 1;
}
.asc-navbar__logo:hover {
  opacity: 0.8;
  color: var(--clr-fg);
  text-decoration: none;
}
.asc-navbar__logo img,
.asc-navbar__logo svg {
  height: 36px;
  width: auto;
}
.asc-navbar__brand {
  display: inline-flex;
  flex-direction: column;
  align-items: flex-start;
  line-height: 1;
}
.asc-navbar__brand-line {
  font-family: var(--font-display);
  font-size: 1.42rem;
  font-weight: var(--fw-light);
  letter-spacing: 0.05em;
  color: var(--clr-fg);
}
.asc-navbar__brand-sub {
  margin-top: 0.18rem;
  font-family: var(--font-body);
  font-size: 0.54rem;
  font-weight: var(--fw-medium);
  letter-spacing: 0.34em;
  text-transform: uppercase;
  color: var(--clr-primary);
  padding-left: 0.16rem;
}
/* =============================================================================
   DESKTOP NAVIGATION
   ============================================================================= */
.asc-navbar__nav {
  display: none;
  align-items: center;
  gap: 2.5rem;
  list-style: none;
  margin: 0;
  padding: 0;
  flex: 1;
  justify-content: center;
}
@media (min-width: 1024px) {
  .asc-navbar__nav {
    display: flex;
  }
}
/* Menu list */
.asc-navbar__menu {
  display: flex;
  align-items: center;
  gap: 2.5rem;
  list-style: none;
  margin: 0;
  padding: 0;
}
/* Menu item */
.asc-navbar__menu-item {
  position: relative;
}
/* Nav link — support both class conventions */
.asc-navbar__nav-link,
.asc-navbar__menu-link {
  display: inline-flex;
  align-items: center;
  gap: 0.375rem;
  font-family: var(--font-body);
  font-size: 11px;
  font-weight: var(--fw-medium);
  letter-spacing: 0.15em;
  text-transform: uppercase;
  color: var(--clr-fg);
  text-decoration: none !important;
  transition: color var(--trans-base);
  padding-block: 0.25rem;
  white-space: nowrap;
}
.asc-navbar__nav-link:hover,
.asc-navbar__menu-link:hover,
.asc-navbar__menu-item--has-dropdown:hover > .asc-navbar__nav-link,
.asc-navbar__menu-item--has-dropdown:hover > .asc-navbar__menu-link,
.asc-navbar__menu-item--has-dropdown:focus-within > .asc-navbar__menu-link,
.asc-navbar__menu-item--has-dropdown.is-open > .asc-navbar__menu-link,
.asc-navbar__menu-item--has-children:hover > .asc-navbar__menu-link {
  color: var(--clr-primary);
  text-decoration: none;
}
.asc-navbar__nav-link svg,
.asc-navbar__menu-link svg {
  width: 10px;
  height: 10px;
  flex-shrink: 0;
  transition: transform var(--trans-base);
}
.asc-navbar__menu-item--has-dropdown:hover > .asc-navbar__nav-link svg,
.asc-navbar__menu-item--has-dropdown:hover > .asc-navbar__menu-link svg,
.asc-navbar__menu-item--has-dropdown:focus-within > .asc-navbar__menu-link svg,
.asc-navbar__menu-item--has-dropdown.is-open > .asc-navbar__menu-link svg,
.asc-navbar__menu-item--has-children:hover > .asc-navbar__menu-link svg {
  transform: rotate(180deg);
}
/* Chevron icon (from walker) */
.asc-navbar__chevron {
  display: inline-flex;
  align-items: center;
  margin-left: 0.125rem;
}
.asc-navbar__chevron svg {
  width: 10px;
  height: 6px;
  flex-shrink: 0;
  transition: transform var(--trans-base);
}
.asc-navbar__menu-item--has-children:hover .asc-navbar__chevron svg {
  transform: rotate(180deg);
}
/* Active link */
.asc-navbar__nav-link.is-active,
.asc-navbar__menu-link.is-active,
.current-menu-item > .asc-navbar__nav-link,
.current-menu-item > .asc-navbar__menu-link,
.current-menu-ancestor > .asc-navbar__nav-link,
.current-menu-ancestor > .asc-navbar__menu-link {
  color: var(--clr-primary);
}
/* =============================================================================
   DROPDOWN
   ============================================================================= */
.asc-navbar__dropdown {
  position: absolute;
  top: 100%;
  left: 50%;
  transform: translateX(-50%);
  min-width: 280px;
  padding-top: 1rem;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transform: translateX(-50%) translateY(-8px);
  transition: opacity var(--trans-base),
              visibility var(--trans-base),
              transform var(--trans-base);
  z-index: calc(var(--z-nav) + 5);
}
/* Triangle / arrow */
.asc-navbar__dropdown-panel {
  background-color: var(--clr-bg);
  border: 1px solid var(--clr-border);
  box-shadow: var(--shadow-lg);
  padding: 1.5rem;
}
.asc-navbar__menu-item--has-dropdown:hover > .asc-navbar__dropdown,
.asc-navbar__menu-item--has-dropdown:focus-within > .asc-navbar__dropdown,
.asc-navbar__menu-item--has-dropdown.is-open > .asc-navbar__dropdown,
.asc-navbar__menu-item--has-children:hover > .asc-navbar__dropdown {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  transform: translateX(-50%) translateY(0);
}
/* Dropdown heading */
.asc-navbar__dropdown-heading {
  font-family: var(--font-body);
  font-size: 9px;
  font-weight: var(--fw-medium);
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--clr-muted-fg);
  margin-bottom: 0.875rem;
  padding-bottom: 0.875rem;
  border-bottom: 1px solid var(--clr-border);
}
/* Dropdown list */
.asc-navbar__dropdown-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 0.125rem;
}
/* Dropdown item */
.asc-navbar__dropdown-link {
  display: flex;
  align-items: center;
  gap: 0.875rem;
  padding: 0.625rem 0;
  text-decoration: none !important;
  transition: color var(--trans-fast);
  border-bottom: 1px solid transparent;
}
.asc-navbar__dropdown-link:hover {
  color: var(--clr-primary);
  text-decoration: none;
}
.asc-navbar__dropdown-link:hover .asc-navbar__dropdown-link-title {
  color: var(--clr-primary);
}
.asc-navbar__dropdown-link-image {
  width: 48px;
  height: 48px;
  -o-object-fit: cover;
     object-fit: cover;
  flex-shrink: 0;
  background-color: var(--clr-muted);
}
.asc-navbar__dropdown-link-content {
  display: flex;
  flex-direction: column;
  gap: 0.125rem;
}
.asc-navbar__dropdown-link-title {
  font-family: var(--font-body);
  font-size: 12px;
  font-weight: var(--fw-medium);
  color: var(--clr-fg);
  letter-spacing: 0.04em;
  transition: color var(--trans-fast);
}
.asc-navbar__dropdown-link-subtitle {
  font-family: var(--font-body);
  font-size: 10px;
  color: var(--clr-muted-fg);
  letter-spacing: 0.03em;
}
/* Wide dropdown (for mega-menu style) */
.asc-navbar__dropdown--wide {
  min-width: 480px;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0 2rem;
}
/* =============================================================================
   NAVBAR ACTIONS (icons on right)
   ============================================================================= */
.asc-navbar__actions {
  display: flex;
  align-items: center;
  gap: 0.25rem;
  flex-shrink: 0;
}
/* Icon button inside navbar */
.asc-navbar__icon-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  color: var(--clr-fg);
  background: transparent;
  border: none;
  cursor: pointer;
  transition: color var(--trans-fast),
              background-color var(--trans-fast);
  position: relative;
  flex-shrink: 0;
}
.asc-navbar__icon-btn:hover {
  color: var(--clr-primary);
  background-color: var(--clr-muted);
}
.asc-navbar__icon-btn svg {
  width: 18px;
  height: 18px;
  stroke-width: 1.5;
  pointer-events: none;
}
/* Cart count badge */
.asc-navbar__cart-count {
  position: absolute;
  top: 5px;
  right: 4px;
  display: flex;
  align-items: center;
  justify-content: center;
  min-width: 18px;
  height: 18px;
  padding: 0 3px;
  background-color: var(--clr-primary);
  color: white;
  font-size: 9px;
  font-weight: var(--fw-semibold);
  letter-spacing: 0;
  border-radius: 9999px; /* pill — exception to radius:0 for this micro-element */
  line-height: 1;
  pointer-events: none;
}
/* Hamburger (mobile only) */
.asc-navbar__hamburger {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  color: var(--clr-fg);
  background: transparent;
  border: none;
  cursor: pointer;
  transition: color var(--trans-fast);
  flex-shrink: 0;
}
.asc-navbar__hamburger:hover {
  color: var(--clr-primary);
}
.asc-navbar__hamburger svg {
  width: 20px;
  height: 20px;
  stroke-width: 1.5;
  pointer-events: none;
}
@media (min-width: 1024px) {
  .asc-navbar__hamburger {
    display: none;
  }
}
/* Hide search on very small screens if desired */
@media (max-width: 400px) {
  .asc-navbar__icon-btn--search {
    display: none;
  }
}
/* =============================================================================
   MOBILE DRAWER
   ============================================================================= */
.asc-mobile-drawer {
  position: fixed;
  inset: 0;
  z-index: var(--z-drawer);
  display: flex;
  pointer-events: none;
  visibility: hidden;
  transition: visibility var(--transition-base);
}
.asc-mobile-drawer.is-open {
  pointer-events: auto;
  visibility: visible;
}
/* Backdrop */
.asc-mobile-drawer__backdrop {
  position: absolute;
  inset: 0;
  background: hsl(20 8% 15% / 0.5);
  backdrop-filter: blur(2px);
  -webkit-backdrop-filter: blur(2px);
  opacity: 0;
  transition: opacity var(--transition-slow) var(--ease-out-expo);
  cursor: pointer;
}
.asc-mobile-drawer.is-open .asc-mobile-drawer__backdrop {
  opacity: 1;
}
/* Panel */
.asc-mobile-drawer__panel {
  position: relative;
  width: min(85vw, 360px);
  height: 100%;
  background-color: var(--clr-bg);
  padding: 0;
  overflow-y: auto;
  overscroll-behavior: contain;
  transform: translateX(-100%);
  transition: transform var(--transition-slow) var(--ease-out-expo);
  display: flex;
  flex-direction: column;
  box-shadow: var(--shadow-xl);
}
.asc-mobile-drawer.is-open .asc-mobile-drawer__panel {
  transform: translateX(0);
}
/* Drawer header */
.asc-mobile-drawer__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 1.25rem 1.5rem;
  border-bottom: 1px solid var(--clr-border);
  flex-shrink: 0;
}
.asc-mobile-drawer__logo {
  font-family: var(--font-display);
  font-weight: var(--fw-light);
  font-size: 1.25rem;
  letter-spacing: 0.06em;
  color: var(--clr-fg);
  text-decoration: none !important;
}
.asc-mobile-drawer__close {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  color: var(--clr-fg);
  cursor: pointer;
  transition: color var(--trans-fast),
              background-color var(--trans-fast);
}
.asc-mobile-drawer__close:hover {
  color: var(--clr-primary);
  background-color: var(--clr-muted);
}
.asc-mobile-drawer__close svg {
  width: 18px;
  height: 18px;
  stroke-width: 1.5;
  pointer-events: none;
}
/* Drawer body */
.asc-mobile-drawer__body {
  flex: 1;
  overflow-y: auto;
  padding: 1.5rem;
  display: flex;
  flex-direction: column;
  gap: 2rem;
}
/* Drawer section */
.asc-mobile-drawer__section {
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
}
.asc-mobile-drawer__section-heading,
.asc-mobile-drawer__section-label {
  font-family: var(--font-body);
  font-size: 9px;
  font-weight: var(--fw-medium);
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--clr-muted-fg);
  margin-bottom: 0.75rem;
  padding-bottom: 0.625rem;
  border-bottom: 1px solid var(--clr-border);
}
/* Drawer nav link */
.asc-mobile-drawer__link {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 0.75rem 0;
  text-decoration: none !important;
  border-bottom: 1px solid hsl(30 18% 91% / 0.5);
  transition: color var(--trans-fast);
}
.asc-mobile-drawer__link:hover {
  color: var(--clr-primary);
  text-decoration: none;
}
.asc-mobile-drawer__link-content {
  display: flex;
  flex-direction: column;
  gap: 0.125rem;
}
.asc-mobile-drawer__link-name {
  font-family: var(--font-display);
  font-weight: var(--fw-light);
  font-size: 1.125rem;
  color: var(--clr-fg);
  letter-spacing: 0.01em;
  transition: color var(--trans-fast);
}
.asc-mobile-drawer__link:hover .asc-mobile-drawer__link-name {
  color: var(--clr-primary);
}
.asc-mobile-drawer__link-sub {
  font-family: var(--font-body);
  font-size: 10px;
  color: var(--clr-muted-fg);
  letter-spacing: 0.05em;
}
.asc-mobile-drawer__link svg {
  width: 14px;
  height: 14px;
  flex-shrink: 0;
  color: var(--clr-muted-fg);
}
/* Simple nav links (World pages) */
.asc-mobile-drawer__simple-link {
  display: block;
  font-family: var(--font-body);
  font-size: 13px;
  font-weight: var(--fw-medium);
  letter-spacing: 0.05em;
  color: var(--clr-fg);
  padding: 0.5rem 0;
  text-decoration: none !important;
  transition: color var(--trans-fast);
}
.asc-mobile-drawer__simple-link:hover {
  color: var(--clr-primary);
  text-decoration: none;
}
/* Drawer footer */
.asc-mobile-drawer__footer {
  padding: 1.5rem;
  border-top: 1px solid var(--clr-border);
  flex-shrink: 0;
}
.asc-mobile-drawer__footer-text,
.asc-mobile-drawer__tagline {
  font-size: 10px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--clr-muted-fg);
  margin-bottom: 0.75rem;
}
.asc-mobile-drawer__sub {
  font-size: 12px;
  line-height: 1.6;
  color: var(--clr-muted-fg);
}
.asc-mobile-drawer__footer-links {
  display: flex;
  flex-wrap: wrap;
  gap: 1rem;
}
.asc-mobile-drawer__footer-links a {
  font-size: 11px;
  letter-spacing: 0.05em;
  color: var(--clr-muted-fg);
  text-decoration: none !important;
  transition: color var(--trans-fast);
}
.asc-mobile-drawer__footer-links a:hover {
  color: var(--clr-fg);
}
/* =============================================================================
   Reference Parity Overrides
   ============================================================================= */
.asc-announcement-bar {
  padding-block: 0.625rem;
}
.asc-announcement-bar__text {
  font-size: 9px;
  font-weight: var(--fw-light);
  letter-spacing: 0.3em;
}
.asc-navbar {
  background: hsl(36 33% 97% / 0.95);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
}
.asc-navbar__inner {
  height: 72px;
  gap: 1.5rem;
}
@media (min-width: 768px) {
  .asc-navbar__inner {
    height: 76px;
  }
}
.asc-navbar__logo {
  font-size: 1.5rem;
}
@media (min-width: 768px) {
  .asc-navbar__logo {
    font-size: 1.65rem;
  }

  .asc-navbar__brand-line {
    font-size: 1.58rem;
  }

  .asc-navbar__brand-sub {
    font-size: 0.58rem;
  }
}
.asc-navbar__menu {
  gap: 2.5rem;
}
.asc-navbar__nav-link,
.asc-navbar__menu-link {
  font-size: 11px;
  font-weight: var(--fw-regular);
  letter-spacing: 0.18em;
  color: hsl(25 6% 40%);
}
.asc-navbar__nav-link:hover,
.asc-navbar__menu-link:hover,
.asc-navbar__menu-item--has-dropdown:hover > .asc-navbar__menu-link {
  color: var(--clr-fg);
}
.asc-navbar__dropdown {
  width: 520px;
  min-width: 520px;
  padding-top: 1rem;
  box-shadow: none;
}
.asc-navbar__dropdown-panel {
  padding: 2rem;
  box-shadow: 0 20px 45px hsl(20 8% 15% / 0.12);
}
.asc-navbar__dropdown-heading {
  margin-bottom: 1.5rem;
  padding-bottom: 0;
  border-bottom: 0;
}
.asc-navbar__dropdown-link {
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: 0.625rem 0;
  border-bottom: 1px solid hsl(30 18% 91% / 0.5);
}
.asc-navbar__dropdown-item:last-child .asc-navbar__dropdown-link {
  border-bottom: 0;
}
.asc-navbar__dropdown-link-copy {
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
}
.asc-navbar__dropdown-link-title {
  font-family: var(--font-display);
  font-size: 1.05rem;
  font-weight: var(--fw-regular);
  color: var(--clr-fg);
}
.asc-navbar__dropdown-link-subtitle {
  font-size: 11px;
  color: var(--clr-muted-fg);
}
.asc-navbar__dropdown-link-arrow {
  color: hsl(25 6% 40% / 0.35);
  transition: transform var(--trans-base), color var(--trans-base);
}
.asc-navbar__dropdown-link:hover .asc-navbar__dropdown-link-arrow {
  color: var(--clr-primary);
  transform: translateX(2px);
}
.asc-navbar__menu-link:focus-visible,
.asc-navbar__dropdown-link:focus-visible,
.asc-mobile-drawer__link:focus-visible,
.asc-mobile-drawer__simple-link:focus-visible {
  outline: 2px solid var(--clr-primary);
  outline-offset: 4px;
}
.asc-navbar__dropdown-link--all {
  display: block;
  margin-top: 1rem;
  padding-top: 1.25rem;
  border-top: 1px solid var(--clr-border);
  font-size: 10px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--clr-muted-fg);
}
.asc-navbar__actions {
  gap: 0.125rem;
}
.asc-navbar__icon-btn,
.asc-navbar__hamburger {
  width: 36px;
  height: 36px;
  color: var(--clr-fg);
  border-radius: 999px;
  transition: background-color var(--trans-base), color var(--trans-base);
}
.asc-navbar__icon-btn:hover,
.asc-navbar__hamburger:hover {
  background: hsl(20 8% 15% / 0.05);
  color: var(--clr-fg);
}
.asc-navbar__cart-count {
  top: 0;
  right: 0;
  min-width: 16px;
  height: 16px;
  padding: 0 0.2rem;
  border-radius: 999px;
  background: var(--clr-primary);
  color: var(--clr-bg);
  font-size: 8px;
  line-height: 16px;
}
.asc-mobile-drawer__panel {
  width: min(100vw, 380px);
}
.asc-mobile-drawer__header {
  height: 72px;
  padding-inline: 1.5rem;
}
.asc-mobile-drawer__logo {
  font-size: 1.5rem;
  letter-spacing: 0.06em;
}
.asc-mobile-drawer__body {
  padding: 2rem 1.5rem;
}
.asc-mobile-drawer__section-heading {
  font-size: 10px;
  letter-spacing: 0.3em;
  opacity: 0.55;
  margin-bottom: 1rem;
}
.asc-mobile-drawer__list {
  gap: 0;
}
.asc-mobile-drawer__link {
  display: flex;
  flex-direction: column;
  gap: 0.2rem;
  padding: 1rem 0;
  border-bottom: 1px solid hsl(30 18% 91% / 0.4);
}
.asc-mobile-drawer__link-title,
.asc-mobile-drawer__link-name {
  font-family: var(--font-display);
  font-size: 1.15rem;
  color: var(--clr-fg);
}
.asc-mobile-drawer__link-subtitle,
.asc-mobile-drawer__link-sub {
  font-size: 10px;
  color: hsl(25 6% 40% / 0.5);
}
.asc-mobile-drawer__link--all {
  padding-top: 1rem;
  border-bottom: 0;
  font-size: 10px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--clr-muted-fg);
}
.asc-mobile-drawer__footer {
  padding: 1.5rem;
}
.asc-mobile-drawer__tagline {
  font-size: 9px;
  letter-spacing: 0.15em;
  opacity: 0.3;
}
.asc-mobile-drawer__sub {
  display: none;
}
@media (max-width: 1023px) {
  .asc-announcement-bar__text {
    padding-inline: 2.75rem;
    font-size: 9.5px;
    letter-spacing: 0.13em;
    line-height: 1.45;
  }

  .asc-navbar__inner {
    height: 68px;
    gap: 0.85rem;
  }

  .asc-navbar__brand-line {
    font-size: clamp(1.18rem, 5vw, 1.4rem);
  }

  .asc-navbar__brand-sub {
    font-size: 0.5rem;
    letter-spacing: 0.28em;
  }

  .asc-navbar__icon-btn,
  .asc-navbar__hamburger {
    width: 42px;
    height: 42px;
  }
}
@media (max-width: 767px) {
  .asc-mobile-drawer__panel {
    width: 100%;
  }

  .asc-mobile-drawer__header {
    height: 68px;
    padding-inline: 1.1rem;
  }

  .asc-mobile-drawer__body {
    padding: 1.5rem 1.1rem 2rem;
  }

  .asc-mobile-drawer__link {
    padding: 1.05rem 0;
  }

  .asc-mobile-drawer__link-title,
  .asc-mobile-drawer__link-name {
    font-size: 1.08rem;
  }

  .asc-mobile-drawer__footer {
    padding: 1.25rem 1.1rem 1.5rem;
  }
}
/* =============================================================================
   07 — Footer
   Main site footer: grid layout, brand column, nav columns, bottom bar.
   ============================================================================= */
/* =============================================================================
   FOOTER WRAPPER
   ============================================================================= */
.asc-footer {
  background-color: var(--clr-card);
  border-top: 1px solid var(--clr-border);
  padding-block: clamp(3rem, 6vw, 5rem) 0;
}
.asc-footer__inner {
  max-width: var(--container-max);
  margin-inline: auto;
  padding-inline: var(--container-px);
}
/* =============================================================================
   FOOTER GRID
   ============================================================================= */
.asc-footer__grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 2.5rem 3rem;
  padding-bottom: clamp(2.5rem, 5vw, 4rem);
}
@media (min-width: 768px) {
  .asc-footer__grid {
    grid-template-columns: 2fr 1fr 1fr 1fr;
    gap: 2rem 3rem;
  }
}
/* =============================================================================
   BRAND COLUMN
   ============================================================================= */
.asc-footer__col {
  display: flex;
  flex-direction: column;
}
.asc-footer__brand,
.asc-footer__col--brand {
  grid-column: 1 / -1; /* full width on mobile */
}
@media (min-width: 768px) {
  .asc-footer__brand,
  .asc-footer__col--brand {
    grid-column: auto;
  }
}
.asc-footer__logo {
  display: inline-block;
  font-family: var(--font-display);
  font-weight: var(--fw-light);
  font-size: 1.5rem;
  letter-spacing: 0.06em;
  color: var(--clr-fg);
  text-decoration: none !important;
  margin-bottom: 1rem;
  transition: opacity var(--trans-fast);
}
.asc-footer__logo:hover {
  opacity: 0.7;
}
.asc-footer__logo img,
.asc-footer__logo svg {
  height: 32px;
  width: auto;
}
.asc-footer__tagline {
  font-size: 10px;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  color: var(--clr-muted-fg);
  margin-bottom: 1rem;
  opacity: 0.8;
}
.asc-footer__description,
.asc-footer__brand-desc {
  font-size: 13px;
  line-height: 1.7;
  color: var(--clr-muted-fg);
  max-width: 28ch;
  margin-bottom: 1.5rem;
}
.asc-footer__cta-link,
.asc-footer__archive-link {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  font-size: 11px;
  font-weight: var(--fw-medium);
  letter-spacing: 0.15em;
  text-transform: uppercase;
  color: var(--clr-fg);
  text-decoration: none !important;
  transition: color var(--trans-base);
}
.asc-footer__cta-link svg,
.asc-footer__archive-link svg {
  width: 14px;
  height: 14px;
  transition: transform var(--trans-base);
}
.asc-footer__cta-link:hover,
.asc-footer__archive-link:hover {
  color: var(--clr-primary);
  text-decoration: none;
}
.asc-footer__cta-link:hover svg,
.asc-footer__archive-link:hover svg {
  transform: translateX(3px);
}
/* =============================================================================
   NAVIGATION COLUMNS
   ============================================================================= */
.asc-footer__nav-col {
  display: flex;
  flex-direction: column;
}
.asc-footer__nav-heading,
.asc-footer__heading {
  font-family: var(--font-body);
  font-size: 10px;
  font-weight: var(--fw-medium);
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--clr-fg);
  margin-bottom: 1.25rem;
  padding-bottom: 0.75rem;
  border-bottom: 1px solid var(--clr-border);
}
.asc-footer__nav-list,
.asc-footer__list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 0.625rem;
}
.asc-footer__nav-list a,
.asc-footer__link {
  font-size: 12px;
  letter-spacing: 0.03em;
  color: var(--clr-muted-fg);
  text-decoration: none !important;
  transition: color var(--trans-base);
  line-height: 1.5;
  display: inline-block;
}
.asc-footer__nav-list a:hover,
.asc-footer__link:hover {
  color: var(--clr-primary);
  text-decoration: none;
}
/* =============================================================================
   NEWSLETTER (optional footer signup)
   ============================================================================= */
.asc-footer__newsletter {
  grid-column: 1 / -1;
  border-top: 1px solid var(--clr-border);
  padding-top: 2rem;
  padding-bottom: 2rem;
}
@media (min-width: 768px) {
  .asc-footer__newsletter {
    grid-column: auto;
  }
}
.asc-footer__newsletter-label {
  font-size: 10px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--clr-muted-fg);
  margin-bottom: 0.875rem;
}
.asc-footer__newsletter-form {
  display: flex;
  align-items: stretch;
  gap: 0;
  border-bottom: 1px solid var(--clr-border);
  transition: border-color var(--trans-base);
}
.asc-footer__newsletter-form:focus-within {
  border-bottom-color: var(--clr-primary);
}
.asc-footer__newsletter-input {
  flex: 1;
  background: transparent;
  border: none;
  outline: none;
  padding: 0.625rem 0;
  font-size: 13px;
  color: var(--clr-fg);
  min-width: 0;
}
.asc-footer__newsletter-input::-moz-placeholder {
  color: var(--clr-muted-fg);
  opacity: 0.7;
}
.asc-footer__newsletter-input::placeholder {
  color: var(--clr-muted-fg);
  opacity: 0.7;
}
.asc-footer__newsletter-btn {
  background: transparent;
  border: none;
  cursor: pointer;
  font-size: 10px;
  font-weight: var(--fw-medium);
  letter-spacing: 0.15em;
  text-transform: uppercase;
  color: var(--clr-fg);
  padding: 0.625rem 0 0.625rem 1rem;
  transition: color var(--trans-fast);
  white-space: nowrap;
}
.asc-footer__newsletter-btn:hover {
  color: var(--clr-primary);
}
/* =============================================================================
   FOOTER BOTTOM BAR
   ============================================================================= */
.asc-footer__bottom {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding-block: 1.5rem 2rem;
  border-top: 1px solid var(--clr-border);
}
.asc-footer__copyright {
  font-size: 11px;
  letter-spacing: 0.05em;
  color: var(--clr-muted-fg);
  opacity: 0.7;
}
.asc-footer__bottom-links {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 1.5rem;
}
.asc-footer__bottom-links a {
  font-size: 10px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--clr-muted-fg);
  opacity: 0.7;
  text-decoration: none !important;
  transition: opacity var(--trans-fast), color var(--trans-fast);
}
.asc-footer__bottom-links a:hover {
  opacity: 1;
  color: var(--clr-fg);
}
/* =============================================================================
   SOCIAL ICONS
   ============================================================================= */
.asc-footer__social {
  display: flex;
  align-items: center;
  gap: 0.5rem;
}
.asc-footer__social-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  border: 1px solid var(--clr-border);
  color: var(--clr-muted-fg);
  text-decoration: none !important;
  transition: border-color var(--trans-base),
              color var(--trans-base),
              background-color var(--trans-base);
}
.asc-footer__social-link:hover {
  border-color: var(--clr-fg);
  color: var(--clr-fg);
  background-color: var(--clr-muted);
  text-decoration: none;
}
.asc-footer__social-link svg {
  width: 14px;
  height: 14px;
  stroke-width: 1.5;
  pointer-events: none;
}
.asc-footer__social-label {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}
/* =============================================================================
   PAYMENT ICONS / TRUST MARKS
   ============================================================================= */
.asc-footer__trust {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.75rem;
  margin-top: 1rem;
}
.asc-footer__trust-icon {
  height: 20px;
  width: auto;
  opacity: 0.5;
  filter: grayscale(1);
  transition: opacity var(--trans-base);
}
.asc-footer__trust-icon:hover {
  opacity: 0.8;
}
/* =============================================================================
   Reference Parity Overrides
   ============================================================================= */
.asc-footer {
  background: var(--clr-dark-bg);
  border-top: 0;
  padding-block: 5rem 0;
  color: hsl(36 33% 97% / 0.8);
}
@media (min-width: 768px) {
  .asc-footer {
    padding-block: 6rem 0;
  }
}
.asc-footer__grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 2rem;
  padding-bottom: 4rem;
}
@media (min-width: 768px) {
  .asc-footer__grid {
    grid-template-columns: repeat(12, minmax(0, 1fr));
    gap: 2.5rem;
  }

  .asc-footer__col--brand {
    grid-column: span 5 / span 5;
  }

  .asc-footer__grid > .asc-footer__col:nth-child(2) {
    grid-column: 7 / span 2;
  }

  .asc-footer__grid > .asc-footer__col:nth-child(3) {
    grid-column: span 2 / span 2;
  }

  .asc-footer__grid > .asc-footer__col:nth-child(4) {
    grid-column: span 2 / span 2;
  }
}
.asc-footer__logo {
  color: var(--clr-dark-fg);
  font-size: 1.5rem;
  letter-spacing: 0.04em;
  margin-bottom: 1.25rem;
}
@media (min-width: 768px) {
  .asc-footer__logo {
    font-size: 1.65rem;
  }
}
.asc-footer__brand-desc {
  max-width: 300px;
  color: hsl(36 33% 97% / 0.3);
  font-size: 12px;
  line-height: 1.85;
  margin-bottom: 1.5rem;
}
.asc-footer__archive-link {
  display: inline-block;
  padding: 0.75rem 1.5rem;
  background: hsl(36 33% 97% / 0.1);
  color: var(--clr-dark-fg);
  font-size: 10px;
  letter-spacing: 0.25em;
  text-transform: uppercase;
}
.asc-footer__archive-link:hover {
  background: hsl(36 33% 97% / 0.2);
  color: var(--clr-dark-fg);
}
.asc-footer__heading {
  font-size: 10px;
  letter-spacing: 0.3em;
  color: hsl(36 33% 97% / 0.2);
  border-bottom: 0;
  padding-bottom: 0;
  margin-bottom: 1.25rem;
}
.asc-footer__list {
  gap: 0.75rem;
}
.asc-footer__link {
  font-size: 11px;
  color: hsl(36 33% 97% / 0.4);
}
.asc-footer__link:hover {
  color: var(--clr-dark-fg);
}
.asc-footer__bottom {
  padding-block: 2rem;
  border-top: 1px solid hsl(36 33% 97% / 0.08);
}
.asc-footer__copyright {
  color: hsl(36 33% 97% / 0.2);
  font-size: 10px;
  letter-spacing: 0.1em;
}
.asc-footer__social {
  gap: 2rem;
}
.asc-footer__social-link {
  width: auto;
  height: auto;
  border: 0;
  background: transparent;
  color: hsl(36 33% 97% / 0.2);
  font-size: 10px;
  letter-spacing: 0.1em;
}
.asc-footer__social-link:hover {
  background: transparent;
  color: hsl(36 33% 97% / 0.5);
  text-decoration: none;
}
@media (max-width: 767px) {
  .asc-footer {
    padding-top: 4rem;
  }

  .asc-footer__grid {
    grid-template-columns: 1fr;
    gap: 2rem;
    padding-bottom: 3rem;
  }

  .asc-footer__brand-desc {
    max-width: none;
    font-size: 13px;
  }

  .asc-footer__archive-link {
    display: inline-flex;
    width: 100%;
    justify-content: center;
  }

  .asc-footer__heading {
    margin-bottom: 0.9rem;
  }

  .asc-footer__bottom {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 1rem;
  }

  .asc-footer__social {
    gap: 1.25rem;
    flex-wrap: wrap;
  }
}
/* =============================================================================
   08 — Overlays
   Search overlay and cart drawer panel.
   ============================================================================= */
/* =============================================================================
   SEARCH OVERLAY
   ============================================================================= */
.asc-search-overlay {
  position: fixed;
  inset: 0;
  z-index: var(--z-search);
  display: flex;
  flex-direction: column;
  align-items: stretch;
  padding-top: clamp(5rem, 10vw, 8rem);
  visibility: hidden;
  pointer-events: none;
}
.asc-search-overlay.is-open {
  visibility: visible;
  pointer-events: auto;
}
/* Backdrop */
.asc-search-overlay__backdrop {
  position: absolute;
  inset: 0;
  background: hsl(36 33% 97% / 0.95);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  opacity: 0;
  transition: opacity 0.4s var(--ease-out-expo);
}
.asc-search-overlay.is-open .asc-search-overlay__backdrop {
  opacity: 1;
}
/* Content / Inner */
.asc-search-overlay__content,
.asc-search-overlay__inner {
  position: relative;
  z-index: 1;
  max-width: 720px;
  width: 100%;
  margin-inline: auto;
  padding-inline: var(--container-px);
  display: flex;
  flex-direction: column;
  gap: 2.5rem;
  transform: translateY(-12px);
  opacity: 0;
  transition: transform 0.5s var(--ease-out-expo),
              opacity 0.5s var(--ease-out-expo);
  transition-delay: 0.1s;
}
.asc-search-overlay.is-open .asc-search-overlay__content,
.asc-search-overlay.is-open .asc-search-overlay__inner {
  transform: translateY(0);
  opacity: 1;
}
/* Close button */
.asc-search-overlay__close {
  position: absolute;
  top: 1.5rem;
  right: 1.5rem;
  z-index: 2;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  color: var(--clr-muted-fg);
  cursor: pointer;
  transition: color var(--trans-fast);
}
.asc-search-overlay__close:hover {
  color: var(--clr-fg);
}
.asc-search-overlay__close svg {
  width: 20px;
  height: 20px;
  stroke-width: 1.5;
}
/* Search form */
.asc-search-overlay__form {
  display: flex;
  align-items: flex-end;
  gap: 1rem;
  border-bottom: 1px solid var(--clr-border);
  transition: border-color var(--trans-base);
}
.asc-search-overlay__form:focus-within {
  border-bottom-color: var(--clr-primary);
}
.asc-search-overlay__input {
  flex: 1;
  background: transparent;
  border: none;
  outline: none;
  font-family: var(--font-display);
  font-weight: var(--fw-light);
  font-size: clamp(1.5rem, 3vw, 2rem);
  color: var(--clr-fg);
  letter-spacing: -0.01em;
  padding-block: 0.75rem;
  line-height: 1.2;
  min-width: 0;
}
.asc-search-overlay__input::-moz-placeholder {
  color: var(--clr-muted-fg);
  opacity: 0.5;
}
.asc-search-overlay__input::placeholder {
  color: var(--clr-muted-fg);
  opacity: 0.5;
}
.asc-search-overlay__submit {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  flex-shrink: 0;
  color: var(--clr-muted-fg);
  cursor: pointer;
  transition: color var(--trans-fast);
  padding-bottom: 0.5rem;
}
.asc-search-overlay__submit:hover {
  color: var(--clr-fg);
}
.asc-search-overlay__submit svg {
  width: 18px;
  height: 18px;
  stroke-width: 1.5;
}
/* Search form label */
.asc-search-overlay__label {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}
/* Search field wrapper and icon */
.asc-search-overlay__field-wrap {
  display: flex;
  align-items: flex-end;
  gap: 0.75rem;
  flex: 1;
  border-bottom: 1px solid var(--clr-border);
  transition: border-color var(--trans-base);
}
.asc-search-overlay__field-wrap:focus-within {
  border-bottom-color: var(--clr-primary);
}
.asc-search-overlay__field-icon {
  width: 22px;
  height: 22px;
  flex-shrink: 0;
  color: var(--clr-muted-fg);
  margin-bottom: 0.75rem;
}
/* Popular searches section */
.asc-search-overlay__popular {
  display: flex;
  flex-direction: column;
  gap: 0;
}
/* Popular searches / chips */
.asc-search-overlay__chips-label {
  font-family: var(--font-body);
  font-size: 10px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--clr-muted-fg);
  margin-bottom: 0.75rem;
}
.asc-search-overlay__chips {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
}
.asc-search-overlay__chip,
.asc-search-chip {
  display: inline-flex;
  align-items: center;
  padding: 0.375rem 0.875rem;
  border: 1px solid var(--clr-border);
  background: transparent;
  font-family: var(--font-body);
  font-size: 11px;
  letter-spacing: 0.08em;
  color: var(--clr-muted-fg);
  cursor: pointer;
  transition: border-color var(--trans-fast),
              color var(--trans-fast),
              background-color var(--trans-fast);
  text-decoration: none !important;
}
.asc-search-overlay__chip:hover,
.asc-search-chip:hover {
  border-color: var(--clr-fg);
  color: var(--clr-fg);
  background-color: var(--clr-muted);
  text-decoration: none;
}
/* Search results */
.asc-search-overlay__results {
  display: flex;
  flex-direction: column;
  gap: 0;
}
.asc-search-overlay__results-heading {
  font-size: 10px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--clr-muted-fg);
  margin-bottom: 0.875rem;
}
.asc-search-result-item {
  display: flex;
  align-items: center;
  gap: 1rem;
  padding-block: 0.875rem;
  border-bottom: 1px solid var(--clr-border);
  text-decoration: none !important;
  transition: background-color var(--trans-fast);
}
.asc-search-result-item:last-child {
  border-bottom: none;
}
.asc-search-result-item:hover {
  text-decoration: none;
}
.asc-search-result-item:hover .asc-search-result-item__name {
  color: var(--clr-primary);
}
.asc-search-result-item__image {
  width: 56px;
  height: 56px;
  -o-object-fit: cover;
     object-fit: cover;
  flex-shrink: 0;
  background-color: var(--clr-muted);
}
.asc-search-result-item__details {
  flex: 1;
  min-width: 0;
}
.asc-search-result-item__name {
  font-family: var(--font-display);
  font-weight: var(--fw-light);
  font-size: 1.125rem;
  color: var(--clr-fg);
  transition: color var(--trans-fast);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.asc-search-result-item__category {
  font-size: 10px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--clr-muted-fg);
  margin-top: 0.125rem;
}
.asc-search-result-item__price {
  font-family: var(--font-body);
  font-size: 13px;
  font-weight: var(--fw-medium);
  font-variant-numeric: tabular-nums lining-nums;
  letter-spacing: -0.015em;
  color: var(--clr-fg);
  white-space: nowrap;
  flex-shrink: 0;
}
.asc-search-result-item__price .woocommerce-Price-currencySymbol {
  font-size: 0.72em;
  position: relative;
  top: -0.02em;
  margin-right: 0.05em;
}
/* No results */
.asc-search-overlay__no-results {
  text-align: center;
  padding-block: 2rem;
  color: var(--clr-muted-fg);
  font-size: 14px;
}
/* =============================================================================
   CART DRAWER
   ============================================================================= */
.asc-cart-drawer {
  position: fixed;
  inset: 0;
  z-index: var(--z-drawer);
  display: flex;
  justify-content: flex-end;
  pointer-events: none;
  visibility: hidden;
  transition: visibility var(--transition-base);
}
.asc-cart-drawer.is-open {
  pointer-events: auto;
  visibility: visible;
}
/* Backdrop */
.asc-cart-drawer__backdrop {
  position: absolute;
  inset: 0;
  background: hsl(20 8% 15% / 0.4);
  backdrop-filter: blur(2px);
  -webkit-backdrop-filter: blur(2px);
  opacity: 0;
  transition: opacity var(--transition-slow) var(--ease-out-expo);
  cursor: pointer;
}
.asc-cart-drawer.is-open .asc-cart-drawer__backdrop {
  opacity: 1;
}
/* Panel */
.asc-cart-drawer__panel {
  position: relative;
  width: min(90vw, 420px);
  height: 100%;
  background-color: var(--clr-bg);
  border-left: 1px solid var(--clr-border);
  display: flex;
  flex-direction: column;
  transform: translateX(100%);
  transition: transform var(--transition-slow) var(--ease-out-expo);
  box-shadow: var(--shadow-xl);
  overflow: hidden;
}
.asc-cart-drawer.is-open .asc-cart-drawer__panel {
  transform: translateX(0);
}
/* Cart header */
.asc-cart-drawer__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 1.5rem;
  border-bottom: 1px solid var(--clr-border);
  flex-shrink: 0;
}
.asc-cart-drawer__title {
  font-family: var(--font-display);
  font-weight: var(--fw-light);
  font-size: 1.25rem;
  letter-spacing: 0.02em;
  color: var(--clr-fg);
}
.asc-cart-drawer__item-count {
  font-family: var(--font-body);
  font-size: 11px;
  letter-spacing: 0.1em;
  color: var(--clr-muted-fg);
  margin-left: 0.5rem;
}
.asc-cart-drawer__close {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  color: var(--clr-muted-fg);
  cursor: pointer;
  transition: color var(--trans-fast),
              background-color var(--trans-fast);
}
.asc-cart-drawer__close:hover {
  color: var(--clr-fg);
  background-color: var(--clr-muted);
}
.asc-cart-drawer__close svg {
  width: 18px;
  height: 18px;
  stroke-width: 1.5;
}
/* Cart body (scrollable) */
.asc-cart-drawer__body {
  flex: 1;
  overflow-y: auto;
  overscroll-behavior: contain;
  padding: 1.5rem;
}
/* Empty cart */
.asc-cart-drawer__empty {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 1rem;
  padding-block: 4rem;
  text-align: center;
}
.asc-cart-drawer__empty svg {
  width: 36px;
  height: 36px;
  color: var(--clr-muted-fg);
  opacity: 0.5;
}
.asc-cart-drawer__empty p {
  font-size: 13px;
  color: var(--clr-muted-fg);
  margin: 0;
}
/* WC Mini-cart override within drawer */
.asc-cart-drawer .widget_shopping_cart_content,
.asc-cart-drawer .woocommerce-mini-cart {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 0;
}
/* Cart item row */
.asc-cart-drawer .woocommerce-mini-cart-item,
.asc-cart-item {
  display: flex;
  align-items: flex-start;
  gap: 1rem;
  padding-block: 1.25rem;
  border-bottom: 1px solid var(--clr-border);
}
.asc-cart-drawer .woocommerce-mini-cart-item:last-child,
.asc-cart-item:last-child {
  border-bottom: none;
}
/* Cart item image */
.asc-cart-drawer .woocommerce-mini-cart-item a img,
.asc-cart-item__image {
  width: 72px;
  height: 88px;
  -o-object-fit: cover;
     object-fit: cover;
  flex-shrink: 0;
  background-color: var(--clr-muted);
  display: block;
}
/* Cart item details */
.asc-cart-item__details {
  flex: 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
}
.asc-cart-drawer .woocommerce-mini-cart-item a:not(:has(img)),
.asc-cart-item__name {
  font-family: var(--font-display);
  font-weight: var(--fw-light);
  font-size: 1rem;
  color: var(--clr-fg);
  line-height: 1.3;
  text-decoration: none !important;
  transition: color var(--trans-fast);
}
.asc-cart-drawer .woocommerce-mini-cart-item a:not(:has(img)):hover,
.asc-cart-item__name:hover {
  color: var(--clr-primary);
}
.asc-cart-item__meta {
  font-size: 10px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--clr-muted-fg);
}
/* =============================================================================
   Reference Search Overlay Overrides
   ============================================================================= */
.asc-search-overlay {
  padding-top: 0;
}
.asc-search-overlay__backdrop {
  background: hsl(20 8% 8% / 0.75);
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
}
.asc-search-overlay__inner {
  max-width: 860px;
  min-height: 100%;
  padding: 4rem 1.5rem 4rem;
  gap: 0;
}
@media (min-width: 768px) {
  .asc-search-overlay__inner {
    padding-top: 6rem;
    padding-inline: 2rem;
  }
}
.asc-search-overlay__close {
  position: fixed;
  top: 1.25rem;
  right: 1.5rem;
  width: 36px;
  height: 36px;
  border-radius: 999px;
  color: hsl(36 33% 90%);
}
@media (min-width: 768px) {
  .asc-search-overlay__close {
    top: 1.5rem;
    right: 2rem;
  }
}
.asc-search-overlay__close:hover {
  background: hsl(36 33% 97% / 0.1);
  color: white;
}
.asc-search-overlay__form {
  display: block;
  margin-bottom: 2.5rem;
  border-bottom: 0;
}
@media (min-width: 768px) {
  .asc-search-overlay__form {
    margin-bottom: 3.5rem;
  }
}
.asc-search-overlay__field-wrap {
  gap: 1rem;
  border-bottom: 1px solid hsl(36 33% 90% / 0.2);
  padding-bottom: 1.25rem;
}
.asc-search-overlay__field-wrap:focus-within {
  border-bottom-color: hsl(36 33% 90% / 0.2);
}
.asc-search-overlay__field-icon {
  width: 20px;
  height: 20px;
  margin-bottom: 0;
  color: var(--clr-primary);
}
@media (min-width: 768px) {
  .asc-search-overlay__field-icon {
    width: 24px;
    height: 24px;
  }
}
.asc-search-overlay__input {
  font-size: 1.6rem;
  font-weight: var(--fw-light);
  letter-spacing: 0.04em;
  color: var(--clr-dark-fg);
  padding-block: 0;
}
@media (min-width: 768px) {
  .asc-search-overlay__input {
    font-size: 2.2rem;
  }
}
.asc-search-overlay__input::-moz-placeholder {
  color: hsl(36 33% 90% / 0.35);
}
.asc-search-overlay__input::placeholder {
  color: hsl(36 33% 90% / 0.35);
}
.asc-search-overlay__clear {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  color: hsl(36 33% 80%);
  border-radius: 999px;
  transition: background-color var(--trans-base), color var(--trans-base);
}
.asc-search-overlay__clear:hover {
  color: white;
  background: hsl(36 33% 97% / 0.1);
}
.asc-search-overlay__heading {
  font-size: 11px;
  font-weight: var(--fw-medium);
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--clr-primary);
  margin-bottom: 1.25rem;
}
.asc-search-overlay__popular {
  margin-bottom: 3rem;
}
@media (min-width: 768px) {
  .asc-search-overlay__popular {
    margin-bottom: 3.5rem;
  }
}
.asc-search-chip {
  padding: 0.625rem 1.25rem;
  border: 1px solid hsl(36 33% 90% / 0.18);
  border-radius: 2px;
  font-size: 12.5px;
  font-weight: var(--fw-medium);
  letter-spacing: 0.04em;
  color: hsl(36 33% 88%);
}
.asc-search-chip:hover {
  border-color: hsl(28 40% 59% / 0.5);
  color: white;
  background: hsl(28 40% 59% / 0.1);
}
.asc-search-overlay__results-shell {
  margin-bottom: 2.5rem;
}
.asc-search-result-item {
  gap: 1.25rem;
  padding: 1rem 1rem;
  margin-inline: -1rem;
  border-bottom: 1px solid hsl(36 33% 90% / 0.1);
  border-radius: 2px;
}
@media (min-width: 768px) {
  .asc-search-result-item {
    padding-block: 1.25rem;
  }
}
.asc-search-result-item:hover {
  background: hsl(28 40% 59% / 0.06);
}
.asc-search-result-item__image-wrap {
  width: 68px;
  height: 68px;
  overflow: hidden;
  flex-shrink: 0;
  border-radius: 2px;
  box-shadow: inset 0 0 0 1px hsl(36 33% 90% / 0.1);
}
@media (min-width: 768px) {
  .asc-search-result-item__image-wrap {
    width: 76px;
    height: 76px;
  }
}
.asc-search-result-item__image {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  transition: transform 0.7s var(--ease-out-expo);
}
.asc-search-result-item:hover .asc-search-result-item__image {
  transform: scale(1.05);
}
.asc-search-result-item__name {
  font-size: 1.05rem;
  color: hsl(36 33% 93%);
  white-space: nowrap;
}
@media (min-width: 768px) {
  .asc-search-result-item__name {
    font-size: 1.15rem;
  }
}
.asc-search-result-item__category {
  font-size: 11px;
  font-weight: var(--fw-medium);
  letter-spacing: 0.08em;
  color: hsl(36 33% 70%);
  margin-top: 0.35rem;
}
.asc-search-result-item__meta {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 0.5rem;
  flex-shrink: 0;
}
.asc-search-result-item__price {
  font-size: 15px;
  font-weight: var(--fw-medium);
  color: hsl(36 33% 90%);
}
.asc-search-result-item__price .woocommerce-Price-amount {
  color: inherit;
}
.asc-search-result-item__arrow {
  color: hsl(36 33% 50%);
  transition: transform var(--trans-base), color var(--trans-base);
}
.asc-search-result-item:hover .asc-search-result-item__arrow {
  color: var(--clr-primary);
  transform: translateX(2px);
}
.asc-search-overlay__empty,
.asc-search-results__loading {
  color: hsl(36 33% 80%);
  padding-block: 1rem;
}
.asc-search-overlay__footer {
  margin-top: 2.5rem;
}
.asc-search-overlay__browse-link {
  display: inline-flex;
  align-items: center;
  gap: 0.625rem;
  color: var(--clr-primary);
  font-size: 11.5px;
  font-weight: 600;
  letter-spacing: 0.18em;
  text-transform: uppercase;
}
.asc-search-overlay__browse-link:hover {
  color: hsl(28 40% 72%);
}
@media (max-width: 767px) {
  .asc-search-overlay__inner {
    padding: 5.25rem 1rem 2rem;
  }

  .asc-search-overlay__close {
    top: 1rem;
    right: 1rem;
    width: 40px;
    height: 40px;
  }

  .asc-search-overlay__form {
    margin-bottom: 2rem;
  }

  .asc-search-overlay__field-wrap {
    gap: 0.85rem;
    padding-bottom: 1rem;
  }

  .asc-search-overlay__input {
    font-size: 1.35rem;
    letter-spacing: 0;
    line-height: 1.25;
  }

  .asc-search-overlay__popular {
    margin-bottom: 2.25rem;
  }

  .asc-search-chip {
    padding: 0.6rem 0.9rem;
    font-size: 11px;
  }

  .asc-search-result-item {
    align-items: flex-start;
    gap: 0.9rem;
    padding: 0.95rem 0.75rem;
    margin-inline: -0.75rem;
  }

  .asc-search-result-item__image-wrap {
    width: 60px;
    height: 60px;
  }

  .asc-search-result-item__name {
    font-size: 0.98rem;
    line-height: 1.3;
    white-space: normal;
  }

  .asc-search-result-item__meta {
    align-items: flex-start;
    gap: 0.35rem;
    min-width: 4.5rem;
  }

  .asc-search-result-item__price {
    font-size: 13.5px;
  }
}
.asc-cart-item__qty {
  font-size: 11px;
  color: var(--clr-muted-fg);
}
/* Cart item price */
.asc-cart-drawer .woocommerce-mini-cart-item .woocommerce-Price-amount,
.asc-cart-item__price {
  font-family: var(--font-body);
  font-size: 13px;
  font-weight: var(--fw-medium);
  color: var(--clr-fg);
  white-space: nowrap;
  flex-shrink: 0;
}
/* Remove button */
.asc-cart-drawer .woocommerce-mini-cart-item .remove,
.asc-cart-item__remove {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  font-size: 16px;
  color: var(--clr-muted-fg);
  cursor: pointer;
  transition: color var(--trans-fast);
  flex-shrink: 0;
  text-decoration: none !important;
  margin-top: 0.125rem;
}
.asc-cart-drawer .woocommerce-mini-cart-item .remove:hover,
.asc-cart-item__remove:hover {
  color: var(--clr-destructive);
}
/* Cart footer */
.asc-cart-drawer__footer {
  padding: 1.25rem 1.5rem;
  border-top: 1px solid var(--clr-border);
  flex-shrink: 0;
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
  background-color: var(--clr-bg);
}
/* Subtotal within WC mini-cart */
.asc-cart-drawer .woocommerce-mini-cart__total {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding-bottom: 1rem;
  border-bottom: 1px solid var(--clr-border);
  margin-bottom: 0.75rem;
}
.asc-cart-drawer .woocommerce-mini-cart__total strong {
  font-size: 11px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  font-weight: var(--fw-medium);
  color: var(--clr-muted-fg);
}
.asc-cart-drawer .woocommerce-mini-cart__total .woocommerce-Price-amount {
  font-size: 1.125rem;
  font-weight: var(--fw-medium);
  color: var(--clr-fg);
  font-family: var(--font-body);
  font-variant-numeric: tabular-nums lining-nums;
  letter-spacing: -0.02em;
}
/* Cart buttons */
.asc-cart-drawer__subtotal {
  display: flex;
  align-items: center;
  justify-content: space-between;
}
.asc-cart-drawer__subtotal-label {
  font-size: 11px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--clr-muted-fg);
}
.asc-cart-drawer__subtotal-amount {
  font-family: var(--font-body);
  font-weight: var(--fw-medium);
  font-size: 1.25rem;
  font-variant-numeric: tabular-nums lining-nums;
  letter-spacing: -0.02em;
  color: var(--clr-fg);
}
.asc-cart-drawer .woocommerce-mini-cart__total .woocommerce-Price-currencySymbol,
.asc-cart-drawer__subtotal-amount .woocommerce-Price-currencySymbol {
  font-size: 0.72em;
  position: relative;
  top: -0.02em;
  margin-right: 0.05em;
}
.asc-cart-drawer__actions {
  display: flex;
  flex-direction: column;
  gap: 0.625rem;
}
/* Override WC mini-cart buttons */
.asc-cart-drawer .woocommerce-mini-cart__buttons {
  display: flex;
  flex-direction: column;
  gap: 0.625rem;
  margin: 0;
  padding: 0;
}
.asc-cart-drawer .woocommerce-mini-cart__buttons a.button {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  padding: 0.875rem 1.5rem;
  font-family: var(--font-body);
  font-size: 11px;
  font-weight: var(--fw-medium);
  letter-spacing: 0.25em;
  text-transform: uppercase;
  text-decoration: none !important;
  transition: background-color var(--trans-base),
              color var(--trans-base),
              border-color var(--trans-base);
  cursor: pointer;
  border-radius: 0;
}
.asc-cart-drawer .woocommerce-mini-cart__buttons a.checkout {
  background-color: var(--clr-fg);
  color: var(--clr-bg);
  border: 1px solid var(--clr-fg);
}
.asc-cart-drawer .woocommerce-mini-cart__buttons a.checkout:hover {
  background-color: var(--clr-secondary);
  border-color: var(--clr-secondary);
}
.asc-cart-drawer .woocommerce-mini-cart__buttons a.cart {
  background-color: transparent;
  color: var(--clr-fg);
  border: 1px solid var(--clr-border);
}
.asc-cart-drawer .woocommerce-mini-cart__buttons a.cart:hover {
  border-color: var(--clr-fg);
}
/* Shipping note */
.asc-cart-drawer__shipping-note {
  text-align: center;
  font-size: 10px;
  letter-spacing: 0.06em;
  color: var(--clr-muted-fg);
  opacity: 0.8;
}
/* Trust indicators */
.asc-cart-drawer__trust {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
  gap: 0.375rem;
  font-size: 9px;
  letter-spacing: 0.06em;
  color: var(--clr-muted-fg);
  opacity: 0.65;
  padding-top: 0.5rem;
}
.asc-cart-drawer__trust-sep {
  font-size: 8px;
  opacity: 0.4;
}
/* =============================================================================
   MINI-CART (WooCommerce template override)
   ============================================================================= */
/* Empty state */
.asc-mini-cart__empty {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 1rem;
  padding-block: 4rem;
  text-align: center;
}
.asc-mini-cart__empty-icon {
  color: var(--clr-muted-fg);
  opacity: 0.5;
}
.asc-mini-cart__empty-icon svg {
  width: 48px;
  height: 48px;
}
.asc-mini-cart__empty-heading {
  font-family: var(--font-display);
  font-weight: var(--fw-light);
  font-size: 1.125rem;
  color: var(--clr-fg);
  margin: 0;
}
.asc-mini-cart__empty-sub {
  font-size: 13px;
  color: var(--clr-muted-fg);
  margin: 0;
}
/* Cart items list */
.asc-mini-cart__items {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 0;
}
/* Single cart item */
.asc-mini-cart__item {
  display: flex;
  align-items: flex-start;
  gap: 1rem;
  padding-block: 1.25rem;
  border-bottom: 1px solid var(--clr-border);
  position: relative;
}
.asc-mini-cart__item:last-child {
  border-bottom: none;
}
/* Remove button */
.asc-mini-cart__remove {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  font-size: 16px;
  color: var(--clr-muted-fg);
  cursor: pointer;
  transition: color var(--trans-fast);
  flex-shrink: 0;
  text-decoration: none !important;
  position: absolute;
  top: 1.25rem;
  right: 0;
}
.asc-mini-cart__remove:hover {
  color: var(--clr-destructive);
}
/* Item image */
.asc-mini-cart__item-image {
  width: 72px;
  height: 88px;
  flex-shrink: 0;
  background-color: var(--clr-muted);
  overflow: hidden;
}
.asc-mini-cart__item-image a {
  display: block;
  width: 100%;
  height: 100%;
}
.asc-mini-cart__item-img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  display: block;
}
/* Item body */
.asc-mini-cart__item-body {
  flex: 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
}
.asc-mini-cart__item-name {
  font-family: var(--font-display);
  font-weight: var(--fw-light);
  font-size: 1rem;
  color: var(--clr-fg);
  line-height: 1.3;
}
.asc-mini-cart__item-name a {
  color: inherit;
  text-decoration: none !important;
  transition: color var(--trans-fast);
}
.asc-mini-cart__item-name a:hover {
  color: var(--clr-primary);
}
.asc-mini-cart__item-meta {
  font-size: 11px;
  color: var(--clr-muted-fg);
}
.asc-mini-cart__item-qty-price {
  font-size: 11px;
  color: var(--clr-muted-fg);
}
/* Mini-cart footer */
.asc-mini-cart__footer {
  padding-top: 1.25rem;
  border-top: 1px solid var(--clr-border);
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
}
.asc-mini-cart__subtotal {
  display: flex;
  align-items: center;
  justify-content: space-between;
}
.asc-mini-cart__subtotal-label {
  font-size: 11px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--clr-muted-fg);
}
.asc-mini-cart__subtotal-value {
  font-family: var(--font-display);
  font-weight: var(--fw-light);
  font-size: 1.25rem;
  color: var(--clr-fg);
}
.asc-mini-cart__note {
  text-align: center;
  font-size: 10px;
  letter-spacing: 0.06em;
  color: var(--clr-muted-fg);
  opacity: 0.8;
  margin: 0;
}
.asc-mini-cart__actions {
  display: flex;
  flex-direction: column;
  gap: 0.625rem;
}
/* =============================================================================
   09 — Home
   All homepage section styles: hero, categories, featured, story,
   craftsmanship preview, social proof, gifting, newsletter, final CTA.
   ============================================================================= */
/* =============================================================================
   HERO
   ============================================================================= */
.asc-hero {
  min-height: 90vh;
  display: grid;
  align-items: center;
  padding-block: clamp(4rem, 8vw, 8rem);
  position: relative;
  overflow: hidden;
}
.asc-hero__inner {
  max-width: var(--container-max);
  margin-inline: auto;
  padding-inline: var(--container-px);
  display: grid;
  grid-template-columns: 1fr;
  gap: 3rem;
  align-items: center;
  position: relative;
  z-index: 1;
}
@media (min-width: 1024px) {
  .asc-hero__inner {
    grid-template-columns: 1fr 1fr;
    gap: 4rem;
  }
}
/* Content side */
.asc-hero__content {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  max-width: 600px;
}
.asc-hero__eyebrow {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  margin-bottom: 1.5rem;
}
.asc-hero__eyebrow-line {
  width: 32px;
  height: 1px;
  background-color: var(--clr-primary);
  opacity: 0.6;
}
.asc-hero__eyebrow-text {
  font-size: 10px;
  font-weight: var(--fw-medium);
  letter-spacing: 0.3em;
  text-transform: uppercase;
  color: var(--clr-muted-fg);
  opacity: 0.55;
}
/* Hero title */
.asc-hero__title {
  font-family: var(--font-display);
  font-weight: var(--fw-light);
  font-size: var(--text-hero); /* clamp(2.75rem, 5vw, 4.5rem) */
  line-height: 1.05;
  letter-spacing: -0.01em;
  color: var(--clr-fg);
  margin-bottom: 1.5rem;
}
.asc-hero__title em {
  font-style: italic;
  color: var(--clr-primary);
}
/* Subtitle */
.asc-hero__subtitle {
  font-size: var(--text-md); /* 15px */
  line-height: 1.75;
  color: var(--clr-muted-fg);
  max-width: 44ch;
  margin-bottom: 2rem;
}
/* Trust tagline */
.asc-hero__tagline {
  font-size: 9px;
  letter-spacing: 0.25em;
  text-transform: uppercase;
  color: var(--clr-muted-fg);
  opacity: 0.55;
  margin-bottom: 2rem;
}
/* Button group */
.asc-hero__actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 1rem;
}
/* Image side */
.asc-hero__media,
.asc-hero__image {
  position: relative;
  overflow: hidden;
}
.asc-hero__image-wrap {
  position: relative;
  overflow: hidden;
  aspect-ratio: 4 / 5;
}
@media (min-width: 1024px) {
  .asc-hero__image-wrap {
    aspect-ratio: 3 / 4;
  }
}
.asc-hero__image > img,
.asc-hero__img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  -o-object-position: center top;
     object-position: center top;
  will-change: transform;
  transition: transform var(--transition-xl) var(--ease-out-expo);
}
/* Hero image caption overlay */
.asc-hero__caption {
  position: absolute;
  bottom: 1rem;
  right: 1rem;
  font-size: 9px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: white;
  background: hsl(20 8% 8% / 0.45);
  padding: 0.25rem 0.75rem;
  pointer-events: none;
}
/* Floating accent card */
.asc-hero__accent-card {
  position: absolute;
  bottom: -1px;
  left: -1px;
  background-color: var(--clr-bg);
  border-top: 1px solid var(--clr-border);
  border-right: 1px solid var(--clr-border);
  padding: 1rem 1.25rem;
  max-width: 200px;
}
.asc-hero__accent-card-label {
  font-size: 9px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--clr-muted-fg);
  margin-bottom: 0.25rem;
  opacity: 0.7;
}
.asc-hero__accent-card-value {
  font-family: var(--font-display);
  font-weight: var(--fw-light);
  font-size: 1.25rem;
  color: var(--clr-fg);
}
/* Hero decorative index */
.asc-hero__index {
  position: absolute;
  top: 1.5rem;
  right: 1.5rem;
  font-family: var(--font-display);
  font-style: italic;
  font-weight: var(--fw-light);
  font-size: 5rem;
  color: var(--clr-bg);
  opacity: 0.3;
  line-height: 1;
  -webkit-user-select: none;
     -moz-user-select: none;
          user-select: none;
  pointer-events: none;
}
/* Trust tagline (template uses asc-hero__trust instead of asc-hero__tagline) */
.asc-hero__trust {
  font-size: 9px;
  letter-spacing: 0.25em;
  text-transform: uppercase;
  color: var(--clr-muted-fg);
  opacity: 0.55;
  margin-bottom: 2rem;
}
.asc-hero__trust-sep {
  opacity: 0.4;
}
/* =============================================================================
   CATEGORY GRID
   ============================================================================= */
.asc-category-grid {
  padding-block: var(--section-py);
}
.asc-category-grid__header {
  text-align: center;
  margin-bottom: clamp(3rem, 5vw, 4rem);
  padding-inline: var(--container-px);
}
.asc-category-grid__grid {
  max-width: var(--container-max);
  margin-inline: auto;
  padding-inline: var(--container-px);
  display: grid;
  grid-template-columns: 1fr;
  gap: 1.5rem;
}
@media (min-width: 640px) {
  .asc-category-grid__grid {
    grid-template-columns: repeat(2, 1fr);
  }
}
@media (min-width: 768px) {
  .asc-category-grid__grid {
    grid-template-columns: repeat(2, 1fr);
  }
}
@media (min-width: 1200px) {
  .asc-category-grid__grid {
    grid-template-columns: repeat(4, 1fr);
  }
}
/* Category grid title */
.asc-category-grid__title {
  font-family: var(--font-display);
  font-weight: var(--fw-light);
  font-size: clamp(1.75rem, 3vw, 2.5rem);
  color: var(--clr-fg);
  line-height: 1.15;
  margin-bottom: 1rem;
}
/* Category card */
.asc-category-card {
  position: relative;
  aspect-ratio: 3 / 4;
  overflow: hidden;
  display: block;
  text-decoration: none !important;
}
/* Card inner wrapper */
.asc-category-card__inner {
  position: absolute;
  inset: 0;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  padding: 1.5rem;
  color: white;
  z-index: 2;
}
/* Card body wrapper */
.asc-category-card__body {
  display: flex;
  flex-direction: column;
  gap: 0.375rem;
}
/* Background image */
.asc-category-card__bg,
.asc-category-card__overlay {
  position: absolute;
  inset: 0;
  background-size: cover;
  background-position: center;
  transition: transform var(--transition-xl) var(--ease-out-expo);
}
/* Uses .asc-img-cover if an <img> is used instead */
.asc-category-card > img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  transition: transform var(--transition-xl) var(--ease-out-expo);
}
.asc-category-card:hover .asc-category-card__bg,
.asc-category-card:hover .asc-category-card__overlay,
.asc-category-card:hover > img {
  transform: scale(1.04);
}
/* Gradient overlay */
.asc-category-card__gradient {
  position: absolute;
  inset: 0;
  background: linear-gradient(
    to bottom,
    transparent 30%,
    hsl(20 8% 8% / 0.5) 70%,
    hsl(20 8% 8% / 0.85) 100%
  );
  pointer-events: none;
}
/* Index number (top-right) */
.asc-category-card__index,
.asc-category-card__numeral {
  position: absolute;
  top: 1.25rem;
  right: 1.25rem;
  font-family: var(--font-display);
  font-style: italic;
  font-weight: var(--fw-light);
  font-size: 2.5rem;
  color: white;
  opacity: 0.35;
  line-height: 1;
  -webkit-user-select: none;
     -moz-user-select: none;
          user-select: none;
  pointer-events: none;
}
/* Content overlay (bottom-aligned) */
.asc-category-card__content {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  padding: 1.5rem;
  color: white;
}
.asc-category-card__tag {
  display: inline-block;
  font-size: 9px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.65);
  margin-bottom: 0.5rem;
}
.asc-category-card__name {
  font-family: var(--font-display);
  font-weight: var(--fw-light);
  font-size: clamp(1.375rem, 2vw, 1.75rem);
  line-height: 1.15;
  color: white;
  margin-bottom: 0.375rem;
  letter-spacing: 0.01em;
}
.asc-category-card__subtitle,
.asc-category-card__desc {
  font-size: 11px;
  color: rgba(255, 255, 255, 0.65);
  letter-spacing: 0.04em;
  margin-bottom: 0.375rem;
}
.asc-category-card__count {
  font-size: 9px;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.5);
}
.asc-category-card__link {
  margin-top: 0.75rem;
}
/* =============================================================================
   FEATURED PRODUCTS
   ============================================================================= */
.asc-featured-products {
  padding-block: var(--section-py);
  background-color: var(--clr-bg);
}
.asc-featured-products__inner {
  max-width: var(--container-max);
  margin-inline: auto;
  padding-inline: var(--container-px);
}
.asc-featured-products__header {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  justify-content: space-between;
  gap: 1rem;
  margin-bottom: clamp(2rem, 4vw, 3rem);
}
.asc-featured-products__header-left {
  display: flex;
  flex-direction: column;
}
.asc-featured-products__title {
  font-family: var(--font-display);
  font-weight: var(--fw-light);
  font-size: clamp(1.75rem, 3vw, 2.5rem);
  color: var(--clr-fg);
  line-height: 1.15;
}
.asc-featured-products__cta,
.asc-featured-products__archive-link {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  font-size: 11px;
  font-weight: var(--fw-medium);
  letter-spacing: 0.15em;
  text-transform: uppercase;
  color: var(--clr-fg);
  text-decoration: none !important;
  transition: color var(--trans-base);
  white-space: nowrap;
}
.asc-featured-products__cta svg,
.asc-featured-products__archive-link svg {
  width: 14px;
  height: 14px;
  transition: transform var(--trans-base);
}
.asc-featured-products__cta:hover,
.asc-featured-products__archive-link:hover {
  color: var(--clr-primary);
  text-decoration: none;
}
.asc-featured-products__cta:hover svg,
.asc-featured-products__archive-link:hover svg {
  transform: translateX(3px);
}
.asc-featured-products__grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 1.5rem 1rem;
}
@media (min-width: 768px) {
  .asc-featured-products__grid {
    grid-template-columns: repeat(3, 1fr);
    gap: 2rem 1.5rem;
  }
}
@media (min-width: 1024px) {
  .asc-featured-products__grid {
    grid-template-columns: repeat(4, 1fr);
  }
}
/* =============================================================================
   BRAND STORY
   ============================================================================= */
.asc-brand-story {
  padding-block: var(--section-py);
  background-color: var(--clr-card);
}
.asc-brand-story__inner {
  max-width: var(--container-max);
  margin-inline: auto;
  padding-inline: var(--container-px);
  display: grid;
  grid-template-columns: 1fr;
  gap: 3rem;
  align-items: center;
}
@media (min-width: 1024px) {
  .asc-brand-story__inner {
    grid-template-columns: 55% 1fr;
    gap: 5rem;
  }
}
/* Image column */
.asc-brand-story__image-wrap,
.asc-brand-story__image {
  position: relative;
  overflow: hidden;
  aspect-ratio: 4 / 5;
}
@media (min-width: 1024px) {
  .asc-brand-story__image-wrap,
  .asc-brand-story__image {
    aspect-ratio: auto;
    height: 600px;
  }
}
.asc-brand-story__image > img,
.asc-brand-story__img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  -o-object-position: center;
     object-position: center;
  will-change: transform;
}
/* Content column */
.asc-brand-story__content {
  display: flex;
  flex-direction: column;
  gap: 1.5rem;
}
.asc-brand-story__title {
  font-family: var(--font-display);
  font-weight: var(--fw-light);
  font-size: clamp(1.75rem, 3vw, 2.5rem);
  color: var(--clr-fg);
  line-height: 1.15;
}
/* Quote */
.asc-brand-story__quote {
  border-left: 2px solid var(--clr-primary);
  padding-left: 1.5rem;
  font-family: var(--font-display);
  font-style: italic;
  font-weight: var(--fw-light);
  font-size: clamp(1.25rem, 2vw, 1.5rem);
  line-height: 1.5;
  color: var(--clr-fg);
  opacity: 0.85;
}
.asc-brand-story__body {
  font-size: var(--text-md);
  line-height: 1.75;
  color: var(--clr-muted-fg);
}
.asc-brand-story__link,
.asc-brand-story__cta {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  font-size: 11px;
  font-weight: var(--fw-medium);
  letter-spacing: 0.15em;
  text-transform: uppercase;
  color: var(--clr-fg);
  text-decoration: none !important;
  transition: color var(--trans-base);
}
.asc-brand-story__link svg,
.asc-brand-story__cta svg {
  width: 14px;
  height: 14px;
  transition: transform var(--trans-base);
}
.asc-brand-story__link:hover,
.asc-brand-story__cta:hover {
  color: var(--clr-primary);
}
.asc-brand-story__link:hover svg,
.asc-brand-story__cta:hover svg {
  transform: translateX(3px);
}
/* =============================================================================
   CRAFTSMANSHIP PREVIEW (dark section)
   ============================================================================= */
.asc-craftsmanship-preview {
  background: var(--clr-dark-bg);
  color: var(--clr-dark-fg);
  padding-block: var(--section-py);
}
.asc-craftsmanship-preview__inner {
  max-width: var(--container-max);
  margin-inline: auto;
  padding-inline: var(--container-px);
}
.asc-craftsmanship-preview__header {
  max-width: 48ch;
  margin-bottom: clamp(3rem, 5vw, 4rem);
}
.asc-craftsmanship-preview__header .asc-section-label,
.asc-craftsmanship-preview__header .asc-eyebrow {
  color: hsl(28 40% 59% / 0.55);
  opacity: 1;
}
.asc-craftsmanship-preview__header h2 {
  color: var(--clr-dark-fg);
}
.asc-craftsmanship-preview__title {
  font-family: var(--font-display);
  font-weight: var(--fw-light);
  font-size: clamp(2rem, 3.5vw, 3rem);
  color: var(--clr-dark-fg);
  line-height: 1.1;
  margin-bottom: 1rem;
}
.asc-craftsmanship-preview__subtitle {
  font-size: var(--text-md);
  line-height: 1.75;
  color: var(--clr-dark-muted-fg);
}
.asc-craftsmanship-preview__grid,
.asc-craftsmanship-preview__pillars {
  display: grid;
  grid-template-columns: 1fr;
  gap: 3rem;
}
@media (min-width: 768px) {
  .asc-craftsmanship-preview__grid,
  .asc-craftsmanship-preview__pillars {
    grid-template-columns: repeat(2, 1fr);
  }
}
@media (min-width: 1024px) {
  .asc-craftsmanship-preview__grid,
  .asc-craftsmanship-preview__pillars {
    grid-template-columns: repeat(3, 1fr);
    gap: 4rem;
  }
}
/* Pillar item */
.asc-pillar,
.asc-craftsmanship-preview__pillar {
  display: flex;
  flex-direction: column;
  gap: 1rem;
  padding-top: 1.5rem;
  border-top: 1px solid var(--clr-dark-border);
}
.asc-pillar__index,
.asc-craftsmanship-preview__num {
  font-family: var(--font-display);
  font-style: italic;
  font-weight: var(--fw-light);
  font-size: 3rem;
  color: var(--clr-primary);
  opacity: 0.4;
  line-height: 1;
  -webkit-user-select: none;
     -moz-user-select: none;
          user-select: none;
}
.asc-pillar__title,
.asc-craftsmanship-preview__pillar-title {
  font-family: var(--font-display);
  font-weight: var(--fw-light);
  font-size: clamp(1.25rem, 2vw, 1.5rem);
  color: var(--clr-dark-fg);
  line-height: 1.2;
}
.asc-pillar__body,
.asc-craftsmanship-preview__pillar-body {
  font-size: 13px;
  line-height: 1.75;
  color: var(--clr-dark-muted-fg);
}
.asc-craftsmanship-preview__cta {
  margin-top: clamp(3rem, 5vw, 4rem);
  display: flex;
  justify-content: flex-start;
}
/* =============================================================================
   SOCIAL PROOF / TESTIMONIALS
   ============================================================================= */
.asc-social-proof {
  padding-block: var(--section-py);
}
.asc-social-proof__inner {
  max-width: var(--container-max);
  margin-inline: auto;
  padding-inline: var(--container-px);
}
/* Trust bar */
.asc-trust-bar,
.asc-social-proof__trust-bar {
  text-align: center;
  padding-block: 1.5rem;
  border-bottom: 1px solid var(--clr-border);
  margin-bottom: clamp(3rem, 5vw, 4rem);
}
.asc-trust-bar__text,
.asc-social-proof__trust-bar > p {
  font-size: 9px;
  letter-spacing: 0.3em;
  text-transform: uppercase;
  color: var(--clr-muted-fg);
  opacity: 0.6;
}
.asc-trust-bar__items,
.asc-social-proof__trust-list {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 2.5rem;
  margin-top: 1rem;
}
.asc-trust-bar__item,
.asc-social-proof__trust-item {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  font-size: 10px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--clr-muted-fg);
  opacity: 0.7;
}
.asc-trust-bar__item svg,
.asc-social-proof__trust-item svg {
  width: 14px;
  height: 14px;
  color: var(--clr-primary);
  opacity: 0.8;
}
.asc-social-proof__trust-sep {
  list-style: none;
  font-size: 10px;
  color: var(--clr-muted-fg);
  opacity: 0.4;
}
.asc-social-proof__title {
  font-family: var(--font-display);
  font-weight: var(--fw-light);
  font-size: clamp(1.75rem, 3vw, 2.5rem);
  color: var(--clr-fg);
  line-height: 1.15;
}
/* Testimonials header */
.asc-social-proof__header {
  text-align: center;
  margin-bottom: clamp(2.5rem, 4vw, 3.5rem);
}
/* Testimonials grid */
.asc-testimonials-grid,
.asc-testimonials__grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1.5rem;
}
@media (min-width: 768px) {
  .asc-testimonials-grid,
  .asc-testimonials__grid {
    grid-template-columns: repeat(3, 1fr);
    gap: 2rem;
  }
}
/* Testimonial card */
.asc-testimonial {
  padding: 2rem;
  background-color: var(--clr-card);
  display: flex;
  flex-direction: column;
  gap: 1.25rem;
  position: relative;
}
/* Large quote mark */
.asc-testimonial::before {
  content: '\201C';
  font-family: var(--font-display);
  font-style: italic;
  font-size: 5rem;
  line-height: 1;
  color: var(--clr-primary);
  opacity: 0.2;
  position: absolute;
  top: 0.5rem;
  left: 1.5rem;
  -webkit-user-select: none;
     -moz-user-select: none;
          user-select: none;
  pointer-events: none;
}
.asc-testimonial__content,
.asc-testimonial__quote {
  font-family: var(--font-display);
  font-weight: var(--fw-light);
  font-style: italic;
  font-size: 1.0625rem;
  line-height: 1.6;
  color: var(--clr-fg);
  padding-top: 1.5rem;
  position: relative;
  z-index: 1;
}
.asc-testimonial__footer,
.asc-testimonial__author {
  border-top: 1px solid var(--clr-border);
  padding-top: 1rem;
  display: flex;
  flex-direction: column;
  gap: 0.125rem;
}
.asc-testimonial__name {
  font-family: var(--font-body);
  font-size: 12px;
  font-weight: var(--fw-medium);
  letter-spacing: 0.08em;
  color: var(--clr-fg);
}
.asc-testimonial__context,
.asc-testimonial__location {
  font-size: 10px;
  letter-spacing: 0.06em;
  color: var(--clr-muted-fg);
}
.asc-testimonial__piece {
  font-size: 10px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--clr-primary);
  opacity: 0.7;
  margin-top: 0.25rem;
}
/* Stars */
.asc-testimonial__stars {
  display: flex;
  gap: 2px;
  color: var(--clr-primary);
  font-size: 10px;
}
/* =============================================================================
   GIFTING SECTION
   ============================================================================= */
.asc-gifting,
.asc-gifting-section {
  padding-block: var(--section-py);
  background-color: var(--clr-card);
}
.asc-gifting__inner,
.asc-gifting-section > .asc-container {
  max-width: var(--container-max);
  margin-inline: auto;
  padding-inline: var(--container-px);
}
.asc-gifting__header,
.asc-gifting-section__header {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  justify-content: space-between;
  gap: 1rem;
  margin-bottom: clamp(2rem, 4vw, 3rem);
}
.asc-gifting__grid,
.asc-gifting-section__grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 1rem;
}
@media (min-width: 768px) {
  .asc-gifting__grid,
  .asc-gifting-section__grid {
    grid-template-columns: repeat(4, 1fr);
    gap: 1.5rem;
  }
}
/* Gifting item card */
.asc-gifting-item,
.asc-gifting-card {
  position: relative;
  aspect-ratio: 4 / 5;
  overflow: hidden;
  display: block;
  text-decoration: none !important;
}
.asc-gifting-item__image,
.asc-gifting-card__image-wrap {
  width: 100%;
  height: 100%;
  overflow: hidden;
}
.asc-gifting-item__image,
.asc-gifting-card__img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  transition: transform var(--transition-xl) var(--ease-out-expo);
}
.asc-gifting-item:hover .asc-gifting-item__image,
.asc-gifting-card:hover .asc-gifting-card__img {
  transform: scale(1.05);
}
.asc-gifting-item__gradient,
.asc-gifting-card__overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(
    to bottom,
    transparent 40%,
    hsl(20 8% 8% / 0.75) 100%
  );
  pointer-events: none;
}
.asc-gifting-item__content,
.asc-gifting-card__content {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  padding: 1.25rem;
  color: white;
}
.asc-gifting-item__title,
.asc-gifting-card__title {
  font-family: var(--font-display);
  font-weight: var(--fw-light);
  font-size: clamp(1rem, 1.5vw, 1.25rem);
  color: white;
  margin-bottom: 0.25rem;
}
.asc-gifting-item__subtitle,
.asc-gifting-card__subtitle {
  font-size: 10px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.6);
}
/* =============================================================================
   NEWSLETTER
   ============================================================================= */
.asc-newsletter {
  padding-block: var(--section-py);
  background-color: var(--clr-bg);
}
.asc-newsletter__inner {
  max-width: 540px;
  margin-inline: auto;
  padding-inline: var(--container-px);
  text-align: center;
}
.asc-newsletter__tagline,
.asc-newsletter .asc-section-label {
  font-size: 10px;
  letter-spacing: 0.25em;
  text-transform: uppercase;
  color: var(--clr-muted-fg);
  opacity: 0.55;
  margin-bottom: 1rem;
}
.asc-newsletter__title {
  font-family: var(--font-display);
  font-weight: var(--fw-light);
  font-size: clamp(1.75rem, 3vw, 2.25rem);
  color: var(--clr-fg);
  margin-bottom: 0.75rem;
}
.asc-newsletter__subtitle,
.asc-newsletter__desc {
  font-size: 13px;
  line-height: 1.7;
  color: var(--clr-muted-fg);
  margin-bottom: 2rem;
}
.asc-newsletter__form,
.asc-newsletter__form-wrap .asc-newsletter__form {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
  align-items: stretch;
}
@media (min-width: 480px) {
  .asc-newsletter__form,
  .asc-newsletter__form-wrap .asc-newsletter__form {
    flex-direction: row;
    align-items: flex-end;
  }
}
.asc-newsletter__input-wrap,
.asc-newsletter__field-wrap {
  flex: 1;
  border-bottom: 1px solid var(--clr-border);
  transition: border-color var(--trans-base);
}
.asc-newsletter__input-wrap:focus-within,
.asc-newsletter__field-wrap:focus-within {
  border-bottom-color: var(--clr-primary);
}
.asc-newsletter__input,
.asc-newsletter input[type="email"] {
  width: 100%;
  background: transparent;
  border: none;
  outline: none;
  padding: 0.75rem 0;
  font-size: 13px;
  color: var(--clr-fg);
  text-align: left;
}
.asc-newsletter__input::-moz-placeholder, .asc-newsletter input[type="email"]::-moz-placeholder {
  color: var(--clr-muted-fg);
  opacity: 0.6;
}
.asc-newsletter__input::placeholder,
.asc-newsletter input[type="email"]::placeholder {
  color: var(--clr-muted-fg);
  opacity: 0.6;
}
.asc-newsletter__success {
  font-size: 12px;
  line-height: 1.6;
  color: var(--clr-muted-fg);
}
.asc-newsletter__disclaimer {
  font-size: 10px;
  letter-spacing: 0.04em;
  color: var(--clr-muted-fg);
  opacity: 0.6;
  margin-top: 1rem;
}
/* =============================================================================
   FINAL CTA (dark)
   ============================================================================= */
.asc-final-cta {
  background-color: var(--clr-dark-bg);
  color: var(--clr-dark-fg);
  padding-block: var(--section-py);
  text-align: center;
}
.asc-final-cta__inner {
  max-width: var(--container-max);
  margin-inline: auto;
  padding-inline: var(--container-px);
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 2rem;
}
.asc-final-cta__eyebrow,
.asc-final-cta .asc-section-label,
.asc-final-cta__sub {
  font-size: 10px;
  letter-spacing: 0.3em;
  text-transform: uppercase;
  color: var(--clr-dark-fg);
  opacity: 0.4;
}
.asc-final-cta__title {
  font-family: var(--font-display);
  font-weight: var(--fw-light);
  font-size: clamp(2.5rem, 5vw, 4.5rem);
  color: var(--clr-dark-fg);
  line-height: 1.05;
  letter-spacing: -0.01em;
  max-width: 18ch;
}
.asc-final-cta__title em {
  font-style: italic;
  color: var(--clr-primary);
}
.asc-final-cta__subtitle,
.asc-final-cta__body {
  font-size: 14px;
  color: var(--clr-dark-muted-fg);
  max-width: 44ch;
  line-height: 1.7;
}
.asc-final-cta__actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 1rem;
}
/* =============================================================================
   Reference Homepage Overrides
   ============================================================================= */
.asc-hero {
  min-height: 92vh;
  padding-block: 0;
}
.asc-hero .asc-container {
  max-width: none;
  padding-inline: 0;
}
.asc-hero__inner {
  grid-template-columns: 1fr;
  gap: 0;
  max-width: none;
  padding-inline: 0;
}
@media (min-width: 1024px) {
  .asc-hero__inner {
    grid-template-columns: 1fr 1fr;
  }
}
.asc-hero__content {
  justify-content: center;
  padding: 7rem 2rem;
  max-width: none;
}
@media (min-width: 1024px) {
  .asc-hero__content {
    padding-inline: 6rem;
    padding-block: 0;
  }
}
.asc-hero__content .asc-editorial-rule {
  margin: 0 0 3rem;
}
.asc-hero__content .asc-section-label {
  margin-bottom: 2.5rem;
}
.asc-hero__title {
  font-size: 2.75rem;
  line-height: 1.02;
  letter-spacing: 0.01em;
  margin-bottom: 2rem;
}
@media (min-width: 768px) {
  .asc-hero__title {
    font-size: 3.5rem;
  }
}
@media (min-width: 1024px) {
  .asc-hero__title {
    font-size: 4.5rem;
  }
}
.asc-hero__title em {
  color: var(--clr-fg);
}
.asc-hero__subtitle {
  font-size: 13.5px;
  line-height: 1.9;
  max-width: 360px;
  margin-bottom: 2.5rem;
}
.asc-hero__actions {
  gap: 2rem;
  margin-bottom: 4rem;
}
.asc-hero__primary-link {
  display: inline-block;
  border: 1px solid var(--clr-fg);
  padding: 1rem 2.5rem;
  font-size: 10px;
  font-weight: var(--fw-medium);
  letter-spacing: 0.25em;
  text-transform: uppercase;
  color: var(--clr-fg);
  transition: background-color var(--trans-base), color var(--trans-base);
}
.asc-hero__primary-link:hover {
  background: var(--clr-fg);
  color: var(--clr-bg);
}
.asc-hero__secondary-link {
  font-size: 10px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--clr-muted-fg);
}
.asc-hero__trust-wrap {
  display: flex;
  align-items: center;
  gap: 1.5rem;
}
.asc-hero__trust-line {
  width: 24px;
  height: 1px;
  background: var(--clr-border);
  flex-shrink: 0;
}
.asc-hero__trust {
  font-size: 9px;
  letter-spacing: 0.2em;
  color: hsl(25 6% 40% / 0.4);
}
.asc-hero__image {
  order: -1;
  min-height: 500px;
}
@media (min-width: 1024px) {
  .asc-hero__image {
    order: 2;
    min-height: 0;
  }
}
.asc-hero__image-wrap {
  aspect-ratio: auto;
  min-height: 500px;
}
.asc-hero__img {
  width: 100%;
  height: 118%;
  -o-object-fit: cover;
     object-fit: cover;
}
.asc-hero__caption {
  right: 2.5rem;
  bottom: 2.5rem;
  background: transparent;
  padding: 0;
  color: hsl(36 33% 97% / 0.5);
  font-size: 8px;
  letter-spacing: 0.4em;
}
.asc-category-grid,
.asc-brand-story,
.asc-social-proof,
.asc-newsletter {
  padding-block: 5rem;
}
.asc-featured-products,
.asc-gifting-section {
  padding-block: 5rem;
  background: var(--clr-card);
}
.asc-craftsmanship-preview {
  padding-block: 5.5rem;
}
@media (min-width: 1024px) {
  .asc-category-grid,
  .asc-brand-story,
  .asc-social-proof,
  .asc-newsletter,
  .asc-featured-products,
  .asc-gifting-section {
    padding-block: 7.5rem;
  }

  .asc-craftsmanship-preview,
  .asc-final-cta {
    padding-block: 8rem;
  }
}
.asc-category-grid__header,
.asc-gifting-section__header,
.asc-social-proof__header {
  text-align: left;
  margin-bottom: 3.5rem;
  padding-inline: 0;
}
.asc-category-grid__title,
.asc-featured-products__title,
.asc-social-proof__title,
.asc-gifting-section__title {
  font-size: 1.875rem;
  line-height: 1.1;
}
.asc-category-grid__title em,
.asc-featured-products__title em,
.asc-social-proof__title em,
.asc-gifting-section__title em,
.asc-brand-story__title em,
.asc-craftsmanship-preview__title em,
.asc-final-cta__title em {
  color: inherit;
}
@media (min-width: 768px) {
  .asc-category-grid__title,
  .asc-featured-products__title,
  .asc-social-proof__title,
  .asc-gifting-section__title {
    font-size: 2.75rem;
  }
}
.asc-category-grid__grid {
  padding-inline: 0;
  gap: 0.875rem;
}
.asc-category-card {
  aspect-ratio: 3 / 3.45;
}
.asc-category-card__image {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  transition: transform 1.4s var(--ease-out-expo);
}
.asc-category-card:hover .asc-category-card__image {
  transform: scale(1.05);
}
.asc-category-card__gradient {
  background: linear-gradient(to top, hsl(20 8% 15% / 0.7), hsl(20 8% 15% / 0.15) 45%, transparent);
}
.asc-category-card__index {
  top: 1.35rem;
  left: 1.35rem;
  right: auto;
  color: hsl(36 33% 97% / 0.15);
}
.asc-category-card__content {
  padding: 1.45rem 1.45rem 1.55rem;
}
.asc-category-card__name {
  font-size: 1.45rem;
  margin-bottom: 0.35rem;
}
.asc-category-card__desc {
  max-width: 220px;
  font-size: 11px;
  line-height: 1.62;
  color: hsl(36 33% 97% / 0.7);
}
.asc-category-card__meta {
  margin: 0.85rem 0 0;
  font-size: 10px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: hsl(36 33% 97% / 0.62);
}
@media (max-width: 767px) {
  .asc-category-card {
    aspect-ratio: 3 / 3.7;
  }

  .asc-category-card__content {
    padding: 1.2rem 1.15rem 1.25rem;
  }

  .asc-category-card__name {
    font-size: 1.3rem;
  }
}
.asc-featured-products__header {
  margin-bottom: 3.5rem;
}
.asc-featured-products__archive-link {
  margin-top: 2rem;
  font-size: 10px;
  letter-spacing: 0.2em;
  color: var(--clr-muted-fg);
}
@media (min-width: 768px) {
  .asc-featured-products__archive-link {
    margin-top: 0;
  }
}
.asc-featured-products__grid {
  gap: 3rem 1.5rem;
}
.asc-featured-products__empty {
  display: grid;
  gap: 1rem;
  justify-items: start;
  max-width: 34rem;
  padding: 1.5rem 0 0.25rem;
}
.asc-featured-products__empty p {
  margin: 0;
  font-size: 14px;
  line-height: 1.8;
  color: var(--clr-muted-fg);
}
.asc-brand-story {
  background: var(--clr-bg);
}
.asc-brand-story__inner {
  grid-template-columns: 1fr;
  gap: 3rem;
}
@media (min-width: 1024px) {
  .asc-brand-story__inner {
    grid-template-columns: repeat(12, minmax(0, 1fr));
    gap: 1.5rem;
  }
}
@media (min-width: 1024px) {
  .asc-brand-story__image {
    grid-column: span 7 / span 7;
  }
}
.asc-brand-story__img {
  width: 100%;
  height: auto;
  -o-object-fit: cover;
     object-fit: cover;
  transform: scale(1.15);
}
@media (min-width: 1024px) {
  .asc-brand-story__content {
    grid-column: span 5 / span 5;
    padding-left: 3rem;
  }
}
.asc-brand-story__content .asc-editorial-rule {
  margin: 0 0 1.75rem;
}
.asc-brand-story__content .asc-section-label {
  margin-bottom: 2rem;
}
.asc-brand-story__title {
  font-size: 1.875rem;
  line-height: 1.1;
  margin-bottom: 2.5rem;
}
@media (min-width: 768px) {
  .asc-brand-story__title {
    font-size: 2.6rem;
  }
}
.asc-brand-story__body {
  display: flex;
  flex-direction: column;
  gap: 1.5rem;
  font-size: 13.5px;
  line-height: 1.9;
}
.asc-brand-story__statement {
  font-size: 12px;
  font-weight: var(--fw-medium);
  letter-spacing: 0.04em;
  color: var(--clr-fg);
}
.asc-brand-story__cta {
  margin-top: 2rem;
  font-size: 10px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--clr-fg);
}
.asc-craftsmanship-preview {
  position: relative;
  overflow: hidden;
  background:
    radial-gradient(circle at top right, hsl(28 42% 59% / 0.08), transparent 34%),
    linear-gradient(180deg, hsl(18 10% 14%) 0%, hsl(20 8% 11%) 100%);
}
.asc-craftsmanship-preview__header {
  display: grid;
  max-width: none;
  gap: 1.85rem;
  margin-bottom: 4.5rem;
  align-items: end;
}
@media (min-width: 1024px) {
  .asc-craftsmanship-preview__header {
    grid-template-columns: repeat(12, minmax(0, 1fr));
    gap: 2rem;
    margin-bottom: 5.15rem;
  }

  .asc-craftsmanship-preview__heading-copy {
    grid-column: span 5 / span 5;
  }

  .asc-craftsmanship-preview__intro-copy {
    grid-column: 7 / span 5;
    display: flex;
    align-items: flex-end;
  }
}
.asc-craftsmanship-preview__header .asc-section-label,
.asc-craftsmanship-preview__header .asc-eyebrow {
  margin-bottom: 1.35rem;
  color: hsl(28 40% 59% / 0.72);
  letter-spacing: 0.2em;
}
.asc-craftsmanship-preview__title {
  margin-bottom: 0;
  max-width: 10ch;
  font-size: clamp(2.55rem, 5vw, 4.35rem);
  line-height: 1.02;
  letter-spacing: -0.03em;
}
.asc-craftsmanship-preview__subtitle {
  max-width: 34rem;
  font-size: 14.5px;
  line-height: 1.95;
  color: hsl(36 33% 97% / 0.72);
}
.asc-craftsmanship-preview__pillars {
  gap: 1rem;
  border-top: 0;
}
@media (min-width: 768px) {
  .asc-craftsmanship-preview__pillars {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1.15rem;
  }
}
.asc-craftsmanship-preview__pillar {
  min-height: 100%;
  padding: 2.25rem 2rem 2.35rem;
  border: 1px solid hsl(36 33% 97% / 0.11);
  background: linear-gradient(180deg, hsl(36 33% 97% / 0.03), hsl(36 33% 97% / 0.015));
  box-shadow: inset 0 1px 0 hsl(36 33% 97% / 0.03);
}
@media (min-width: 768px) {
  .asc-craftsmanship-preview__pillar {
    padding: 2.4rem 2.2rem 2.55rem;
  }
}
.asc-craftsmanship-preview__num {
  margin-bottom: 1.4rem;
  color: hsl(28 40% 59% / 0.38);
  font-size: 2.7rem;
}
.asc-craftsmanship-preview__pillar-title {
  font-size: 1.5rem;
  margin-bottom: 1.05rem;
  line-height: 1.15;
  color: var(--clr-dark-fg);
}
.asc-craftsmanship-preview__pillar-body {
  font-size: 13.5px;
  line-height: 1.9;
  color: hsl(36 33% 97% / 0.7);
}
@media (max-width: 767px) {
  .asc-craftsmanship-preview {
    padding-block: 4.5rem;
  }

  .asc-craftsmanship-preview__header {
    gap: 1.35rem;
    margin-bottom: 3rem;
  }

  .asc-craftsmanship-preview__header .asc-section-label,
  .asc-craftsmanship-preview__header .asc-eyebrow {
    margin-bottom: 1rem;
  }

  .asc-craftsmanship-preview__title {
    max-width: 12ch;
    font-size: clamp(2.2rem, 10vw, 3.1rem);
  }

  .asc-craftsmanship-preview__subtitle {
    font-size: 13.5px;
    line-height: 1.85;
  }

  .asc-craftsmanship-preview__pillars {
    gap: 0.75rem;
  }

  .asc-craftsmanship-preview__pillar {
    padding: 1.7rem 1.4rem 1.8rem;
  }

  .asc-craftsmanship-preview__pillar-title {
    font-size: 1.3rem;
  }
}
.asc-testimonials__grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 0;
  border-top: 1px solid var(--clr-border);
}
@media (min-width: 768px) {
  .asc-testimonials__grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}
.asc-testimonial {
  padding: 3rem 3.5rem 3rem 0;
  border-bottom: 1px solid var(--clr-border);
}
@media (min-width: 768px) {
  .asc-testimonial {
    border-bottom: 0;
    border-right: 1px solid var(--clr-border);
  }

  .asc-testimonial:last-child {
    border-right: 0;
    padding-right: 0;
  }
}
.asc-testimonial__quote {
  font-family: var(--font-display);
  font-size: 1.2rem;
  font-style: italic;
  font-weight: var(--fw-light);
  line-height: 1.75;
  color: var(--clr-fg);
  margin-bottom: 2.5rem;
}
.asc-testimonial__author {
  font-size: 11px;
  font-weight: var(--fw-medium);
  letter-spacing: 0.05em;
  color: var(--clr-fg);
}
.asc-testimonial__context {
  font-size: 10px;
  color: var(--clr-muted-fg);
  margin-top: 0.35rem;
}
.asc-testimonial__piece {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  margin-top: 0.75rem;
}
.asc-testimonial__piece-rule {
  width: 16px;
  height: 1px;
  background: hsl(28 40% 59% / 0.3);
}
.asc-testimonial__piece-label {
  font-size: 9px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: hsl(28 40% 59% / 0.6);
}
.asc-social-proof__trust-bar {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 1.5rem;
  margin-top: 3.5rem;
  padding-top: 2rem;
  border-top: 1px solid var(--clr-border);
}
@media (min-width: 768px) {
  .asc-social-proof__trust-bar {
    flex-direction: row;
    gap: 4rem;
  }
}
.asc-social-proof__trust-item {
  font-size: 9px;
  letter-spacing: 0.25em;
  text-transform: uppercase;
  color: hsl(25 6% 40% / 0.6);
}
.asc-gifting-section__grid {
  gap: 1rem;
}
@media (min-width: 768px) {
  .asc-gifting-section__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (min-width: 1024px) {
  .asc-gifting-section__grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
}
.asc-gifting-card__content {
  position: absolute;
  inset: auto 0 0 0;
  padding: 1.5rem;
}
@media (min-width: 1024px) {
  .asc-gifting-card__content {
    padding: 1.75rem;
  }
}
.asc-gifting-card__title {
  font-size: 1.15rem;
}
@media (min-width: 1024px) {
  .asc-gifting-card__title {
    font-size: 1.3rem;
  }
}
.asc-gifting-card__subtitle {
  font-size: 10px;
  letter-spacing: 0.04em;
  color: hsl(36 33% 97% / 0.65);
}
.asc-newsletter {
  padding-block: clamp(3.75rem, 6vw, 5.5rem);
}
.asc-newsletter__shell {
  display: grid;
  gap: 1.9rem;
}
.asc-newsletter__header {
  display: grid;
  gap: 0.95rem;
  max-width: 42rem;
}
.asc-newsletter__header .asc-section-label {
  margin: 0;
  text-align: left;
}
.asc-newsletter__title {
  font-family: var(--font-display);
  font-size: 2rem;
  line-height: 1.04;
  margin: 0;
  text-align: left;
}
@media (min-width: 768px) {
  .asc-newsletter__title {
    font-size: 3.15rem;
  }
}
.asc-newsletter__body {
  display: grid;
  grid-template-columns: minmax(0, 1.05fr) minmax(19rem, 0.95fr);
  gap: 1.5rem;
  align-items: start;
}
.asc-newsletter__copy {
  display: grid;
  gap: 0.9rem;
  max-width: 31rem;
  padding-top: 0.25rem;
}
.asc-newsletter__desc {
  margin: 0;
  font-size: 14px;
  line-height: 1.82;
  text-align: left;
}
.asc-newsletter__quiet-note {
  font-size: 11px;
  font-style: italic;
  color: hsl(25 6% 40% / 0.65);
  margin: 0;
  text-align: left;
}
.asc-newsletter__form-wrap {
  width: 100%;
  max-width: none;
  padding: 1rem;
  border: 1px solid hsl(25 17% 84% / 0.72);
  background: linear-gradient(180deg, hsl(30 25% 98%) 0%, hsl(30 18% 96%) 100%);
  box-shadow: 0 20px 50px hsl(20 20% 14% / 0.04);
}
.asc-newsletter__form,
.asc-newsletter__form-wrap .mc4wp-form-fields p {
  display: grid;
  grid-template-columns: 1fr;
  gap: 0.5rem;
  padding: 0.5rem;
  border: 1px solid hsl(25 17% 80% / 0.95);
  background: hsl(36 33% 97% / 0.92);
  box-shadow: 0 12px 28px hsl(20 20% 14% / 0.04);
}
@media (min-width: 640px) {
  .asc-newsletter__form,
  .asc-newsletter__form-wrap .mc4wp-form-fields p {
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: stretch;
  }
}
.asc-newsletter__form-wrap .mc4wp-form,
.asc-newsletter__form-wrap .mc4wp-form-fields,
.asc-newsletter__form-wrap .mc4wp-form-fields p {
  width: 100%;
  margin: 0;
}
.asc-newsletter__label {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
}
.asc-newsletter__input,
.asc-newsletter__form-wrap .mc4wp-form input[type="email"] {
  flex: 1;
  height: 56px;
  padding: 0 1.2rem;
  border: 1px solid hsl(25 17% 80% / 0.92);
  background: hsl(36 33% 99%);
  font-size: 13.5px;
  transition: border-color var(--trans-base), box-shadow var(--trans-base), background-color var(--trans-base);
}
.asc-newsletter__input::-moz-placeholder, .asc-newsletter__form-wrap .mc4wp-form input[type="email"]::-moz-placeholder {
  color: hsl(25 6% 40% / 0.62);
}
.asc-newsletter__input::placeholder,
.asc-newsletter__form-wrap .mc4wp-form input[type="email"]::placeholder {
  color: hsl(25 6% 40% / 0.62);
}
.asc-newsletter__input:focus,
.asc-newsletter__form-wrap .mc4wp-form input[type="email"]:focus {
  outline: none;
  border-color: hsl(28 40% 59% / 0.85);
  box-shadow: 0 0 0 3px hsl(28 40% 59% / 0.08);
}
.asc-newsletter__submit,
.asc-newsletter__form-wrap .mc4wp-form button[type="submit"] {
  height: 56px;
  min-width: 14rem;
  padding: 0 2rem;
  border: 1px solid var(--clr-fg);
  background: var(--clr-fg);
  color: var(--clr-bg);
  font-size: 10.5px;
  font-weight: var(--fw-medium);
  letter-spacing: 0.25em;
  text-transform: uppercase;
  transition: opacity var(--trans-base), background-color var(--trans-base), border-color var(--trans-base), box-shadow var(--trans-base);
}
.asc-newsletter__submit:hover,
.asc-newsletter__form-wrap .mc4wp-form button[type="submit"]:hover {
  opacity: 1;
  background: var(--clr-secondary);
  border-color: var(--clr-secondary);
  box-shadow: 0 12px 24px hsl(20 20% 14% / 0.08);
}
.asc-newsletter__form-wrap .mc4wp-response {
  margin-top: 0.75rem;
  font-size: 12px;
  line-height: 1.6;
  color: var(--clr-muted-fg);
  text-align: left;
}
@media (max-width: 767px) {
  .asc-newsletter {
    padding-block: 3rem 3.65rem;
  }

  .asc-newsletter__shell {
    gap: 1.45rem;
  }

  .asc-newsletter__header {
    gap: 0.75rem;
  }

  .asc-newsletter__title {
    font-size: clamp(1.85rem, 9vw, 2.45rem);
  }

  .asc-newsletter__body {
    grid-template-columns: 1fr;
    gap: 1rem;
  }

  .asc-newsletter__copy {
    gap: 0.75rem;
    max-width: none;
    padding-top: 0;
  }

  .asc-newsletter__desc {
    font-size: 13.25px;
    line-height: 1.8;
  }

  .asc-newsletter__form-wrap {
    padding: 0.8rem;
  }

  .asc-newsletter__form,
  .asc-newsletter__form-wrap .mc4wp-form-fields p {
    padding: 0.4rem;
  }

  .asc-newsletter__input,
  .asc-newsletter__submit,
  .asc-newsletter__form-wrap .mc4wp-form input[type="email"],
  .asc-newsletter__form-wrap .mc4wp-form button[type="submit"] {
    height: 54px;
  }

  .asc-newsletter__submit,
  .asc-newsletter__form-wrap .mc4wp-form button[type="submit"] {
    min-width: 0;
    width: 100%;
  }
}
.asc-final-cta {
  padding-block: 5.5rem;
  background: var(--clr-fg);
  color: var(--clr-bg);
}
.asc-final-cta__inner {
  max-width: 36rem;
  margin-inline: auto;
  text-align: center;
}
.asc-final-cta__inner .asc-editorial-rule {
  background: hsl(28 40% 59% / 0.35);
  margin: 0 auto 2rem;
}
.asc-final-cta .asc-section-label {
  color: hsl(28 40% 59% / 0.45);
  margin-bottom: 1.5rem;
}
.asc-final-cta__title {
  font-size: 1.875rem;
  line-height: 1.05;
  margin-bottom: 1.75rem;
  color: var(--clr-bg);
}
@media (min-width: 768px) {
  .asc-final-cta__title {
    font-size: 2.75rem;
  }
}
@media (min-width: 1024px) {
  .asc-final-cta__title {
    font-size: 3.5rem;
  }
}
.asc-final-cta__body {
  max-width: 22rem;
  margin: 0 auto 2.5rem;
  font-size: 14px;
  line-height: 1.8;
  color: hsl(36 33% 97% / 0.6);
}
.asc-final-cta__button {
  display: inline-block;
  padding: 1.25rem 3rem;
  border: 1px solid hsl(36 33% 97% / 0.3);
  color: var(--clr-bg);
  font-size: 10px;
  font-weight: var(--fw-medium);
  letter-spacing: 0.25em;
  text-transform: uppercase;
  transition: background-color var(--trans-base), color var(--trans-base);
}
.asc-final-cta__button:hover {
  background: var(--clr-bg);
  color: var(--clr-fg);
}
/* =============================================================================
   10 — Shop
   Shop archive: hero, collections nav, toolbar, product grid, product cards.
   ============================================================================= */
/* =============================================================================
   SHOP HERO
   ============================================================================= */
.asc-shop-hero {
  padding-block: clamp(3rem, 6vw, 5rem);
  text-align: center;
  border-bottom: 1px solid var(--clr-border);
  background-color: var(--clr-bg);
}
.asc-shop-hero__inner {
  max-width: var(--container-max);
  margin-inline: auto;
  padding-inline: var(--container-px);
}
.asc-shop-hero__title {
  font-family: var(--font-display);
  font-weight: var(--fw-light);
  font-size: clamp(2.25rem, 4vw, 3.5rem);
  letter-spacing: -0.01em;
  color: var(--clr-fg);
  margin-bottom: 0.875rem;
}
.asc-shop-hero__subtitle {
  font-size: var(--text-md);
  color: var(--clr-muted-fg);
  max-width: 52ch;
  margin-inline: auto;
  line-height: 1.7;
}
/* =============================================================================
   COLLECTIONS NAV (3 cards)
   ============================================================================= */
.asc-collections-nav {
  padding-block: clamp(2.5rem, 4vw, 3.5rem);
  border-bottom: 1px solid var(--clr-border);
  background-color: var(--clr-card);
}
.asc-collections-nav__inner {
  max-width: var(--container-max);
  margin-inline: auto;
  padding-inline: var(--container-px);
}
.asc-collections-nav__heading {
  font-size: 10px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--clr-muted-fg);
  margin-bottom: 1.5rem;
  opacity: 0.7;
}
.asc-collections-nav__grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1.25rem;
}
@media (min-width: 640px) {
  .asc-collections-nav__grid {
    grid-template-columns: repeat(2, 1fr);
  }
}
@media (min-width: 1024px) {
  .asc-collections-nav__grid {
    grid-template-columns: repeat(3, 1fr);
  }
}
/* Collection nav card (CSS name) + template alias (asc-collections-nav__card) */
.asc-collection-nav-card,
.asc-collections-nav__card {
  display: flex;
  flex-direction: column;
  text-decoration: none !important;
  transition: opacity var(--trans-base);
  overflow: hidden;
  border: 1px solid var(--clr-border);
}
.asc-collection-nav-card:hover,
.asc-collections-nav__card:hover {
  text-decoration: none;
}
.asc-collection-nav-card:hover .asc-collection-nav-card__img,
.asc-collections-nav__card:hover .asc-collections-nav__image {
  transform: scale(1.03);
}
.asc-collection-nav-card__image-wrap,
.asc-collections-nav__image {
  overflow: hidden;
  aspect-ratio: 16 / 9;
  background-color: var(--clr-muted);
  background-size: cover;
  background-position: center;
}
.asc-collection-nav-card__img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  transition: transform var(--transition-xl) var(--ease-out-expo);
}
/* Background-image variant used in templates */
.asc-collections-nav__image {
  transition: transform var(--transition-xl) var(--ease-out-expo);
}
.asc-collection-nav-card__info,
.asc-collections-nav__info {
  padding: 1.25rem;
  background-color: var(--clr-bg);
  border-top: 1px solid var(--clr-border);
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
}
.asc-collection-nav-card__name,
.asc-collections-nav__name {
  font-family: var(--font-display);
  font-weight: var(--fw-light);
  font-size: 1.25rem;
  color: var(--clr-fg);
}
.asc-collection-nav-card__desc,
.asc-collections-nav__desc {
  font-size: 12px;
  color: var(--clr-muted-fg);
  line-height: 1.5;
}
.asc-collection-nav-card__count,
.asc-collections-nav__count {
  font-size: 10px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--clr-primary);
  opacity: 0.8;
  margin-top: 0.25rem;
}
/* =============================================================================
   SHOP TOOLBAR
   ============================================================================= */
.asc-shop-toolbar {
  position: sticky;
  top: var(--navbar-height); /* 68px */
  z-index: var(--z-toolbar);
  background-color: var(--clr-bg);
  border-bottom: 1px solid var(--clr-border);
  padding-block: 0.875rem;
}
.asc-shop-toolbar__inner {
  max-width: var(--container-max);
  margin-inline: auto;
  padding-inline: var(--container-px);
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.625rem;
}
/* Collection tab buttons */
.asc-toolbar-tabs,
.asc-shop-toolbar__tabs {
  display: flex;
  align-items: center;
  gap: 0;
  flex: 1;
  min-width: 0;
  overflow-x: auto;
  scrollbar-width: none;
  -ms-overflow-style: none;
}
.asc-toolbar-tabs::-webkit-scrollbar,
.asc-shop-toolbar__tabs::-webkit-scrollbar {
  display: none;
}
.asc-toolbar-tab,
.asc-tab-btn {
  display: inline-flex;
  align-items: center;
  padding: 0.5rem 1rem;
  font-size: 11px;
  font-weight: var(--fw-medium);
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--clr-muted-fg);
  background: transparent;
  border: none;
  border-bottom: 2px solid transparent;
  cursor: pointer;
  white-space: nowrap;
  transition: color var(--trans-base),
              border-color var(--trans-base);
  text-decoration: none !important;
}
.asc-toolbar-tab:hover,
.asc-tab-btn:hover {
  color: var(--clr-fg);
}
.asc-toolbar-tab.is-active,
.asc-toolbar-tab[aria-current="page"],
.asc-tab-btn--active {
  color: var(--clr-fg);
  border-bottom-color: var(--clr-fg);
}
/* Right side controls */
.asc-toolbar-controls {
  display: flex;
  align-items: center;
  gap: 0.375rem;
  flex-shrink: 0;
}
/* View toggle (grid / list) */
.asc-view-toggle,
.asc-shop-toolbar__view {
  display: flex;
  align-items: center;
  gap: 0;
  border: 1px solid var(--clr-border);
}
.asc-view-toggle__btn,
.asc-view-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 34px;
  height: 34px;
  background: transparent;
  border: none;
  color: var(--clr-muted-fg);
  cursor: pointer;
  transition: color var(--trans-fast),
              background-color var(--trans-fast);
}
.asc-view-toggle__btn:hover,
.asc-view-btn:hover {
  color: var(--clr-fg);
  background-color: var(--clr-muted);
}
.asc-view-toggle__btn.is-active,
.asc-view-btn--active {
  background-color: var(--clr-fg);
  color: var(--clr-bg);
}
.asc-view-toggle__btn svg,
.asc-view-btn svg {
  width: 14px;
  height: 14px;
  pointer-events: none;
}
/* Sort dropdown */
.asc-sort-select,
.asc-shop-toolbar__sort {
  position: relative;
}
.asc-sort-btn {
  display: inline-flex;
  align-items: center;
  gap: 0.375rem;
  padding: 0.5rem 0.875rem;
  font-size: 11px;
  font-weight: var(--fw-medium);
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--clr-muted-fg);
  background: transparent;
  border: 1px solid var(--clr-border);
  cursor: pointer;
  white-space: nowrap;
  transition: color var(--trans-fast), border-color var(--trans-fast);
}
.asc-sort-btn:hover {
  color: var(--clr-fg);
  border-color: var(--clr-fg);
}
.asc-sort-btn svg {
  width: 10px;
  height: 10px;
  transition: transform var(--trans-base);
  pointer-events: none;
}
.asc-sort-btn[aria-expanded="true"] svg {
  transform: rotate(180deg);
}
.asc-sort-btn__caret {
  font-size: 10px;
  transition: transform var(--trans-base);
  pointer-events: none;
}
.asc-sort-btn[aria-expanded="true"] .asc-sort-btn__caret {
  transform: rotate(180deg);
}
.asc-sort-dropdown {
  position: absolute;
  right: 0;
  top: calc(100% + 0.5rem);
  min-width: 200px;
  background-color: var(--clr-bg);
  border: 1px solid var(--clr-border);
  box-shadow: var(--shadow-md);
  z-index: var(--z-toolbar);
  display: none;
}
.asc-sort-dropdown li {
  list-style: none;
}
.asc-sort-dropdown button {
  display: block;
  width: 100%;
  padding: 0.75rem 1rem;
  border: none;
  background: transparent;
  text-align: left;
  font-size: 12px;
  letter-spacing: 0.04em;
  color: var(--clr-muted-fg);
  cursor: pointer;
  transition: color var(--trans-fast), background-color var(--trans-fast);
}
.asc-sort-dropdown button:hover {
  color: var(--clr-fg);
  background-color: var(--clr-muted);
}
.asc-sort-dropdown.is-open {
  display: block;
}
.asc-sort-dropdown__item {
  display: block;
  padding: 0.75rem 1rem;
  font-size: 12px;
  letter-spacing: 0.04em;
  color: var(--clr-muted-fg);
  cursor: pointer;
  transition: color var(--trans-fast), background-color var(--trans-fast);
  text-decoration: none !important;
  border: none;
  background: none;
  width: 100%;
  text-align: left;
  border-bottom: 1px solid var(--clr-border);
}
.asc-sort-dropdown__item:last-child {
  border-bottom: none;
}
.asc-sort-dropdown__item:hover,
.asc-sort-dropdown__item.is-active {
  color: var(--clr-fg);
  background-color: var(--clr-muted);
}
/* Price filter chips */
.asc-price-filters,
.asc-shop-toolbar__price {
  display: flex;
  align-items: center;
  gap: 0.375rem;
  flex-wrap: wrap;
}
.asc-price-filter-btn,
.asc-price-btn {
  padding: 0.375rem 0.75rem;
  font-size: 10px;
  font-weight: var(--fw-medium);
  letter-spacing: 0.1em;
  color: var(--clr-muted-fg);
  background: transparent;
  border: 1px solid var(--clr-border);
  cursor: pointer;
  transition: color var(--trans-fast),
              background-color var(--trans-fast),
              border-color var(--trans-fast);
  white-space: nowrap;
}
.asc-price-filter-btn:hover,
.asc-price-btn:hover {
  color: var(--clr-fg);
  border-color: var(--clr-fg);
}
.asc-price-filter-btn.is-active,
.asc-price-btn--active {
  background-color: var(--clr-fg);
  color: var(--clr-bg);
  border-color: var(--clr-fg);
}
/* Piece count */
.asc-shop-count {
  font-size: 10px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--clr-muted-fg);
  opacity: 0.7;
  white-space: nowrap;
}
/* =============================================================================
   SHOP MAIN LAYOUT
   ============================================================================= */
.asc-shop-main {
  max-width: var(--container-max);
  margin-inline: auto;
  padding-inline: var(--container-px);
}
/* =============================================================================
   PRODUCT GRID
   ============================================================================= */
.asc-shop-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 1.5rem 1rem;
  padding-block: 2rem;
}
@media (min-width: 768px) {
  .asc-shop-grid {
    grid-template-columns: repeat(3, 1fr);
    gap: 2rem 1.5rem;
  }
}
@media (min-width: 1024px) {
  .asc-shop-grid {
    grid-template-columns: repeat(4, 1fr);
  }
}
/* List view override */
.asc-shop-grid--list {
  grid-template-columns: 1fr;
  gap: 0;
}
/* =============================================================================
   PRODUCT CARD
   ============================================================================= */
.asc-product-card {
  display: flex;
  flex-direction: column;
  text-decoration: none !important;
  position: relative;
}
.asc-product-card:hover {
  text-decoration: none;
}
/* Image wrap */
.asc-product-card__image-wrap {
  position: relative;
  overflow: hidden;
  aspect-ratio: 3 / 4;
  background-color: var(--clr-muted);
  flex-shrink: 0;
}
.asc-product-card__img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  transition: transform var(--transition-xl) var(--ease-out-expo);
  display: block;
}
.asc-product-card:hover .asc-product-card__img {
  transform: scale(1.04);
}
/* Hover overlay */
.asc-product-card__overlay {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  background: hsl(20 8% 15% / 0.3);
  opacity: 0;
  transition: opacity var(--transition-slow) var(--ease-out-expo);
  pointer-events: none;
}
.asc-product-card:hover .asc-product-card__overlay {
  opacity: 1;
}
.asc-product-card__overlay span {
  color: white;
  font-family: var(--font-body);
  font-size: 11px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  font-weight: var(--fw-medium);
  padding: 0.75rem 1.5rem;
  border: 1px solid rgba(255, 255, 255, 0.5);
  background: rgba(255, 255, 255, 0.08);
}
/* Badge (top-left) */
.asc-product-card__badge {
  position: absolute;
  top: 0.75rem;
  left: 0.75rem;
  display: inline-block;
  padding: 0.25rem 0.625rem;
  font-size: 9px;
  font-weight: var(--fw-medium);
  letter-spacing: 0.12em;
  text-transform: uppercase;
  background-color: var(--clr-fg);
  color: var(--clr-bg);
  z-index: 1;
}
.asc-product-card__badge--sale {
  background-color: hsl(0 60% 48%);
}
.asc-product-card__badge--new {
  background-color: var(--clr-fg);
}
.asc-product-card__badge--sold {
  background-color: var(--clr-muted-fg);
}
/* Wishlist button */
.asc-product-card__wishlist {
  position: absolute;
  top: 0.75rem;
  right: 0.75rem;
  width: 32px;
  height: 32px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(255, 255, 255, 0.8);
  border: none;
  cursor: pointer;
  opacity: 0;
  transition: opacity var(--trans-base), background-color var(--trans-fast);
  z-index: 1;
}
.asc-product-card:hover .asc-product-card__wishlist {
  opacity: 1;
}
.asc-product-card__wishlist:hover {
  background: white;
}
.asc-product-card__wishlist svg {
  width: 14px;
  height: 14px;
  color: var(--clr-fg);
}
/* Product info */
.asc-product-card__info {
  padding-top: 0.875rem;
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
}
.asc-product-card__collection,
.asc-product-card__category {
  font-size: 9px;
  font-weight: var(--fw-medium);
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--clr-primary);
  opacity: 0.75;
}
.asc-product-card__name {
  font-family: var(--font-display);
  font-weight: var(--fw-light);
  font-size: clamp(1rem, 1.5vw, 1.1875rem);
  color: var(--clr-fg);
  line-height: 1.25;
  letter-spacing: 0.01em;
  margin-bottom: 0.125rem;
  transition: color var(--trans-fast);
}
.asc-product-card:hover .asc-product-card__name {
  color: var(--clr-primary);
}
.asc-product-card__detail {
  font-size: 11px;
  color: var(--clr-muted-fg);
  letter-spacing: 0.03em;
}
.asc-product-card__price-row {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  margin-top: 0.375rem;
}
.asc-product-card__price {
  font-family: var(--font-body);
  font-size: 13px;
  font-weight: var(--fw-medium);
  color: var(--clr-fg);
  letter-spacing: 0.03em;
}
.asc-product-card__price--sale {
  color: hsl(0 60% 48%);
}
.asc-product-card__price--original {
  font-size: 11px;
  font-weight: var(--fw-regular);
  color: var(--clr-muted-fg);
  text-decoration: line-through;
}
/* =============================================================================
   PRODUCT CARD — LIST VIEW
   ============================================================================= */
.asc-shop-grid--list .asc-product-card {
  flex-direction: row;
  align-items: flex-start;
  gap: 1.5rem;
  padding-block: 1.5rem;
  border-bottom: 1px solid var(--clr-border);
}
.asc-shop-grid--list .asc-product-card__image-wrap {
  width: 200px;
  flex-shrink: 0;
  aspect-ratio: auto;
  height: 240px;
}
.asc-shop-grid--list .asc-product-card__info {
  padding-top: 0;
  flex: 1;
  justify-content: space-between;
}
.asc-shop-grid--list .asc-product-card__name {
  font-size: clamp(1.125rem, 1.5vw, 1.375rem);
}
.asc-shop-grid--list .asc-product-card__detail {
  max-width: 60ch;
}
/* =============================================================================
   LOAD MORE / PAGINATION
   ============================================================================= */
.asc-shop-footer {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 1.5rem;
  padding-block: 3rem;
  border-top: 1px solid var(--clr-border);
}
.asc-load-progress {
  width: 100%;
  max-width: 300px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.5rem;
}
.asc-load-progress__bar {
  width: 100%;
  height: 1px;
  background-color: var(--clr-border);
  position: relative;
}
.asc-load-progress__fill {
  position: absolute;
  inset-block: 0;
  left: 0;
  background-color: var(--clr-primary);
  transition: width var(--trans-slow);
}
.asc-load-progress__label {
  font-size: 10px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--clr-muted-fg);
  opacity: 0.7;
}
/* =============================================================================
   EMPTY STATE
   ============================================================================= */
.asc-no-products {
  grid-column: 1 / -1;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 1rem;
  padding-block: 5rem;
  text-align: center;
}
.asc-no-products__icon {
  width: 40px;
  height: 40px;
  color: var(--clr-muted-fg);
  opacity: 0.4;
}
.asc-no-products__title {
  font-family: var(--font-display);
  font-weight: var(--fw-light);
  font-size: 1.5rem;
  color: var(--clr-fg);
}
.asc-no-products__text {
  font-size: 13px;
  color: var(--clr-muted-fg);
  max-width: 40ch;
  margin: 0;
}
/* =============================================================================
   PRODUCT CARD — link wrapper (template uses anchor wrapping all card content)
   ============================================================================= */
.asc-product-card__link {
  display: flex;
  flex-direction: column;
  text-decoration: none !important;
  color: inherit;
}
.asc-product-card__link:hover {
  text-decoration: none;
}
/* Grid variant modifier (no additional layout changes needed) */
.asc-product-card--grid {
  /* inherits base .asc-product-card styles */
}
/* =============================================================================
   PRODUCT CARD — LIST VIEW (template variant)
   ============================================================================= */
.asc-product-card--list {
  border-bottom: 1px solid var(--clr-border);
}
.asc-product-card__link--list {
  display: flex;
  flex-direction: row;
  align-items: flex-start;
  gap: 1.5rem;
  padding-block: 1.5rem;
  text-decoration: none !important;
  color: inherit;
}
.asc-product-card__image-wrap--list {
  width: 200px;
  flex-shrink: 0;
  aspect-ratio: auto;
  height: 240px;
}
.asc-product-card__info--list {
  padding-top: 0;
  flex: 1;
  justify-content: space-between;
}
.asc-product-card__footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  margin-top: 0.5rem;
}
.asc-product-card__cta {
  font-size: 11px;
  font-weight: var(--fw-medium);
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--clr-primary);
  opacity: 0.75;
}
/* =============================================================================
   TOOLBAR COUNT (taxonomy archive)
   ============================================================================= */
/* =============================================================================
   Reference Product Card Overrides
   ============================================================================= */
.asc-product-card__link {
  display: block;
}
.asc-product-card__image-wrap {
  margin-bottom: 1.75rem;
}
.asc-product-card__overlay {
  background: transparent;
  border: 1px solid hsl(20 8% 15% / 0);
  opacity: 1;
  transition: border-color 0.7s var(--ease-out-expo);
}
.asc-product-card:hover .asc-product-card__overlay {
  background: transparent;
  border-color: hsl(20 8% 15% / 0.1);
}
.asc-product-card__note {
  position: absolute;
  top: 0;
  left: 0;
  z-index: 2;
  padding: 0.5rem 0.875rem;
  background: hsl(20 8% 15% / 0.85);
  backdrop-filter: blur(8px);
}
.asc-product-card__note span {
  font-size: 8px;
  letter-spacing: 0.3em;
  text-transform: uppercase;
  color: hsl(36 33% 97% / 0.8);
}
.asc-product-card__info {
  gap: 0;
}
.asc-product-card__name {
  margin-bottom: 0.5rem;
  font-size: 1.15rem;
  font-weight: var(--fw-regular);
  line-height: 1.35;
}
.asc-product-card__atelier {
  font-size: 11px;
  line-height: 1.7;
  color: var(--clr-muted-fg);
  margin-bottom: 1rem;
}
.asc-product-card__footer {
  margin-top: 0;
  padding-top: 0.875rem;
  border-top: 1px solid var(--clr-border);
}
.asc-product-card__detail {
  font-size: 10px;
  color: hsl(25 6% 40% / 0.5);
  letter-spacing: 0.04em;
}
.asc-product-card__price {
  font-size: 13px;
  letter-spacing: 0.04em;
}
.asc-shop-toolbar__count {
  font-size: 10px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--clr-muted-fg);
  opacity: 0.7;
  white-space: nowrap;
}
/* =============================================================================
   SHOP PAGINATION
   ============================================================================= */
.asc-shop-pagination {
  display: flex;
  justify-content: center;
  padding-block: 2rem;
}
/* =============================================================================
   Reference Shop Page Overrides
   ============================================================================= */
.asc-shop-page {
  background: var(--clr-bg);
}
.asc-shop-shell {
  width: 100%;
  max-width: var(--container-max);
  margin-inline: auto;
}
.asc-shop-hero {
  position: relative;
  overflow: hidden;
  min-height: 280px;
  height: 34vh;
  padding: 0;
  border-bottom: 0;
}
.asc-shop-hero__image {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  display: block;
}
.asc-shop-hero__overlay {
  position: absolute;
  inset: 0;
  background: hsl(20 8% 15% / 0.6);
}
.asc-shop-hero__content {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  padding-inline: 1.5rem;
}
.asc-shop-hero__inner {
  max-width: 36rem;
}
.asc-shop-hero__label {
  margin: 0 0 0.75rem;
  font-size: 10px;
  letter-spacing: 0.3em;
  text-transform: uppercase;
  color: hsl(36 33% 97% / 0.5);
}
.asc-shop-hero__title {
  margin: 0 0 0.75rem;
  font-size: 1.75rem;
  line-height: 1.08;
  color: var(--clr-dark-fg);
}
.asc-shop-hero__title em {
  color: inherit;
}
.asc-shop-hero__subtitle {
  margin: 0 auto;
  max-width: 22rem;
  font-size: 12px;
  line-height: 1.7;
  color: hsl(36 33% 97% / 0.55);
}
.asc-shop-collections {
  padding: 2.75rem var(--container-px) 0;
}
.asc-shop-section-head {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 1rem;
  margin-bottom: 1.9rem;
}
.asc-shop-section-head__label {
  margin-bottom: 0.75rem;
}
.asc-shop-section-head__title {
  margin: 0;
  font-family: var(--font-display);
  font-size: 1.5rem;
  font-weight: var(--fw-light);
  line-height: 1.1;
  color: var(--clr-fg);
}
.asc-shop-section-head__title em {
  color: inherit;
}
.asc-shop-section-head__link {
  display: none;
  align-items: center;
  gap: 0.5rem;
  font-size: 11px;
  font-weight: var(--fw-medium);
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--clr-muted-fg);
  text-decoration: none !important;
}
.asc-shop-section-head__link:hover {
  color: var(--clr-fg);
  text-decoration: none !important;
}
.asc-shop-collections__grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 0.625rem;
}
.asc-shop-collection-card {
  display: block;
  color: inherit;
  text-decoration: none !important;
}
.asc-shop-collection-card__image-wrap {
  position: relative;
  overflow: hidden;
  aspect-ratio: 4 / 4.45;
  background: var(--clr-muted);
}
.asc-shop-collection-card__image {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  transition: transform 1.4s var(--ease-out-expo);
  display: block;
}
.asc-shop-collection-card:hover .asc-shop-collection-card__image {
  transform: scale(1.05);
}
.asc-shop-collection-card__overlay {
  position: absolute;
  inset: 0;
  background: hsl(20 8% 15% / 0.4);
  transition: background-color 0.7s var(--ease-out-expo);
}
.asc-shop-collection-card:hover .asc-shop-collection-card__overlay {
  background: hsl(20 8% 15% / 0.55);
}
.asc-shop-collection-card__content {
  position: absolute;
  inset: 0;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  padding: 1.2rem;
}
.asc-shop-collection-card__tag {
  margin: 0 0 0.375rem;
  font-size: 9px;
  letter-spacing: 0.25em;
  text-transform: uppercase;
  color: hsl(36 33% 97% / 0.45);
}
.asc-shop-collection-card__title {
  margin: 0 0 0.3rem;
  font-family: var(--font-display);
  font-size: 1.18rem;
  font-weight: var(--fw-light);
  line-height: 1.2;
  color: var(--clr-dark-fg);
}
.asc-shop-collection-card__subtitle {
  display: none;
  max-width: 24ch;
  margin: 0 0 0.6rem;
  font-size: 10.5px;
  line-height: 1.58;
  color: hsl(36 33% 97% / 0.55);
}
.asc-shop-collection-card__footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
}
.asc-shop-collection-card__cta {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  font-size: 9px;
  font-weight: var(--fw-medium);
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: hsl(36 33% 97% / 0.6);
  transition: color var(--trans-base), transform var(--trans-base);
}
.asc-shop-collection-card:hover .asc-shop-collection-card__cta {
  color: var(--clr-dark-fg);
}
.asc-shop-collection-card:hover .asc-shop-collection-card__cta span:last-child {
  transform: translateX(4px);
}
.asc-shop-collection-card__count {
  font-size: 9px;
  letter-spacing: 0.12em;
  color: hsl(36 33% 97% / 0.4);
}
@media (min-width: 640px) {
  .asc-shop-collections__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
.asc-shop-archive {
  padding: 5rem var(--container-px) 6rem;
}
.asc-shop-archive__header {
  margin-bottom: 2rem;
}
.asc-shop-toolbar {
  position: sticky;
  top: 0;
  z-index: var(--z-toolbar);
  margin-inline: calc(var(--container-px) * -1);
  padding: 1rem var(--container-px);
  background: hsl(36 33% 97% / 0.95);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  border-bottom: 1px solid var(--clr-border);
}
.asc-shop-toolbar__row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
}
.asc-shop-toolbar__row--tabs {
  margin-bottom: 1rem;
}
.asc-shop-toolbar__tabs {
  display: flex;
  align-items: center;
  gap: 0.375rem;
  overflow-x: auto;
  padding-bottom: 0.25rem;
  flex: 1;
}
.asc-tab-btn {
  display: inline-flex;
  align-items: center;
  gap: 0.375rem;
  padding: 0.625rem 1rem;
  border: 1px solid var(--clr-border);
  background: transparent;
  font-size: 11px;
  font-weight: var(--fw-medium);
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--clr-muted-fg);
  white-space: nowrap;
  border-bottom-width: 1px;
}
.asc-tab-btn span {
  font-size: 10px;
  color: hsl(25 6% 40% / 0.5);
}
.asc-tab-btn:hover {
  border-color: hsl(20 8% 15% / 0.4);
  color: var(--clr-fg);
  text-decoration: none !important;
}
.asc-tab-btn--active {
  border-color: var(--clr-fg);
  background: hsl(20 8% 15% / 0.08);
  color: var(--clr-fg);
}
.asc-tab-btn--active span {
  color: hsl(20 8% 15% / 0.6);
}
.asc-shop-toolbar__view {
  display: none;
  border: 1px solid var(--clr-border);
  flex-shrink: 0;
}
.asc-view-btn {
  width: 40px;
  height: 40px;
  color: var(--clr-muted-fg);
  background: transparent;
}
.asc-view-btn--active {
  background: hsl(20 8% 15% / 0.08);
  color: var(--clr-fg);
}
.asc-shop-toolbar__filters-meta {
  display: flex;
  align-items: center;
  gap: 1rem;
  min-width: 0;
  flex-wrap: wrap;
}
.asc-shop-toolbar__filter-toggle {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.625rem 1rem;
  border: 1px solid var(--clr-border);
  background: transparent;
  color: var(--clr-muted-fg);
  font-size: 11px;
  font-weight: var(--fw-medium);
  letter-spacing: 0.14em;
  text-transform: uppercase;
  transition: color var(--trans-base), border-color var(--trans-base), background-color var(--trans-base);
}
.asc-shop-toolbar__filter-toggle:hover,
.asc-shop-toolbar__filter-toggle.is-active {
  border-color: var(--clr-fg);
  color: var(--clr-fg);
  background: hsl(20 8% 15% / 0.08);
}
.asc-shop-toolbar__filter-icon {
  font-size: 13px;
  line-height: 1;
}
.asc-shop-toolbar__filter-dot {
  width: 6px;
  height: 6px;
  border-radius: 999px;
  background: var(--clr-primary);
}
.asc-shop-toolbar__count {
  font-size: 11px;
  text-transform: none;
  letter-spacing: 0;
  opacity: 1;
}
.asc-shop-toolbar__clear {
  display: inline-flex;
  align-items: center;
  gap: 0.375rem;
  font-size: 10px;
  font-weight: var(--fw-medium);
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--clr-primary);
  text-decoration: none !important;
}
.asc-shop-toolbar__sort {
  flex-shrink: 0;
}
.asc-sort-btn {
  padding: 0.625rem 1rem;
  border-color: var(--clr-border);
  font-size: 11px;
  letter-spacing: 0.1em;
}
.asc-sort-dropdown {
  top: calc(100% + 0.375rem);
}
.asc-shop-toolbar__panel {
  padding-top: 1.5rem;
  border-top: 1px solid var(--clr-border);
  margin-top: 1.5rem;
}
.asc-shop-toolbar__panel-label {
  margin: 0 0 1rem;
  font-size: 10px;
  font-weight: var(--fw-medium);
  letter-spacing: 0.25em;
  text-transform: uppercase;
  color: var(--clr-muted-fg);
}
.asc-shop-toolbar__price {
  gap: 0.5rem;
}
.asc-price-btn {
  padding: 0.625rem 1rem;
  font-size: 11px;
  letter-spacing: 0.08em;
  border-color: var(--clr-border);
}
.asc-price-btn--active {
  background: hsl(20 8% 15% / 0.08);
  color: var(--clr-fg);
  border-color: var(--clr-fg);
}
.asc-shop-archive__products {
  padding-top: 1rem;
}
.asc-shop-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 2.5rem 1rem;
  padding-block: 1rem 0;
}
.asc-product-card__image-wrap {
  aspect-ratio: 3 / 4;
  margin-bottom: 1rem;
}
.asc-product-card__overlay {
  background: hsl(20 8% 15% / 0);
  opacity: 0;
  align-items: flex-end;
  justify-content: center;
  padding-bottom: 1.25rem;
  transition: background-color var(--transition-slow) var(--ease-out-expo),
              opacity var(--transition-slow) var(--ease-out-expo);
}
.asc-product-card:hover .asc-product-card__overlay {
  background: hsl(20 8% 15% / 0.15);
  opacity: 1;
}
.asc-product-card__overlay span {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0.75rem 1.5rem;
  background: var(--clr-bg);
  color: var(--clr-fg);
  border: 0;
  box-shadow: var(--shadow-md);
  font-size: 10px;
  letter-spacing: 0.18em;
  transform: translateY(8px);
  transition: transform var(--transition-slow) var(--ease-out-expo);
}
.asc-product-card:hover .asc-product-card__overlay span {
  transform: translateY(0);
}
.asc-product-card__note {
  padding: 0.375rem 0.75rem;
}
.asc-product-card__note span {
  font-size: 9px;
  letter-spacing: 0.2em;
  color: hsl(36 33% 97% / 0.9);
}
.asc-product-card__name {
  margin-bottom: 0.375rem;
  font-size: 1rem;
  line-height: 1.35;
}
.asc-product-card__atelier {
  display: none;
  font-size: 11px;
  line-height: 1.65;
  margin-bottom: 0.75rem;
}
.asc-product-card__footer {
  margin-top: 0.5rem;
  padding-top: 0.75rem;
  border-top: 1px solid var(--clr-border);
  align-items: center;
}
.asc-product-card__price {
  order: 1;
  font-size: 14px;
  font-weight: var(--fw-medium);
}
.asc-product-card__detail {
  order: 2;
  font-size: 10px;
  letter-spacing: 0.04em;
  color: var(--clr-muted-fg);
  text-align: right;
}
.asc-shop-grid--list {
  display: block;
}
.asc-shop-grid--list .asc-product-card {
  border-bottom: 1px solid var(--clr-border);
}
.asc-shop-grid--list .asc-product-card__link {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  gap: 1rem;
  align-items: center;
  padding: 1.25rem 0.75rem;
  margin-inline: -0.75rem;
  transition: background-color var(--trans-base);
}
.asc-shop-grid--list .asc-product-card__link:hover {
  background: hsl(30 14% 93% / 0.4);
}
.asc-shop-grid--list .asc-product-card__image-wrap {
  grid-column: span 3;
  aspect-ratio: 1 / 1;
  width: 100%;
  height: auto;
  margin-bottom: 0;
}
.asc-shop-grid--list .asc-product-card__info {
  grid-column: span 9;
}
.asc-shop-grid--list .asc-product-card__atelier {
  display: none;
}
.asc-shop-grid--list .asc-product-card__footer {
  border-top: 0;
  padding-top: 0.25rem;
}
@media (min-width: 640px) {
  .asc-shop-collection-card__subtitle {
    display: block;
  }
}
@media (min-width: 768px) {
  .asc-shop-hero {
    min-height: 320px;
    height: 38vh;
  }

  .asc-shop-hero__title {
    font-size: 2.5rem;
  }

  .asc-shop-collections {
    padding-top: 3.85rem;
  }

  .asc-shop-collection-card__image-wrap {
    aspect-ratio: 4 / 4.18;
  }

  .asc-shop-toolbar {
    padding-top: 1rem;
    padding-bottom: 1rem;
  }

  .asc-shop-toolbar__view {
    display: flex;
  }

  .asc-shop-grid {
    gap: 3rem 1.25rem;
  }

  .asc-product-card__atelier {
    display: block;
  }
}
@media (min-width: 1024px) {
  .asc-shop-hero__title {
    font-size: 3rem;
  }

  .asc-shop-section-head__title {
    font-size: 2rem;
  }

  .asc-shop-section-head__link {
    display: inline-flex;
  }

  .asc-shop-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 3rem 1.25rem;
  }
}
@media (min-width: 1280px) {
  .asc-shop-collections__grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 0.875rem;
  }
}
@media (max-width: 767px) {
  .asc-shop-archive {
    padding: 3.5rem var(--container-px) 4.5rem;
  }

  .asc-shop-hero {
    padding-block: 2.5rem 2.75rem;
  }

  .asc-shop-hero__subtitle {
    max-width: 34ch;
    font-size: 13px;
  }

  .asc-shop-toolbar {
    padding: 0.85rem var(--container-px);
  }

  .asc-shop-toolbar__row {
    flex-direction: column;
    align-items: stretch;
  }

  .asc-shop-toolbar__filters-meta {
    justify-content: space-between;
  }

  .asc-shop-toolbar__filter-toggle {
    flex: 1;
    justify-content: center;
  }

  .asc-shop-toolbar__sort {
    width: 100%;
  }

  .asc-sort-btn {
    width: 100%;
    justify-content: space-between;
  }

  .asc-shop-grid {
    gap: 2rem 0.875rem;
  }

  .asc-product-card__name {
    font-size: 0.96rem;
  }

  .asc-product-card__detail {
    font-size: 9px;
  }
}
@media (max-width: 479px) {
  .asc-collections-nav__info {
    padding: 1rem;
  }

  .asc-collection-nav-card__name,
  .asc-collections-nav__name {
    font-size: 1.1rem;
  }

  .asc-shop-grid {
    gap: 1.75rem 0.75rem;
  }
}
/* =============================================================================
   PRE-DEPLOYMENT MERCHANDISING POLISH
   Conservative late overrides for shop card rhythm and browse clarity.
   ============================================================================= */
.asc-shop-toolbar {
  padding-block: 0.8rem;
}
.asc-shop-toolbar__row--controls {
  align-items: center;
  gap: 1rem;
}
.asc-shop-toolbar__count {
  letter-spacing: 0.14em;
  opacity: 0.78;
}
.asc-sort-btn {
  min-height: 2.5rem;
  padding-inline: 0.95rem;
  border: 1px solid var(--clr-border);
  background: hsl(36 24% 98%);
}
.asc-shop-grid {
  gap: 2.35rem 1rem;
  padding-block: 1.6rem 2.6rem;
}
.asc-product-card__link {
  display: flex;
  flex-direction: column;
  height: 100%;
}
.asc-product-card__info {
  flex: 1 1 auto;
  gap: 0.55rem;
  padding-top: 1rem;
}
.asc-product-card__name {
  margin: 0;
  font-size: clamp(1.02rem, 1.35vw, 1.14rem);
  line-height: 1.36;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
  overflow: hidden;
  min-height: 4.08em;
}
.asc-product-card__atelier {
  margin: 0;
  font-size: 12px;
  line-height: 1.58;
  color: var(--clr-muted-fg);
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  overflow: hidden;
  min-height: 3.16em;
}
.asc-product-card__footer {
  margin-top: auto;
  display: grid;
  gap: 0.5rem;
  align-items: start;
  padding-top: 0.8rem;
}
.asc-product-card__price {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 0.35rem 0.55rem;
  margin: 0;
  font-size: 1rem;
  line-height: 1.15;
  letter-spacing: 0;
}
.asc-product-card__price > .woocommerce-Price-amount,
.asc-product-card__price ins .woocommerce-Price-amount,
.asc-product-card__price .amount {
  font-family: var(--font-body);
  font-size: 1.08rem;
  font-weight: var(--fw-medium);
  font-variant-numeric: tabular-nums lining-nums;
  letter-spacing: -0.02em;
  color: var(--clr-fg);
}
.asc-product-card__price ins {
  color: var(--clr-fg);
  text-decoration: none !important;
}
.asc-product-card__price ins *,
.asc-product-card__price ins .amount {
  text-decoration: none !important;
}
.asc-product-card__price del {
  color: hsl(24 8% 58%);
  opacity: 0.72;
  text-decoration-thickness: 1px;
  text-decoration-color: hsl(24 10% 63%);
}
.asc-product-card__price del .woocommerce-Price-amount,
.asc-product-card__price del .amount {
  font-size: 0.92rem;
  font-weight: var(--fw-regular);
  font-variant-numeric: tabular-nums lining-nums;
  color: inherit;
}
.asc-product-card__price .woocommerce-Price-currencySymbol {
  font-size: 0.68em;
  position: relative;
  top: -0.02em;
  margin-right: 0.05em;
}
.asc-product-card__detail {
  font-size: 10px;
  line-height: 1.45;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--clr-muted-fg);
}
.asc-product-card__note {
  top: 0.625rem;
  left: 0.625rem;
  padding: 0.35rem 0.55rem;
  background: hsl(22 10% 15% / 0.84);
  border: 1px solid hsl(24 14% 28% / 0.35);
}
.asc-product-card__note span {
  font-size: 7px;
  letter-spacing: 0.22em;
}
.asc-shop-pagination {
  padding-block: 2.25rem 0.75rem;
}
.asc-shop-pagination .woocommerce-pagination ul {
  display: flex;
  align-items: center;
  gap: 0.4rem;
  border: 0;
  margin: 0;
  padding: 0;
}
.asc-shop-pagination .woocommerce-pagination li {
  border: 0;
}
.asc-shop-pagination .woocommerce-pagination a,
.asc-shop-pagination .woocommerce-pagination span {
  min-width: 2.35rem;
  height: 2.35rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0 0.75rem;
  border: 1px solid var(--clr-border);
  font-size: 11px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--clr-muted-fg);
  background: hsl(36 24% 98%);
}
.asc-shop-pagination .woocommerce-pagination a:hover,
.asc-shop-pagination .woocommerce-pagination span.current {
  border-color: var(--clr-fg);
  color: var(--clr-fg);
  background: var(--clr-bg);
}
@media (min-width: 768px) {
  .asc-shop-grid {
    gap: 2.6rem 1.15rem;
  }
}
@media (min-width: 1024px) {
  .asc-shop-grid {
    gap: 2.75rem 1.2rem;
  }
}
@media (max-width: 767px) {
  .asc-shop-toolbar {
    padding-block: 0.75rem;
  }

  .asc-shop-grid {
    gap: 1.9rem 0.8rem;
    padding-block: 1.35rem 2rem;
  }

  .asc-product-card__name {
    font-size: 0.95rem;
    min-height: 4.05em;
  }

  .asc-product-card__atelier {
    font-size: 11px;
    min-height: 3.04em;
  }

  .asc-product-card__price > .woocommerce-Price-amount,
  .asc-product-card__price ins .woocommerce-Price-amount,
  .asc-product-card__price .amount {
    font-size: 1rem;
  }

  .asc-product-card__price del .woocommerce-Price-amount,
  .asc-product-card__price del .amount {
    font-size: 0.88rem;
  }
}
/* =============================================================================
   11 — Collection
   Taxonomy / collection archive page. Inherits product grid from 10-shop.css.
   ============================================================================= */
/* =============================================================================
   COLLECTION HERO
   ============================================================================= */
.asc-collection-hero {
  padding-block: clamp(3.5rem, 7vw, 6rem);
  border-bottom: 1px solid var(--clr-border);
  position: relative;
  overflow: hidden;
}
.asc-collection-hero__inner {
  max-width: var(--container-max);
  margin-inline: auto;
  padding-inline: var(--container-px);
  display: grid;
  grid-template-columns: 1fr;
  gap: 2.5rem;
  align-items: end;
  position: relative;
  z-index: 1;
}
@media (min-width: 1024px) {
  .asc-collection-hero__inner {
    grid-template-columns: 1fr auto;
    gap: 4rem;
    align-items: end;
  }
}
/* Hero with background image variant */
.asc-collection-hero--with-image {
  min-height: 360px;
  display: flex;
  align-items: flex-end;
  background-color: var(--clr-fg);
}
.asc-collection-hero--with-image .asc-collection-hero__inner {
  padding-bottom: 0;
}
.asc-collection-hero__bg {
  position: absolute;
  inset: 0;
  background-size: cover;
  background-position: center;
  opacity: 0.4;
}
.asc-collection-hero--with-image .asc-collection-hero__title,
.asc-collection-hero--with-image .asc-collection-hero__desc {
  color: var(--clr-dark-fg);
}
.asc-collection-hero--with-image .asc-eyebrow,
.asc-collection-hero--with-image .asc-section-label {
  color: var(--clr-dark-fg);
  opacity: 0.45;
}
/* Title */
.asc-collection-hero__title {
  font-family: var(--font-display);
  font-weight: var(--fw-light);
  font-size: clamp(2.25rem, 4vw, 3.5rem);
  letter-spacing: -0.01em;
  color: var(--clr-fg);
  margin-bottom: 0.875rem;
  line-height: 1.05;
}
.asc-collection-hero__desc {
  font-size: var(--text-md);
  color: var(--clr-muted-fg);
  max-width: 54ch;
  line-height: 1.7;
}
/* Meta (piece count, etc.) */
.asc-collection-hero__meta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 1.5rem;
  margin-top: 1.25rem;
}
.asc-collection-hero__count {
  font-size: 10px;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  color: var(--clr-muted-fg);
  opacity: 0.75;
}
.asc-collection-hero__tags {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
}
.asc-collection-hero__tag {
  padding: 0.25rem 0.75rem;
  font-size: 9px;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  border: 1px solid var(--clr-border);
  color: var(--clr-muted-fg);
  text-decoration: none !important;
  transition: border-color var(--trans-fast), color var(--trans-fast);
}
.asc-collection-hero__tag:hover {
  border-color: var(--clr-fg);
  color: var(--clr-fg);
}
/* Right meta column */
.asc-collection-hero__aside {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  align-items: flex-end;
  flex-shrink: 0;
}
.asc-collection-hero__index {
  font-family: var(--font-display);
  font-style: italic;
  font-weight: var(--fw-light);
  font-size: 5rem;
  color: var(--clr-primary);
  opacity: 0.25;
  line-height: 1;
  -webkit-user-select: none;
     -moz-user-select: none;
          user-select: none;
}
/* =============================================================================
   COLLECTION INTRO (optional 2-col text block below hero)
   ============================================================================= */
.asc-collection-intro {
  padding-block: clamp(2rem, 4vw, 3rem);
  border-bottom: 1px solid var(--clr-border);
  background-color: var(--clr-card);
}
.asc-collection-intro__inner {
  max-width: var(--container-max);
  margin-inline: auto;
  padding-inline: var(--container-px);
  display: grid;
  grid-template-columns: 1fr;
  gap: 2rem;
}
@media (min-width: 768px) {
  .asc-collection-intro__inner {
    grid-template-columns: 1fr 1fr;
    gap: 4rem;
  }
}
.asc-collection-intro__text {
  font-size: 13px;
  line-height: 1.8;
  color: var(--clr-muted-fg);
}
.asc-collection-intro__highlights {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
}
.asc-collection-intro__highlight {
  display: flex;
  align-items: flex-start;
  gap: 0.75rem;
  font-size: 12px;
  color: var(--clr-muted-fg);
  line-height: 1.55;
}
.asc-collection-intro__highlight::before {
  content: '';
  width: 4px;
  height: 4px;
  background-color: var(--clr-primary);
  border-radius: 50%;
  flex-shrink: 0;
  margin-top: 0.375rem;
  opacity: 0.7;
}
/* =============================================================================
   COLLECTION BODY (toolbar + grid — inherits from shop)
   ============================================================================= */
.asc-collection-body {
  max-width: var(--container-max);
  margin-inline: auto;
  padding-inline: var(--container-px);
}
/* =============================================================================
   COLLECTION SUBCATEGORIES (if nested)
   ============================================================================= */
.asc-collection-subcats {
  padding-block: 2rem;
  border-bottom: 1px solid var(--clr-border);
}
.asc-collection-subcats__inner {
  max-width: var(--container-max);
  margin-inline: auto;
  padding-inline: var(--container-px);
}
.asc-collection-subcats__heading {
  font-size: 9px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--clr-muted-fg);
  margin-bottom: 1rem;
  opacity: 0.7;
}
.asc-collection-subcats__list {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
}
.asc-subcat-link {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.5rem 1rem;
  font-size: 11px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  font-weight: var(--fw-medium);
  color: var(--clr-muted-fg);
  border: 1px solid var(--clr-border);
  text-decoration: none !important;
  transition: color var(--trans-fast),
              border-color var(--trans-fast),
              background-color var(--trans-fast);
}
.asc-subcat-link:hover {
  color: var(--clr-fg);
  border-color: var(--clr-fg);
}
.asc-subcat-link.is-active {
  background-color: var(--clr-fg);
  color: var(--clr-bg);
  border-color: var(--clr-fg);
}
.asc-subcat-link__count {
  font-size: 9px;
  opacity: 0.6;
}
/* =============================================================================
   COLLECTION CTA / BOTTOM SECTION
   ============================================================================= */
.asc-collection-bottom {
  padding-block: var(--section-py);
  border-top: 1px solid var(--clr-border);
  background-color: var(--clr-card);
  text-align: center;
}
.asc-collection-bottom__inner {
  max-width: 540px;
  margin-inline: auto;
  padding-inline: var(--container-px);
}
.asc-collection-bottom__title {
  font-family: var(--font-display);
  font-weight: var(--fw-light);
  font-size: clamp(1.5rem, 2.5vw, 2rem);
  color: var(--clr-fg);
  margin-bottom: 0.875rem;
}
.asc-collection-bottom__text {
  font-size: 13px;
  color: var(--clr-muted-fg);
  line-height: 1.7;
  margin-bottom: 1.5rem;
}
/* =============================================================================
   12 — Single Product
   Product detail page: gallery, details panel, tabs, related products.
   ============================================================================= */
/* =============================================================================
   SINGLE PRODUCT WRAPPER
   ============================================================================= */
.asc-single-product {
  display: grid;
  grid-template-columns: 1fr;
  gap: clamp(2rem, 4vw, 3.5rem);
  padding-block: clamp(2rem, 4vw, 3.5rem);
  align-items: start;
  max-width: var(--container-max);
  margin-inline: auto;
  padding-inline: var(--container-px);
}
@media (min-width: 1024px) {
  .asc-single-product {
    grid-template-columns: minmax(0, 1.08fr) minmax(22rem, 0.82fr);
    gap: clamp(2.5rem, 4vw, 4.5rem);
  }
}
/* =============================================================================
   PRODUCT GALLERY
   ============================================================================= */
.asc-product-gallery {
  display: flex;
  flex-direction: column;
  gap: 0.875rem;
  position: relative;
}
/* Main image */
.asc-product-gallery__main {
  position: relative;
  overflow: hidden;
  aspect-ratio: 1 / 1;
  background: linear-gradient(180deg, hsl(36 28% 98%) 0%, hsl(34 24% 96%) 100%);
  border: 1px solid var(--clr-border);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: clamp(0.55rem, 1.4vw, 0.95rem);
}
.asc-product-gallery__main-img {
  width: 100%;
  height: 100%;
  -o-object-fit: contain;
     object-fit: contain;
  -o-object-position: center;
     object-position: center;
  display: block;
  transition: opacity var(--trans-base);
}
/* Navigation arrows */
.asc-gallery-arrow {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  z-index: 2;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 48px;
  height: 48px;
  background: hsl(36 33% 97% / 0.85);
  border: 1px solid var(--clr-border);
  cursor: pointer;
  transition: background-color var(--trans-fast),
              border-color var(--trans-fast),
              opacity var(--trans-fast);
  opacity: 0;
  pointer-events: none;
}
.asc-product-gallery:hover .asc-gallery-arrow {
  opacity: 1;
  pointer-events: auto;
}
.asc-gallery-arrow:hover {
  background: white;
  border-color: var(--clr-fg);
}
.asc-gallery-arrow--prev {
  left: 1rem;
}
.asc-gallery-arrow--next {
  right: 1rem;
}
.asc-gallery-arrow svg {
  width: 16px;
  height: 16px;
  stroke-width: 1.5;
  color: var(--clr-fg);
  pointer-events: none;
}
/* Image counter */
.asc-gallery-counter {
  position: absolute;
  bottom: 1rem;
  right: 1rem;
  font-size: 10px;
  letter-spacing: 0.1em;
  color: white;
  background: hsl(20 8% 8% / 0.5);
  padding: 0.25rem 0.625rem;
  pointer-events: none;
}
/* Thumbnails */
.asc-product-gallery__thumbs {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 0.625rem;
}
.asc-product-gallery__thumb {
  aspect-ratio: 1 / 1;
  overflow: hidden;
  cursor: pointer;
  border: 2px solid transparent;
  background-color: var(--clr-muted);
  transition: border-color var(--trans-fast),
              opacity var(--trans-fast),
              transform var(--trans-fast);
  opacity: 0.82;
}
.asc-product-gallery__thumb:hover {
  opacity: 1;
  transform: translateY(-2px);
}
.asc-product-gallery__thumb.is-active {
  border-color: var(--clr-primary);
  opacity: 1;
}
.asc-product-gallery__thumb img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  display: block;
  pointer-events: none;
}
/* Zoom hint */
.asc-gallery-zoom-hint {
  position: absolute;
  bottom: 1rem;
  left: 1rem;
  font-size: 9px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: white;
  background: hsl(20 8% 8% / 0.4);
  padding: 0.25rem 0.625rem;
  pointer-events: none;
  opacity: 0;
  transition: opacity var(--trans-slow);
}
.asc-product-gallery:hover .asc-gallery-zoom-hint {
  opacity: 1;
}
/* =============================================================================
   PRODUCT DETAILS PANEL
   ============================================================================= */
.asc-single-product__details {
  position: sticky;
  top: calc(var(--navbar-height) + 1.5rem);
  display: flex;
  flex-direction: column;
  gap: 1.25rem;
}
.asc-single-product__details-shell {
  display: flex;
  flex-direction: column;
  gap: 1.5rem;
  padding: clamp(1.25rem, 2vw, 1.75rem);
  border: 1px solid var(--clr-border);
  background: linear-gradient(180deg, hsl(36 22% 99%) 0%, hsl(36 18% 97%) 100%);
}
/* Meta top (wraps collection link) */
.asc-single-product__meta-top {
  display: flex;
  align-items: center;
}
/* Collection breadcrumb link */
.asc-single-product__collection-link,
.asc-single-product__collection {
  font-size: 10px;
  font-weight: var(--fw-medium);
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--clr-primary);
  opacity: 0.8;
  text-decoration: none !important;
  transition: opacity var(--trans-fast);
}
.asc-single-product__collection-link:hover,
.asc-single-product__collection:hover {
  opacity: 1;
}
/* Title */
.asc-single-product__title {
  font-family: var(--font-display);
  font-weight: var(--fw-light);
  font-size: clamp(2rem, 3vw, 3rem);
  letter-spacing: -0.02em;
  line-height: 1.02;
  color: var(--clr-fg);
  max-width: 12ch;
}
/* Subtitle / provenance */
.asc-single-product__subtitle {
  font-size: 12px;
  letter-spacing: 0.06em;
  color: var(--clr-muted-fg);
  margin-top: 0.25rem;
}
/* Price */
.asc-single-product__price-block {
  display: flex;
  align-items: baseline;
  gap: 0.75rem;
  flex-wrap: wrap;
  padding-block: 0.5rem;
  border-top: 1px solid var(--clr-border);
  border-bottom: 1px solid var(--clr-border);
}
.asc-single-product__price {
  font-family: var(--font-display);
  font-weight: var(--fw-light);
  font-size: clamp(1.9rem, 2.4vw, 2.5rem);
  color: var(--clr-fg);
  letter-spacing: 0.01em;
}
.asc-single-product__price--sale {
  color: hsl(0 60% 48%);
}
.asc-single-product__price--original {
  font-size: 1rem;
  font-weight: var(--fw-regular);
  color: var(--clr-muted-fg);
  text-decoration: line-through;
}
.asc-single-product__price-note,
.asc-single-product__shipping-note {
  font-size: 10px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--clr-muted-fg);
  opacity: 0.7;
}
/* Description excerpt */
.asc-single-product__excerpt,
.asc-single-product__description {
  font-size: 14px;
  line-height: 1.82;
  color: var(--clr-muted-fg);
}
.asc-single-product__description p + p {
  margin-top: 0.9rem;
}
/* Attributes / details list */
.asc-single-product__attrs {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}
.asc-single-product__attr {
  display: flex;
  align-items: flex-start;
  gap: 1rem;
  font-size: 12px;
}
.asc-single-product__attr-key {
  font-weight: var(--fw-medium);
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--clr-muted-fg);
  font-size: 10px;
  min-width: 80px;
  flex-shrink: 0;
  padding-top: 0.125rem;
}
.asc-single-product__attr-val {
  color: var(--clr-fg);
  line-height: 1.55;
}
/* =============================================================================
   QUANTITY STEPPER
   ============================================================================= */
.asc-qty-stepper {
  display: inline-flex;
  align-items: center;
  border: 1px solid var(--clr-border);
  background-color: var(--clr-bg);
}
.asc-qty-stepper__btn,
.asc-qty__btn {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  background: transparent;
  border: none;
  color: var(--clr-fg);
  cursor: pointer;
  font-size: 16px;
  font-weight: var(--fw-light);
  transition: background-color var(--trans-fast),
              color var(--trans-fast);
  flex-shrink: 0;
  -webkit-user-select: none;
     -moz-user-select: none;
          user-select: none;
}
.asc-qty-stepper__btn:hover,
.asc-qty__btn:hover {
  background-color: var(--clr-muted);
  color: var(--clr-fg);
}
.asc-qty-stepper__btn:disabled,
.asc-qty__btn:disabled {
  opacity: 0.4;
  cursor: not-allowed;
}
/* Minus / plus modifiers (template names) */
.asc-qty__btn--minus {}
.asc-qty__btn--plus {}
.asc-qty-stepper__input,
.asc-qty__input {
  width: 48px;
  height: 40px;
  text-align: center;
  border: none;
  border-left: 1px solid var(--clr-border);
  border-right: 1px solid var(--clr-border);
  background: transparent;
  font-family: var(--font-body);
  font-size: 13px;
  color: var(--clr-fg);
  outline: none;
  -moz-appearance: textfield;
}
.asc-qty-stepper__input::-webkit-outer-spin-button,
.asc-qty-stepper__input::-webkit-inner-spin-button,
.asc-qty__input::-webkit-outer-spin-button,
.asc-qty__input::-webkit-inner-spin-button {
  -webkit-appearance: none;
  margin: 0;
}
/* =============================================================================
   ADD TO CART / CTA AREA
   ============================================================================= */
.asc-single-product__cta {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
}
.asc-single-product__qty-row {
  display: flex;
  align-items: center;
  gap: 1rem;
}
.asc-single-product__qty-label {
  font-size: 10px;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  color: var(--clr-muted-fg);
  flex-shrink: 0;
}
/* Inquiry link */
.asc-single-product__inquire {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  width: 100%;
  padding: 0.875rem 1.5rem;
  font-family: var(--font-body);
  font-size: 11px;
  font-weight: var(--fw-medium);
  letter-spacing: 0.25em;
  text-transform: uppercase;
  color: var(--clr-fg);
  border: 1px solid var(--clr-border);
  background: transparent;
  cursor: pointer;
  text-decoration: none !important;
  transition: border-color var(--trans-base), color var(--trans-base);
}
.asc-single-product__inquire:hover {
  border-color: var(--clr-fg);
  color: var(--clr-fg);
  text-decoration: none;
}
.asc-single-product__inquire svg {
  width: 14px;
  height: 14px;
}
/* =============================================================================
   TRUST GRID
   ============================================================================= */
.asc-single-product__trust {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1rem;
  padding-top: 1.25rem;
  border-top: 1px solid var(--clr-border);
}
.asc-trust-item {
  display: flex;
  align-items: flex-start;
  gap: 0.625rem;
  padding: 0.875rem 0;
  border-bottom: 1px solid hsl(31 18% 89%);
}
.asc-trust-item__icon {
  width: 18px;
  height: 18px;
  flex-shrink: 0;
  color: var(--clr-primary);
  opacity: 0.7;
  margin-top: 0.1rem;
}
.asc-trust-item__content {
  display: flex;
  flex-direction: column;
  gap: 0.125rem;
}
.asc-trust-item__title,
.asc-trust-item__label {
  font-size: 12px;
  font-weight: var(--fw-medium);
  color: var(--clr-fg);
  letter-spacing: 0.03em;
  line-height: 1.3;
}
.asc-trust-item__desc {
  font-size: 10px;
  color: var(--clr-muted-fg);
  letter-spacing: 0.02em;
  line-height: 1.45;
}
/* =============================================================================
   PRODUCT TABS (WooCommerce override)
   ============================================================================= */
.asc-product-tabs,
.woocommerce-tabs {
  margin-top: clamp(3rem, 5vw, 4.5rem);
  max-width: var(--container-max);
  margin-inline: auto;
  padding-inline: var(--container-px);
  padding-bottom: clamp(2rem, 4vw, 3rem);
}
/* Tab nav */
.asc-product-tabs__nav,
.woocommerce-tabs .tabs,
.woocommerce-tabs ul.tabs {
  display: flex;
  align-items: center;
  gap: 0;
  border-bottom: 1px solid var(--clr-border);
  list-style: none;
  margin: 0 0 2rem;
  padding: 0;
  overflow-x: auto;
  scrollbar-width: none;
}
.asc-product-tabs__nav::-webkit-scrollbar,
.woocommerce-tabs .tabs::-webkit-scrollbar {
  display: none;
}
/* Tab item */
.asc-product-tabs__tab,
.woocommerce-tabs .tabs li {
  list-style: none;
}
.asc-product-tabs__tab a,
.woocommerce-tabs .tabs li a {
  display: inline-flex;
  align-items: center;
  padding: 0.875rem 1.25rem;
  font-family: var(--font-body);
  font-size: 11px;
  font-weight: var(--fw-medium);
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--clr-muted-fg);
  text-decoration: none !important;
  border-bottom: 2px solid transparent;
  margin-bottom: -1px;
  white-space: nowrap;
  transition: color var(--trans-base),
              border-color var(--trans-base);
}
.asc-product-tabs__tab a:hover,
.woocommerce-tabs .tabs li a:hover {
  color: var(--clr-fg);
  text-decoration: none;
}
.asc-product-tabs__tab.is-active a,
.woocommerce-tabs .tabs li.active a {
  color: var(--clr-fg);
  border-bottom-color: var(--clr-primary);
}
/* Tab content */
.asc-product-tabs__panel,
.woocommerce-tabs .panel {
  display: none;
}
.asc-product-tabs__panel.is-active,
.woocommerce-tabs .panel:not([style*="display: none"]) {
  display: block;
  animation: fadeIn 0.3s var(--ease-out-expo);
  padding-top: 1rem;
}
@keyframes fadeIn {
  from { opacity: 0; transform: translateY(4px); }
  to   { opacity: 1; transform: translateY(0); }
}
/* Description tab */
.asc-tab-description,
.woocommerce-product-details__short-description,
.entry-content.woocommerce-Tabs-panel {
  font-size: 14px;
  line-height: 1.8;
  color: var(--clr-muted-fg);
  max-width: 68ch;
}
.asc-tab-description h2,
.asc-tab-description h3 {
  font-family: var(--font-display);
  font-weight: var(--fw-light);
  color: var(--clr-fg);
  margin-bottom: 0.75rem;
  margin-top: 1.5rem;
}
.asc-tab-description h2 { font-size: 1.5rem; }
.asc-tab-description h3 { font-size: 1.25rem; }
/* Additional information tab (attributes table) */
.woocommerce-product-attributes {
  width: 100%;
  border-top: 1px solid var(--clr-border);
}
.woocommerce-product-attributes th,
.woocommerce-product-attributes td {
  padding: 0.875rem 0;
  border-bottom: 1px solid var(--clr-border);
  font-size: 13px;
  vertical-align: top;
}
.woocommerce-product-attributes th {
  font-weight: var(--fw-medium);
  font-size: 10px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--clr-muted-fg);
  width: 35%;
  padding-right: 1.5rem;
}
.woocommerce-product-attributes td {
  color: var(--clr-fg);
}
/* Reviews tab */
.asc-tab-reviews {
  max-width: 640px;
}
/* =============================================================================
   SHIPPING INFO (dark section under gallery/details)
   ============================================================================= */
.asc-shipping-info {
  background-color: var(--clr-dark-bg);
  color: var(--clr-dark-fg);
  padding-block: 3rem;
  margin-top: 2rem;
}
.asc-shipping-info__inner {
  max-width: var(--container-max);
  margin-inline: auto;
  padding-inline: var(--container-px);
}
.asc-shipping-info__heading {
  font-size: 10px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--clr-dark-fg);
  opacity: 0.4;
  margin-bottom: 1.5rem;
}
.asc-shipping-info__grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 1.5rem;
}
@media (min-width: 768px) {
  .asc-shipping-info__grid {
    grid-template-columns: repeat(4, 1fr);
  }
}
.asc-shipping-info__item {
  padding-top: 1rem;
  border-top: 1px solid var(--clr-dark-border);
  display: flex;
  flex-direction: column;
  gap: 0.375rem;
}
.asc-shipping-info__item-icon {
  color: var(--clr-primary);
  opacity: 0.6;
  width: 20px;
  height: 20px;
  margin-bottom: 0.25rem;
}
.asc-shipping-info__item-title {
  font-family: var(--font-body);
  font-size: 12px;
  font-weight: var(--fw-medium);
  letter-spacing: 0.06em;
  color: var(--clr-dark-fg);
}
.asc-shipping-info__item-desc {
  font-size: 11px;
  color: var(--clr-dark-muted-fg);
  line-height: 1.55;
}
/* =============================================================================
   RELATED PRODUCTS
   ============================================================================= */
.asc-related-products {
  padding-block: var(--section-py);
  border-top: 1px solid var(--clr-border);
}
.asc-related-products__inner {
  max-width: var(--container-max);
  margin-inline: auto;
  padding-inline: var(--container-px);
}
.asc-related-products__header {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  justify-content: space-between;
  gap: 1rem;
  margin-bottom: clamp(2rem, 4vw, 3rem);
}
.asc-related-products__grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 1.5rem 1rem;
}
@media (min-width: 768px) {
  .asc-related-products__grid {
    grid-template-columns: repeat(3, 1fr);
    gap: 2rem 1.5rem;
  }
}
@media (min-width: 1024px) {
  .asc-related-products__grid {
    grid-template-columns: repeat(4, 1fr);
  }
}
/* =============================================================================
   MATERIALS & DIMENSIONS SECTION
   ============================================================================= */
.asc-product-materials {
  padding-block: clamp(2.5rem, 5vw, 4rem);
  border-top: 1px solid var(--clr-border);
  margin-top: clamp(1.5rem, 3vw, 2.5rem);
}
.asc-product-materials__heading {
  font-family: var(--font-display);
  font-weight: var(--fw-light);
  font-size: 1.25rem;
  letter-spacing: -0.01em;
  color: var(--clr-fg);
  margin-bottom: 1.5rem;
}
.asc-product-materials__grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  gap: 0.9rem;
}
/* =============================================================================
   SYMBOLISM & MEANING SECTION (dark)
   ============================================================================= */
.asc-symbolism {
  background-color: var(--clr-dark-bg);
  color: var(--clr-dark-fg);
  padding-block: clamp(3rem, 6vw, 5rem);
  margin-top: 2rem;
}
.asc-symbolism__inner {
  display: grid;
  grid-template-columns: 1fr;
  gap: 2rem;
}
@media (min-width: 768px) {
  .asc-symbolism__inner {
    grid-template-columns: 1fr 1.5fr;
    gap: 3rem;
  }
}
.asc-symbolism__header .asc-section-label {
  color: var(--clr-dark-fg);
  opacity: 0.4;
}
.asc-symbolism__header .asc-editorial-rule {
  background-color: var(--clr-primary);
  opacity: 0.3;
}
.asc-symbolism__quote {
  font-family: var(--font-display);
  font-weight: var(--fw-light);
  font-style: italic;
  font-size: clamp(1.125rem, 2vw, 1.375rem);
  line-height: 1.5;
  color: var(--clr-dark-fg);
  opacity: 0.85;
  border-left: 2px solid var(--clr-primary);
  padding-left: 1.25rem;
  margin-bottom: 1.5rem;
}
.asc-symbolism__text {
  font-size: 14px;
  line-height: 1.9;
  color: var(--clr-dark-muted-fg);
  max-width: 66ch;
}
.asc-symbolism__text p + p {
  margin-top: 1rem;
}
/* =============================================================================
   PROCESS & LINEAGE STEPS
   ============================================================================= */
.asc-process-steps {
  padding-block: clamp(3rem, 6vw, 5rem);
  border-top: 1px solid var(--clr-border);
}
.asc-process-steps__header {
  margin-bottom: clamp(2rem, 4vw, 3rem);
}
.asc-process-steps__title {
  font-family: var(--font-display);
  font-weight: var(--fw-light);
  font-size: clamp(1.5rem, 2.5vw, 2rem);
  letter-spacing: -0.01em;
  line-height: 1.15;
  color: var(--clr-fg);
  margin-top: 0.75rem;
}
.asc-process-steps__grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 2rem;
}
@media (min-width: 768px) {
  .asc-process-steps__grid {
    grid-template-columns: repeat(3, 1fr);
    gap: 2.5rem;
  }
}
.asc-process-step {
  padding-top: 1.25rem;
  border-top: 1px solid var(--clr-border);
}
.asc-process-step__num {
  font-family: var(--font-display);
  font-weight: var(--fw-light);
  font-style: italic;
  font-size: 2rem;
  line-height: 1;
  color: var(--clr-primary);
  opacity: 0.5;
  display: block;
  margin-bottom: 0.75rem;
}
.asc-process-step__name {
  font-family: var(--font-display);
  font-weight: var(--fw-regular);
  font-size: 1.125rem;
  color: var(--clr-fg);
  margin-bottom: 0.25rem;
}
.asc-process-step__duration {
  font-size: 10px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--clr-muted-fg);
  margin-bottom: 0.75rem;
}
.asc-process-step__desc {
  font-size: 13px;
  line-height: 1.7;
  color: var(--clr-muted-fg);
}
/* =============================================================================
   SINGLE PRODUCT TABS WRAPPER (template class)
   ============================================================================= */
.asc-single-product__tabs {
  /* wrapper for woocommerce_output_product_data_tabs() */
}
/* =============================================================================
   SYMBOLISM BODY (template class)
   ============================================================================= */
.asc-symbolism__body {
  display: flex;
  flex-direction: column;
  gap: 1rem;
}
/* =============================================================================
   RELATED PRODUCTS HEADING (template uses __heading, CSS had none)
   ============================================================================= */
.asc-related-products__heading {
  font-family: var(--font-display);
  font-weight: var(--fw-light);
  font-size: clamp(1.5rem, 2.5vw, 2rem);
  letter-spacing: -0.01em;
  color: var(--clr-fg);
  line-height: 1.1;
}
/* =============================================================================
   ADD TO CART FORM (simple.php template)
   ============================================================================= */
.asc-add-to-cart-form {
  display: grid;
  grid-template-columns: auto 1fr;
  align-items: stretch;
  gap: 0.85rem;
}
.asc-add-to-cart-form--unavailable {
  flex-direction: column;
  align-items: stretch;
  gap: 1rem;
}
.asc-out-of-stock {
  font-size: 13px;
  color: var(--clr-muted-fg);
  line-height: 1.6;
  text-align: center;
  padding: 1rem;
  border: 1px solid var(--clr-border);
  background-color: var(--clr-card);
}
.asc-single-product__eyebrow {
  font-size: 10px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--clr-muted-fg);
  opacity: 0.8;
}
.asc-single-product__price-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 0.9rem;
}
.asc-single-product__price-heading {
  display: flex;
  flex-direction: column;
  gap: 0.4rem;
}
.asc-single-product__price-caption {
  margin: 0;
  font-size: 12px;
  line-height: 1.6;
  color: var(--clr-muted-fg);
}
.asc-single-product__price-pill {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 1.85rem;
  margin: 0;
  padding: 0.4rem 0.7rem;
  border: 1px solid var(--clr-border);
  background-color: hsl(35 18% 99%);
  font-size: 10px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--clr-muted-fg);
  white-space: nowrap;
}
.asc-single-product__price-wrap {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
  padding-bottom: 1rem;
  border-bottom: 1px solid var(--clr-border);
}
.asc-single-product__price-overview {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.75rem;
}
.asc-single-product__price-stat {
  display: flex;
  flex-direction: column;
  gap: 0.45rem;
  padding: 0.95rem 1rem;
  border: 1px solid var(--clr-border);
  background-color: hsl(35 22% 99%);
}
.asc-single-product__price-stat-label {
  font-size: 10px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--clr-muted-fg);
}
.asc-single-product__price-stat-value {
  font-family: var(--font-body);
  font-size: clamp(1.62rem, 1.95vw, 2rem);
  font-weight: var(--fw-medium);
  font-variant-numeric: tabular-nums lining-nums;
  line-height: 1;
  letter-spacing: -0.04em;
  color: var(--clr-fg);
}
.asc-single-product__price-stat-value .woocommerce-Price-currencySymbol {
  font-size: 0.44em;
  position: relative;
  top: -0.01em;
  margin-right: 0.08em;
}
.asc-single-product__selection-note,
.asc-single-product__option-intro {
  margin: 0;
  font-size: 12px;
  line-height: 1.7;
  color: var(--clr-muted-fg);
}
.asc-single-product__price,
.asc-single-product__price .price,
.woocommerce-variation-price .price {
  display: grid;
  justify-items: start;
  gap: 0.35rem;
  margin: 0;
  line-height: 1;
}
.asc-single-product__price ins,
.asc-single-product__price .price ins,
.woocommerce-variation-price .price ins {
  order: 2;
  display: inline-flex;
  align-items: flex-start;
  margin: 0;
  padding: 0;
  text-decoration: none !important;
  color: var(--clr-fg);
}
.asc-single-product__price ins *,
.asc-single-product__price .price ins *,
.woocommerce-variation-price .price ins * {
  text-decoration: none !important;
}
.asc-single-product__price ins .woocommerce-Price-amount,
.asc-single-product__price .price ins .woocommerce-Price-amount,
.woocommerce-variation-price .price ins .woocommerce-Price-amount {
  font-family: var(--font-body);
  font-size: clamp(1.72rem, 2.08vw, 2.16rem);
  font-weight: var(--fw-medium);
  font-variant-numeric: tabular-nums lining-nums;
  letter-spacing: -0.045em;
  color: var(--clr-fg);
}
.asc-single-product__price > .woocommerce-Price-amount,
.asc-single-product__price > ins:only-child .woocommerce-Price-amount,
.asc-single-product__price .price > .woocommerce-Price-amount,
.asc-single-product__price .price > ins:only-child .woocommerce-Price-amount,
.woocommerce-variation-price .price > .woocommerce-Price-amount,
.woocommerce-variation-price .price > ins:only-child .woocommerce-Price-amount {
  font-family: var(--font-body);
  font-size: clamp(1.72rem, 2.08vw, 2.16rem);
  font-weight: var(--fw-medium);
  font-variant-numeric: tabular-nums lining-nums;
  letter-spacing: -0.045em;
  color: var(--clr-fg);
}
.asc-single-product__price del,
.asc-single-product__price .price del,
.woocommerce-variation-price .price del {
  order: 1;
  display: inline-flex;
  align-items: center;
  margin: 0;
  color: hsl(24 9% 58%);
  opacity: 0.72;
  text-decoration-thickness: 1px;
  text-decoration-color: hsl(24 10% 62%);
}
.asc-single-product__price del .woocommerce-Price-amount,
.asc-single-product__price .price del .woocommerce-Price-amount,
.woocommerce-variation-price .price del .woocommerce-Price-amount {
  font-family: var(--font-body);
  font-size: 1.05rem;
  font-weight: var(--fw-regular);
  font-variant-numeric: tabular-nums lining-nums;
  line-height: 1.1;
  letter-spacing: 0;
  color: inherit;
}
.asc-single-product__price .woocommerce-Price-currencySymbol,
.asc-single-product__price .price .woocommerce-Price-currencySymbol,
.woocommerce-variation-price .price .woocommerce-Price-currencySymbol {
  font-size: 0.46em;
  vertical-align: baseline;
  position: relative;
  top: -0.01em;
  margin-right: 0.08em;
}
.asc-single-product__price del .woocommerce-Price-currencySymbol,
.asc-single-product__price .price del .woocommerce-Price-currencySymbol,
.woocommerce-variation-price .price del .woocommerce-Price-currencySymbol {
  font-size: 0.62em;
  top: -0.01em;
}
.asc-single-product__purchase-card {
  display: flex;
  flex-direction: column;
  gap: 1.1rem;
  padding: clamp(1rem, 2vw, 1.5rem);
  border: 1px solid var(--clr-border);
  background-color: hsl(35 20% 98%);
}
.asc-single-product form.cart {
  display: flex;
  flex-direction: column;
  gap: 1rem;
}
.variations_form.cart table.variations {
  width: 100%;
  border-spacing: 0;
  margin: 0;
}
.variations_form.cart table.variations tbody {
  display: flex;
  flex-direction: column;
  gap: 0.85rem;
}
.variations_form.cart table.variations tr {
  display: flex;
  flex-direction: column;
  gap: 0.45rem;
}
.variations_form.cart table.variations th.label {
  width: auto;
  padding: 0;
  font-size: 10px;
  line-height: 1.4;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--clr-muted-fg);
  text-align: left;
}
.variations_form.cart table.variations td.value {
  width: 100%;
  padding: 0;
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 0.55rem;
}
.variations_form.cart select,
.woocommerce form.cart .variations select {
  width: 100%;
  min-height: 3.25rem;
  padding: 1rem 3rem 1rem 1rem;
  border: 1px solid var(--clr-border);
  background-color: hsl(35 20% 99%);
  font-size: 14px;
  line-height: 1.5;
  color: var(--clr-fg);
  box-shadow: inset 0 0 0 1px hsl(30 18% 91%);
}
.variations_form.cart select:focus,
.woocommerce form.cart .variations select:focus {
  outline: none;
  border-color: hsl(27 40% 64%);
  box-shadow: inset 0 0 0 1px hsl(27 40% 64%);
}
.variations_form.cart .reset_variations {
  align-self: flex-start;
  font-size: 11px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--clr-primary);
  text-decoration: none;
  opacity: 0.82;
  transition: opacity var(--trans-fast), color var(--trans-fast);
}
.variations_form.cart .reset_variations:hover {
  opacity: 1;
  color: var(--clr-fg);
}
.variations_form.cart .single_variation_wrap {
  display: flex;
  flex-direction: column;
  gap: 0.85rem;
}
.woocommerce-variation.single_variation:empty {
  display: none !important;
}
.woocommerce-variation.single_variation {
  display: flex;
  flex-direction: column;
  gap: 0.8rem;
  padding: 1rem 1rem 1.05rem;
  border: 1px solid var(--clr-border);
  background-color: hsl(36 24% 99%);
}
.woocommerce-variation.single_variation::before {
  content: "Selected variation";
  font-size: 10px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--clr-muted-fg);
}
.woocommerce-variation-price {
  display: flex;
  flex-direction: column;
  gap: 0.3rem;
  padding-bottom: 0.75rem;
  border-bottom: 1px solid var(--clr-border);
}
.woocommerce-variation-price .price {
  color: var(--clr-fg);
}
.woocommerce-variation-description p {
  margin: 0;
  font-size: 13px;
  line-height: 1.7;
  color: var(--clr-muted-fg);
}
.woocommerce-variation-availability p.stock {
  margin: 0;
  font-size: 11px;
  letter-spacing: 0.04em;
  color: var(--clr-muted-fg);
}
.variations_button {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 0.85rem;
  align-items: stretch;
}
.asc-single-product form.cart .quantity {
  display: flex;
  align-items: stretch;
}
.asc-single-product form.cart .quantity .qty {
  width: 5rem;
  min-height: 3.25rem;
  padding: 0.6rem 0.75rem;
  border: 1px solid var(--clr-border);
  background-color: hsl(35 20% 99%);
  font-size: 13px;
  text-align: center;
  color: var(--clr-fg);
  -moz-appearance: textfield;
}
.asc-single-product form.cart .quantity .qty::-webkit-outer-spin-button,
.asc-single-product form.cart .quantity .qty::-webkit-inner-spin-button {
  -webkit-appearance: none;
  margin: 0;
}
.asc-single-product form.cart .single_add_to_cart_button.button,
.asc-single-product form.cart .single_add_to_cart_button.button.alt {
  width: 100%;
  min-height: 3.25rem;
  padding: 0.95rem 1.35rem;
  border: 1px solid var(--clr-fg);
  background: var(--clr-fg);
  color: var(--clr-bg);
  font-family: var(--font-body);
  font-size: 11px;
  font-weight: var(--fw-medium);
  letter-spacing: 0.18em;
  text-transform: uppercase;
  transition: background-color var(--trans-base), color var(--trans-base), border-color var(--trans-base);
}
.asc-single-product form.cart .single_add_to_cart_button.button:hover,
.asc-single-product form.cart .single_add_to_cart_button.button.alt:hover {
  background: hsl(20 10% 14%);
  border-color: hsl(20 10% 14%);
  color: var(--clr-bg);
}
.asc-single-product form.cart .single_add_to_cart_button.button:disabled,
.asc-single-product form.cart .single_add_to_cart_button.button.alt:disabled {
  opacity: 0.5;
  cursor: not-allowed;
}
.asc-single-product form.cart p.stock {
  margin: 0;
  font-size: 11px;
  line-height: 1.5;
  color: var(--clr-muted-fg);
}
.asc-single-product form.cart .quantity:has(input[type="hidden"]) {
  display: none;
}
.asc-single-product__support-card {
  display: flex;
  flex-direction: column;
  gap: 0.7rem;
  padding-top: 0.25rem;
  border-top: 1px solid var(--clr-border);
}
.asc-single-product__support-title {
  font-family: var(--font-display);
  font-size: 1.05rem;
  line-height: 1.25;
  color: var(--clr-fg);
}
.asc-single-product__support-copy {
  font-size: 13px;
  line-height: 1.7;
  color: var(--clr-muted-fg);
}
.asc-product-materials .asc-single-product__attr {
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
  padding: 1rem 1.1rem;
  border: 1px solid var(--clr-border);
  background-color: hsl(36 25% 98%);
}
.asc-product-materials .asc-single-product__attr-key {
  min-width: 0;
  padding-top: 0;
}
@media (max-width: 1023px) {
  .asc-single-product__details {
    position: static;
  }

  .asc-single-product__title {
    max-width: none;
  }
}
@media (max-width: 767px) {
  .asc-single-product {
    gap: 1.5rem;
    padding-block: 1.5rem 2rem;
  }

  .asc-product-gallery__main {
    aspect-ratio: 1 / 1.04;
    padding: 0.75rem;
  }

  .asc-product-gallery__thumbs {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }

  .asc-gallery-arrow {
    width: 40px;
    height: 40px;
    opacity: 1;
    pointer-events: auto;
  }

  .asc-single-product__details-shell,
  .asc-single-product__purchase-card {
    padding: 1rem;
  }

  .asc-single-product__price,
  .asc-single-product__price .price,
  .woocommerce-variation-price .price {
    gap: 0.3rem;
  }

  .asc-single-product__price ins .woocommerce-Price-amount,
  .asc-single-product__price > .woocommerce-Price-amount,
  .asc-single-product__price > ins:only-child .woocommerce-Price-amount,
  .asc-single-product__price .price ins .woocommerce-Price-amount,
  .asc-single-product__price .price > .woocommerce-Price-amount,
  .asc-single-product__price .price > ins:only-child .woocommerce-Price-amount,
  .woocommerce-variation-price .price ins .woocommerce-Price-amount,
  .woocommerce-variation-price .price > .woocommerce-Price-amount,
  .woocommerce-variation-price .price > ins:only-child .woocommerce-Price-amount {
    font-size: 2.2rem;
  }

  .asc-single-product__price del .woocommerce-Price-amount,
  .asc-single-product__price .price del .woocommerce-Price-amount,
  .woocommerce-variation-price .price del .woocommerce-Price-amount {
    font-size: 1rem;
  }

  .asc-single-product__trust {
    grid-template-columns: 1fr;
  }

  .asc-add-to-cart-form,
  .variations_button {
    grid-template-columns: 1fr;
  }

  .asc-qty-stepper {
    width: 100%;
    justify-content: space-between;
  }

  .asc-qty__input {
    flex: 1 1 auto;
    width: auto;
  }

  .asc-shipping-info__grid {
    grid-template-columns: 1fr;
  }
}
/* =============================================================================
   PRE-DEPLOYMENT PDP POLISH
   Conservative late overrides for title measure, hero balance, and purchase flow.
   ============================================================================= */
@media (min-width: 1024px) {
  .asc-single-product {
    grid-template-columns: minmax(0, 1fr) minmax(24rem, 0.92fr);
    gap: clamp(2.25rem, 3vw, 3.75rem);
  }
}
.asc-product-gallery__main {
  padding: clamp(0.45rem, 1vw, 0.8rem);
}
.asc-single-product__details {
  gap: 1rem;
}
.asc-single-product__details-shell {
  gap: 1.25rem;
  padding: clamp(1.1rem, 1.8vw, 1.5rem);
}
.asc-single-product__title {
  max-width: none;
  font-size: clamp(1.7rem, 2.15vw, 2.45rem);
  line-height: 1.08;
  letter-spacing: -0.018em;
  text-wrap: balance;
}
.asc-single-product__description {
  max-width: 56ch;
  font-size: 13px;
  line-height: 1.76;
}
.asc-single-product__purchase-card {
  gap: 1rem;
  padding: clamp(0.95rem, 1.55vw, 1.35rem);
  background: linear-gradient(180deg, hsl(36 20% 99%) 0%, hsl(36 18% 97%) 100%);
}
.asc-single-product__price-wrap {
  gap: 0.7rem;
  padding-bottom: 0.9rem;
}
.asc-single-product__price ins .woocommerce-Price-amount,
.asc-single-product__price > .woocommerce-Price-amount,
.asc-single-product__price > ins:only-child .woocommerce-Price-amount,
.asc-single-product__price .price ins .woocommerce-Price-amount,
.asc-single-product__price .price > .woocommerce-Price-amount,
.asc-single-product__price .price > ins:only-child .woocommerce-Price-amount,
.woocommerce-variation-price .price ins .woocommerce-Price-amount,
.woocommerce-variation-price .price > .woocommerce-Price-amount,
.woocommerce-variation-price .price > ins:only-child .woocommerce-Price-amount {
  font-size: clamp(2rem, 2.3vw, 2.7rem);
  letter-spacing: -0.02em;
}
.asc-single-product__price del .woocommerce-Price-amount,
.asc-single-product__price .price del .woocommerce-Price-amount,
.woocommerce-variation-price .price del .woocommerce-Price-amount {
  font-size: 0.98rem;
}
.asc-single-product__price .woocommerce-Price-currencySymbol,
.asc-single-product__price .price .woocommerce-Price-currencySymbol,
.woocommerce-variation-price .price .woocommerce-Price-currencySymbol {
  font-size: 0.5em;
  top: 0.12em;
}
.asc-single-product__shipping-note {
  font-size: 9px;
  letter-spacing: 0.14em;
  opacity: 0.76;
}
.variations_form.cart table.variations tbody {
  gap: 0.85rem;
}
.variations_form.cart table.variations tr {
  gap: 0.45rem;
}
.variations_form.cart select,
.woocommerce form.cart .variations select {
  min-height: 3rem;
  padding: 0.9rem 2.75rem 0.9rem 0.95rem;
  font-size: 13px;
}
.variations_form.cart .single_variation_wrap {
  gap: 0.85rem;
}
.woocommerce-variation.single_variation {
  gap: 0.75rem;
  padding: 1rem 1rem 1rem;
}
.woocommerce-variation-description p {
  font-size: 12px;
  line-height: 1.72;
}
.woocommerce-variation-availability p.stock,
.asc-single-product form.cart p.stock {
  font-size: 10px;
  letter-spacing: 0.06em;
}
.variations_button {
  gap: 0.85rem;
}
.asc-single-product form.cart .single_add_to_cart_button.button,
.asc-single-product form.cart .single_add_to_cart_button.button.alt {
  min-height: 3.1rem;
  padding: 0.9rem 1.2rem;
  font-size: 10px;
  letter-spacing: 0.16em;
}
.asc-single-product__support-card {
  gap: 0.55rem;
  padding-top: 0.1rem;
}
.asc-single-product__support-title {
  font-size: 1rem;
}
.asc-single-product__support-copy {
  font-size: 12px;
  line-height: 1.66;
}
.asc-single-product__trust {
  gap: 0.85rem 1rem;
  padding-top: 1rem;
}
.asc-trust-item {
  gap: 0.55rem;
  padding: 0.75rem 0;
}
.asc-trust-item__label {
  font-size: 11px;
  letter-spacing: 0.05em;
}
.asc-trust-item__icon {
  width: 17px;
  height: 17px;
}
@media (max-width: 767px) {
  .asc-single-product__title {
    font-size: 1.8rem;
    line-height: 1.08;
  }

  .asc-single-product__details-shell,
  .asc-single-product__purchase-card {
    padding: 0.95rem;
  }

  .asc-single-product__price-header {
    flex-direction: column;
    align-items: flex-start;
  }

  .asc-single-product__price-overview {
    grid-template-columns: 1fr;
  }

  .asc-single-product__price ins .woocommerce-Price-amount,
  .asc-single-product__price > .woocommerce-Price-amount,
  .asc-single-product__price > ins:only-child .woocommerce-Price-amount,
  .asc-single-product__price .price ins .woocommerce-Price-amount,
  .asc-single-product__price .price > .woocommerce-Price-amount,
  .asc-single-product__price .price > ins:only-child .woocommerce-Price-amount,
  .woocommerce-variation-price .price ins .woocommerce-Price-amount,
  .woocommerce-variation-price .price > .woocommerce-Price-amount,
  .woocommerce-variation-price .price > ins:only-child .woocommerce-Price-amount {
    font-size: 2rem;
  }
}
/* =============================================================================
   13 — Pages
   Story, Craftsmanship, Gifting, Contact page styles.
   ============================================================================= */
/* =============================================================================
   SHARED PAGE ELEMENTS
   ============================================================================= */
.asc-page-hero {
  padding-block: clamp(4rem, 8vw, 7rem);
  text-align: center;
  border-bottom: 1px solid var(--clr-border);
  position: relative;
  overflow: hidden;
}
.asc-page-hero__inner {
  max-width: var(--container-max);
  margin-inline: auto;
  padding-inline: var(--container-px);
  position: relative;
  z-index: 1;
}
.asc-page-hero__title {
  font-family: var(--font-display);
  font-weight: var(--fw-light);
  font-size: clamp(2.5rem, 5vw, 4rem);
  letter-spacing: -0.02em;
  line-height: 1.05;
  color: var(--clr-fg);
  margin-bottom: 1rem;
}
.asc-page-hero__subtitle {
  font-size: var(--text-md);
  color: var(--clr-muted-fg);
  max-width: 52ch;
  margin-inline: auto;
  line-height: 1.7;
}
/* =============================================================================
   STORY PAGE
   ============================================================================= */
/* Full-width hero image */
.asc-story-hero {
  position: relative;
  overflow: hidden;
  aspect-ratio: 16 / 9;
  max-height: 70vh;
  background-color: var(--clr-muted);
}
.asc-story-hero__image {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  -o-object-position: center;
     object-position: center;
  will-change: transform;
}
.asc-story-hero__gradient {
  position: absolute;
  inset: 0;
  background: linear-gradient(
    to bottom,
    transparent 50%,
    hsl(36 33% 97% / 0.9) 100%
  );
  pointer-events: none;
}
/* Intro section (2-col) */
.asc-story-intro {
  padding-block: var(--section-py);
}
.asc-story-intro__inner {
  max-width: var(--container-max);
  margin-inline: auto;
  padding-inline: var(--container-px);
  display: grid;
  grid-template-columns: 1fr;
  gap: 3rem;
}
@media (min-width: 768px) {
  .asc-story-intro__inner {
    grid-template-columns: 1fr 1fr;
    gap: 5rem;
    align-items: start;
  }
}
.asc-story-intro__heading {
  font-family: var(--font-display);
  font-weight: var(--fw-light);
  font-size: clamp(1.75rem, 3vw, 2.5rem);
  letter-spacing: -0.01em;
  color: var(--clr-fg);
  line-height: 1.1;
}
.asc-story-intro__heading em {
  font-style: italic;
  color: var(--clr-primary);
}
.asc-story-intro__body {
  font-size: 14px;
  line-height: 1.8;
  color: var(--clr-muted-fg);
}
.asc-story-intro__body p + p {
  margin-top: 1em;
}
/* Parallax image break (full-bleed between sections) */
.asc-story-break {
  position: relative;
  overflow: hidden;
  aspect-ratio: 21 / 9;
  background-color: var(--clr-fg);
}
@media (max-width: 767px) {
  .asc-story-break {
    aspect-ratio: 4 / 3;
  }
}
.asc-story-break__image {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  opacity: 0.7;
  will-change: transform;
}
.asc-story-break__text {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: var(--container-px);
}
.asc-story-break__quote {
  font-family: var(--font-display);
  font-weight: var(--fw-light);
  font-style: italic;
  font-size: clamp(1.5rem, 3vw, 2.5rem);
  color: white;
  text-align: center;
  max-width: 24ch;
  line-height: 1.3;
  text-shadow: 0 2px 20px hsl(20 8% 8% / 0.4);
}
/* Workshop section */
.asc-story-workshop {
  padding-block: var(--section-py);
  background-color: var(--clr-card);
}
.asc-story-workshop__inner {
  max-width: var(--container-max);
  margin-inline: auto;
  padding-inline: var(--container-px);
}
.asc-story-stat-line {
  display: flex;
  flex-wrap: wrap;
  gap: 3rem;
  padding-block: 2rem;
  border-top: 1px solid var(--clr-border);
  border-bottom: 1px solid var(--clr-border);
  margin-bottom: 3rem;
}
.asc-story-stat {
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
}
.asc-story-stat__number {
  font-family: var(--font-display);
  font-weight: var(--fw-light);
  font-size: clamp(2rem, 4vw, 3rem);
  color: var(--clr-fg);
  line-height: 1;
}
.asc-story-stat__label {
  font-size: 10px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--clr-muted-fg);
  opacity: 0.7;
}
/* Timeline */
.asc-timeline {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: 0;
  padding-left: 2rem;
}
.asc-timeline::before {
  content: '';
  position: absolute;
  left: 0;
  top: 0.5rem;
  bottom: 0;
  width: 1px;
  background-color: var(--clr-border);
}
.asc-timeline-item {
  position: relative;
  padding-left: 2rem;
  padding-bottom: 2.5rem;
}
.asc-timeline-item:last-child {
  padding-bottom: 0;
}
/* Dot */
.asc-timeline-item::before {
  content: '';
  position: absolute;
  left: -0.3125rem; /* center on the line */
  top: 0.4rem;
  width: 8px;
  height: 8px;
  background-color: var(--clr-primary);
  border: 2px solid var(--clr-bg);
  border-radius: 50%;
  box-shadow: 0 0 0 1px var(--clr-primary);
}
.asc-timeline-item__year {
  font-family: var(--font-display);
  font-style: italic;
  font-weight: var(--fw-light);
  font-size: 1.25rem;
  color: var(--clr-primary);
  opacity: 0.6;
  margin-bottom: 0.25rem;
}
.asc-timeline-item__title {
  font-family: var(--font-display);
  font-weight: var(--fw-light);
  font-size: 1.125rem;
  color: var(--clr-fg);
  margin-bottom: 0.5rem;
}
.asc-timeline-item__body {
  font-size: 13px;
  line-height: 1.7;
  color: var(--clr-muted-fg);
}
/* Philosophy CTA (dark section) */
.asc-story-philosophy {
  background-color: var(--clr-dark-bg);
  color: var(--clr-dark-fg);
  padding-block: var(--section-py);
  text-align: center;
}
.asc-story-philosophy__inner {
  max-width: 640px;
  margin-inline: auto;
  padding-inline: var(--container-px);
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 2rem;
}
.asc-story-philosophy__quote {
  font-family: var(--font-display);
  font-weight: var(--fw-light);
  font-style: italic;
  font-size: clamp(1.5rem, 3vw, 2rem);
  color: var(--clr-dark-fg);
  line-height: 1.4;
}
.asc-story-philosophy__attribution {
  font-size: 10px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--clr-dark-fg);
  opacity: 0.4;
}
/* =============================================================================
   CRAFTSMANSHIP PAGE
   ============================================================================= */
.asc-craftsmanship-hero {
  padding-block: clamp(4rem, 8vw, 8rem);
  text-align: center;
  background-color: var(--clr-bg);
}
.asc-craftsmanship-hero__inner {
  max-width: var(--container-max);
  margin-inline: auto;
  padding-inline: var(--container-px);
}
/* Process sections (alternating) */
.asc-process-section {
  padding-block: var(--section-py);
  border-top: 1px solid var(--clr-border);
}
.asc-process-section__inner {
  max-width: var(--container-max);
  margin-inline: auto;
  padding-inline: var(--container-px);
  display: grid;
  grid-template-columns: 1fr;
  gap: 3rem;
  align-items: center;
}
@media (min-width: 1024px) {
  .asc-process-section__inner {
    grid-template-columns: 1fr 1fr;
    gap: 5rem;
  }

  /* Even: image right */
  .asc-process-section:nth-child(even) .asc-process-section__image {
    order: 2;
  }

  .asc-process-section:nth-child(even) .asc-process-section__content {
    order: 1;
  }
}
.asc-process-section__image-wrap {
  position: relative;
  overflow: hidden;
  aspect-ratio: 4 / 3;
}
.asc-process-section__image {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}
.asc-process-section__step {
  font-family: var(--font-display);
  font-style: italic;
  font-weight: var(--fw-light);
  font-size: 3rem;
  color: var(--clr-primary);
  opacity: 0.3;
  line-height: 1;
  margin-bottom: 1rem;
}
.asc-process-section__title {
  font-family: var(--font-display);
  font-weight: var(--fw-light);
  font-size: clamp(1.5rem, 2.5vw, 2rem);
  color: var(--clr-fg);
  margin-bottom: 1rem;
}
.asc-process-section__body {
  font-size: 14px;
  line-height: 1.8;
  color: var(--clr-muted-fg);
}
/* Materials grid */
.asc-materials {
  background-color: var(--clr-dark-bg);
  color: var(--clr-dark-fg);
  padding-block: var(--section-py);
}
.asc-materials__inner {
  max-width: var(--container-max);
  margin-inline: auto;
  padding-inline: var(--container-px);
}
.asc-materials__header {
  margin-bottom: clamp(2.5rem, 4vw, 3.5rem);
}
.asc-materials__header .asc-eyebrow {
  color: var(--clr-dark-fg);
  opacity: 0.35;
}
.asc-materials__header h2 {
  color: var(--clr-dark-fg);
}
.asc-materials__grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 1px;
  background-color: var(--clr-dark-border);
}
@media (min-width: 768px) {
  .asc-materials__grid {
    grid-template-columns: repeat(3, 1fr);
  }
}
.asc-material-card {
  background-color: var(--clr-dark-bg);
  padding: 2rem;
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
}
.asc-material-card__name {
  font-family: var(--font-display);
  font-weight: var(--fw-light);
  font-size: 1.25rem;
  color: var(--clr-dark-fg);
}
.asc-material-card__origin {
  font-size: 10px;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  color: var(--clr-primary);
  opacity: 0.7;
}
.asc-material-card__desc {
  font-size: 12px;
  line-height: 1.7;
  color: var(--clr-dark-muted-fg);
}
/* Authenticity badges */
.asc-authenticity {
  padding-block: var(--section-py);
  background-color: var(--clr-card);
}
.asc-authenticity__inner {
  max-width: var(--container-max);
  margin-inline: auto;
  padding-inline: var(--container-px);
}
.asc-authenticity__grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 2rem;
  margin-top: 3rem;
}
@media (min-width: 768px) {
  .asc-authenticity__grid {
    grid-template-columns: repeat(4, 1fr);
  }
}
.asc-authenticity-item {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
  padding-top: 1.5rem;
  border-top: 1px solid var(--clr-border);
}
.asc-authenticity-item__icon {
  width: 28px;
  height: 28px;
  color: var(--clr-primary);
  opacity: 0.7;
}
.asc-authenticity-item__title {
  font-family: var(--font-body);
  font-size: 12px;
  font-weight: var(--fw-semibold);
  letter-spacing: 0.06em;
  color: var(--clr-fg);
}
.asc-authenticity-item__desc {
  font-size: 11px;
  line-height: 1.65;
  color: var(--clr-muted-fg);
}
/* =============================================================================
   GIFTING PAGE
   ============================================================================= */
/* Occasion cards */
.asc-occasions {
  padding-block: var(--section-py);
}
.asc-occasions__inner {
  max-width: var(--container-max);
  margin-inline: auto;
  padding-inline: var(--container-px);
}
.asc-occasions__grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 2rem;
  margin-top: 3rem;
}
@media (min-width: 640px) {
  .asc-occasions__grid {
    grid-template-columns: repeat(2, 1fr);
  }
}
@media (min-width: 1024px) {
  .asc-occasions__grid {
    grid-template-columns: repeat(3, 1fr);
  }
}
.asc-occasion-card {
  display: flex;
  flex-direction: column;
  text-decoration: none !important;
  overflow: hidden;
}
.asc-occasion-card:hover .asc-occasion-card__img {
  transform: scale(1.03);
}
.asc-occasion-card__image-wrap {
  overflow: hidden;
  aspect-ratio: 4 / 3;
  background-color: var(--clr-muted);
}
.asc-occasion-card__img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  transition: transform var(--transition-xl) var(--ease-out-expo);
}
.asc-occasion-card__content {
  padding: 1.5rem;
  background-color: var(--clr-card);
  border: 1px solid var(--clr-border);
  border-top: none;
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  flex: 1;
}
.asc-occasion-card__label {
  font-size: 9px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--clr-primary);
  opacity: 0.75;
}
.asc-occasion-card__title {
  font-family: var(--font-display);
  font-weight: var(--fw-light);
  font-size: 1.25rem;
  color: var(--clr-fg);
  transition: color var(--trans-fast);
}
.asc-occasion-card:hover .asc-occasion-card__title {
  color: var(--clr-primary);
}
.asc-occasion-card__desc {
  font-size: 12px;
  line-height: 1.6;
  color: var(--clr-muted-fg);
}
.asc-occasion-card__link {
  font-size: 10px;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  color: var(--clr-fg);
  margin-top: auto;
  padding-top: 0.75rem;
  display: inline-flex;
  align-items: center;
  gap: 0.375rem;
}
/* Gift services */
.asc-gift-services {
  padding-block: var(--section-py);
  background-color: var(--clr-card);
  border-top: 1px solid var(--clr-border);
}
.asc-gift-services__inner {
  max-width: var(--container-max);
  margin-inline: auto;
  padding-inline: var(--container-px);
}
.asc-gift-services__grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 2rem;
  margin-top: 3rem;
}
@media (min-width: 768px) {
  .asc-gift-services__grid {
    grid-template-columns: repeat(4, 1fr);
  }
}
.asc-gift-service {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
  padding-top: 1.25rem;
  border-top: 1px solid var(--clr-border);
}
.asc-gift-service__icon {
  width: 24px;
  height: 24px;
  color: var(--clr-primary);
  opacity: 0.7;
}
.asc-gift-service__title {
  font-family: var(--font-body);
  font-size: 12px;
  font-weight: var(--fw-semibold);
  letter-spacing: 0.06em;
  color: var(--clr-fg);
}
.asc-gift-service__desc {
  font-size: 11px;
  line-height: 1.65;
  color: var(--clr-muted-fg);
}
/* =============================================================================
   CONTACT PAGE
   ============================================================================= */
.asc-contact {
  padding-block: var(--section-py);
}
.asc-contact__inner {
  max-width: var(--container-max);
  margin-inline: auto;
  padding-inline: var(--container-px);
  display: grid;
  grid-template-columns: 1fr;
  gap: 4rem;
}
@media (min-width: 768px) {
  .asc-contact__inner {
    grid-template-columns: 1fr 2fr;
    gap: 5rem;
    align-items: start;
  }
}
/* Contact info column */
.asc-contact__info {
  display: flex;
  flex-direction: column;
  gap: 2rem;
}
.asc-contact-detail {
  display: flex;
  flex-direction: column;
  gap: 0.375rem;
}
.asc-contact-detail__label {
  font-size: 9px;
  font-weight: var(--fw-medium);
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--clr-muted-fg);
  opacity: 0.7;
}
.asc-contact-detail__value {
  font-family: var(--font-display);
  font-weight: var(--fw-light);
  font-size: 1.0625rem;
  color: var(--clr-fg);
}
.asc-contact-detail__note {
  font-size: 11px;
  color: var(--clr-muted-fg);
  line-height: 1.55;
}
/* Response time callout */
.asc-contact-response-note {
  padding: 1.25rem;
  background-color: var(--clr-muted);
  border-left: 2px solid var(--clr-primary);
}
.asc-contact-response-note p {
  font-size: 12px;
  line-height: 1.65;
  color: var(--clr-muted-fg);
  margin: 0;
}
/* Contact form column */
.asc-contact__form {
  display: flex;
  flex-direction: column;
  gap: 1.5rem;
}
.asc-contact-form {
  display: flex;
  flex-direction: column;
  gap: 1.5rem;
}
/* =============================================================================
   FAQ ACCORDION
   ============================================================================= */
.asc-faq {
  padding-block: var(--section-py);
  background-color: var(--clr-card);
}
.asc-faq__inner {
  max-width: var(--container-max);
  margin-inline: auto;
  padding-inline: var(--container-px);
}
.asc-faq__grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 0;
  margin-top: 3rem;
  max-width: 840px;
}
@media (min-width: 1024px) {
  .asc-faq__grid {
    grid-template-columns: 1fr 1fr;
    gap: 0 4rem;
    align-items: start;
  }
}
.asc-faq-list {
  border-top: 1px solid var(--clr-border);
}
.asc-faq-item {
  border-bottom: 1px solid var(--clr-border);
}
.asc-faq-trigger {
  width: 100%;
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding-block: 1.25rem;
  background: transparent;
  border: none;
  font-family: var(--font-body);
  font-size: 14px;
  font-weight: var(--fw-medium);
  color: var(--clr-fg);
  text-align: left;
  cursor: pointer;
  gap: 1rem;
  transition: color var(--trans-fast);
}
.asc-faq-trigger:hover {
  color: var(--clr-primary);
}
.asc-faq-trigger[aria-expanded="true"] {
  color: var(--clr-fg);
}
.asc-faq-trigger[aria-expanded="true"] .asc-faq-chevron {
  transform: rotate(180deg);
}
.asc-faq-chevron {
  width: 16px;
  height: 16px;
  flex-shrink: 0;
  color: var(--clr-muted-fg);
  transition: transform var(--transition-base) var(--ease-out-expo);
  pointer-events: none;
}
.asc-faq-content {
  overflow: hidden;
  transition: max-height var(--transition-slow) var(--ease-out-expo),
              opacity var(--transition-slow) var(--ease-out-expo);
}
/* JS sets max-height: 0 when collapsed */
.asc-faq-content[data-state="closed"] {
  max-height: 0 !important;
  opacity: 0;
}
.asc-faq-content[data-state="open"] {
  opacity: 1;
}
.asc-faq-content p {
  padding-bottom: 1.25rem;
  color: var(--clr-muted-fg);
  font-size: 13px;
  line-height: 1.75;
  margin: 0;
}
/* =============================================================================
   404 PAGE
   ============================================================================= */
.asc-404 {
  min-height: 70vh;
  display: flex;
  align-items: center;
  justify-content: center;
}
.asc-404__section {
  text-align: center;
  padding-block: clamp(4rem, 10vw, 8rem);
}
.asc-404__inner {
  max-width: 520px;
  margin-inline: auto;
}
.asc-404__eyebrow {
  margin-bottom: 1rem;
}
.asc-404__code {
  font-family: var(--font-display);
  font-weight: var(--fw-light);
  font-size: clamp(5rem, 12vw, 10rem);
  line-height: 1;
  letter-spacing: -0.04em;
  color: var(--clr-fg);
  opacity: 0.12;
  margin-bottom: 0.5rem;
}
.asc-404__heading {
  font-family: var(--font-display);
  font-weight: var(--fw-light);
  font-size: clamp(1.75rem, 3vw, 2.5rem);
  letter-spacing: -0.01em;
  color: var(--clr-fg);
  margin-bottom: 1rem;
}
.asc-404__message {
  font-size: var(--text-md);
  color: var(--clr-muted-fg);
  line-height: 1.7;
  margin-bottom: 2rem;
  max-width: 44ch;
  margin-inline: auto;
}
.asc-404__actions {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 1rem;
  flex-wrap: wrap;
}
/* =============================================================================
   TEMPLATE CLASS-NAME ALIASES
   The PHP templates use a `asc-page-*` naming convention while the original
   CSS uses shorter names (e.g. `.asc-story-hero`).  The rules below map
   every template class to the same visual treatment so both conventions work.
   ============================================================================= */
/* ── Story page ────────────────────────────────────────────────────────────── */
.asc-page-story {
  background: var(--clr-bg);
}
.asc-page-story__hero {
  position: relative;
  overflow: hidden;
  min-height: 500px;
  height: 65vh;
  background: var(--clr-fg);
}
.asc-page-story__hero-image {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  -o-object-position: center;
     object-position: center;
  display: block;
}
.asc-page-story__hero-overlay {
  position: absolute;
  inset: 0;
  background: hsl(20 8% 15% / 0.45);
}
.asc-page-story__hero-content {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: flex-end;
  padding-inline: var(--container-px);
  padding-bottom: 5rem;
}
.asc-page-story__hero-inner,
.asc-page-story__section-shell,
.asc-page-story__timeline-shell,
.asc-page-story__philosophy-shell {
  width: 100%;
  max-width: var(--container-max);
  margin-inline: auto;
}
.asc-page-story__hero-label {
  margin: 0 0 1.25rem;
  font-family: var(--font-body);
  font-size: 10px;
  font-weight: var(--fw-medium);
  letter-spacing: 0.3em;
  text-transform: uppercase;
  color: hsl(36 33% 97% / 0.4);
}
.asc-page-story__hero-title {
  margin: 0;
  font-family: var(--font-display);
  font-size: 2.5rem;
  font-weight: var(--fw-light);
  line-height: 1.04;
  letter-spacing: -0.02em;
  color: var(--clr-bg);
}
.asc-page-story__hero-title em {
  color: inherit;
  font-style: italic;
}
.asc-page-story__intro,
.asc-page-story__workshop,
.asc-page-story__timeline,
.asc-page-story__philosophy {
  padding-block: 7rem;
  padding-inline: var(--container-px);
}
.asc-page-story__intro-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 4rem;
}
.asc-page-story__intro-lead {
  max-width: 28rem;
}
.asc-page-story__intro-rule {
  width: 3.5rem;
  height: 1px;
  background: hsl(28 40% 59% / 0.45);
  margin-bottom: 2.5rem;
}
.asc-page-story__intro-title {
  margin: 0;
  font-family: var(--font-display);
  font-weight: var(--fw-light);
  font-size: 2rem;
  line-height: 1.05;
  letter-spacing: -0.02em;
  color: var(--clr-fg);
}
.asc-page-story__intro-title em {
  color: inherit;
}
.asc-page-story__intro-copy {
  display: flex;
  flex-direction: column;
  justify-content: center;
}
.asc-page-story__intro-copy p {
  margin: 0 0 1.5rem;
  font-size: 13.5px;
  line-height: 1.95;
  color: var(--clr-muted-fg);
}
.asc-page-story__intro-copy p:last-child {
  margin-bottom: 0;
}
.asc-page-story__intro-copy-quiet {
  color: hsl(25 6% 40% / 0.6) !important;
  font-style: italic;
}
.asc-page-story__image-break {
  position: relative;
  overflow: hidden;
  height: 60vh;
  min-height: 400px;
  background: var(--clr-muted);
}
.asc-page-story__image-break-frame {
  width: 100%;
  height: 120%;
  will-change: transform;
}
.asc-page-story__image-break-image {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  display: block;
}
.asc-page-story__workshop {
  background-color: var(--clr-card);
}
.asc-page-story__section-label {
  margin-bottom: 1.25rem;
}
.asc-page-story__workshop-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 4rem;
  align-items: center;
}
.asc-page-story__workshop-copy {
  max-width: 32rem;
}
.asc-page-story__workshop-title {
  margin: 0 0 2rem;
  font-family: var(--font-display);
  font-weight: var(--fw-light);
  font-size: 2rem;
  line-height: 1.05;
  letter-spacing: -0.02em;
  color: var(--clr-fg);
}
.asc-page-story__workshop-title em {
  color: inherit;
}
.asc-page-story__workshop-copy p {
  margin: 0 0 1.5rem;
  font-size: 13px;
  line-height: 1.9;
  color: var(--clr-muted-fg);
}
.asc-page-story__workshop-copy p:last-child {
  margin-bottom: 0;
}
.asc-page-story__workshop-meta {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  margin-top: 2rem;
}
.asc-page-story__workshop-meta-rule {
  width: 1rem;
  height: 1px;
  background: hsl(28 40% 59% / 0.3);
  flex-shrink: 0;
}
.asc-page-story__workshop-meta p {
  margin: 0;
  font-size: 10px;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  color: hsl(25 6% 40% / 0.4);
}
.asc-page-story__workshop-image-wrap {
  aspect-ratio: 4 / 5;
  overflow: hidden;
  background: var(--clr-muted);
}
.asc-page-story__workshop-image {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  display: block;
}
.asc-page-story__timeline-shell {
  max-width: 900px;
}
.asc-page-story__timeline-header {
  text-align: center;
  margin-bottom: 5rem;
}
.asc-page-story__timeline-title {
  margin: 0;
  font-family: var(--font-display);
  font-weight: var(--fw-light);
  font-size: 1.875rem;
  line-height: 1.08;
  letter-spacing: -0.02em;
  color: var(--clr-fg);
}
.asc-page-story__timeline-title em {
  color: inherit;
}
.asc-page-story__timeline-list {
  list-style: none;
  margin: 0;
  padding: 0;
}
.asc-page-story__timeline-item {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  gap: 1.5rem;
  padding-block: 2.5rem;
  border-bottom: 1px solid var(--clr-border);
  margin: 0;
}
.asc-page-story__timeline-year-wrap {
  grid-column: span 3;
}
.asc-page-story__timeline-year {
  display: inline-block;
  font-family: var(--font-display);
  font-weight: var(--fw-light);
  font-size: 2rem;
  line-height: 1;
  color: hsl(28 40% 59% / 0.3);
}
.asc-page-story__timeline-copy {
  grid-column: span 9;
}
.asc-page-story__timeline-item-title {
  margin: 0 0 0.75rem;
  font-family: var(--font-display);
  font-size: 1.25rem;
  font-weight: var(--fw-regular);
  color: var(--clr-fg);
}
.asc-page-story__timeline-copy p {
  margin: 0;
  max-width: 34rem;
  font-size: 12.5px;
  line-height: 1.85;
  color: hsl(25 6% 40% / 0.6);
}
.asc-page-story__philosophy {
  background-color: var(--clr-dark-bg);
  color: var(--clr-dark-fg);
}
.asc-page-story__philosophy-shell {
  max-width: 800px;
  text-align: center;
}
.asc-page-story__philosophy-label {
  margin: 0 0 1.5rem;
  font-family: var(--font-body);
  font-size: 10px;
  font-weight: var(--fw-medium);
  letter-spacing: 0.3em;
  text-transform: uppercase;
  color: hsl(36 33% 97% / 0.25);
}
.asc-page-story__philosophy-title {
  margin: 0 0 2rem;
  font-family: var(--font-display);
  font-size: 2rem;
  font-weight: var(--fw-light);
  line-height: 1.12;
  color: var(--clr-dark-fg);
}
.asc-page-story__philosophy-title em {
  color: inherit;
}
.asc-page-story__philosophy-copy {
  max-width: 28rem;
  margin: 0 auto 2.5rem;
  font-size: 13px;
  line-height: 1.9;
  color: hsl(36 33% 97% / 0.4);
}
.asc-page-story__philosophy-cta {
  display: inline-block;
  padding: 1.125rem 3rem;
  background: var(--clr-dark-fg);
  color: var(--clr-dark-bg);
  font-family: var(--font-body);
  font-size: 10px;
  font-weight: var(--fw-medium);
  letter-spacing: 0.25em;
  text-transform: uppercase;
  text-decoration: none !important;
  transition: background-color var(--trans-base), transform var(--trans-base);
}
.asc-page-story__philosophy-cta:hover {
  background: hsl(36 33% 90%);
  color: var(--clr-dark-bg);
  text-decoration: none !important;
}
.asc-page-story__philosophy-cta:focus-visible {
  outline: 2px solid var(--clr-primary);
  outline-offset: 4px;
}
@media (min-width: 768px) {
  .asc-page-story__hero-title {
    font-size: 4rem;
  }

  .asc-page-story__intro-title,
  .asc-page-story__workshop-title {
    font-size: 2.5rem;
  }

  .asc-page-story__timeline-title {
    font-size: 2.75rem;
  }

  .asc-page-story__philosophy-title {
    font-size: 3rem;
  }

  .asc-page-story__timeline-year-wrap {
    grid-column: span 2;
  }

  .asc-page-story__timeline-copy {
    grid-column: span 10;
  }
}
@media (min-width: 1024px) {
  .asc-page-story__intro,
  .asc-page-story__workshop,
  .asc-page-story__timeline,
  .asc-page-story__philosophy {
    padding-block: 9rem;
  }

  .asc-page-story__intro-grid {
    grid-template-columns: repeat(12, minmax(0, 1fr));
    align-items: start;
  }

  .asc-page-story__intro-lead {
    grid-column: span 5;
  }

  .asc-page-story__intro-copy {
    grid-column: 7 / span 6;
  }

  .asc-page-story__workshop-grid {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  }
}
@media (max-width: 767px) {
  .asc-page-story__hero-content {
    padding-bottom: 4rem;
  }

  .asc-page-story__timeline-item {
    gap: 1rem;
  }

  .asc-page-story__philosophy-cta {
    width: 100%;
    max-width: 22rem;
  }
}
/* ── Craftsmanship page ────────────────────────────────────────────────────── */
.asc-page-craftsmanship {
  /* page wrapper */
}
.asc-page-craftsmanship__hero {
  padding-block: clamp(4rem, 8vw, 8rem);
  text-align: center;
  background-color: var(--clr-bg);
}
.asc-page-craftsmanship__hero-title {
  font-family: var(--font-display);
  font-weight: var(--fw-light);
  font-size: clamp(2.5rem, 5vw, 4rem);
  letter-spacing: -0.02em;
  line-height: 1.05;
  color: var(--clr-fg);
  margin-bottom: 1rem;
}
.asc-page-craftsmanship__hero-title em {
  font-style: italic;
  color: var(--clr-primary);
}
.asc-page-craftsmanship__hero-intro {
  font-size: var(--text-md);
  color: var(--clr-muted-fg);
  max-width: 52ch;
  margin-inline: auto;
  line-height: 1.7;
}
/* Process steps (alternating) */
.asc-page-craftsmanship__process {
  /* wrapper for all steps */
}
.asc-page-craftsmanship__step {
  padding-block: var(--section-py);
  border-top: 1px solid var(--clr-border);
}
.asc-page-craftsmanship__step-inner {
  max-width: var(--container-max);
  margin-inline: auto;
  padding-inline: var(--container-px);
  display: grid;
  grid-template-columns: 1fr;
  gap: 3rem;
  align-items: center;
}
@media (min-width: 1024px) {
  .asc-page-craftsmanship__step-inner {
    grid-template-columns: 1fr 1fr;
    gap: 5rem;
  }

  .asc-page-craftsmanship__step--reversed .asc-page-craftsmanship__step-image {
    order: 2;
  }

  .asc-page-craftsmanship__step--reversed .asc-page-craftsmanship__step-content {
    order: 1;
  }
}
.asc-page-craftsmanship__step-image {
  position: relative;
  overflow: hidden;
  aspect-ratio: 4 / 3;
}
.asc-page-craftsmanship__step-img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}
.asc-page-craftsmanship__step-content {
  /* text column */
}
.asc-page-craftsmanship__step-num {
  font-family: var(--font-display);
  font-style: italic;
  font-weight: var(--fw-light);
  font-size: 3rem;
  color: var(--clr-primary);
  opacity: 0.3;
  line-height: 1;
  margin-bottom: 1rem;
  display: block;
}
.asc-page-craftsmanship__step-title {
  font-family: var(--font-display);
  font-weight: var(--fw-light);
  font-size: clamp(1.5rem, 2.5vw, 2rem);
  color: var(--clr-fg);
  margin-bottom: 1rem;
}
.asc-page-craftsmanship__step-desc {
  font-size: 14px;
  line-height: 1.8;
  color: var(--clr-muted-fg);
}
/* Materials (dark section) */
.asc-page-craftsmanship__materials {
  background-color: var(--clr-dark-bg);
  color: var(--clr-dark-fg);
  padding-block: var(--section-py);
}
.asc-page-craftsmanship__materials .asc-section-label {
  color: var(--clr-dark-fg);
  opacity: 0.35;
}
.asc-page-craftsmanship__materials-title {
  font-family: var(--font-display);
  font-weight: var(--fw-light);
  font-size: clamp(1.75rem, 3vw, 2.5rem);
  color: var(--clr-dark-fg);
  margin-bottom: clamp(2.5rem, 4vw, 3.5rem);
}
.asc-page-craftsmanship__materials-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 1px;
  background-color: var(--clr-dark-border);
}
@media (min-width: 768px) {
  .asc-page-craftsmanship__materials-grid {
    grid-template-columns: repeat(3, 1fr);
  }
}
/* Authenticity badges */
.asc-page-craftsmanship__authenticity {
  padding-block: var(--section-py);
  background-color: var(--clr-card);
}
.asc-page-craftsmanship__auth-title {
  font-family: var(--font-display);
  font-weight: var(--fw-light);
  font-size: clamp(1.75rem, 3vw, 2.5rem);
  color: var(--clr-fg);
  margin-bottom: 2rem;
}
.asc-page-craftsmanship__badges {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 2rem;
  margin-top: 1rem;
}
@media (min-width: 768px) {
  .asc-page-craftsmanship__badges {
    grid-template-columns: repeat(4, 1fr);
  }
}
/* Trust badge card (used in craftsmanship template) */
.asc-trust-badge {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
  padding-top: 1.5rem;
  border-top: 1px solid var(--clr-border);
}
.asc-trust-badge__icon {
  width: 32px;
  height: 32px;
  color: var(--clr-primary);
  opacity: 0.7;
}
.asc-trust-badge__title {
  font-family: var(--font-body);
  font-size: 12px;
  font-weight: var(--fw-semibold);
  letter-spacing: 0.06em;
  color: var(--clr-fg);
}
.asc-trust-badge__desc {
  font-size: 11px;
  line-height: 1.65;
  color: var(--clr-muted-fg);
}
/* CTA */
.asc-page-craftsmanship__cta {
  background-color: var(--clr-dark-bg);
  color: var(--clr-dark-fg);
  padding-block: var(--section-py);
  text-align: center;
}
.asc-page-craftsmanship__cta-inner {
  max-width: 640px;
  margin-inline: auto;
  padding-inline: var(--container-px);
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 1.5rem;
}
.asc-page-craftsmanship__cta-title {
  font-family: var(--font-display);
  font-weight: var(--fw-light);
  font-size: clamp(1.75rem, 3vw, 2.5rem);
  color: var(--clr-dark-fg);
}
.asc-page-craftsmanship__cta-body {
  font-size: 14px;
  line-height: 1.8;
  color: var(--clr-dark-fg);
  opacity: 0.8;
  max-width: 52ch;
}
/* ── Gifting page ──────────────────────────────────────────────────────────── */
.asc-page-gifting {
  /* page wrapper */
}
.asc-page-gifting__hero {
  position: relative;
  overflow: hidden;
  min-height: 420px;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  padding-block: clamp(4rem, 8vw, 7rem);
  color: var(--clr-dark-fg);
}
.asc-page-gifting__hero-media,
.asc-page-gifting__hero-overlay {
  position: absolute;
  inset: 0;
}
.asc-page-gifting__hero-img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}
.asc-page-gifting__hero-overlay {
  background: hsl(20 8% 8% / 0.42);
}
.asc-page-gifting__hero-inner {
  position: relative;
  z-index: 1;
}
.asc-page-gifting__title {
  font-family: var(--font-display);
  font-weight: var(--fw-light);
  font-size: clamp(2.5rem, 5vw, 4rem);
  letter-spacing: -0.02em;
  line-height: 1.05;
  color: var(--clr-dark-fg);
  margin-bottom: 1rem;
}
.asc-page-gifting__title em {
  font-style: italic;
  color: var(--clr-dark-fg);
}
.asc-page-gifting__intro {
  font-size: var(--text-md);
  color: hsl(36 33% 97% / 0.72);
  max-width: 52ch;
  margin-inline: auto;
  line-height: 1.7;
}
.asc-page-gifting__hero .asc-section-label {
  color: hsl(36 33% 97% / 0.6);
}
/* Occasions section */
.asc-page-gifting__occasions {
  padding-block: var(--section-py);
}
.asc-page-gifting__occasions-title {
  font-family: var(--font-display);
  font-weight: var(--fw-light);
  font-size: clamp(1.75rem, 3vw, 2.5rem);
  color: var(--clr-fg);
  margin-bottom: 1rem;
}
.asc-page-gifting__occasions-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 2rem;
  margin-top: 2rem;
}
@media (min-width: 640px) {
  .asc-page-gifting__occasions-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}
@media (min-width: 1024px) {
  .asc-page-gifting__occasions-grid {
    grid-template-columns: repeat(3, 1fr);
  }
}
/* Occasion card CTA link */
.asc-occasion-card__cta {
  margin-top: auto;
  align-self: flex-start;
}
/* Gift guide section */
.asc-page-gifting__guide {
  padding-block: var(--section-py);
  background-color: var(--clr-card);
  border-top: 1px solid var(--clr-border);
}
.asc-page-gifting__guide-title {
  font-family: var(--font-display);
  font-weight: var(--fw-light);
  font-size: clamp(1.75rem, 3vw, 2.5rem);
  color: var(--clr-fg);
  margin-bottom: 2rem;
}
.asc-page-gifting__guide-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 2rem;
}
@media (min-width: 768px) {
  .asc-page-gifting__guide-grid {
    grid-template-columns: repeat(4, 1fr);
  }
}
.asc-page-gifting__guide-cta {
  text-align: center;
  margin-top: 3rem;
}
/* Services section */
.asc-page-gifting__services {
  padding-block: var(--section-py);
  border-top: 1px solid var(--clr-border);
}
.asc-page-gifting__services-title {
  font-family: var(--font-display);
  font-weight: var(--fw-light);
  font-size: clamp(1.75rem, 3vw, 2.5rem);
  color: var(--clr-fg);
  margin-bottom: 2rem;
}
.asc-page-gifting__services-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 2rem;
}
@media (min-width: 768px) {
  .asc-page-gifting__services-grid {
    grid-template-columns: repeat(4, 1fr);
  }
}
/* Service card (used in gifting template) */
.asc-service-card {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
  padding-top: 1.25rem;
  border-top: 1px solid var(--clr-border);
}
.asc-service-card__title {
  font-family: var(--font-body);
  font-size: 12px;
  font-weight: var(--fw-semibold);
  letter-spacing: 0.06em;
  color: var(--clr-fg);
}
.asc-service-card__desc {
  font-size: 11px;
  line-height: 1.65;
  color: var(--clr-muted-fg);
}
/* CTA */
.asc-page-gifting__cta {
  background-color: var(--clr-dark-bg);
  color: var(--clr-dark-fg);
  padding-block: var(--section-py);
  text-align: center;
}
.asc-page-gifting__cta-inner {
  max-width: 640px;
  margin-inline: auto;
  padding-inline: var(--container-px);
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 1.5rem;
}
.asc-page-gifting__cta-title {
  font-family: var(--font-display);
  font-weight: var(--fw-light);
  font-size: clamp(1.75rem, 3vw, 2.5rem);
  color: var(--clr-dark-fg);
}
.asc-page-gifting__cta-body {
  font-size: 14px;
  line-height: 1.8;
  color: var(--clr-dark-fg);
  opacity: 0.8;
  max-width: 52ch;
}
/* ── Contact page ──────────────────────────────────────────────────────────── */
.asc-page-contact {
  background: var(--clr-bg);
}
.asc-page-contact__header {
  padding: 5rem var(--container-px);
}
.asc-page-contact__shell,
.asc-page-contact__faq-shell {
  width: 100%;
  max-width: var(--container-max);
  margin-inline: auto;
}
.asc-page-contact__header-inner {
  max-width: 42rem;
}
.asc-page-contact__header-rule {
  width: 3.5rem;
  height: 1px;
  background: hsl(28 40% 59% / 0.45);
  margin-bottom: 2.5rem;
}
.asc-page-contact__header-label {
  margin-bottom: 1.5rem;
}
.asc-page-contact__title {
  margin: 0 0 1.5rem;
  font-family: var(--font-display);
  font-weight: var(--fw-light);
  font-size: 2.5rem;
  line-height: 1.05;
  letter-spacing: -0.02em;
  color: var(--clr-fg);
}
.asc-page-contact__title em {
  color: inherit;
}
.asc-page-contact__intro {
  margin: 0;
  max-width: 34rem;
  font-size: 14px;
  line-height: 1.9;
  color: var(--clr-muted-fg);
}
.asc-page-contact__body {
  padding: 0 var(--container-px) 7rem;
}
.asc-page-contact__columns {
  display: grid;
  grid-template-columns: 1fr;
  gap: 4rem;
}
.asc-page-contact__info {
  display: flex;
  flex-direction: column;
  gap: 2.5rem;
}
.asc-page-contact__info-item {
  display: flex;
  align-items: flex-start;
  gap: 1rem;
}
.asc-page-contact__info-icon {
  display: inline-flex;
  color: var(--clr-primary);
  margin-top: 0.15rem;
  flex-shrink: 0;
}
.asc-page-contact__info-label {
  margin: 0 0 0.5rem;
  font-size: 11px;
  font-weight: var(--fw-medium);
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--clr-muted-fg);
}
.asc-page-contact__info-link,
.asc-page-contact__info-text,
.asc-page-contact__info-copy {
  margin: 0;
  font-size: 14px;
  line-height: 1.7;
  color: var(--clr-fg);
  text-decoration: none !important;
}
.asc-page-contact__info-link:hover {
  color: var(--clr-primary);
}
.asc-page-contact__info-muted,
.asc-page-contact__info-copy--muted {
  color: var(--clr-muted-fg);
}
.asc-page-contact__form-wrap {
  min-width: 0;
}
.asc-contact-form {
  display: flex;
  flex-direction: column;
  gap: 1.75rem;
}
.asc-contact-form__row {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1.75rem;
}
.asc-contact-form__field {
  min-width: 0;
}
.asc-contact-form__label {
  display: block;
  margin-bottom: 0.75rem;
  font-size: 11px;
  font-weight: var(--fw-medium);
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: hsl(20 8% 15% / 0.7);
}
.asc-contact-form__input,
.asc-contact-form__select,
.asc-contact-form__textarea {
  width: 100%;
  background: transparent;
  border: 0;
  border-bottom: 1px solid hsl(20 8% 15% / 0.2);
  border-radius: 0;
  padding: 0.75rem 0;
  font-size: 14px;
  line-height: 1.6;
  color: var(--clr-fg);
  outline: none;
  transition: border-color var(--trans-base);
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
}
.asc-contact-form__input::-moz-placeholder, .asc-contact-form__textarea::-moz-placeholder {
  color: hsl(25 6% 40% / 0.5);
}
.asc-contact-form__input::placeholder,
.asc-contact-form__textarea::placeholder {
  color: hsl(25 6% 40% / 0.5);
}
.asc-contact-form__input:focus,
.asc-contact-form__select:focus,
.asc-contact-form__textarea:focus {
  border-bottom-color: var(--clr-primary);
}
.asc-contact-form__textarea {
  resize: none;
}
.asc-contact-form__submit {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  align-self: flex-start;
  padding: 1rem 3rem;
  background: var(--clr-fg);
  color: var(--clr-bg);
  font-size: 11px;
  font-weight: var(--fw-medium);
  letter-spacing: 0.22em;
  text-transform: uppercase;
  border: 1px solid var(--clr-fg);
  transition: background-color var(--trans-base), border-color var(--trans-base);
}
.asc-contact-form__submit:hover {
  background: hsl(20 8% 15% / 0.85);
  color: var(--clr-bg);
}
.asc-contact-form__response {
  margin-bottom: 0;
  padding: 0.875rem 1rem;
  border: 1px solid var(--clr-border);
  font-size: 12px;
  line-height: 1.6;
}
.asc-contact-form__response--success {
  background: hsl(150 30% 96%);
  border-color: hsl(150 30% 72%);
  color: hsl(150 30% 20%);
}
.asc-contact-form__response--error {
  background: hsl(0 72% 97%);
  border-color: hsl(0 72% 80%);
  color: hsl(0 60% 28%);
}
.asc-page-contact__faq {
  padding: 7rem var(--container-px);
  background-color: var(--clr-card);
}
.asc-page-contact__faq-header {
  text-align: center;
  margin-bottom: 4rem;
}
.asc-page-contact__faq-title {
  margin: 0;
  font-family: var(--font-display);
  font-weight: var(--fw-light);
  font-size: 1.875rem;
  line-height: 1.1;
  color: var(--clr-fg);
}
.asc-page-contact__faq-title em {
  color: inherit;
}
.asc-faq__item {
  border-bottom: 1px solid var(--clr-border);
}
.asc-faq__trigger {
  width: 100%;
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 1.5rem 0;
  background: transparent;
  border: none;
  text-align: left;
  cursor: pointer;
  gap: 1rem;
  transition: color var(--trans-fast);
}
.asc-faq__trigger:hover {
  color: var(--clr-primary);
}
.asc-faq__trigger:focus-visible {
  outline: none;
  color: var(--clr-primary);
}
.asc-faq__trigger:focus-visible .asc-faq__question {
  text-decoration: underline;
  text-underline-offset: 0.18em;
}
.asc-faq__trigger[aria-expanded="true"] {
  color: var(--clr-fg);
}
.asc-faq__trigger[aria-expanded="true"] .asc-faq__icon {
  transform: rotate(45deg);
}
.asc-faq__trigger[aria-expanded="true"] .asc-faq__icon-v {
  transform: scaleY(0);
}
.asc-faq__question {
  font-family: var(--font-display);
  font-size: 1.1rem;
  font-weight: var(--fw-regular);
  line-height: 1.35;
  color: var(--clr-fg);
}
.asc-faq__icon {
  width: 16px;
  height: 16px;
  flex-shrink: 0;
  color: var(--clr-muted-fg);
  transition: transform var(--transition-base) var(--ease-out-expo);
  pointer-events: none;
}
.asc-faq__icon-v {
  transition: transform 0.3s ease;
  transform-origin: center;
}
.asc-faq__content {
  overflow: hidden;
  will-change: max-height, opacity;
}
.asc-faq__content[hidden] {
  display: none;
}
.asc-faq__answer {
  padding-bottom: 1.5rem;
  color: var(--clr-muted-fg);
  font-size: 13px;
  line-height: 1.85;
  margin: 0;
  max-width: 42rem;
}
@media (min-width: 640px) {
  .asc-contact-form__row {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (min-width: 768px) {
  .asc-page-contact__title {
    font-size: 3.5rem;
  }

  .asc-page-contact__faq-title {
    font-size: 2.75rem;
  }
}
@media (min-width: 1024px) {
  .asc-page-contact__header {
    padding-top: 5rem;
    padding-bottom: 7rem;
  }

  .asc-page-contact__body {
    padding-bottom: 9rem;
  }

  .asc-page-contact__columns {
    grid-template-columns: repeat(12, minmax(0, 1fr));
    gap: 4rem;
  }

  .asc-page-contact__info {
    grid-column: span 4;
  }

  .asc-page-contact__form-wrap {
    grid-column: 6 / span 7;
  }

  .asc-page-contact__faq {
    padding-top: 7rem;
    padding-bottom: 9rem;
  }
}
/* =============================================================================
   Contact Page — Reference Overrides
   ============================================================================= */
.asc-page-contact {
  background: var(--clr-bg);
}
.asc-page-contact__shell,
.asc-page-contact__faq-shell {
  width: 100%;
  max-width: var(--container-max);
  margin-inline: auto;
  padding-inline: var(--container-px);
}
.asc-page-contact__header {
  padding-top: 5rem;
  padding-bottom: 5rem;
  border-bottom: 0;
  text-align: left;
}
.asc-page-contact__header-inner {
  max-width: 42rem;
}
.asc-page-contact__header-rule {
  width: 3.5rem;
  height: 1px;
  margin-bottom: 2.5rem;
  background: hsl(28 40% 59% / 0.45);
}
.asc-page-contact__header-label {
  margin-bottom: 1.5rem;
}
.asc-page-contact__title {
  margin-bottom: 1.5rem;
  font-size: 2.5rem;
  line-height: 1.04;
}
.asc-page-contact__title em {
  color: inherit;
}
.asc-page-contact__intro {
  margin-inline: 0;
  max-width: 34rem;
  font-size: 14px;
  line-height: 1.9;
}
.asc-page-contact__body {
  padding-bottom: 7rem;
}
.asc-page-contact__columns {
  gap: 4rem;
}
.asc-page-contact__info {
  gap: 2rem;
}
.asc-page-contact__info-item {
  display: flex;
  align-items: flex-start;
  gap: 1rem;
}
.asc-page-contact__info-icon {
  color: var(--clr-primary);
  flex-shrink: 0;
  margin-top: 0.125rem;
}
.asc-page-contact__info-label {
  margin: 0 0 0.5rem;
  font-size: 11px;
  font-weight: var(--fw-medium);
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--clr-muted-fg);
}
.asc-page-contact__info-link,
.asc-page-contact__info-text {
  font-family: var(--font-body);
  font-size: 14px;
  color: var(--clr-fg);
  line-height: 1.7;
}
.asc-page-contact__info-link {
  text-decoration: none !important;
}
.asc-page-contact__info-muted {
  margin: 0;
  font-size: 14px;
  color: var(--clr-muted-fg);
  line-height: 1.7;
}
.asc-page-contact__address {
  font-family: var(--font-body);
  font-size: 14px;
  line-height: 1.7;
  font-style: normal;
}
.asc-page-contact__form-wrap {
  width: 100%;
}
.asc-contact-form {
  gap: 1.75rem;
}
.asc-contact-form__row {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1.75rem;
}
.asc-contact-form__field {
  display: flex;
  flex-direction: column;
}
.asc-contact-form__label {
  margin-bottom: 0.75rem;
  font-size: 11px;
  font-weight: var(--fw-medium);
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: hsl(20 8% 15% / 0.7);
}
.asc-contact-form__input,
.asc-contact-form__select,
.asc-contact-form__textarea {
  width: 100%;
  border: 0;
  border-bottom: 1px solid hsl(20 8% 15% / 0.2);
  background: transparent;
  padding: 0.75rem 0;
  font-family: var(--font-body);
  font-size: 14px;
  color: var(--clr-fg);
  outline: 0;
  border-radius: 0;
  transition: border-color var(--trans-base);
}
.asc-contact-form__input::-moz-placeholder, .asc-contact-form__textarea::-moz-placeholder {
  color: hsl(25 6% 40% / 0.5);
}
.asc-contact-form__input::placeholder,
.asc-contact-form__textarea::placeholder {
  color: hsl(25 6% 40% / 0.5);
}
.asc-contact-form__input:focus,
.asc-contact-form__select:focus,
.asc-contact-form__textarea:focus {
  border-bottom-color: var(--clr-primary);
}
.asc-contact-form__select {
  -moz-appearance: none;
       appearance: none;
  -webkit-appearance: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath d='M1 1l4 4 4-4' stroke='%238c7e72' stroke-width='1.5' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right center;
  padding-right: 1.5rem;
}
.asc-contact-form__textarea {
  resize: none;
  min-height: 8.5rem;
}
.asc-contact-form__submit {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: -moz-fit-content;
  width: fit-content;
  padding: 1rem 3rem;
  margin-top: 0.25rem;
  border: 1px solid var(--clr-fg);
  background: var(--clr-fg);
  color: var(--clr-bg);
  font-size: 11px;
  font-weight: var(--fw-medium);
  letter-spacing: 0.22em;
  text-transform: uppercase;
  transition: background-color var(--trans-base), border-color var(--trans-base);
}
.asc-contact-form__submit:hover {
  background: hsl(20 8% 15% / 0.85);
  border-color: hsl(20 8% 15% / 0.85);
}
.asc-contact-form__response {
  font-size: 12px;
  line-height: 1.65;
}
.asc-contact-form__response--success {
  border-color: hsl(150 30% 40% / 0.25);
  background: hsl(150 30% 40% / 0.08);
}
.asc-contact-form__response--error {
  border-color: hsl(0 72% 51% / 0.2);
  background: hsl(0 72% 51% / 0.06);
}
.asc-page-contact__faq {
  background: var(--clr-card);
}
.asc-page-contact__faq-header {
  margin-bottom: 4rem;
  text-align: center;
}
.asc-page-contact__faq-title {
  margin: 0;
  font-size: 1.875rem;
  line-height: 1.08;
}
.asc-page-contact__faq-title em {
  color: inherit;
}
.asc-faq {
  padding: 0;
  background: transparent;
}
.asc-faq__trigger {
  padding-block: 1.5rem;
  font-family: var(--font-display);
  font-size: 1.1rem;
  font-weight: var(--fw-regular);
}
.asc-faq__icon {
  width: 14px;
  height: 14px;
}
.asc-faq__answer {
  max-width: 42rem;
  padding-bottom: 1.5rem;
  line-height: 1.85;
}
@media (min-width: 768px) {
  .asc-page-contact__title {
    font-size: 3.5rem;
  }

  .asc-page-contact__faq-title {
    font-size: 2.75rem;
  }

  .asc-contact-form__row {
    grid-template-columns: 1fr 1fr;
  }
}
@media (min-width: 1024px) {
  .asc-page-contact__header {
    padding-bottom: 7rem;
  }

  .asc-page-contact__body {
    padding-bottom: 9rem;
  }

  .asc-page-contact__columns {
    grid-template-columns: repeat(12, minmax(0, 1fr));
    gap: 4rem;
  }

  .asc-page-contact__info {
    grid-column: span 4;
  }

  .asc-page-contact__form-wrap {
    grid-column: 6 / span 7;
  }
}
/* =============================================================================
   Contact Page Reference Overrides
   ============================================================================= */
.asc-page-contact {
  background: var(--clr-bg);
}
.asc-page-contact__shell {
  width: 100%;
  max-width: var(--container-max);
  margin-inline: auto;
  padding-inline: var(--container-px);
}
.asc-page-contact__header {
  padding-top: 5rem;
  padding-bottom: 5rem;
}
.asc-page-contact__header-inner {
  max-width: 42rem;
}
.asc-page-contact__header-rule {
  width: 3.5rem;
  height: 1px;
  background: hsl(28 40% 59% / 0.45);
  margin-bottom: 2.5rem;
}
.asc-page-contact__header-label {
  margin-bottom: 1.5rem;
}
.asc-page-contact__title {
  margin: 0 0 1.5rem;
  font-size: 2.5rem;
  line-height: 1.08;
}
.asc-page-contact__title em,
.asc-page-contact__faq-title em {
  color: inherit;
}
.asc-page-contact__intro {
  margin: 0;
  max-width: 34rem;
  font-size: 14px;
  line-height: 1.9;
  color: var(--clr-muted-fg);
}
.asc-page-contact__body {
  padding: 0 var(--container-px) 7rem;
}
.asc-page-contact__columns {
  grid-template-columns: 1fr;
  gap: 4rem;
}
.asc-page-contact__info {
  gap: 2rem;
}
.asc-page-contact__info-item {
  display: flex;
  align-items: flex-start;
  gap: 1rem;
}
.asc-page-contact__info-icon {
  color: var(--clr-primary);
  flex-shrink: 0;
  margin-top: 0.125rem;
}
.asc-page-contact__info-label {
  margin: 0 0 0.5rem;
  font-size: 11px;
  font-weight: var(--fw-medium);
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--clr-muted-fg);
}
.asc-page-contact__info-link,
.asc-page-contact__info-text,
.asc-page-contact__info-muted {
  margin: 0;
  font-size: 14px;
  line-height: 1.7;
}
.asc-page-contact__info-text {
  color: var(--clr-fg);
}
.asc-page-contact__info-muted {
  color: var(--clr-muted-fg);
}
.asc-page-contact__form-wrap {
  min-width: 0;
}
.asc-contact-form {
  display: flex;
  flex-direction: column;
  gap: 1.75rem;
}
.asc-contact-form__row {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1.75rem;
}
.asc-contact-form__field {
  display: flex;
  flex-direction: column;
}
.asc-contact-form__label {
  margin-bottom: 0.75rem;
  font-size: 11px;
  font-weight: var(--fw-medium);
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: hsl(20 8% 15% / 0.7);
}
.asc-contact-form__input,
.asc-contact-form__select,
.asc-contact-form__textarea {
  width: 100%;
  padding: 0.75rem 0;
  background: transparent;
  border: 0;
  border-bottom: 1px solid hsl(20 8% 15% / 0.2);
  border-radius: 0;
  font-size: 14px;
  color: var(--clr-fg);
  outline: none;
  transition: border-color var(--trans-base), color var(--trans-base);
  -webkit-appearance: none;
  -moz-appearance: none;
       appearance: none;
}
.asc-contact-form__input::-moz-placeholder, .asc-contact-form__textarea::-moz-placeholder {
  color: hsl(25 6% 40% / 0.5);
}
.asc-contact-form__input::placeholder,
.asc-contact-form__textarea::placeholder {
  color: hsl(25 6% 40% / 0.5);
}
.asc-contact-form__input:focus,
.asc-contact-form__select:focus,
.asc-contact-form__textarea:focus {
  border-bottom-color: var(--clr-primary);
}
.asc-contact-form__textarea {
  min-height: 8rem;
  resize: none;
}
.asc-contact-form__submit {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: -moz-fit-content;
  width: fit-content;
  padding: 1rem 3rem;
  margin-top: 0.25rem;
  background: var(--clr-fg);
  color: var(--clr-bg);
  border: 1px solid var(--clr-fg);
  font-size: 11px;
  font-weight: var(--fw-medium);
  letter-spacing: 0.22em;
  text-transform: uppercase;
  transition: background-color var(--trans-base), border-color var(--trans-base);
}
.asc-contact-form__submit:hover {
  background: hsl(20 8% 15% / 0.85);
  color: var(--clr-bg);
  text-decoration: none !important;
}
.asc-contact-form__response {
  margin: 0 0 1.5rem;
  padding: 0.875rem 1rem;
  border: 1px solid var(--clr-border);
  font-size: 12px;
  line-height: 1.7;
}
.asc-contact-form__response--success {
  background: hsl(150 30% 40% / 0.08);
  border-color: hsl(150 30% 40% / 0.22);
  color: hsl(150 30% 28%);
}
.asc-contact-form__response--error {
  background: hsl(0 72% 51% / 0.06);
  border-color: hsl(0 72% 51% / 0.16);
  color: hsl(0 52% 36%);
}
.asc-page-contact__faq {
  padding: 7rem var(--container-px);
  background: var(--clr-card);
}
.asc-page-contact__faq-shell {
  max-width: 900px;
  margin-inline: auto;
}
.asc-page-contact__faq-header {
  text-align: center;
  margin-bottom: 4rem;
}
.asc-page-contact__faq-title {
  margin: 0;
  font-size: 1.875rem;
  line-height: 1.08;
}
.asc-faq__trigger {
  padding-block: 1.5rem;
  font-family: var(--font-display);
  font-size: 1.1rem;
  font-weight: var(--fw-regular);
}
.asc-faq__trigger:hover {
  color: var(--clr-primary);
}
.asc-faq__icon {
  width: 1rem;
  height: 1rem;
}
.asc-faq__answer {
  max-width: 42rem;
  padding-bottom: 1.5rem;
  font-size: 13px;
  line-height: 1.85;
}
@media (min-width: 640px) {
  .asc-contact-form__row {
    grid-template-columns: 1fr 1fr;
  }
}
@media (min-width: 768px) {
  .asc-page-contact__title {
    font-size: 3.5rem;
  }

  .asc-page-contact__faq-title {
    font-size: 2.75rem;
  }
}
@media (min-width: 1024px) {
  .asc-page-contact__header {
    padding-bottom: 7rem;
  }

  .asc-page-contact__body {
    padding-bottom: 9rem;
  }

  .asc-page-contact__columns {
    grid-template-columns: repeat(12, minmax(0, 1fr));
    gap: 4rem;
  }

  .asc-page-contact__info {
    grid-column: span 4;
  }

  .asc-page-contact__form-wrap {
    grid-column: 6 / span 7;
  }

  .asc-page-contact__faq {
    padding-block: 9rem;
  }
}
/* =============================================================================
   Support / Policy / Trust Page System
   ============================================================================= */
.asc-support-page {
  background: var(--clr-bg);
}
.asc-support-page__shell {
  width: 100%;
  max-width: var(--container-max);
  margin-inline: auto;
  padding-inline: var(--container-px);
}
.asc-support-page__hero {
  padding-block: clamp(4.5rem, 8vw, 7rem) clamp(3rem, 6vw, 5rem);
  border-bottom: 1px solid hsl(28 18% 82% / 0.7);
}
.asc-support-page__hero-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 2.5rem;
}
.asc-support-page__hero-copy {
  max-width: 44rem;
}
.asc-support-page__eyebrow {
  margin-bottom: 1rem;
}
.asc-support-page__rule {
  width: 3.5rem;
  height: 1px;
  margin-bottom: 2rem;
  background: hsl(28 40% 59% / 0.45);
}
.asc-support-page__title {
  margin: 0 0 1.5rem;
  font-family: var(--font-display);
  font-size: clamp(2.65rem, 6vw, 5rem);
  font-weight: var(--fw-light);
  line-height: 0.98;
  letter-spacing: -0.03em;
  color: var(--clr-fg);
}
.asc-support-page__intro {
  margin: 0;
  max-width: 40rem;
  font-size: 15px;
  line-height: 1.95;
  color: var(--clr-muted-fg);
}
.asc-support-page__hero-meta {
  align-self: end;
}
.asc-support-page__meta-list {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  gap: 0.75rem;
  margin: 0;
  padding: 0;
  list-style: none;
}
.asc-support-page__meta-item {
  min-height: 100%;
  padding: 0.85rem 1rem;
  border: 1px solid hsl(28 18% 82% / 0.75);
  background: hsl(35 38% 98%);
  font-size: 11px;
  line-height: 1.6;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: hsl(24 12% 33%);
}
.asc-support-page__body {
  padding-block: clamp(4rem, 8vw, 7rem);
}
.asc-support-page__layout {
  display: grid;
  grid-template-columns: 1fr;
  gap: 3rem;
}
.asc-support-page__toc-wrap {
  min-width: 0;
}
.asc-support-page__toc {
  padding: 1.25rem 1.25rem 1rem;
  border: 1px solid hsl(28 18% 82% / 0.75);
  background: hsl(35 38% 98%);
}
.asc-support-page__toc-label {
  margin: 0 0 1rem;
  font-size: 11px;
  font-weight: var(--fw-medium);
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--clr-muted-fg);
}
.asc-support-page__toc-list {
  display: grid;
  gap: 0.5rem;
  margin: 0;
  padding: 0;
  list-style: none;
}
.asc-support-page__toc-link {
  display: inline-flex;
  align-items: center;
  min-height: 2.25rem;
  color: var(--clr-fg);
  font-size: 13px;
  line-height: 1.5;
  text-decoration: none;
}
.asc-support-page__toc-link:hover,
.asc-support-page__toc-link:focus-visible {
  color: var(--clr-primary);
  outline: none;
}
.asc-support-page__content {
  min-width: 0;
}
.asc-support-page__section {
  padding-top: 2.5rem;
  border-top: 1px solid hsl(28 18% 82% / 0.7);
}
.asc-support-page__section + .asc-support-page__section {
  margin-top: 3rem;
}
.asc-support-page__section-header {
  margin-bottom: 1.5rem;
}
.asc-support-page__section-kicker {
  margin-bottom: 0.875rem;
}
.asc-support-page__section-title {
  margin: 0;
  font-family: var(--font-display);
  font-size: clamp(1.75rem, 3.2vw, 2.7rem);
  font-weight: var(--fw-light);
  line-height: 1.08;
  color: var(--clr-fg);
  letter-spacing: -0.02em;
}
.asc-support-page__copy {
  max-width: 46rem;
}
.asc-support-page__copy p {
  margin: 0;
  font-size: 15px;
  line-height: 1.95;
  color: var(--clr-muted-fg);
}
.asc-support-page__copy p + p {
  margin-top: 1rem;
}
.asc-support-page__info-list,
.asc-support-page__cards,
.asc-support-page__steps {
  display: grid;
  gap: 1rem;
  margin: 0;
  padding: 0;
}
.asc-support-page__cards {
  grid-template-columns: 1fr;
}
.asc-support-page__card,
.asc-support-page__info-item,
.asc-support-page__step {
  padding: 1.5rem 1.5rem 1.35rem;
  border: 1px solid hsl(28 18% 82% / 0.78);
  background: hsl(35 38% 98%);
}
.asc-support-page__card-title,
.asc-support-page__info-title,
.asc-support-page__step-title {
  margin: 0 0 0.625rem;
  font-family: var(--font-display);
  font-size: 1.25rem;
  font-weight: var(--fw-regular);
  line-height: 1.25;
  color: var(--clr-fg);
}
.asc-support-page__card-body,
.asc-support-page__info-copy,
.asc-support-page__step-copy {
  margin: 0;
  font-size: 14px;
  line-height: 1.85;
  color: var(--clr-muted-fg);
}
.asc-support-page__card-link {
  display: inline-flex;
  align-items: center;
  margin-top: 1rem;
  font-size: 11px;
  font-weight: var(--fw-medium);
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--clr-fg);
  text-decoration: none;
}
.asc-support-page__card-link:hover,
.asc-support-page__card-link:focus-visible {
  color: var(--clr-primary);
  outline: none;
}
.asc-support-page__steps {
  list-style: none;
  counter-reset: none;
}
.asc-support-page__step {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 1rem;
  align-items: start;
}
.asc-support-page__step-number {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 2.5rem;
  min-height: 2.5rem;
  border-radius: 999px;
  background: hsl(30 48% 91%);
  color: hsl(28 32% 42%);
  font-size: 11px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
}
.asc-support-page__faq {
  border-top: 1px solid hsl(28 18% 82% / 0.7);
}
.asc-support-page__faq .asc-faq__item {
  border-bottom-color: hsl(28 18% 82% / 0.7);
}
.asc-support-page__faq .asc-faq__trigger {
  padding-block: 1.25rem;
}
.asc-support-page__faq .asc-faq__answer {
  max-width: 48rem;
  padding-bottom: 1.25rem;
}
.asc-support-page__note {
  margin: 1.5rem 0 0;
  padding: 1rem 1.125rem;
  border-left: 2px solid hsl(28 40% 59% / 0.6);
  background: hsl(35 38% 98%);
  font-size: 13px;
  line-height: 1.8;
  color: var(--clr-muted-fg);
}
.asc-support-page__cta {
  padding-bottom: clamp(4rem, 8vw, 7rem);
}
.asc-support-page__cta-panel {
  display: grid;
  gap: 1.5rem;
  padding: 2rem;
  background: hsl(20 8% 15%);
  color: hsl(35 38% 97%);
}
.asc-support-page__cta-title {
  margin: 0 0 0.75rem;
  font-family: var(--font-display);
  font-size: clamp(1.7rem, 3vw, 2.6rem);
  font-weight: var(--fw-light);
  line-height: 1.08;
  color: inherit;
}
.asc-support-page__cta-body {
  margin: 0;
  max-width: 40rem;
  font-size: 14px;
  line-height: 1.85;
  color: hsl(35 38% 97% / 0.78);
}
.asc-support-page__cta-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
}
.asc-support-page__button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 3rem;
  padding: 0.95rem 1.4rem;
  border: 1px solid transparent;
  font-size: 11px;
  font-weight: var(--fw-medium);
  letter-spacing: 0.2em;
  text-transform: uppercase;
  text-decoration: none;
  transition: background-color var(--trans-base), color var(--trans-base), border-color var(--trans-base);
}
.asc-support-page__button--primary {
  background: hsl(35 38% 97%);
  color: hsl(20 8% 15%);
}
.asc-support-page__button--secondary {
  border-color: hsl(35 38% 97% / 0.28);
  color: hsl(35 38% 97%);
}
.asc-support-page__button--primary:hover,
.asc-support-page__button--primary:focus-visible {
  background: hsl(35 38% 92%);
  color: hsl(20 8% 15%);
  outline: none;
}
.asc-support-page__button--secondary:hover,
.asc-support-page__button--secondary:focus-visible {
  border-color: hsl(35 38% 97% / 0.5);
  color: hsl(35 38% 97%);
  outline: none;
}
@media (min-width: 768px) {
  .asc-support-page__cards {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .asc-support-page__cta-panel {
    padding: 2.5rem 2.75rem;
  }
}
@media (min-width: 1024px) {
  .asc-support-page__hero-grid {
    grid-template-columns: repeat(12, minmax(0, 1fr));
    gap: 2rem;
    align-items: end;
  }

  .asc-support-page__hero-copy {
    grid-column: 1 / span 8;
  }

  .asc-support-page__hero-meta {
    grid-column: 9 / span 4;
  }

  .asc-support-page__layout {
    grid-template-columns: minmax(14rem, 16rem) minmax(0, 1fr);
    gap: 4rem;
    align-items: start;
  }

  .asc-support-page__toc {
    position: sticky;
    top: 7rem;
  }

  .asc-support-page__section {
    padding-top: 3rem;
  }
}
/* =============================================================================
   14 — WooCommerce
   Cart, checkout, account, notices, pagination, onsale badge.
   Overrides WC defaults to match the AscendaCo brand.
   ============================================================================= */
/* =============================================================================
   GLOBAL WC RESETS
   ============================================================================= */
.woocommerce,
.woocommerce-page {
  font-family: var(--font-body);
  color: var(--clr-fg);
}
/* Remove WC default button radius */
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce #respond input#submit,
.woocommerce .button {
  border-radius: 0 !important;
}
/* =============================================================================
   WC NOTICES
   ============================================================================= */
.woocommerce-message,
.woocommerce-info,
.woocommerce-error,
.woocommerce-notice {
  position: relative;
  font-family: var(--font-body);
  font-size: 13px;
  border-radius: 0 !important;
  padding: 1rem 1.25rem 1rem 3.15rem !important;
  margin-bottom: 1.5rem !important;
  border-left-width: 2px !important;
  display: block !important;
  line-height: 1.7;
}
.woocommerce-message::before,
.woocommerce-info::before,
.woocommerce-error::before,
.woocommerce-notice::before {
  position: absolute !important;
  top: 1rem !important;
  left: 1rem !important;
  margin: 0 !important;
  transform: none !important;
  line-height: 1 !important;
}
/* Info notice */
.woocommerce-info {
  background-color: var(--clr-muted) !important;
  border-color: var(--clr-border) !important;
  color: var(--clr-fg) !important;
}
.woocommerce-info::before {
  color: var(--clr-muted-fg) !important;
}
/* Success / message notice */
.woocommerce-message {
  background-color: hsl(150 30% 96%) !important;
  border-color: hsl(150 30% 72%) !important;
  color: hsl(150 30% 20%) !important;
}
.woocommerce-message::before {
  color: var(--clr-success) !important;
}
/* Error */
.woocommerce-error {
  background-color: hsl(0 72% 97%) !important;
  border-color: hsl(0 72% 80%) !important;
  color: hsl(0 60% 28%) !important;
  list-style: none !important;
  padding: 1rem 1.25rem !important;
}
.woocommerce-error li {
  font-size: 13px;
}
/* Notice button */
.woocommerce-message a.button,
.woocommerce-info a.button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-family: var(--font-body);
  font-size: 10px;
  font-weight: var(--fw-medium);
  letter-spacing: 0.15em;
  text-transform: uppercase;
  background-color: var(--clr-fg) !important;
  color: var(--clr-bg) !important;
  padding: 0.5rem 1.25rem !important;
  margin-top: 0.85rem;
  margin-left: 0;
  text-decoration: none !important;
  border-radius: 0 !important;
}
/* =============================================================================
   SALE BADGE
   ============================================================================= */
.woocommerce span.onsale {
  background-color: var(--clr-primary) !important;
  color: white !important;
  border-radius: 0 !important;
  font-family: var(--font-body);
  font-size: 9px !important;
  font-weight: var(--fw-medium) !important;
  letter-spacing: 0.12em !important;
  text-transform: uppercase !important;
  padding: 0.25rem 0.625rem !important;
  min-width: auto !important;
  min-height: auto !important;
  line-height: 1 !important;
  top: 0.75rem !important;
  left: 0.75rem !important;
}
/* =============================================================================
   WC CART PAGE
   ============================================================================= */
.woocommerce-cart .woocommerce,
.woocommerce-cart .asc-wc-cart {
  max-width: var(--container-max);
  margin-inline: auto;
  padding-inline: var(--container-px);
  padding-block: 2rem var(--section-py);
}
/* Cart page title */
.woocommerce-cart h1.page-title,
.woocommerce-cart .entry-title {
  font-family: var(--font-display);
  font-weight: var(--fw-light);
  font-size: clamp(1.75rem, 3vw, 2.5rem);
  letter-spacing: -0.01em;
  color: var(--clr-fg);
  margin-bottom: 2rem;
}
/* Cart form */
.woocommerce-cart-form {
  width: 100%;
}
/* Cart table */
.woocommerce-cart-form__contents,
.shop_table.cart {
  width: 100%;
  border-collapse: collapse;
  border-spacing: 0;
}
.shop_table.cart thead th {
  font-family: var(--font-body);
  font-size: 9px;
  font-weight: var(--fw-medium);
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--clr-muted-fg);
  padding: 0 1rem 0.875rem;
  border-bottom: 1px solid var(--clr-border);
  text-align: left;
}
.shop_table.cart thead th.product-price,
.shop_table.cart thead th.product-subtotal {
  text-align: right;
}
.shop_table.cart tr.cart_item {
  border-bottom: 1px solid var(--clr-border);
}
.shop_table.cart td {
  padding: 1.25rem 1rem;
  vertical-align: middle;
}
/* Remove column */
.shop_table.cart td.product-remove {
  width: 2.5rem;
  padding-left: 0;
}
.shop_table.cart td.product-remove a {
  font-size: 1.125rem;
  color: var(--clr-muted-fg) !important;
  text-decoration: none !important;
  transition: color var(--trans-fast);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
}
.shop_table.cart td.product-remove a:hover {
  color: var(--clr-destructive) !important;
}
/* Thumbnail */
.shop_table.cart td.product-thumbnail {
  width: 80px;
  padding-right: 0.5rem;
}
.shop_table.cart td.product-thumbnail img {
  width: 72px;
  height: 88px;
  -o-object-fit: cover;
     object-fit: cover;
  display: block;
}
/* Product name */
.shop_table.cart td.product-name a {
  font-family: var(--font-display);
  font-weight: var(--fw-light);
  font-size: 1.0625rem;
  color: var(--clr-fg);
  text-decoration: none !important;
  transition: color var(--trans-fast);
}
.shop_table.cart td.product-name a:hover {
  color: var(--clr-primary);
}
/* Qty */
.shop_table.cart td.product-quantity {
}
.shop_table.cart td.product-quantity input.qty {
  width: 60px;
  text-align: center;
  border: 1px solid var(--clr-border);
  padding: 0.5rem;
  font-size: 13px;
  outline: none;
  border-radius: 0;
  transition: border-color var(--trans-fast);
}
.shop_table.cart td.product-quantity input.qty:focus {
  border-color: var(--clr-primary);
}
/* Price */
.shop_table.cart td.product-price,
.shop_table.cart td.product-subtotal {
  text-align: right;
  font-size: 13px;
  font-weight: var(--fw-medium);
  color: var(--clr-fg);
}
/* Actions row */
.shop_table.cart tr.cart-actions td {
  padding-top: 1.5rem;
  border-bottom: none;
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: center;
  gap: 1rem;
}
/* Coupon */
.woocommerce-cart .coupon {
  display: flex;
  align-items: center;
  gap: 0.75rem;
}
.woocommerce-cart .coupon input#coupon_code {
  border: none;
  border-bottom: 1px solid var(--clr-border);
  background: transparent;
  outline: none;
  padding: 0.625rem 0;
  font-size: 13px;
  color: var(--clr-fg);
  transition: border-color var(--trans-base);
  min-width: 200px;
}
.woocommerce-cart .coupon input#coupon_code:focus {
  border-bottom-color: var(--clr-primary);
}
.woocommerce-cart .coupon button[name="apply_coupon"] {
  font-family: var(--font-body);
  font-size: 10px;
  font-weight: var(--fw-medium);
  letter-spacing: 0.15em;
  text-transform: uppercase;
  padding: 0.625rem 1.25rem;
  background: transparent;
  border: 1px solid var(--clr-border);
  color: var(--clr-fg);
  cursor: pointer;
  transition: border-color var(--trans-fast);
  border-radius: 0;
}
.woocommerce-cart .coupon button[name="apply_coupon"]:hover {
  border-color: var(--clr-fg);
}
/* Update cart button */
.woocommerce-cart button[name="update_cart"] {
  font-family: var(--font-body);
  font-size: 10px;
  font-weight: var(--fw-medium);
  letter-spacing: 0.15em;
  text-transform: uppercase;
  padding: 0.75rem 1.5rem;
  background: transparent;
  border: 1px solid var(--clr-border);
  color: var(--clr-muted-fg);
  cursor: pointer;
  transition: color var(--trans-fast), border-color var(--trans-fast);
  border-radius: 0;
}
.woocommerce-cart button[name="update_cart"]:hover {
  color: var(--clr-fg);
  border-color: var(--clr-fg);
}
/* Cart totals */
.cart-collaterals {
  display: flex;
  justify-content: flex-end;
  margin-top: 2rem;
}
.cart_totals {
  width: 100%;
  max-width: 400px;
}
.cart_totals h2 {
  font-family: var(--font-display);
  font-weight: var(--fw-light);
  font-size: 1.25rem;
  color: var(--clr-fg);
  margin-bottom: 1.25rem;
  padding-bottom: 0.875rem;
  border-bottom: 1px solid var(--clr-border);
  letter-spacing: 0.01em;
}
.cart_totals table {
  width: 100%;
  border-collapse: collapse;
}
.cart_totals table tr {
  border-bottom: 1px solid var(--clr-border);
}
.cart_totals table th {
  font-size: 10px;
  font-weight: var(--fw-medium);
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--clr-muted-fg);
  padding: 0.875rem 0;
  text-align: left;
  width: 40%;
}
.cart_totals table td {
  padding: 0.875rem 0;
  text-align: right;
  font-size: 13px;
  color: var(--clr-fg);
}
.woocommerce-cart-form .product-price .woocommerce-Price-amount,
.woocommerce-cart-form .product-price .amount,
.woocommerce-cart-form .product-subtotal .woocommerce-Price-amount,
.woocommerce-cart-form .product-subtotal .amount,
.cart_totals .woocommerce-Price-amount,
.cart_totals .amount,
#order_review .woocommerce-Price-amount,
#order_review .amount {
  font-family: var(--font-body);
  font-weight: var(--fw-medium);
  font-variant-numeric: tabular-nums lining-nums;
  letter-spacing: -0.015em;
  color: inherit;
}
.woocommerce-cart-form .product-price .woocommerce-Price-currencySymbol,
.woocommerce-cart-form .product-subtotal .woocommerce-Price-currencySymbol,
.cart_totals .woocommerce-Price-currencySymbol,
#order_review .woocommerce-Price-currencySymbol {
  font-size: 0.72em;
  position: relative;
  top: -0.02em;
  margin-right: 0.05em;
}
.cart_totals table tr.order-total th,
.cart_totals table tr.order-total td {
  font-size: 1rem;
  font-weight: var(--fw-medium);
  border-bottom: none;
  padding-top: 1rem;
}
.cart_totals .wc-proceed-to-checkout {
  margin-top: 1.25rem;
}
.cart_totals .wc-proceed-to-checkout a.checkout-button {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  padding: 0.875rem 2rem;
  background-color: var(--clr-fg);
  color: var(--clr-bg);
  font-family: var(--font-body);
  font-size: 11px;
  font-weight: var(--fw-medium);
  letter-spacing: 0.25em;
  text-transform: uppercase;
  text-decoration: none !important;
  border: 1px solid var(--clr-fg);
  transition: background-color var(--trans-base), border-color var(--trans-base);
  border-radius: 0;
}
.cart_totals .wc-proceed-to-checkout a.checkout-button:hover {
  background-color: var(--clr-secondary);
  border-color: var(--clr-secondary);
}
/* =============================================================================
   WC CHECKOUT PAGE
   ============================================================================= */
.woocommerce-checkout .woocommerce {
  max-width: var(--container-max);
  margin-inline: auto;
  padding-inline: var(--container-px);
  padding-block: 2rem var(--section-py);
}
.woocommerce-checkout h1.page-title,
.woocommerce-checkout .entry-title {
  font-family: var(--font-display);
  font-weight: var(--fw-light);
  font-size: clamp(1.75rem, 3vw, 2.5rem);
  letter-spacing: -0.01em;
  color: var(--clr-fg);
  margin-bottom: 2rem;
}
/* Two-column checkout layout */
#customer_details {
  width: 55% !important;
  float: left !important;
  padding-right: 4rem;
}
#order_review_heading,
#order_review {
  width: 45% !important;
  float: right !important;
}
@media (max-width: 767px) {
  #customer_details,
  #order_review_heading,
  #order_review {
    width: 100% !important;
    float: none !important;
    padding-right: 0;
  }
}
/* Checkout section headings */
.woocommerce-checkout h3,
.woocommerce-billing-fields h3,
.woocommerce-shipping-fields h3 {
  font-family: var(--font-display);
  font-weight: var(--fw-light);
  font-size: 1.25rem;
  color: var(--clr-fg);
  margin-bottom: 1.5rem;
  padding-bottom: 0.875rem;
  border-bottom: 1px solid var(--clr-border);
}
/* Checkout form fields */
.woocommerce-checkout .form-row {
  margin-bottom: 1.25rem;
}
.woocommerce-checkout .form-row label {
  font-size: 10px;
  font-weight: var(--fw-medium);
  letter-spacing: 0.15em;
  text-transform: uppercase;
  color: var(--clr-muted-fg);
  display: block;
  margin-bottom: 0.375rem;
}
.woocommerce-checkout .form-row input.input-text,
.woocommerce-checkout .form-row select,
.woocommerce-checkout .form-row textarea {
  width: 100%;
  background: transparent;
  border: none;
  border-bottom: 1px solid var(--clr-border);
  border-radius: 0;
  padding: 0.625rem 0;
  font-family: var(--font-body);
  font-size: 14px;
  color: var(--clr-fg);
  outline: none;
  transition: border-color var(--trans-base);
  -webkit-appearance: none;
  -moz-appearance: none;
       appearance: none;
}
.woocommerce-checkout .form-row input.input-text:focus,
.woocommerce-checkout .form-row select:focus,
.woocommerce-checkout .form-row textarea:focus {
  border-bottom-color: var(--clr-primary);
}
/* Order review table */
#order_review .shop_table {
  width: 100%;
  border-collapse: collapse;
  margin-bottom: 1.5rem;
}
#order_review .shop_table thead th {
  font-size: 9px;
  font-weight: var(--fw-medium);
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--clr-muted-fg);
  padding: 0 0 0.875rem;
  border-bottom: 1px solid var(--clr-border);
  text-align: left;
}
#order_review .shop_table thead th.product-total {
  text-align: right;
}
#order_review .shop_table tbody td {
  padding: 0.875rem 0;
  border-bottom: 1px solid var(--clr-border);
  font-size: 13px;
  vertical-align: middle;
}
#order_review .shop_table tbody td.product-total {
  text-align: right;
  font-weight: var(--fw-medium);
}
#order_review .shop_table tfoot tr th {
  font-size: 10px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--clr-muted-fg);
  padding: 0.75rem 0;
  border-bottom: 1px solid var(--clr-border);
}
#order_review .shop_table tfoot tr td {
  text-align: right;
  padding: 0.75rem 0;
  border-bottom: 1px solid var(--clr-border);
  font-size: 13px;
}
#order_review .shop_table tfoot tr.order-total th,
#order_review .shop_table tfoot tr.order-total td {
  font-size: 1rem;
  font-weight: var(--fw-medium);
  border-bottom: none;
  padding-top: 1rem;
}
/* Payment methods */
#payment {
  background: var(--clr-card) !important;
  border-radius: 0 !important;
  border: 1px solid var(--clr-border) !important;
  padding: 1.5rem !important;
}
#payment .wc_payment_methods li {
  padding: 0.875rem 0;
  border-bottom: 1px solid var(--clr-border);
}
#payment .wc_payment_methods li:last-child {
  border-bottom: none;
}
#payment .wc_payment_methods label {
  font-size: 13px;
  font-weight: var(--fw-medium);
  color: var(--clr-fg);
}
#payment .payment_box {
  background: transparent;
  padding: 0.875rem 0 0;
  font-size: 12px;
  color: var(--clr-muted-fg);
  line-height: 1.6;
}
/* Place order button */
#place_order {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 100% !important;
  padding: 0.875rem 2rem !important;
  background-color: var(--clr-fg) !important;
  color: var(--clr-bg) !important;
  font-family: var(--font-body) !important;
  font-size: 11px !important;
  font-weight: var(--fw-medium) !important;
  letter-spacing: 0.25em !important;
  text-transform: uppercase !important;
  border: 1px solid var(--clr-fg) !important;
  cursor: pointer !important;
  transition: background-color var(--trans-base) !important;
  border-radius: 0 !important;
  margin-top: 1.5rem !important;
}
#place_order:hover {
  background-color: var(--clr-secondary) !important;
  border-color: var(--clr-secondary) !important;
}
/* =============================================================================
   Reference Checkout Overrides
   ============================================================================= */
.woocommerce-checkout .woocommerce {
  padding-top: 3rem;
}
.woocommerce-checkout h1.page-title,
.woocommerce-checkout .entry-title {
  font-size: clamp(2.5rem, 5vw, 4rem);
  letter-spacing: -0.02em;
  margin-bottom: 2.5rem;
}
.woocommerce-form-coupon-toggle .woocommerce-info,
.woocommerce-form-login-toggle .woocommerce-info {
  margin-bottom: 2rem !important;
  border-left-width: 0 !important;
  background: hsl(30 14% 93% / 0.45) !important;
  padding: 1rem 1.1rem 1rem 3rem !important;
}
.woocommerce-form-coupon-toggle .showcoupon,
.woocommerce-form-login-toggle .showlogin {
  display: inline;
  color: var(--clr-fg);
  font-weight: var(--fw-medium);
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 0.18em;
}
.woocommerce-checkout .col2-set,
.woocommerce-checkout .woocommerce-checkout-review-order {
  min-width: 0;
}
#customer_details {
  width: 53% !important;
  padding-right: 3.5rem;
}
#order_review_heading,
#order_review {
  width: 47% !important;
}
.woocommerce-checkout .col2-set .col-1,
.woocommerce-checkout .col2-set .col-2 {
  width: 100%;
  float: none;
}
.woocommerce-billing-fields,
.woocommerce-additional-fields {
  margin-bottom: 2rem;
}
.woocommerce-checkout h3,
.woocommerce-billing-fields h3,
.woocommerce-shipping-fields h3,
.woocommerce-additional-fields h3,
#order_review_heading {
  font-size: 1.25rem;
  font-weight: var(--fw-light);
  margin-bottom: 1.5rem;
  padding-bottom: 0.875rem;
  border-bottom: 1px solid var(--clr-border);
}
.woocommerce-checkout .form-row-first,
.woocommerce-checkout .form-row-last {
  width: calc(50% - 0.75rem);
}
.woocommerce-checkout .form-row {
  margin-bottom: 1.5rem;
}
.woocommerce-checkout .form-row label {
  margin-bottom: 0.75rem;
  color: hsl(25 6% 40%);
}
.woocommerce-checkout .form-row .required {
  color: hsl(0 60% 48%);
}
.woocommerce-checkout .form-row input.input-text,
.woocommerce-checkout .form-row select,
.woocommerce-checkout .form-row textarea {
  padding: 0.875rem 0;
  border-bottom-color: hsl(20 8% 15% / 0.14);
}
.woocommerce-checkout .form-row textarea {
  min-height: 8rem;
  border: 1px solid hsl(20 8% 15% / 0.18);
  padding: 0.875rem 1rem;
}
.woocommerce-checkout .select2-container--default .select2-selection--single {
  border: 1px solid hsl(20 8% 15% / 0.18);
  border-radius: 0;
  height: 3.125rem;
  background: transparent;
}
.woocommerce-checkout .select2-container--default .select2-selection--single .select2-selection__rendered {
  line-height: 3.125rem;
  padding-inline: 1rem 2.5rem;
  color: var(--clr-fg);
}
.woocommerce-checkout .select2-container--default .select2-selection--single .select2-selection__arrow {
  height: 3.125rem;
  right: 0.75rem;
}
#order_review .shop_table {
  margin-bottom: 1.5rem;
}
#order_review .shop_table tbody td,
#order_review .shop_table tfoot tr th,
#order_review .shop_table tfoot tr td {
  padding-block: 1rem;
}
#order_review .shop_table tfoot tr.order-total th,
#order_review .shop_table tfoot tr.order-total td {
  font-size: 1rem;
}
#payment {
  padding: 2rem !important;
  background: hsl(30 20% 95% / 0.55) !important;
}
#payment ul.payment_methods {
  list-style: none;
  margin: 0 0 1.5rem;
  padding: 0;
}
#payment .wc_payment_method > label {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
}
#payment .payment_box {
  padding-top: 1rem;
  color: var(--clr-muted-fg);
}
#payment div.payment_box::before {
  display: none;
}
#payment .wc_payment_method input[type="radio"] {
  accent-color: var(--clr-primary);
}
.woocommerce-checkout-review-order-table + .woocommerce-checkout-payment {
  margin-top: 1.5rem;
}
.woocommerce-privacy-policy-text {
  font-size: 13px;
  line-height: 1.85;
  color: var(--clr-muted-fg);
}
#place_order {
  padding-block: 1rem !important;
  margin-top: 1.25rem !important;
}
@media (max-width: 767px) {
  .woocommerce-checkout .woocommerce {
    padding-top: 2rem;
  }

  .woocommerce-checkout h1.page-title,
  .woocommerce-checkout .entry-title {
    margin-bottom: 2rem;
  }

  #customer_details,
  #order_review_heading,
  #order_review {
    width: 100% !important;
    float: none !important;
    padding-right: 0 !important;
  }

  .woocommerce-checkout .form-row-first,
  .woocommerce-checkout .form-row-last {
    width: 100%;
  }

  #payment {
    padding: 1.5rem !important;
  }
}
/* =============================================================================
   WC ACCOUNT PAGE
   ============================================================================= */
.woocommerce-account .woocommerce {
  max-width: var(--container-max);
  margin-inline: auto;
  padding-inline: var(--container-px);
  padding-block: 2rem var(--section-py);
  display: grid;
  grid-template-columns: 1fr;
  gap: 3rem;
}
@media (min-width: 768px) {
  .woocommerce-account .woocommerce {
    grid-template-columns: 220px 1fr;
    gap: 4rem;
    align-items: start;
  }
}
/* Account nav (tabs) */
.woocommerce-MyAccount-navigation {
  position: sticky;
  top: calc(var(--navbar-height) + 2rem);
}
.woocommerce-MyAccount-navigation ul {
  list-style: none;
  margin: 0;
  padding: 0;
  border-top: 1px solid var(--clr-border);
}
.woocommerce-MyAccount-navigation ul li {
  border-bottom: 1px solid var(--clr-border);
}
.woocommerce-MyAccount-navigation ul li a {
  display: block;
  padding: 0.875rem 0;
  font-size: 11px;
  font-weight: var(--fw-medium);
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--clr-muted-fg);
  text-decoration: none !important;
  transition: color var(--trans-fast);
}
.woocommerce-MyAccount-navigation ul li a:hover,
.woocommerce-MyAccount-navigation ul li.is-active a {
  color: var(--clr-fg);
}
.woocommerce-MyAccount-navigation ul li.woocommerce-MyAccount-navigation-link--is-active a {
  color: var(--clr-fg);
}
/* Account content */
.woocommerce-MyAccount-content {
  min-width: 0;
}
.woocommerce-MyAccount-content h2 {
  font-family: var(--font-display);
  font-weight: var(--fw-light);
  font-size: 1.5rem;
  color: var(--clr-fg);
  margin-bottom: 1.5rem;
  padding-bottom: 1rem;
  border-bottom: 1px solid var(--clr-border);
}
/* Account order table */
.woocommerce-orders-table,
.shop_table {
  width: 100%;
  border-collapse: collapse;
}
.woocommerce-orders-table th,
.shop_table th {
  font-size: 9px;
  font-weight: var(--fw-medium);
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--clr-muted-fg);
  padding: 0 0 0.875rem;
  border-bottom: 1px solid var(--clr-border);
  text-align: left;
}
.woocommerce-orders-table td,
.shop_table td {
  padding: 0.875rem 0;
  border-bottom: 1px solid var(--clr-border);
  font-size: 13px;
  vertical-align: middle;
}
.woocommerce-orders-table .woocommerce-orders-table__cell--status .wc-item-meta {
  font-size: 10px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  padding: 0.25rem 0.625rem;
  border: 1px solid var(--clr-border);
  color: var(--clr-muted-fg);
}
/* Account addresses */
.woocommerce-Addresses .woocommerce-Address {
  border: 1px solid var(--clr-border);
  padding: 1.5rem;
}
.woocommerce-Addresses .woocommerce-Address-title {
  margin-bottom: 1rem;
}
.woocommerce-Addresses .woocommerce-Address-title h3 {
  font-family: var(--font-display);
  font-weight: var(--fw-light);
  font-size: 1rem;
  color: var(--clr-fg);
}
/* =============================================================================
   WC PAGINATION
   ============================================================================= */
.woocommerce-pagination,
.asc-pagination {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.375rem;
  padding-block: 2rem;
}
.woocommerce-pagination ul,
.asc-pagination ul {
  display: flex;
  align-items: center;
  gap: 0.375rem;
  list-style: none;
  margin: 0;
  padding: 0;
}
.woocommerce-pagination ul li a,
.woocommerce-pagination ul li span,
.asc-pagination a,
.asc-pagination span {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 40px;
  height: 40px;
  padding-inline: 0.75rem;
  font-family: var(--font-body);
  font-size: 11px;
  font-weight: var(--fw-medium);
  letter-spacing: 0.08em;
  color: var(--clr-muted-fg);
  border: 1px solid var(--clr-border);
  text-decoration: none !important;
  transition: color var(--trans-fast),
              border-color var(--trans-fast),
              background-color var(--trans-fast);
}
.woocommerce-pagination ul li a:hover,
.asc-pagination a:hover {
  color: var(--clr-fg);
  border-color: var(--clr-fg);
}
.woocommerce-pagination ul li span.current,
.asc-pagination .current {
  background-color: var(--clr-fg);
  color: var(--clr-bg);
  border-color: var(--clr-fg);
}
/* =============================================================================
   WC SINGLE PRODUCT (WC classes — override)
   ============================================================================= */
/* WC wraps their product data in these — style to match our layout */
.woocommerce div.product {
  max-width: var(--container-max);
  margin-inline: auto;
  padding-inline: var(--container-px);
}
.woocommerce div.product .woocommerce-product-gallery {
  width: 55%;
  float: left;
}
.woocommerce div.product div.summary {
  width: 40%;
  float: right;
}
@media (max-width: 1023px) {
  .woocommerce div.product .woocommerce-product-gallery,
  .woocommerce div.product div.summary {
    width: 100% !important;
    float: none !important;
  }
}
/* WC product title */
.woocommerce div.product h1.product_title {
  font-family: var(--font-display) !important;
  font-weight: var(--fw-light) !important;
  font-size: clamp(1.75rem, 2.5vw, 2.25rem) !important;
  letter-spacing: -0.01em !important;
  line-height: 1.1 !important;
  color: var(--clr-fg) !important;
}
/* WC price */
.woocommerce div.product p.price,
.woocommerce div.product span.price {
  font-family: var(--font-display) !important;
  font-weight: var(--fw-light) !important;
  font-size: 1.625rem !important;
  color: var(--clr-fg) !important;
}
.woocommerce div.product p.price del,
.woocommerce div.product span.price del {
  color: var(--clr-muted-fg) !important;
  font-size: 1rem !important;
  opacity: 1;
}
.woocommerce div.product p.price ins,
.woocommerce div.product span.price ins {
  color: hsl(0 60% 48%) !important;
  text-decoration: none !important;
}
/* Add to cart button */
.woocommerce div.product form.cart button.single_add_to_cart_button {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 100% !important;
  padding: 0.875rem 2rem !important;
  background-color: var(--clr-fg) !important;
  color: var(--clr-bg) !important;
  font-family: var(--font-body) !important;
  font-size: 11px !important;
  font-weight: var(--fw-medium) !important;
  letter-spacing: 0.25em !important;
  text-transform: uppercase !important;
  border: 1px solid var(--clr-fg) !important;
  cursor: pointer !important;
  transition: background-color var(--trans-base) !important;
  border-radius: 0 !important;
  margin-top: 1rem !important;
}
.woocommerce div.product form.cart button.single_add_to_cart_button:hover {
  background-color: var(--clr-secondary) !important;
  border-color: var(--clr-secondary) !important;
}
/* WC qty input */
.woocommerce div.product form.cart .quantity input.qty {
  border: 1px solid var(--clr-border) !important;
  border-radius: 0 !important;
  padding: 0.5rem 0.75rem !important;
  font-size: 14px !important;
  text-align: center !important;
  color: var(--clr-fg) !important;
  width: 80px !important;
  outline: none !important;
  transition: border-color var(--trans-fast) !important;
}
.woocommerce div.product form.cart .quantity input.qty:focus {
  border-color: var(--clr-primary) !important;
}
/* WC product meta */
.woocommerce div.product .product_meta {
  font-size: 11px;
  color: var(--clr-muted-fg);
  margin-top: 1.25rem;
  padding-top: 1.25rem;
  border-top: 1px solid var(--clr-border);
}
.woocommerce div.product .product_meta span {
  display: block;
  margin-bottom: 0.375rem;
}
.woocommerce div.product .product_meta span a {
  color: var(--clr-muted-fg);
  text-decoration: none !important;
  transition: color var(--trans-fast);
}
.woocommerce div.product .product_meta span a:hover {
  color: var(--clr-primary);
}
/* WC Short description */
.woocommerce div.product div.woocommerce-product-details__short-description {
  font-size: 13px;
  line-height: 1.75;
  color: var(--clr-muted-fg);
  margin-bottom: 1.25rem;
}
/* =============================================================================
   WC PRODUCT LOOP (archive / shop — override WC defaults)
   ============================================================================= */
.woocommerce ul.products {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 1.5rem 1rem;
}
@media (min-width: 768px) {
  .woocommerce ul.products {
    grid-template-columns: repeat(3, 1fr);
    gap: 2rem 1.5rem;
  }
}
@media (min-width: 1024px) {
  .woocommerce ul.products[class*="columns-4"] {
    grid-template-columns: repeat(4, 1fr);
  }
}
.woocommerce ul.products li.product {
  margin: 0 !important;
}
/* =============================================================================
   WC CHECKOUT ORDER RECEIVED (thank you)
   ============================================================================= */
.woocommerce-order {
  max-width: 640px;
  margin-inline: auto;
  padding-inline: var(--container-px);
  padding-block: var(--section-py);
}
.woocommerce-order .woocommerce-thankyou-order-received {
  font-family: var(--font-display);
  font-weight: var(--fw-light);
  font-size: clamp(1.5rem, 3vw, 2.25rem);
  color: var(--clr-fg);
  margin-bottom: 1.5rem;
  letter-spacing: -0.01em;
}
.woocommerce-order .woocommerce-thankyou-order-details {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 1px;
  background-color: var(--clr-border);
  margin-bottom: 2rem;
}
.woocommerce-order .woocommerce-thankyou-order-details li {
  background-color: var(--clr-bg);
  padding: 1.25rem;
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
}
.woocommerce-order .woocommerce-thankyou-order-details li strong {
  font-size: 10px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--clr-muted-fg);
  font-weight: var(--fw-medium);
  display: block;
}
/* =============================================================================
   WC AUTH PAGE (Login / Register)
   Two-column editorial layout: brand messaging left, form card right.
   Scaled to fill the viewport and feel like a major page destination.
   ============================================================================= */
.asc-auth {
  max-width: var(--container-max);
  margin-inline: auto;
  padding-inline: var(--container-px);
  padding-block: clamp(2.75rem, 5vw, 4rem) clamp(4rem, 7vw, 6.25rem);
}
.asc-auth__inner {
  display: grid;
  grid-template-columns: 1fr;
  gap: 3rem;
  align-items: start;
}
@media (min-width: 960px) {
  .asc-auth__inner {
    grid-template-columns: 1fr 1fr;
    gap: clamp(4rem, 7vw, 7.5rem);
    min-height: 680px;
  }
}
/* ── Brand column (left) ──────────────────────────────────── */
.asc-auth__brand {
  display: flex;
  align-items: center;
}
.asc-auth__brand-content {
  max-width: 500px;
}
.asc-auth__brand-content .asc-section-label {
  margin-bottom: 1.5rem;
}
.asc-auth__title {
  font-family: var(--font-display);
  font-weight: var(--fw-light);
  font-size: clamp(2.65rem, 5vw, 4rem);
  letter-spacing: -0.02em;
  line-height: 1.03;
  color: var(--clr-fg);
  margin-bottom: 0;
}
.asc-auth__title em {
  font-style: italic;
  color: var(--clr-primary);
}
.asc-auth__brand-content .asc-editorial-rule {
  margin: 2rem 0 1.75rem;
}
.asc-auth__subtitle {
  font-size: 15px;
  color: var(--clr-muted-fg);
  line-height: 1.9;
  max-width: 30rem;
}
/* Trust signals */
.asc-auth__trust {
  display: flex;
  flex-direction: column;
  gap: 0;
  margin-top: 3rem;
  padding-top: 2.25rem;
  border-top: 1px solid var(--clr-border);
}
.asc-auth__trust-item {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  padding-block: 0.95rem;
  font-size: 12px;
  font-weight: var(--fw-medium);
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--clr-muted-fg);
  border-bottom: 1px solid hsl(25 17% 84% / 0.65);
}
.asc-auth__trust-item:last-child {
  border-bottom: 0;
}
.asc-auth__trust-item svg {
  color: var(--clr-primary);
  opacity: 0.75;
  flex-shrink: 0;
}
/* ── Form card (right) ────────────────────────────────────── */
.asc-auth__panel-wrap {
  display: flex;
  justify-content: center;
  align-self: stretch;
}
@media (min-width: 960px) {
  .asc-auth__panel-wrap {
    justify-content: flex-end;
  }
}
.asc-auth__card {
  width: 100%;
  max-width: 580px;
  background-color: var(--clr-card);
  border: 1px solid var(--clr-border);
  padding: clamp(2.25rem, 4vw, 3.35rem);
  box-shadow: 0 28px 64px hsl(20 20% 14% / 0.06);
}
.asc-auth__card-title {
  font-family: var(--font-display);
  font-weight: var(--fw-light);
  font-size: 1.5rem;
  color: var(--clr-fg);
  margin-bottom: 1.75rem;
  padding-bottom: 1rem;
  border-bottom: 1px solid var(--clr-border);
}
/* Tabs — stronger hierarchy */
.asc-auth__tabs {
  display: flex;
  margin-bottom: 1.5rem;
  border-bottom: 1px solid var(--clr-border);
  gap: 0;
}
.asc-auth__tab {
  flex: 1;
  padding: 0.25rem 0 1.05rem;
  font-family: var(--font-body);
  font-size: 11px;
  font-weight: var(--fw-medium);
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--clr-muted-fg);
  background: none;
  border: none;
  border-bottom: 2px solid transparent;
  cursor: pointer;
  transition: color var(--trans-base), border-color var(--trans-base);
  text-align: center;
  margin-bottom: -1px;
}
.asc-auth__tab:hover {
  color: var(--clr-fg);
}
.asc-auth__tab--active {
  color: var(--clr-fg);
  border-bottom-color: var(--clr-primary);
}
/* Panels */
.asc-auth__panel {
  display: none;
}
.asc-auth__panel--active {
  display: block;
}
.asc-auth__panel-intro {
  max-width: 34rem;
  margin-bottom: 1.85rem;
  font-size: 13px;
  line-height: 1.8;
  color: hsl(25 8% 43%);
}
/* Form */
.asc-auth__form {
  display: flex;
  flex-direction: column;
  gap: 1.5rem;
}
.asc-auth__form .asc-form-group {
  gap: 0.6rem;
}
/* Boxed inputs — larger, more confident */
.asc-auth__card .asc-input {
  border: 1px solid var(--clr-border);
  min-height: 54px;
  padding: 1rem 1.05rem;
  background: var(--clr-bg);
  font-size: 14.5px;
  transition: border-color var(--trans-base), box-shadow var(--trans-base);
}
.asc-auth__card .asc-input:focus {
  border-color: var(--clr-primary);
  box-shadow: 0 0 0 3px hsl(28 40% 59% / 0.08);
}
.asc-auth__card .asc-input::-moz-placeholder {
  color: hsl(25 6% 58%);
}
.asc-auth__card .asc-input::placeholder {
  color: hsl(25 6% 58%);
}
.asc-field-required {
  color: var(--clr-primary);
  font-size: 10px;
}
/* Actions row (remember me + forgot) */
.asc-auth__actions {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  margin-top: -0.15rem;
}
.asc-auth__forgot-link {
  font-size: 12px;
  color: var(--clr-muted-fg);
  text-decoration: none !important;
  transition: color var(--trans-fast);
}
.asc-auth__forgot-link:hover {
  color: var(--clr-primary);
}
.asc-auth__note {
  font-size: 13px;
  color: var(--clr-muted-fg);
  line-height: 1.65;
  padding: 0.6rem 0 0.2rem;
}
/* Submit button inside card — full width with strong presence */
.asc-auth__card .asc-btn--primary {
  margin-top: 0.55rem;
  padding-block: 1.05rem;
  font-size: 11px;
  letter-spacing: 0.18em;
}
/* ── "or continue with" divider ───────────────────────────── */
.asc-auth__divider {
  display: flex;
  align-items: center;
  gap: 1rem;
  margin: 2rem 0 1.35rem;
}
.asc-auth__divider::before,
.asc-auth__divider::after {
  content: '';
  flex: 1;
  height: 1px;
  background: var(--clr-border);
}
.asc-auth__divider-text {
  font-size: 10px;
  font-weight: var(--fw-medium);
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: hsl(25 6% 55%);
  white-space: nowrap;
}
/* ── Social login integration ─────────────────────────────── */
.asc-auth__social-group {
  margin-top: 0.2rem;
  padding: 1.15rem;
  border: 1px solid var(--clr-border);
  background: hsl(30 18% 95% / 0.72);
}
.asc-auth__social-group .asc-auth__divider {
  margin: 0 0 0.8rem;
}
.asc-auth__social-intro {
  margin-bottom: 0.95rem;
  font-size: 11.5px;
  line-height: 1.7;
  color: hsl(25 8% 43%);
  text-align: center;
}
.asc-auth__social {
  display: flex;
  flex-direction: column;
  gap: 0.7rem;
}
/* Nextend Social Login — restyle to match AscendaCo */
.asc-auth__social .nsl-container {
  margin: 0 !important;
  padding: 0 !important;
}
.asc-auth__social .nsl-container-buttons {
  display: flex;
  flex-direction: column;
  gap: 0.625rem;
}
.asc-auth__social .nsl-button {
  display: flex !important;
  align-items: center;
  justify-content: center;
  gap: 0.625rem;
  width: 100%;
  min-height: 52px;
  padding: 0.9rem 1rem !important;
  border: 1px solid var(--clr-border) !important;
  background: var(--clr-bg) !important;
  color: var(--clr-fg) !important;
  font-family: var(--font-body) !important;
  font-size: 11px !important;
  font-weight: var(--fw-medium) !important;
  letter-spacing: 0.16em !important;
  text-transform: uppercase !important;
  border-radius: 0 !important;
  transition: border-color var(--trans-base), background-color var(--trans-base);
  cursor: pointer;
  text-decoration: none !important;
}
.asc-auth__social .nsl-button:hover {
  border-color: var(--clr-fg) !important;
  background: hsl(30 20% 97%) !important;
}
.asc-auth__social .nsl-button-svg-container {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 20px;
  height: 20px;
  flex-shrink: 0;
}
.asc-auth__social .nsl-button-svg-container svg {
  width: 18px;
  height: 18px;
}
.asc-auth__social .nsl-button-label-container {
  font-size: 11px !important;
  font-weight: var(--fw-medium) !important;
  letter-spacing: 0.16em !important;
  text-transform: uppercase !important;
}
/* Hide Nextend's own heading/separator if present */
.asc-auth__social .nsl-container-login-layout-below,
.asc-auth__social .nsl-container h2,
.asc-auth__social .nsl-container-login-layout-below hr {
  display: none !important;
}
/* Also suppress Nextend's inline rendering inside the form */
.asc-auth__form .nsl-container {
  display: none !important;
}
/* Footer note */
.asc-auth__footer-note {
  font-size: 11px;
  line-height: 1.65;
  color: hsl(25 6% 55%);
  text-align: center;
  margin-top: 2rem;
  padding-top: 1.35rem;
  border-top: 1px solid var(--clr-border);
}
.asc-auth__footer-note a {
  color: var(--clr-muted-fg);
  text-decoration: underline;
  text-underline-offset: 2px;
  transition: color var(--trans-fast);
}
.asc-auth__footer-note a:hover {
  color: var(--clr-primary);
}
/* Mobile auth — stacked but still premium */
@media (max-width: 959px) {
  .asc-auth__brand {
    text-align: center;
    justify-content: center;
  }

  .asc-auth__brand-content {
    max-width: 520px;
  }

  .asc-auth__brand-content .asc-editorial-rule {
    margin-inline: auto;
  }

  .asc-auth__subtitle {
    margin-inline: auto;
  }

  .asc-auth__trust {
    align-items: center;
    padding-top: 1.75rem;
  }

  .asc-auth__card {
    max-width: 100%;
  }

  .asc-auth__panel-intro {
    max-width: none;
    text-align: center;
  }
}
/* Small mobile — tighten card padding */
@media (max-width: 480px) {
  .asc-auth__card {
    padding: 1.9rem 1.35rem;
  }

  .asc-auth__trust {
    flex-direction: column;
    align-items: center;
  }

  .asc-auth__actions {
    flex-direction: column;
    align-items: flex-start;
  }
}
/* Ensure WC default form-login fields match our brand on non-overridden pages */
.woocommerce-account .woocommerce-form-login .form-row input.input-text,
.woocommerce-account .woocommerce-form-register .form-row input.input-text {
  width: 100%;
  background: transparent;
  border: none;
  border-bottom: 1px solid var(--clr-border);
  border-radius: 0;
  padding: 0.75rem 0;
  font-family: var(--font-body);
  font-size: 14px;
  color: var(--clr-fg);
  outline: none;
  transition: border-color var(--trans-base);
}
.woocommerce-account .woocommerce-form-login .form-row input.input-text:focus,
.woocommerce-account .woocommerce-form-register .form-row input.input-text:focus {
  border-bottom-color: var(--clr-primary);
}
/* =============================================================================
   WC ACCOUNT — ENHANCED NAVIGATION
   ============================================================================= */
.asc-account-nav ul {
  list-style: none;
  margin: 0;
  padding: 0;
}
.asc-account-nav ul li {
  border-bottom: 1px solid var(--clr-border);
}
.asc-account-nav ul li:first-child {
  border-top: 1px solid var(--clr-border);
}
.asc-account-nav ul li a {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  padding: 0.875rem 0;
  font-family: var(--font-body);
  font-size: 12px;
  font-weight: var(--fw-medium);
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--clr-muted-fg);
  text-decoration: none !important;
  transition: color var(--trans-fast);
}
.asc-account-nav ul li a:hover,
.asc-account-nav ul li.is-active a,
.asc-account-nav ul li.woocommerce-MyAccount-navigation-link--customer-logout a {
  color: var(--clr-fg);
}
.asc-account-nav ul li.woocommerce-MyAccount-navigation-link--customer-logout {
  margin-top: 0.5rem;
  border-top: 1px solid var(--clr-border);
}
.asc-account-nav__icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 18px;
  height: 18px;
  flex-shrink: 0;
  opacity: 0.55;
}
.asc-account-nav ul li.is-active .asc-account-nav__icon,
.asc-account-nav ul li a:hover .asc-account-nav__icon {
  opacity: 1;
}
/* Active indicator */
.asc-account-nav ul li.is-active a::before {
  content: '';
  width: 3px;
  height: 16px;
  background-color: var(--clr-primary);
  border-radius: 0;
  flex-shrink: 0;
  margin-left: -3px;
  margin-right: calc(0.75rem - 3px);
}
/* Mobile account nav — horizontal scroll */
@media (max-width: 767px) {
  .woocommerce-account .woocommerce {
    display: flex;
    flex-direction: column;
    gap: 2rem;
    padding-top: 1.5rem;
  }

  .asc-account-nav {
    position: static;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
  }

  .asc-account-nav::-webkit-scrollbar {
    display: none;
  }

  .asc-account-nav ul {
    display: flex;
    gap: 0;
    white-space: nowrap;
    border-top: none;
    border-bottom: 1px solid var(--clr-border);
    padding-bottom: 0;
  }

  .asc-account-nav ul li {
    border-bottom: none;
    border-top: none;
    flex-shrink: 0;
  }

  .asc-account-nav ul li:first-child {
    border-top: none;
  }

  .asc-account-nav ul li.woocommerce-MyAccount-navigation-link--customer-logout {
    margin-top: 0;
    border-top: none;
    margin-left: auto;
  }

  .asc-account-nav ul li a {
    padding: 0.75rem 1rem;
    font-size: 10px;
    gap: 0.375rem;
    border-bottom: 2px solid transparent;
  }

  .asc-account-nav ul li.is-active a {
    border-bottom-color: var(--clr-fg);
  }

  .asc-account-nav ul li.is-active a::before {
    display: none;
  }

  .asc-account-nav__icon {
    width: 14px;
    height: 14px;
  }

  .asc-account-nav__icon svg {
    width: 14px;
    height: 14px;
  }
}
/* =============================================================================
   WC ACCOUNT — DASHBOARD
   ============================================================================= */
.asc-dashboard__welcome {
  margin-bottom: 2.5rem;
}
.asc-dashboard__greeting {
  font-family: var(--font-display);
  font-weight: var(--fw-light);
  font-size: clamp(1.5rem, 2.5vw, 2rem);
  letter-spacing: -0.01em;
  color: var(--clr-fg);
  margin-bottom: 0.625rem;
}
.asc-dashboard__intro {
  font-size: var(--text-base);
  color: var(--clr-muted-fg);
  line-height: 1.65;
}
.asc-dashboard__not-you {
  display: block;
  margin-top: 0.375rem;
  font-size: 12px;
}
.asc-dashboard__not-you a {
  color: var(--clr-muted-fg);
  text-decoration: underline;
  text-underline-offset: 2px;
  transition: color var(--trans-fast);
}
.asc-dashboard__not-you a:hover {
  color: var(--clr-primary);
}
/* Quick link cards */
.asc-dashboard__grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1px;
  background-color: var(--clr-border);
  border: 1px solid var(--clr-border);
  margin-bottom: 3rem;
}
@media (min-width: 600px) {
  .asc-dashboard__grid {
    grid-template-columns: repeat(3, 1fr);
  }
}
.asc-dashboard__card {
  display: flex;
  align-items: center;
  gap: 1rem;
  padding: 1.5rem;
  background-color: var(--clr-bg);
  text-decoration: none !important;
  color: var(--clr-fg);
  transition: background-color var(--trans-base);
}
.asc-dashboard__card:hover {
  background-color: var(--clr-card);
}
.asc-dashboard__card-icon {
  color: var(--clr-primary);
  flex-shrink: 0;
  opacity: 0.7;
}
.asc-dashboard__card-copy {
  flex: 1;
  min-width: 0;
}
.asc-dashboard__card-title {
  font-family: var(--font-body);
  font-size: 12px;
  font-weight: var(--fw-medium);
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--clr-fg);
  margin-bottom: 0.25rem;
}
.asc-dashboard__card-desc {
  font-size: 12px;
  color: var(--clr-muted-fg);
  line-height: 1.4;
}
.asc-dashboard__card-arrow {
  color: var(--clr-muted-fg);
  font-size: 1rem;
  flex-shrink: 0;
  transition: transform var(--trans-base);
}
.asc-dashboard__card:hover .asc-dashboard__card-arrow {
  transform: translateX(3px);
}
/* Recent orders on dashboard */
.asc-dashboard__recent {
  border-top: 1px solid var(--clr-border);
  padding-top: 2rem;
}
.asc-dashboard__recent-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 1.25rem;
}
.asc-dashboard__recent-title {
  font-family: var(--font-display);
  font-weight: var(--fw-light);
  font-size: 1.25rem;
  color: var(--clr-fg);
}
.asc-dashboard__recent-link {
  font-size: 11px;
  font-weight: var(--fw-medium);
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--clr-muted-fg);
  text-decoration: none !important;
  transition: color var(--trans-fast);
}
.asc-dashboard__recent-link:hover {
  color: var(--clr-primary);
}
.asc-dashboard__recent-list {
  display: flex;
  flex-direction: column;
}
.asc-dashboard__order-row {
  display: grid;
  grid-template-columns: auto 1fr auto auto;
  align-items: center;
  gap: 1.25rem;
  padding: 0.875rem 0;
  border-bottom: 1px solid var(--clr-border);
  text-decoration: none !important;
  color: var(--clr-fg);
  font-size: 13px;
  transition: background-color var(--trans-fast);
}
.asc-dashboard__order-row:first-child {
  border-top: 1px solid var(--clr-border);
}
.asc-dashboard__order-row:hover {
  background-color: var(--clr-card);
}
.asc-dashboard__order-num {
  font-weight: var(--fw-medium);
  font-size: 13px;
  min-width: 60px;
}
.asc-dashboard__order-date {
  color: var(--clr-muted-fg);
  font-size: 12px;
}
.asc-dashboard__order-total {
  font-weight: var(--fw-medium);
  text-align: right;
}
@media (max-width: 600px) {
  .asc-dashboard__order-row {
    grid-template-columns: 1fr auto;
    gap: 0.5rem 1rem;
  }

  .asc-dashboard__order-date {
    grid-column: 1;
    grid-row: 2;
  }

  .asc-dashboard__order-total {
    grid-column: 2;
    grid-row: 2;
  }
}
/* =============================================================================
   WC ACCOUNT — ORDERS TABLE ENHANCEMENT
   ============================================================================= */
.woocommerce-account .woocommerce-orders-table .woocommerce-button.button.view {
  font-family: var(--font-body);
  font-size: 10px;
  font-weight: var(--fw-medium);
  letter-spacing: 0.12em;
  text-transform: uppercase;
  padding: 0.5rem 1rem;
  background: transparent;
  border: 1px solid var(--clr-border);
  color: var(--clr-fg);
  text-decoration: none !important;
  transition: border-color var(--trans-fast), background-color var(--trans-fast);
  border-radius: 0;
}
.woocommerce-account .woocommerce-orders-table .woocommerce-button.button.view:hover {
  border-color: var(--clr-fg);
  background-color: var(--clr-fg);
  color: var(--clr-bg);
}
/* Order status badges */
.woocommerce-orders-table__cell-order-status {
  font-size: 10px !important;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}
/* No orders empty state */
.woocommerce-account .woocommerce-info {
  text-align: left;
  padding: 1rem 1.25rem 1rem 3.15rem !important;
  border-left-width: 0 !important;
  background-color: var(--clr-card) !important;
}
.woocommerce-account .woocommerce-info::before {
  display: block !important;
}
.woocommerce-account .woocommerce-info a.button {
  margin-left: 0;
  margin-top: 1rem;
}
/* =============================================================================
   WC ACCOUNT — ORDER DETAIL VIEW
   ============================================================================= */
.woocommerce-account .woocommerce-order-details {
  margin-bottom: 2.5rem;
}
.woocommerce-account .woocommerce-order-details .woocommerce-order-details__title,
.woocommerce-account .woocommerce-column__title {
  font-family: var(--font-display);
  font-weight: var(--fw-light);
  font-size: 1.25rem;
  color: var(--clr-fg);
  margin-bottom: 1rem;
  padding-bottom: 0.75rem;
  border-bottom: 1px solid var(--clr-border);
}
.woocommerce-account .woocommerce-customer-details {
  margin-top: 2rem;
}
.woocommerce-account .woocommerce-columns--addresses {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 2rem;
}
@media (max-width: 600px) {
  .woocommerce-account .woocommerce-columns--addresses {
    grid-template-columns: 1fr;
  }
}
.woocommerce-account .woocommerce-column--billing-address address,
.woocommerce-account .woocommerce-column--shipping-address address {
  font-style: normal;
  font-size: 13px;
  line-height: 1.75;
  color: var(--clr-muted-fg);
}
/* =============================================================================
   WC ACCOUNT — EDIT ACCOUNT / EDIT ADDRESS FORMS
   ============================================================================= */
.woocommerce-account .woocommerce-EditAccountForm,
.woocommerce-account .woocommerce-address-fields {
  max-width: 560px;
}
.woocommerce-account .asc-account-static-field {
  margin-bottom: 1.5rem;
  padding: 1rem 1.05rem;
  border: 1px solid hsl(25 17% 84% / 0.86);
  background: hsl(36 33% 99% / 0.92);
}
.woocommerce-account .asc-account-static-field__label {
  display: block;
  margin-bottom: 0.5rem;
  font-size: 10px;
  font-weight: var(--fw-medium);
  letter-spacing: 0.15em;
  text-transform: uppercase;
  color: var(--clr-muted-fg);
}
.woocommerce-account .asc-account-static-field__value {
  font-size: 15px;
  line-height: 1.5;
  color: var(--clr-fg);
}
.woocommerce-account .asc-account-static-field__note {
  margin: 0.35rem 0 0;
  font-size: 12px;
  line-height: 1.6;
  color: var(--clr-muted-fg);
}
.woocommerce-account .woocommerce-EditAccountForm .form-row,
.woocommerce-account .woocommerce-address-fields .form-row {
  margin-bottom: 1.5rem;
}
.woocommerce-account .woocommerce-EditAccountForm .form-row label,
.woocommerce-account .woocommerce-address-fields .form-row label {
  display: block;
  font-size: 10px;
  font-weight: var(--fw-medium);
  letter-spacing: 0.15em;
  text-transform: uppercase;
  color: var(--clr-muted-fg);
  margin-bottom: 0.5rem;
}
.woocommerce-account .woocommerce-EditAccountForm .form-row input.input-text,
.woocommerce-account .woocommerce-EditAccountForm .form-row select,
.woocommerce-account .woocommerce-address-fields .form-row input.input-text,
.woocommerce-account .woocommerce-address-fields .form-row select {
  width: 100%;
  background: transparent;
  border: none;
  border-bottom: 1px solid var(--clr-border);
  border-radius: 0;
  padding: 0.75rem 0;
  font-family: var(--font-body);
  font-size: 14px;
  color: var(--clr-fg);
  outline: none;
  transition: border-color var(--trans-base);
  -webkit-appearance: none;
  -moz-appearance: none;
       appearance: none;
}
.woocommerce-account .woocommerce-EditAccountForm .form-row input.input-text:focus,
.woocommerce-account .woocommerce-address-fields .form-row input.input-text:focus {
  border-bottom-color: var(--clr-primary);
}
/* Name row side-by-side */
.woocommerce-account .woocommerce-EditAccountForm .form-row-first,
.woocommerce-account .woocommerce-EditAccountForm .form-row-last,
.woocommerce-account .woocommerce-address-fields .form-row-first,
.woocommerce-account .woocommerce-address-fields .form-row-last {
  width: calc(50% - 0.75rem);
  display: inline-block;
}
.woocommerce-account .woocommerce-EditAccountForm .form-row-first,
.woocommerce-account .woocommerce-address-fields .form-row-first {
  margin-right: 0.75rem;
}
.woocommerce-account .woocommerce-EditAccountForm .form-row-last,
.woocommerce-account .woocommerce-address-fields .form-row-last {
  margin-left: 0.75rem;
}
@media (max-width: 480px) {
  .woocommerce-account .woocommerce-EditAccountForm .form-row-first,
  .woocommerce-account .woocommerce-EditAccountForm .form-row-last,
  .woocommerce-account .woocommerce-address-fields .form-row-first,
  .woocommerce-account .woocommerce-address-fields .form-row-last {
    width: 100%;
    display: block;
    margin-left: 0;
    margin-right: 0;
  }
}
/* Password change fieldset */
.woocommerce-account fieldset {
  border: none;
  padding: 0;
  margin: 2rem 0 0;
}
.woocommerce-account fieldset legend {
  font-family: var(--font-display);
  font-weight: var(--fw-light);
  font-size: 1.125rem;
  color: var(--clr-fg);
  padding-bottom: 0.75rem;
  margin-bottom: 1.5rem;
  border-bottom: 1px solid var(--clr-border);
  width: 100%;
}
/* Save button */
.woocommerce-account .woocommerce-EditAccountForm button[type="submit"],
.woocommerce-account .woocommerce-address-fields button[type="submit"] {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0.875rem 2rem;
  background-color: var(--clr-fg);
  color: var(--clr-bg);
  font-family: var(--font-body);
  font-size: 11px;
  font-weight: var(--fw-medium);
  letter-spacing: 0.25em;
  text-transform: uppercase;
  border: 1px solid var(--clr-fg);
  cursor: pointer;
  transition: background-color var(--trans-base), border-color var(--trans-base);
  border-radius: 0;
  margin-top: 1rem;
}
.woocommerce-account .woocommerce-EditAccountForm button[type="submit"]:hover,
.woocommerce-account .woocommerce-address-fields button[type="submit"]:hover {
  background-color: var(--clr-secondary);
  border-color: var(--clr-secondary);
}
/* =============================================================================
   WC ACCOUNT — ADDRESSES GRID
   ============================================================================= */
.woocommerce-account .asc-account-addresses-wrap {
  display: grid;
  gap: 1.6rem;
}
.woocommerce-account .asc-account-addresses__intro {
  max-width: 52rem;
  margin: 0;
  font-size: 14px;
  line-height: 1.8;
  color: var(--clr-muted-fg);
}
.woocommerce-account .asc-account-addresses {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1.35rem;
  align-items: stretch;
}
.woocommerce-account .asc-account-addresses > .woocommerce-Address,
.woocommerce-account .asc-account-addresses > .u-column1,
.woocommerce-account .asc-account-addresses > .u-column2,
.woocommerce-account .asc-account-addresses > .col-1,
.woocommerce-account .asc-account-addresses > .col-2 {
  width: auto !important;
  float: none !important;
  margin: 0 !important;
}
.woocommerce-account .asc-address-card {
  display: grid;
  grid-template-rows: auto auto 1fr;
  min-height: 100%;
  padding: 1.55rem;
  border: 1px solid hsl(25 17% 84% / 0.86);
  background:
    linear-gradient(180deg, hsl(36 33% 99% / 0.96), hsl(36 33% 98% / 0.92));
  box-shadow:
    inset 0 1px 0 hsl(0 0% 100% / 0.72),
    0 18px 36px hsl(20 20% 14% / 0.03);
}
.woocommerce-account .asc-address-card__head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
  margin: 0;
}
.woocommerce-account .asc-address-card__heading {
  min-width: 0;
}
.woocommerce-account .asc-address-card__heading .asc-section-label {
  margin-bottom: 0.45rem;
}
.woocommerce-account .asc-address-card__head h2 {
  margin: 0;
  font-family: var(--font-display);
  font-weight: var(--fw-light);
  font-size: clamp(1.7rem, 2.2vw, 2.15rem);
  line-height: 0.98;
  letter-spacing: -0.02em;
  color: var(--clr-fg);
}
.woocommerce-account .asc-address-card__edit {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 40px;
  padding: 0.65rem 0.95rem;
  border: 1px solid hsl(25 17% 84% / 0.9);
  background: hsl(36 33% 99%);
  font-size: 10px;
  font-weight: var(--fw-medium);
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--clr-muted-fg);
  text-decoration: none !important;
  white-space: nowrap;
  transition: border-color var(--trans-base), background-color var(--trans-base), color var(--trans-base);
}
.woocommerce-account .asc-address-card__edit:hover {
  border-color: hsl(28 40% 59% / 0.48);
  background: hsl(30 18% 96%);
  color: var(--clr-fg);
}
.woocommerce-account .asc-address-card__rule {
  width: 100%;
  max-width: 7rem;
  height: 1px;
  margin: 1.4rem 0 1.2rem;
  background: hsl(25 17% 84% / 0.9);
}
.woocommerce-account .asc-address-card__body {
  margin: 0;
  font-style: normal;
  font-size: 14px;
  line-height: 1.95;
  color: var(--clr-muted-fg);
}
.woocommerce-account .asc-address-card__body br {
  content: "";
}
@media (max-width: 920px) {
  .woocommerce-account .asc-account-addresses {
    grid-template-columns: 1fr;
  }
}
@media (max-width: 600px) {
  .woocommerce-account .asc-address-card {
    padding: 1.2rem;
  }

  .woocommerce-account .asc-address-card__head {
    flex-direction: column;
  }

  .woocommerce-account .asc-address-card__edit {
    width: 100%;
    justify-content: center;
  }

  .woocommerce-account .asc-address-card__rule {
    margin: 1rem 0;
  }
}
/* =============================================================================
   WC LOST PASSWORD / RESET PASSWORD
   ============================================================================= */
.woocommerce-account .woocommerce-ResetPassword,
.woocommerce-account .lost_reset_password {
  max-width: 480px;
  margin-inline: auto;
  padding-block: 2rem;
}
.woocommerce-account .woocommerce-ResetPassword .form-row,
.woocommerce-account .lost_reset_password .form-row {
  margin-bottom: 1.5rem;
}
.woocommerce-account .woocommerce-ResetPassword .form-row label,
.woocommerce-account .lost_reset_password .form-row label {
  display: block;
  font-size: 10px;
  font-weight: var(--fw-medium);
  letter-spacing: 0.15em;
  text-transform: uppercase;
  color: var(--clr-muted-fg);
  margin-bottom: 0.5rem;
}
.woocommerce-account .woocommerce-ResetPassword .form-row input.input-text,
.woocommerce-account .lost_reset_password .form-row input.input-text {
  width: 100%;
  background: transparent;
  border: none;
  border-bottom: 1px solid var(--clr-border);
  border-radius: 0;
  padding: 0.75rem 0;
  font-family: var(--font-body);
  font-size: 14px;
  color: var(--clr-fg);
  outline: none;
  transition: border-color var(--trans-base);
}
.woocommerce-account .woocommerce-ResetPassword .form-row input.input-text:focus,
.woocommerce-account .lost_reset_password .form-row input.input-text:focus {
  border-bottom-color: var(--clr-primary);
}
.woocommerce-account .woocommerce-ResetPassword button[type="submit"],
.woocommerce-account .lost_reset_password button[type="submit"] {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0.875rem 2rem;
  background-color: var(--clr-fg);
  color: var(--clr-bg);
  font-family: var(--font-body);
  font-size: 11px;
  font-weight: var(--fw-medium);
  letter-spacing: 0.25em;
  text-transform: uppercase;
  border: 1px solid var(--clr-fg);
  cursor: pointer;
  transition: background-color var(--trans-base), border-color var(--trans-base);
  border-radius: 0;
}
.woocommerce-account .woocommerce-ResetPassword button[type="submit"]:hover,
.woocommerce-account .lost_reset_password button[type="submit"]:hover {
  background-color: var(--clr-secondary);
  border-color: var(--clr-secondary);
}
/* Password strength meter */
.woocommerce-password-strength {
  font-size: 11px;
  font-weight: var(--fw-medium);
  letter-spacing: 0.05em;
  padding: 0.5rem 0;
}
.woocommerce-password-strength.strong {
  color: var(--clr-success);
}
.woocommerce-password-strength.good {
  color: hsl(150 30% 50%);
}
.woocommerce-password-strength.short,
.woocommerce-password-strength.bad {
  color: var(--clr-destructive);
}
/* =============================================================================
   WC ACCOUNT — PAGE TITLE (hidden on logged-in pages, shown on auth)
   ============================================================================= */
.woocommerce-account h1.page-title,
.woocommerce-account .entry-title {
  font-family: var(--font-display);
  font-weight: var(--fw-light);
  font-size: clamp(1.75rem, 3vw, 2.5rem);
  letter-spacing: -0.01em;
  color: var(--clr-fg);
  margin-bottom: 2rem;
}
/* Hide the generic page title when on the logged-in account (dashboard shows its own) */
.woocommerce-account.logged-in h1.page-title,
.woocommerce-account.logged-in .entry-title,
.woocommerce-account.logged-in .asc-page-article__title,
.woocommerce-account.logged-in .wp-block-post-title,
.woocommerce-account.logged-in .is-layout-flow > h1:first-child {
  display: none;
}
/* =============================================================================
   WC ACCOUNT — LOGGED-IN SHELL REFINEMENT
   ============================================================================= */
.woocommerce-account.logged-in .woocommerce {
  display: block;
  max-width: min(1480px, calc(100vw - 2rem));
  padding-block: clamp(1rem, 2.5vw, 1.75rem) clamp(4rem, 6vw, 6rem);
  padding-inline: 0;
}
.woocommerce-account.logged-in .asc-account-sidebar .woocommerce-MyAccount-navigation,
.woocommerce-account.logged-in .asc-account-main .woocommerce-MyAccount-content {
  width: auto;
  float: none;
  margin: 0;
}
.woocommerce-account.logged-in .asc-account-sidebar .woocommerce-MyAccount-navigation {
  position: static;
  min-width: 0;
}
.asc-account-layout {
  display: grid;
  grid-template-columns: minmax(320px, 360px) minmax(0, 1fr);
  gap: clamp(1.5rem, 3vw, 2.5rem);
  align-items: start;
}
.asc-account-sidebar {
  position: sticky;
  top: calc(var(--navbar-height) + 1.5rem);
  min-width: 0;
}
.asc-account-sidebar__card {
  display: block;
  width: 100%;
  padding: 1.4rem 1.35rem 1.15rem;
  border: 1px solid hsl(25 17% 84% / 0.9);
  background:
    linear-gradient(180deg, hsl(30 17% 95% / 0.88), hsl(30 17% 94% / 0.78));
  box-shadow:
    inset 0 1px 0 hsl(0 0% 100% / 0.72),
    0 18px 36px hsl(20 20% 14% / 0.04);
}
.asc-account-main {
  min-width: 0;
}
.asc-account-main__header {
  margin-bottom: 1.35rem;
  padding: 1.45rem 1.6rem 1.5rem;
  border: 1px solid hsl(25 17% 84% / 0.85);
  background:
    radial-gradient(circle at top right, hsl(28 40% 59% / 0.08), transparent 34%),
    linear-gradient(180deg, hsl(36 33% 97%) 0%, hsl(36 33% 96%) 100%);
}
.asc-account-main__header-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(220px, 280px);
  gap: 1.25rem;
  align-items: end;
}
.asc-account-main__heading {
  min-width: 0;
}
.asc-account-main__title {
  margin: 0 0 0.45rem;
  font-family: var(--font-display);
  font-weight: var(--fw-light);
  font-size: clamp(2rem, 4vw, 3.35rem);
  line-height: 0.98;
  letter-spacing: -0.02em;
  color: var(--clr-fg);
}
.asc-account-main__intro {
  max-width: 38rem;
  margin: 0;
  font-size: 14px;
  line-height: 1.8;
  color: var(--clr-muted-fg);
}
.asc-account-main__identity {
  justify-self: end;
  min-width: 0;
  padding: 1rem 1.05rem;
  border: 1px solid hsl(25 17% 82% / 0.9);
  background: hsl(36 33% 98% / 0.86);
}
.asc-account-main__identity-label {
  display: block;
  margin-bottom: 0.35rem;
  font-size: 10px;
  font-weight: var(--fw-medium);
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--clr-muted-fg);
}
.asc-account-main__identity-name {
  display: block;
  margin-bottom: 0.15rem;
  font-size: 14px;
  font-weight: var(--fw-medium);
  color: var(--clr-fg);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.asc-account-main__identity-email {
  display: block;
  font-size: 12px;
  line-height: 1.5;
  color: var(--clr-muted-fg);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.asc-account-main__surface {
  padding: clamp(1.35rem, 3vw, 2rem);
  border: 1px solid hsl(25 17% 84% / 0.9);
  background: hsl(36 33% 98% / 0.92);
  box-shadow:
    inset 0 1px 0 hsl(0 0% 100% / 0.74),
    0 18px 40px hsl(20 20% 14% / 0.035);
}
.asc-account-nav__profile {
  width: 100%;
  display: grid;
  grid-template-columns: 60px minmax(0, 1fr);
  gap: 0.95rem;
  align-items: start;
  padding: 0 0 1.15rem;
  margin-bottom: 1.05rem;
  border-bottom: 1px solid hsl(25 17% 84% / 0.82);
}
.asc-account-nav__avatar {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 60px;
  height: 60px;
  border: 1px solid hsl(25 17% 82% / 0.95);
  background: hsl(36 33% 98%);
  font-family: var(--font-display);
  font-size: 1.6rem;
  font-weight: var(--fw-light);
  color: var(--clr-fg);
}
.asc-account-nav__profile-copy {
  width: 100%;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 0.12rem;
  padding-top: 0.15rem;
}
.asc-account-nav__eyebrow {
  margin: 0 0 0.2rem;
  font-size: 10px;
  font-weight: var(--fw-medium);
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--clr-muted-fg);
}
.asc-account-nav__name {
  display: block;
  margin-bottom: 0.15rem;
  font-size: 14px;
  font-weight: var(--fw-medium);
  color: var(--clr-fg);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.asc-account-nav__email {
  display: block;
  font-size: 12px;
  line-height: 1.55;
  color: var(--clr-muted-fg);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.asc-account-nav ul li a {
  display: grid;
  grid-template-columns: 18px minmax(0, 1fr);
  gap: 0.9rem;
  padding: 0.95rem 0.25rem;
  min-width: 0;
  width: 100%;
}
.asc-account-nav ul li.is-active a,
.asc-account-nav ul li a:hover {
  color: var(--clr-fg);
}
.asc-account-nav ul li.is-active a {
  background: hsl(36 33% 98% / 0.7);
}
.asc-account-nav__label {
  white-space: nowrap;
  line-height: 1.3;
  min-width: 0;
}
.asc-account-nav__support {
  width: 100%;
  margin-top: 1rem;
  padding-top: 1rem;
  border-top: 1px solid hsl(25 17% 84% / 0.82);
}
.asc-account-nav__support-label {
  margin: 0 0 0.35rem;
  font-size: 10px;
  font-weight: var(--fw-medium);
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--clr-muted-fg);
}
.asc-account-nav__support-copy {
  margin: 0 0 0.75rem;
  font-size: 12px;
  line-height: 1.65;
  color: var(--clr-muted-fg);
  overflow-wrap: normal;
}
.woocommerce-account.logged-in .asc-account-sidebar,
.woocommerce-account.logged-in .asc-account-sidebar__card,
.woocommerce-account.logged-in .asc-account-nav,
.woocommerce-account.logged-in .asc-account-nav ul,
.woocommerce-account.logged-in .asc-account-nav ul li,
.woocommerce-account.logged-in .asc-account-nav__support {
  width: 100%;
  max-width: none;
}
.asc-account-nav__support-link {
  font-size: 11px;
  font-weight: var(--fw-medium);
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--clr-fg);
  text-decoration: none !important;
}
.asc-account-nav__support-link:hover {
  color: var(--clr-primary);
}
/* =============================================================================
   WC ACCOUNT — BENTO DASHBOARD
   ============================================================================= */
.asc-bento {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  gap: 1rem;
}
.asc-bento__cell {
  position: relative;
  padding: clamp(1.25rem, 2.2vw, 1.8rem);
  border: 1px solid hsl(25 17% 84% / 0.88);
  background:
    linear-gradient(180deg, hsl(36 33% 99% / 0.96), hsl(36 33% 98% / 0.92));
  box-shadow:
    inset 0 1px 0 hsl(0 0% 100% / 0.75),
    0 18px 38px hsl(20 20% 14% / 0.03);
}
.asc-bento__cell--hero {
  grid-column: span 7;
  background:
    radial-gradient(circle at top right, hsl(28 40% 59% / 0.08), transparent 34%),
    linear-gradient(180deg, hsl(36 33% 98%) 0%, hsl(36 33% 97%) 100%);
}
.asc-bento__cell--stats {
  grid-column: span 5;
  display: grid;
  gap: 0.85rem;
  align-content: stretch;
}
.asc-bento__cell--link {
  grid-column: span 4;
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  gap: 0.9rem;
  align-items: start;
  min-height: 190px;
  text-decoration: none !important;
  color: var(--clr-fg);
  transition: transform var(--trans-base), border-color var(--trans-base), box-shadow var(--trans-base), background-color var(--trans-base);
}
.asc-bento__cell--link:hover {
  transform: translateY(-2px);
  border-color: hsl(28 40% 59% / 0.48);
  background:
    linear-gradient(180deg, hsl(36 33% 99%), hsl(36 33% 98%));
  box-shadow:
    inset 0 1px 0 hsl(0 0% 100% / 0.78),
    0 22px 42px hsl(20 20% 14% / 0.045);
}
.asc-bento__cell--wide {
  grid-column: 1 / -1;
}
.asc-bento__greeting {
  margin: 0 0 0.8rem;
  font-family: var(--font-display);
  font-weight: var(--fw-light);
  font-size: clamp(2.2rem, 4.4vw, 3.55rem);
  line-height: 0.98;
  letter-spacing: -0.02em;
  color: var(--clr-fg);
}
.asc-bento__intro {
  max-width: 39rem;
  margin: 0;
  font-size: 14px;
  line-height: 1.85;
  color: var(--clr-muted-fg);
}
.asc-bento__hero-footer {
  margin-top: 1.3rem;
}
.asc-bento__logout-link {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  font-size: 11px;
  font-weight: var(--fw-medium);
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--clr-muted-fg);
  text-decoration: none !important;
}
.asc-bento__logout-link:hover {
  color: var(--clr-fg);
}
.asc-bento__stat-item {
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  min-height: 108px;
  padding: 1rem 1.05rem;
  border: 1px solid hsl(25 17% 82% / 0.9);
  background: hsl(36 33% 99% / 0.88);
}
.asc-bento__stat-val {
  font-family: var(--font-display);
  font-weight: var(--fw-light);
  font-size: clamp(1.45rem, 2.8vw, 2.2rem);
  line-height: 1;
  color: var(--clr-fg);
}
.asc-bento__stat-lbl {
  margin-top: 0.35rem;
  font-size: 10px;
  font-weight: var(--fw-medium);
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--clr-muted-fg);
}
.asc-bento__link-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  border: 1px solid hsl(25 17% 84% / 0.9);
  background: hsl(30 18% 95% / 0.72);
  color: var(--clr-fg);
}
.asc-bento__link-copy {
  min-width: 0;
}
.asc-bento__link-copy h3 {
  margin: 0 0 0.4rem;
  font-family: var(--font-display);
  font-weight: var(--fw-light);
  font-size: 1.55rem;
  line-height: 1.05;
  color: var(--clr-fg);
}
.asc-bento__link-copy p {
  margin: 0;
  font-size: 13px;
  line-height: 1.7;
  color: var(--clr-muted-fg);
}
.asc-bento__arrow {
  align-self: end;
  color: var(--clr-muted-fg);
  font-size: 1rem;
}
.asc-bento__recent-head {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 1rem;
  margin-bottom: 1rem;
}
.asc-bento__recent-head h3,
.asc-bento__empty-state h3 {
  margin: 0;
  font-family: var(--font-display);
  font-weight: var(--fw-light);
  font-size: clamp(1.35rem, 2.2vw, 1.9rem);
  color: var(--clr-fg);
}
.asc-bento__recent-head a {
  font-size: 11px;
  font-weight: var(--fw-medium);
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--clr-muted-fg);
  text-decoration: none !important;
}
.asc-bento__recent-head a:hover {
  color: var(--clr-fg);
}
.asc-bento__recent-table {
  display: grid;
  gap: 0.7rem;
}
.asc-bento__recent-thead,
.asc-bento__recent-row {
  display: grid;
  grid-template-columns: minmax(90px, 1fr) minmax(120px, 1fr) minmax(120px, 0.9fr) minmax(100px, 0.8fr);
  gap: 1rem;
  align-items: center;
}
.asc-bento__recent-thead {
  padding: 0 1rem 0.45rem;
  font-size: 10px;
  font-weight: var(--fw-medium);
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--clr-muted-fg);
}
.asc-bento__recent-row {
  padding: 1rem;
  border: 1px solid hsl(25 17% 84% / 0.84);
  background: hsl(36 33% 99%);
  color: var(--clr-fg);
  text-decoration: none !important;
  transition: border-color var(--trans-base), background-color var(--trans-base), transform var(--trans-base);
}
.asc-bento__recent-row:hover {
  border-color: hsl(28 40% 59% / 0.45);
  background: hsl(30 18% 96%);
  transform: translateY(-1px);
}
.asc-bento__r-num {
  font-weight: var(--fw-medium);
}
.asc-bento__r-date {
  color: var(--clr-muted-fg);
  font-size: 12px;
}
.asc-bento__r-status {
  display: inline-flex;
  align-items: center;
}
.asc-bento__r-tot {
  font-weight: var(--fw-medium);
}
.asc-bento__empty-state {
  display: grid;
  gap: 0.9rem;
  justify-items: start;
}
.asc-bento__empty-state p {
  max-width: 42rem;
  margin: 0;
  font-size: 14px;
  line-height: 1.85;
  color: var(--clr-muted-fg);
}
.asc-bento .asc-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 28px;
  padding: 0.35rem 0.65rem;
  border: 1px solid hsl(25 17% 84% / 0.9);
  background: hsl(36 33% 98%);
  font-size: 10px;
  font-weight: var(--fw-medium);
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--clr-fg);
}
@media (max-width: 1180px) {
  .asc-account-layout {
    grid-template-columns: 1fr;
    gap: 1rem;
  }

  .asc-account-sidebar {
    position: static;
  }

  .asc-account-sidebar__card {
    padding: 1.1rem;
  }

  .asc-account-nav {
    display: grid;
    grid-template-columns: minmax(240px, 320px) minmax(0, 1fr);
    gap: 1rem 1.25rem;
    align-items: start;
  }

  .asc-account-nav__profile {
    margin-bottom: 0;
    padding-bottom: 0;
    border-bottom: 0;
  }

  .asc-account-nav ul {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    -moz-column-gap: 1rem;
         column-gap: 1rem;
    border-top: 0;
  }

  .asc-account-nav ul li:first-child {
    border-top: 0;
  }

  .asc-account-nav__support {
    grid-column: 1 / -1;
    margin-top: 0;
    padding-top: 0.95rem;
  }

  .asc-bento__cell--hero,
  .asc-bento__cell--stats,
  .asc-bento__cell--link {
    grid-column: span 12;
  }

  .asc-bento__cell--stats {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}
@media (max-width: 767px) {
  .asc-account-nav {
    display: block;
  }

  .asc-bento {
    grid-template-columns: 1fr;
    gap: 0.85rem;
  }

  .asc-bento__cell {
    grid-column: auto;
    padding: 1rem;
  }

  .asc-bento__cell--stats {
    grid-template-columns: 1fr;
  }

  .asc-bento__cell--link {
    grid-template-columns: auto minmax(0, 1fr);
    min-height: 0;
  }

  .asc-bento__arrow {
    display: none;
  }

  .asc-bento__recent-head {
    align-items: start;
    flex-direction: column;
  }

  .asc-bento__recent-thead {
    display: none;
  }

  .asc-bento__recent-row {
    grid-template-columns: 1fr auto;
    gap: 0.45rem 0.9rem;
  }

  .asc-bento__r-date {
    grid-column: 1;
  }

  .asc-bento__r-status {
    grid-column: 1;
  }

  .asc-bento__r-tot {
    grid-column: 2;
    grid-row: 1 / span 2;
    align-self: start;
  }
}
.asc-dashboard {
  display: grid;
  gap: 1.5rem;
}
.asc-dashboard__welcome {
  display: grid;
  grid-template-columns: minmax(0, 1.45fr) minmax(260px, 0.95fr);
  gap: 1.25rem;
  align-items: stretch;
  padding: clamp(1.5rem, 3vw, 2.1rem);
  border: 1px solid hsl(25 17% 84% / 0.88);
  background:
    radial-gradient(circle at top right, hsl(28 40% 59% / 0.08), transparent 32%),
    linear-gradient(180deg, hsl(36 33% 97%) 0%, hsl(36 33% 96%) 100%);
}
.asc-dashboard__welcome-copy {
  min-width: 0;
}
.asc-dashboard__greeting {
  margin-bottom: 0.8rem;
  font-size: clamp(2rem, 4vw, 3rem);
  line-height: 0.98;
}
.asc-dashboard__intro {
  max-width: 34rem;
  font-size: 14px;
  line-height: 1.8;
}
.asc-dashboard__not-you {
  margin-top: 0.9rem;
  font-size: 12px;
}
.asc-dashboard__summary {
  display: grid;
  gap: 0.8rem;
  align-content: start;
}
.asc-dashboard__summary-card {
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
  padding: 1rem 1.05rem;
  border: 1px solid hsl(25 17% 82% / 0.9);
  background: hsl(36 33% 98% / 0.84);
}
.asc-dashboard__summary-value {
  font-family: var(--font-display);
  font-size: clamp(1.35rem, 3vw, 1.95rem);
  line-height: 1;
  color: var(--clr-fg);
}
.asc-dashboard__summary-label {
  font-size: 10px;
  font-weight: var(--fw-medium);
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--clr-muted-fg);
}
.asc-dashboard__grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1rem;
  background: transparent;
  border: 0;
  margin-bottom: 0;
}
.asc-dashboard__card {
  align-items: flex-start;
  gap: 0.9rem;
  min-height: 170px;
  padding: 1.3rem 1.2rem;
  border: 1px solid hsl(25 17% 84% / 0.88);
  background: hsl(36 33% 98% / 0.92);
  box-shadow: 0 14px 30px hsl(20 20% 14% / 0.03);
  transition: transform var(--trans-base), border-color var(--trans-base), background-color var(--trans-base);
}
.asc-dashboard__card:hover {
  transform: translateY(-2px);
  border-color: hsl(28 40% 59% / 0.5);
  background-color: hsl(36 33% 99%);
}
.asc-dashboard__card-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 42px;
  height: 42px;
  border: 1px solid hsl(25 17% 84% / 0.9);
  background: hsl(30 18% 95% / 0.76);
  opacity: 1;
}
.asc-dashboard__card-copy {
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
  align-self: stretch;
}
.asc-dashboard__card-title {
  font-size: 11px;
  letter-spacing: 0.14em;
}
.asc-dashboard__card-desc {
  font-size: 13px;
  line-height: 1.6;
  max-width: 18rem;
}
.asc-dashboard__card-arrow {
  align-self: flex-end;
  margin-top: auto;
}
.asc-dashboard__recent {
  padding: 1.35rem 1.3rem;
  border: 1px solid hsl(25 17% 84% / 0.88);
  background: hsl(36 33% 98% / 0.92);
}
.asc-dashboard__recent--empty {
  display: grid;
  gap: 0.9rem;
  justify-items: start;
}
.asc-dashboard__recent-empty-copy {
  max-width: 40rem;
  margin: 0;
  font-size: 14px;
  line-height: 1.8;
  color: var(--clr-muted-fg);
}
.asc-dashboard__recent-header {
  gap: 1rem;
  margin-bottom: 1rem;
}
.asc-dashboard__recent-title {
  font-size: clamp(1.2rem, 2vw, 1.55rem);
}
.asc-dashboard__recent-list {
  gap: 0.75rem;
}
.asc-dashboard__order-row {
  padding: 1rem 1rem;
  border: 1px solid hsl(25 17% 84% / 0.82);
}
.asc-dashboard__order-row:first-child {
  border-top: 1px solid hsl(25 17% 84% / 0.82);
}
.asc-dashboard__order-row:hover {
  background-color: hsl(30 18% 96%);
}
.woocommerce-account .woocommerce-orders-table,
.woocommerce-account .shop_table {
  width: 100%;
}
.woocommerce-account .woocommerce-orders-table td,
.woocommerce-account .woocommerce-orders-table th,
.woocommerce-account .shop_table td,
.woocommerce-account .shop_table th {
  padding-inline: 0.35rem;
}
.woocommerce-account .woocommerce-orders-table,
.woocommerce-account .shop_table {
  border-collapse: separate;
  border-spacing: 0;
}
.woocommerce-account .woocommerce-orders-table tbody tr,
.woocommerce-account .shop_table tbody tr {
  background: hsl(36 33% 99%);
}
.woocommerce-account .woocommerce-orders-table tbody tr:hover,
.woocommerce-account .shop_table tbody tr:hover {
  background: hsl(30 18% 96%);
}
.woocommerce-account .woocommerce-MyAccount-content > p:first-child {
  max-width: 42rem;
  margin-top: 0;
  margin-bottom: 1.25rem;
  font-size: 14px;
  line-height: 1.8;
  color: var(--clr-muted-fg);
}
.woocommerce-account .woocommerce-Orders,
.woocommerce-account .woocommerce-EditAccountForm,
.woocommerce-account .woocommerce-address-fields,
.woocommerce-account .woocommerce-order-details,
.woocommerce-account .woocommerce-customer-details,
.woocommerce-account .woocommerce-Addresses,
.woocommerce-account .lost_reset_password,
.woocommerce-account .woocommerce-ResetPassword {
  max-width: none;
}
.woocommerce-account .woocommerce-EditAccountForm,
.woocommerce-account .woocommerce-address-fields,
.woocommerce-account .woocommerce-order-details,
.woocommerce-account .woocommerce-customer-details,
.woocommerce-account .woocommerce-Addresses,
.woocommerce-account .lost_reset_password,
.woocommerce-account .woocommerce-ResetPassword {
  padding: 1.25rem 1.2rem;
  border: 1px solid hsl(25 17% 84% / 0.86);
  background: hsl(36 33% 98% / 0.9);
  box-shadow:
    inset 0 1px 0 hsl(0 0% 100% / 0.7),
    0 14px 32px hsl(20 20% 14% / 0.025);
}
.woocommerce-account .woocommerce-orders-table th,
.woocommerce-account .shop_table th {
  padding-top: 0.2rem;
}
.woocommerce-account .woocommerce-orders-table td,
.woocommerce-account .shop_table td {
  padding-block: 1rem;
}
.woocommerce-account .woocommerce-EditAccountForm .form-row input.input-text,
.woocommerce-account .woocommerce-EditAccountForm .form-row select,
.woocommerce-account .woocommerce-address-fields .form-row input.input-text,
.woocommerce-account .woocommerce-address-fields .form-row select,
.woocommerce-account .woocommerce-ResetPassword .form-row input.input-text,
.woocommerce-account .lost_reset_password .form-row input.input-text {
  min-height: 52px;
  padding: 0.95rem 1rem;
  border: 1px solid hsl(25 17% 82% / 0.9);
  background: hsl(36 33% 99%);
}
.woocommerce-account .woocommerce-EditAccountForm .form-row input.input-text:focus,
.woocommerce-account .woocommerce-address-fields .form-row input.input-text:focus,
.woocommerce-account .woocommerce-ResetPassword .form-row input.input-text:focus,
.woocommerce-account .lost_reset_password .form-row input.input-text:focus {
  border-color: hsl(28 40% 59% / 0.82);
  box-shadow: 0 0 0 3px hsl(28 40% 59% / 0.08);
}
.woocommerce-account .woocommerce-Addresses .woocommerce-Address-title a,
.woocommerce-account .woocommerce-orders-table .woocommerce-button.button.view {
  white-space: nowrap;
}
.woocommerce-account .woocommerce-Addresses {
  align-items: start;
}
.woocommerce-account .woocommerce-Addresses .woocommerce-Address {
  min-height: 100%;
  box-shadow:
    inset 0 1px 0 hsl(0 0% 100% / 0.72),
    0 14px 30px hsl(20 20% 14% / 0.03);
}
.woocommerce-account .woocommerce-Addresses .woocommerce-Address-title {
  align-items: start;
  gap: 1rem;
}
.woocommerce-account .woocommerce-Addresses .woocommerce-Address-title a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 38px;
  padding: 0.55rem 0.85rem;
  border: 1px solid hsl(25 17% 84% / 0.9);
  background: hsl(36 33% 99%);
}
.woocommerce-account .woocommerce-Addresses .woocommerce-Address-title a:hover {
  background: hsl(30 18% 96%);
}
.woocommerce-account fieldset {
  margin-top: 1.6rem;
  padding-top: 1.2rem;
  border-top: 1px solid hsl(25 17% 84% / 0.85);
}
.woocommerce-account fieldset legend {
  margin-bottom: 1rem;
  padding-bottom: 0;
  border-bottom: 0;
}
.woocommerce-account .woocommerce-MyAccount-navigation-link--customer-logout a {
  color: hsl(8 35% 42%);
}
.woocommerce-account .woocommerce-MyAccount-navigation-link--customer-logout a:hover {
  color: hsl(8 42% 32%);
}
.woocommerce-account .woocommerce-EditAccountForm button[type="submit"],
.woocommerce-account .woocommerce-address-fields button[type="submit"],
.woocommerce-account .woocommerce-info a.button {
  min-height: 50px;
}
@media (max-width: 1100px) {
  .asc-account-layout {
    grid-template-columns: 280px minmax(0, 1fr);
    gap: 1.35rem;
  }

  .asc-dashboard__welcome {
    grid-template-columns: 1fr;
  }

  .asc-dashboard__summary {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .asc-dashboard__grid {
    grid-template-columns: 1fr;
  }
}
@media (max-width: 767px) {
  .woocommerce-message,
  .woocommerce-info,
  .woocommerce-error,
  .woocommerce-notice {
    padding: 0.95rem 1rem 0.95rem 2.8rem !important;
    font-size: 14px;
  }

  .woocommerce-message::before,
  .woocommerce-info::before,
  .woocommerce-error::before,
  .woocommerce-notice::before {
    left: 0.9rem !important;
    top: 0.95rem !important;
  }

  .woocommerce-form-coupon-toggle .woocommerce-info,
  .woocommerce-form-login-toggle .woocommerce-info {
    padding: 0.95rem 1rem 0.95rem 2.8rem !important;
  }

  .woocommerce-account.logged-in .woocommerce {
    max-width: calc(100vw - 1rem);
    padding-block: 0.75rem 3.5rem;
  }

  .asc-account-layout {
    grid-template-columns: 1fr;
    gap: 1rem;
  }

  .asc-account-sidebar {
    position: static;
  }

  .asc-account-sidebar__card,
  .asc-account-main__header,
  .asc-account-main__surface {
    padding: 1rem;
  }

  .asc-account-main__header-row {
    grid-template-columns: 1fr;
    gap: 0.9rem;
  }

  .asc-account-main__identity {
    justify-self: stretch;
    min-width: 0;
  }

  .asc-account-main__identity-name,
  .asc-account-main__identity-email,
  .asc-account-nav__name,
  .asc-account-nav__email {
    white-space: normal;
    overflow: visible;
    text-overflow: initial;
    overflow-wrap: anywhere;
  }

  .asc-account-nav__profile {
    grid-template-columns: 44px minmax(0, 1fr);
    gap: 0.7rem;
    padding-bottom: 0.85rem;
    margin-bottom: 0.8rem;
  }

  .asc-account-nav__avatar {
    width: 44px;
    height: 44px;
    font-size: 1.2rem;
  }

  .asc-account-nav ul {
    padding-bottom: 0;
  }

  .asc-account-nav ul li a {
    padding: 0.8rem 0.9rem;
  }

  .asc-account-nav__support {
    margin-top: 0.8rem;
    padding-top: 0.85rem;
  }

  .asc-dashboard {
    gap: 1rem;
  }

  .asc-dashboard__welcome,
  .asc-dashboard__recent {
    padding: 1rem;
  }

  .asc-dashboard__summary {
    grid-template-columns: 1fr;
  }

  .asc-dashboard__grid {
    grid-template-columns: 1fr;
    gap: 0.85rem;
  }

  .asc-dashboard__card {
    min-height: 0;
    padding: 1rem;
  }

  .woocommerce-account .woocommerce-EditAccountForm,
  .woocommerce-account .woocommerce-address-fields,
  .woocommerce-account .woocommerce-order-details,
  .woocommerce-account .woocommerce-customer-details,
  .woocommerce-account .woocommerce-Addresses,
  .woocommerce-account .lost_reset_password,
  .woocommerce-account .woocommerce-ResetPassword {
    padding: 1rem;
  }

  .woocommerce-account .woocommerce-orders-table td,
  .woocommerce-account .woocommerce-orders-table th {
    gap: 1rem;
  }

  .woocommerce-account .woocommerce-Addresses .woocommerce-Address-title {
    flex-direction: column;
  }
}
/* =============================================================================
   WC SELECT2 OVERRIDES (country/state dropdowns in address forms)
   ============================================================================= */
.woocommerce-account .select2-container--default .select2-selection--single {
  border: none;
  border-bottom: 1px solid var(--clr-border);
  border-radius: 0;
  height: auto;
  padding: 0.75rem 0;
  background: transparent;
}
.woocommerce-account .select2-container--default .select2-selection--single .select2-selection__rendered {
  padding-left: 0;
  color: var(--clr-fg);
  font-family: var(--font-body);
  font-size: 14px;
  line-height: 1.5;
}
.woocommerce-account .select2-container--default .select2-selection--single .select2-selection__arrow {
  right: 0;
  top: 50%;
  transform: translateY(-50%);
}
/* Responsive order table on mobile */
@media (max-width: 767px) {
  .woocommerce-account .woocommerce-orders-table {
    display: block;
  }

  .woocommerce-account .woocommerce-orders-table thead {
    display: none;
  }

  .woocommerce-account .woocommerce-orders-table tbody,
  .woocommerce-account .woocommerce-orders-table tr {
    display: block;
  }

  .woocommerce-account .woocommerce-orders-table tr {
    border-bottom: 1px solid var(--clr-border);
    padding: 1rem 0;
  }

  .woocommerce-account .woocommerce-orders-table td,
  .woocommerce-account .woocommerce-orders-table th {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 0.375rem 0;
    border: none;
    font-size: 13px;
  }

  .woocommerce-account .woocommerce-orders-table td::before,
  .woocommerce-account .woocommerce-orders-table th::before {
    content: attr(data-title);
    font-size: 10px;
    font-weight: var(--fw-medium);
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--clr-muted-fg);
    flex-shrink: 0;
    margin-right: 1rem;
  }
}
/* =============================================================================
   FINAL ACCOUNT / RESPONSIVE REFINEMENT
   ============================================================================= */
.woocommerce-account:not(.logged-in) h1.page-title,
.woocommerce-account:not(.logged-in) .entry-title {
  display: none;
}
.woocommerce-account:not(.logged-in) .woocommerce {
  display: block;
  max-width: min(1480px, calc(100vw - 2rem));
  padding-block: clamp(1rem, 3vw, 2rem) clamp(4rem, 7vw, 6.5rem);
}
.asc-auth {
  max-width: none;
  padding: 0;
}
.asc-auth__inner {
  position: relative;
  gap: 0;
  align-items: stretch;
  border: 1px solid var(--clr-border);
  background:
    linear-gradient(135deg, hsl(30 17% 95%) 0%, hsl(30 17% 93%) 38%, hsl(36 33% 97%) 38%, hsl(36 33% 97%) 100%);
  box-shadow: 0 32px 80px hsl(20 20% 14% / 0.08);
}
@media (min-width: 960px) {
  .asc-auth__inner {
    grid-template-columns: minmax(0, 0.92fr) minmax(0, 1.08fr);
    min-height: 760px;
  }
}
.asc-auth__brand {
  min-height: 100%;
  padding: clamp(2.5rem, 5vw, 4.5rem);
  align-items: flex-start;
  background:
    radial-gradient(circle at top left, hsl(28 40% 59% / 0.08), transparent 34%),
    linear-gradient(180deg, hsl(30 17% 95%) 0%, hsl(30 17% 93%) 100%);
}
@media (min-width: 960px) {
  .asc-auth__brand {
    border-right: 1px solid hsl(25 17% 84% / 0.75);
  }
}
.asc-auth__brand-content {
  max-width: 32rem;
}
.asc-auth__title {
  font-size: clamp(2.85rem, 5vw, 4.65rem);
  line-height: 0.98;
}
.asc-auth__subtitle {
  max-width: 31rem;
  font-size: 15.5px;
  line-height: 1.95;
}
.asc-auth__trust {
  display: grid;
  grid-template-columns: 1fr;
  gap: 0.8rem;
  margin-top: 3.1rem;
  padding-top: 0;
  border-top: 0;
}
.asc-auth__trust-item {
  padding: 1rem 1.05rem;
  background: hsl(36 33% 97% / 0.58);
  border: 1px solid hsl(25 17% 84% / 0.75);
  font-size: 11px;
  letter-spacing: 0.14em;
  color: hsl(25 8% 37%);
}
.asc-auth__panel-wrap {
  align-items: center;
  padding: clamp(2rem, 4.5vw, 4.25rem);
  background:
    radial-gradient(circle at top right, hsl(28 40% 59% / 0.08), transparent 30%),
    linear-gradient(180deg, hsl(36 33% 97%) 0%, hsl(36 33% 96%) 100%);
}
.asc-auth__card {
  max-width: 640px;
  min-height: 100%;
  padding: 0;
  background: transparent;
  border: 0;
  box-shadow: none;
}
.asc-auth__tabs {
  gap: 0.45rem;
  margin-bottom: 1.85rem;
  padding: 0.35rem;
  border: 1px solid var(--clr-border);
  background: hsl(30 18% 95% / 0.8);
}
.asc-auth__tab {
  padding: 0.95rem 1rem;
  border: 1px solid transparent;
  border-bottom: 0;
}
.asc-auth__tab--active {
  border-color: var(--clr-border);
  background: var(--clr-bg);
  box-shadow: 0 10px 24px hsl(20 20% 14% / 0.04);
}
.asc-auth__panel-intro {
  max-width: 36rem;
  margin-bottom: 2rem;
  font-size: 13.5px;
  line-height: 1.85;
}
.asc-auth__panel-shell {
  padding: 1.35rem;
  border: 1px solid hsl(25 17% 84% / 0.85);
  background: hsl(36 33% 97% / 0.86);
  box-shadow: 0 16px 36px hsl(20 20% 14% / 0.03);
}
.asc-auth__form {
  gap: 1.65rem;
}
.asc-auth__card .asc-input {
  min-height: 56px;
  padding: 1rem 1.1rem;
  border: 1px solid hsl(25 17% 80% / 0.95);
  background: hsl(36 33% 98%);
  box-shadow: inset 0 1px 0 hsl(36 33% 100%);
}
.asc-auth__card .asc-input:focus {
  border-color: hsl(28 40% 59% / 0.85);
  box-shadow:
    0 0 0 3px hsl(28 40% 59% / 0.1),
    inset 0 1px 0 hsl(36 33% 100%);
}
.asc-auth__actions {
  margin-top: -0.1rem;
}
.asc-auth__divider {
  margin: 1.9rem 0 1.1rem;
}
.asc-auth__card .asc-btn--primary {
  box-shadow: 0 14px 28px hsl(20 20% 14% / 0.08);
}
.asc-auth__social-group {
  margin-top: 1rem;
  padding: 1.1rem 1.1rem 1.15rem;
  border: 1px solid hsl(25 17% 82% / 0.92);
  background:
    linear-gradient(180deg, hsl(30 18% 95% / 0.9), hsl(30 18% 94% / 0.74));
  box-shadow:
    inset 0 1px 0 hsl(0 0% 100% / 0.72),
    0 10px 24px hsl(20 20% 14% / 0.025);
}
.asc-auth__social-group--shared {
  margin-top: 1.25rem;
  padding: 1.2rem 1.15rem 1.15rem;
}
.asc-auth__social-group .asc-auth__divider {
  margin: 0 0 0.85rem;
}
.asc-auth__social-intro {
  max-width: 31rem;
  margin: 0 auto 0.95rem;
  font-size: 11.5px;
  line-height: 1.7;
  color: hsl(25 8% 40%);
  text-align: center;
}
.asc-auth__social {
  gap: 0.85rem;
  padding: 0;
  border: 0;
  background: transparent;
}
.asc-auth__social .nsl-container {
  width: 100%;
}
.asc-auth__social .nsl-container-buttons {
  display: grid;
  gap: 0.55rem;
}
.asc-auth__social .nsl-button {
  width: 100%;
  min-height: 54px;
  border-color: hsl(25 17% 80% / 0.92) !important;
  background: hsl(36 33% 98%) !important;
  transition: border-color var(--trans-base), background-color var(--trans-base), box-shadow var(--trans-base);
}
.asc-auth__social .nsl-button-google {
  display: grid !important;
  grid-template-columns: 24px 1fr;
  align-items: center;
  justify-content: stretch;
  gap: 0.8rem;
  padding: 0.95rem 1.15rem !important;
  border: 1px solid hsl(25 12% 78% / 0.95) !important;
  background: #fff !important;
  color: hsl(25 14% 17%) !important;
  box-shadow:
    0 10px 24px hsl(20 20% 14% / 0.04),
    inset 0 1px 0 hsl(0 0% 100% / 0.96);
}
.asc-auth__social .nsl-button:hover {
  border-color: hsl(28 40% 59% / 0.85) !important;
  background: hsl(36 33% 99%) !important;
  box-shadow: 0 0 0 3px hsl(28 40% 59% / 0.08);
}
.asc-auth__social .nsl-button:focus-visible {
  outline: 0;
  border-color: hsl(28 40% 59% / 0.92) !important;
  box-shadow:
    0 0 0 3px hsl(28 40% 59% / 0.12),
    0 12px 26px hsl(20 20% 14% / 0.06);
}
.asc-auth__social .nsl-button-google:hover {
  border-color: hsl(25 12% 68% / 0.98) !important;
  background: #fff !important;
  box-shadow:
    0 14px 28px hsl(20 20% 14% / 0.06),
    0 0 0 3px hsl(28 40% 59% / 0.08);
}
.asc-auth__social .nsl-button-google .nsl-button-svg-container {
  padding: 0 !important;
  width: 22px;
  height: 22px;
}
.asc-auth__social .nsl-button-google .nsl-button-svg-container svg {
  width: 22px;
  height: 22px;
}
.asc-auth__social .nsl-button-google .nsl-button-label-container {
  margin: 0 !important;
  padding: 0 !important;
  display: block !important;
  font-size: 12px !important;
  font-weight: 500 !important;
  letter-spacing: 0.08em !important;
  text-transform: none !important;
  text-align: left !important;
}
.asc-auth__social .nsl-button-google:active {
  transform: translateY(1px);
  box-shadow:
    0 6px 14px hsl(20 20% 14% / 0.05),
    0 0 0 3px hsl(28 40% 59% / 0.06);
}
.asc-auth__footer-note {
  margin-top: 1rem;
}
@media (max-width: 959px) {
  .woocommerce-account:not(.logged-in) .woocommerce {
    max-width: calc(100vw - 1rem);
    padding-block: 0.5rem 3.5rem;
    padding-inline: 0.5rem;
  }

  .asc-auth__inner {
    overflow: hidden;
    background:
      linear-gradient(180deg, hsl(30 17% 94%) 0%, hsl(30 17% 93%) 34%, hsl(36 33% 97%) 34%, hsl(36 33% 97%) 100%);
  }

  .asc-auth__brand {
    padding: 2.35rem 1.5rem 1.9rem;
    border-right: 0;
    border-bottom: 1px solid hsl(25 17% 84% / 0.75);
    text-align: center;
    justify-content: center;
    align-items: center;
  }

  .asc-auth__brand-content {
    max-width: 34rem;
  }

  .asc-auth__title {
    font-size: clamp(2.35rem, 9vw, 3.4rem);
  }

  .asc-auth__subtitle {
    max-width: 32rem;
    margin-inline: auto;
    font-size: 14px;
  }

  .asc-auth__trust {
    width: 100%;
    max-width: 32rem;
    margin-top: 2rem;
  }

  .asc-auth__panel-wrap {
    padding: 1.5rem 1.15rem 1.75rem;
  }

  .asc-auth__card {
    max-width: none;
  }

  .asc-auth__panel-intro {
    margin-bottom: 1.5rem;
    text-align: center;
  }

  .asc-auth__panel-shell {
    padding: 1rem;
  }

  .asc-auth__social-group--shared {
    margin-top: 1rem;
    padding: 1rem;
  }
}
@media (max-width: 560px) {
  .asc-auth__tabs {
    gap: 0.3rem;
    padding: 0.3rem;
  }

  .asc-auth__tab {
    padding: 0.85rem 0.7rem;
    font-size: 10px;
    letter-spacing: 0.16em;
  }

  .asc-auth__social {
    gap: 0.65rem;
  }

  .asc-auth__social-group {
    padding: 0.95rem;
  }

  .asc-auth__social-group--shared {
    margin-top: 0.9rem;
  }

  .asc-auth__social-intro {
    font-size: 11px;
  }

  .asc-auth__social .nsl-button {
    min-height: 52px;
  }

  .asc-auth__social .nsl-button-google .nsl-button-label-container {
    font-size: 11.5px !important;
    letter-spacing: 0.06em !important;
  }
}
@media (max-width: 767px) {
  .woocommerce-cart .woocommerce,
  .woocommerce-checkout .woocommerce {
    padding-block: 1.25rem 3.75rem;
  }

  .shop_table.cart td {
    padding: 1rem 0.5rem;
  }

  .shop_table.cart tr.cart-actions td {
    flex-direction: column;
    align-items: stretch;
  }

  .woocommerce-cart .coupon {
    width: 100%;
    flex-direction: column;
    align-items: stretch;
  }

  .woocommerce-cart .coupon input#coupon_code,
  .woocommerce-cart .coupon button[name="apply_coupon"],
  .woocommerce-cart button[name="update_cart"] {
    width: 100%;
  }

  .cart-collaterals {
    margin-top: 2.5rem;
  }

  .cart_totals {
    max-width: none;
  }

  #customer_details,
  #order_review_heading,
  #order_review {
    width: 100% !important;
    float: none !important;
  }

  .woocommerce-form-coupon-toggle .woocommerce-info,
  .woocommerce-form-login-toggle .woocommerce-info {
    padding: 0.95rem 1rem 0.95rem 2.9rem !important;
  }

  .woocommerce-form-coupon-toggle .woocommerce-info::before,
  .woocommerce-form-login-toggle .woocommerce-info::before,
  .woocommerce-account .woocommerce-message::before,
  .woocommerce-account .woocommerce-info::before {
    top: 0.95rem !important;
    left: 0.95rem !important;
  }

  .woocommerce-message,
  .woocommerce-info,
  .woocommerce-notice,
  .woocommerce-error {
    padding: 0.95rem 1rem 0.95rem 2.9rem !important;
  }

  #order_review_heading {
    margin-top: 2.5rem;
  }

  .woocommerce-checkout .form-row input.input-text,
  .woocommerce-checkout .form-row select,
  .woocommerce-checkout .form-row textarea {
    min-height: 48px;
  }

  .woocommerce div.product {
    padding-top: 1rem;
  }

  .woocommerce div.product h1.product_title {
    font-size: clamp(1.9rem, 8vw, 2.45rem) !important;
  }

  .woocommerce div.product p.price,
  .woocommerce div.product span.price {
    font-size: 1.4rem !important;
  }
}
/* =============================================================================
   14.1 — WooCommerce Dashboard Bento Grid
   Premium redesign utilizing subtle borders, fluid motion, and glass-like states.
   ============================================================================= */
.asc-bento {
  display: grid;
  gap: 1.25rem;
  grid-template-columns: 1fr;
  padding-bottom: 3rem;
  max-width: 1080px;
  margin-inline: auto;
}
@media (min-width: 768px) {
  .asc-bento {
    grid-template-columns: repeat(3, 1fr);
    grid-auto-rows: minmax(180px, auto);
  }
}
/* Base Bento Cell */
.asc-bento__cell {
  position: relative;
  border: 1px solid hsl(25 10% 88% / 0.8);
  background: hsl(36 33% 99% / 0.7);
  padding: 1.75rem 2rem;
  display: flex;
  flex-direction: column;
  border-radius: 4px; /* subtle modern corner */
  overflow: hidden;
}
/* Hover effect on linked cells */
a.asc-bento__cell {
  text-decoration: none !important;
  color: inherit;
  transition: all 0.4s cubic-bezier(0.16, 1, 0.3, 1);
  box-shadow: 0 4px 12px hsl(20 15% 10% / 0.0);
}
a.asc-bento__cell:hover {
  transform: translateY(-2px);
  border-color: hsl(28 20% 75% / 0.6);
  background: hsl(0 0% 100% / 0.95);
  box-shadow: 0 12px 24px hsl(20 15% 10% / 0.04);
}
/* -- Hero Block -- */
.asc-bento__cell--hero {
  grid-column: 1 / -1;
  background: linear-gradient(135deg, hsl(36 25% 98%) 0%, hsl(28 30% 95% / 0.5) 100%);
  border: 1px solid hsl(25 15% 85%);
}
@media (min-width: 768px) {
  .asc-bento__cell--hero {
    grid-column: span 2;
    padding: 2.5rem 3rem;
  }
}
.asc-bento__hero-content {
  display: flex;
  flex-direction: column;
  height: 100%;
}
.asc-bento__greeting {
  font-family: var(--font-display);
  font-size: clamp(1.75rem, 3.5vw, 2.75rem);
  font-weight: 300;
  letter-spacing: -0.01em;
  color: var(--clr-fg);
  line-height: 1.1;
  margin-top: 0.25rem;
  margin-bottom: 1rem;
}
.asc-bento__intro {
  font-family: var(--font-body);
  font-size: 14px;
  line-height: 1.7;
  color: var(--clr-muted-fg);
  max-width: 32rem;
  margin-bottom: 2rem;
}
.asc-bento__hero-footer {
  margin-top: auto;
}
.asc-bento__logout-link {
  font-size: 11px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--clr-muted-fg);
  text-decoration: none !important;
  transition: color var(--trans-fast);
}
.asc-bento__logout-link:hover {
  color: var(--clr-destructive);
}
/* -- Stats Block -- */
.asc-bento__cell--stats {
  grid-column: 1 / -1;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  gap: 1.5rem;
}
@media (min-width: 768px) {
  .asc-bento__cell--stats {
    grid-column: span 1;
  }
}
.asc-bento__stat-item {
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
  border-bottom: 1px solid hsl(25 10% 90%);
  padding-bottom: 1rem;
}
.asc-bento__stat-item:last-child {
  border-bottom: none;
  padding-bottom: 0;
}
.asc-bento__stat-val {
  font-family: var(--font-display);
  font-size: 1.75rem;
  font-weight: 400;
  color: var(--clr-fg);
  line-height: 1;
}
.asc-bento__stat-lbl {
  font-size: 10px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--clr-muted-fg);
}
/* -- Quick Links (3 columns) -- */
.asc-bento__cell--link {
  grid-column: 1 / -1;
  align-items: flex-start;
  gap: 1.25rem;
}
@media (min-width: 768px) {
  .asc-bento__cell--link {
    grid-column: span 1;
  }
}
.asc-bento__link-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 48px;
  height: 48px;
  border-radius: 50%;
  background: hsl(30 20% 96%);
  color: var(--clr-fg);
  border: 1px solid hsl(25 15% 90%);
  transition: transform 0.4s ease, background 0.4s ease;
}
a.asc-bento__cell:hover .asc-bento__link-icon {
  background: var(--clr-fg);
  color: var(--clr-bg);
  transform: scale(1.05);
}
.asc-bento__link-copy h3 {
  font-family: var(--font-body);
  font-size: 12px;
  font-weight: 500;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--clr-fg);
  margin-bottom: 0.4rem;
}
.asc-bento__link-copy p {
  font-size: 13px;
  line-height: 1.6;
  color: var(--clr-muted-fg);
}
.asc-bento__arrow {
  margin-top: auto;
  align-self: flex-end;
  color: var(--clr-muted-fg);
  transition: transform 0.3s ease;
}
a.asc-bento__cell:hover .asc-bento__arrow {
  transform: translateX(4px);
  color: var(--clr-fg);
}
/* -- Recent Orders (Wide) -- */
.asc-bento__cell--wide {
  grid-column: 1 / -1;
  padding: 2.5rem;
}
.asc-bento__recent-head {
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  margin-bottom: 1.5rem;
  padding-bottom: 1rem;
  border-bottom: 1px solid hsl(25 10% 88%);
}
.asc-bento__recent-head h3 {
  font-family: var(--font-display);
  font-weight: 400;
  font-size: 1.5rem;
  color: var(--clr-fg);
}
.asc-bento__recent-head a {
  font-size: 11px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--clr-muted-fg);
  text-decoration: none !important;
  transition: color var(--trans-fast);
}
.asc-bento__recent-head a:hover {
  color: var(--clr-fg);
}
.asc-bento__recent-table {
  display: grid;
  gap: 0;
}
.asc-bento__recent-thead {
  display: grid;
  grid-template-columns: 80px 100px 1fr 100px;
  padding: 0 1rem 0.75rem;
  font-size: 9px;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  color: var(--clr-muted-fg);
}
.asc-bento__recent-row {
  display: grid;
  grid-template-columns: 80px 100px 1fr 100px;
  align-items: center;
  padding: 1.25rem 1rem;
  border-bottom: 1px solid hsl(25 10% 92%);
  text-decoration: none !important;
  transition: background 0.3s ease, border-color 0.3s ease;
  border-radius: 4px;
}
.asc-bento__recent-row:last-child {
  border-bottom: none;
}
.asc-bento__recent-row:hover {
  background: hsl(30 25% 97%);
  border-color: transparent;
}
.asc-bento__r-num {
  font-weight: 500;
  color: var(--clr-fg);
  font-size: 13px;
}
.asc-bento__r-date {
  color: var(--clr-muted-fg);
  font-size: 13px;
}
.asc-bento__r-status .asc-badge {
  font-size: 10px;
  padding: 0.25rem 0.5rem;
  border-radius: 20px;
  background: hsl(30 20% 92%);
  color: var(--clr-fg);
  text-transform: uppercase;
  letter-spacing: 0.1em;
}
.asc-bento__r-tot {
  font-weight: 500;
  color: var(--clr-fg);
  font-size: 13px;
}
.asc-txt-right {
  text-align: right;
}
@media (max-width: 767px) {
  .asc-bento__recent-thead {
    display: none;
  }
  .asc-bento__recent-row {
    grid-template-columns: 1fr auto;
    gap: 0.75rem;
  }
  .asc-bento__r-date {
    grid-column: 1;
    grid-row: 2;
  }
  .asc-bento__r-tot {
    grid-column: 2;
    grid-row: 2;
  }
}
.asc-bento__empty-state {
  text-align: center;
  max-width: 38rem;
  margin: 2rem auto;
}
.asc-bento__empty-state h3 {
  font-family: var(--font-display);
  font-weight: 300;
  font-size: 1.75rem;
  margin-bottom: 1rem;
}
.asc-bento__empty-state p {
  font-size: 14px;
  line-height: 1.7;
  color: var(--clr-muted-fg);
  margin-bottom: 2rem;
}
/* =============================================================================
   Sidebar & Navigation Refinements (navigation.php)
   ============================================================================= */
.asc-account-nav {
  display: flex;
  flex-direction: column;
  gap: 2rem;
}
.asc-account-nav__profile {
  display: flex;
  align-items: center;
  gap: 1.25rem;
  padding-bottom: 1.5rem;
  border-bottom: 1px solid hsl(25 10% 90%);
}
.asc-account-nav__avatar {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 56px;
  height: 56px;
  border-radius: 50%;
  background: var(--clr-bg);
  border: 1px solid hsl(25 15% 85%);
  color: var(--clr-fg);
  font-family: var(--font-display);
  font-size: 1.25rem;
  font-weight: 300;
}
.asc-account-nav__profile-copy {
  display: flex;
  flex-direction: column;
}
.asc-account-nav__eyebrow {
  margin: 0;
  font-size: 9px;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  color: var(--clr-muted-fg);
  margin-bottom: 0.25rem;
}
.asc-account-nav__name {
  font-family: var(--font-display);
  font-size: 1.25rem;
  font-weight: 400;
  color: var(--clr-fg);
  line-height: 1.2;
}
.asc-account-nav__email {
  font-size: 12px;
  color: var(--clr-muted-fg);
}
.asc-account-nav ul {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
}
.asc-account-nav li a {
  display: flex;
  align-items: center;
  gap: 1rem;
  padding: 0.75rem 1rem;
  border-radius: 4px;
  color: var(--clr-muted-fg);
  text-decoration: none !important;
  transition: all 0.3s ease;
}
.asc-account-nav li a:hover {
  background: hsl(36 33% 98%);
  color: var(--clr-fg);
}
.asc-account-nav li.is-active a {
  background: hsl(30 20% 96%);
  color: var(--clr-fg);
  font-weight: 500;
}
.asc-account-nav__icon {
  display: flex;
  opacity: 0.7;
}
.asc-account-nav li.is-active .asc-account-nav__icon,
.asc-account-nav li a:hover .asc-account-nav__icon {
  opacity: 1;
}
.asc-account-nav__support {
  margin-top: 1rem;
  padding: 1.5rem;
  background: linear-gradient(135deg, hsl(36 20% 97%) 0%, hsl(28 20% 95% / 0.5) 100%);
  border: 1px solid hsl(25 10% 90%);
  border-radius: 4px;
}
.asc-account-nav__support-label {
  margin: 0 0 0.5rem 0;
  font-family: var(--font-body);
  font-size: 11px;
  font-weight: 500;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--clr-fg);
}
.asc-account-nav__support-copy {
  margin: 0 0 1rem 0;
  font-size: 12px;
  line-height: 1.6;
  color: var(--clr-muted-fg);
}
.asc-account-nav__support-link {
  font-size: 11px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--clr-fg);
  text-decoration: underline;
  text-underline-offset: 3px;
  transition: opacity 0.3s ease;
}
.asc-account-nav__support-link:hover {
  opacity: 0.7;
}
/* =============================================================================
   15 — Animations
   JS-triggered animation classes: reveal, stagger, image reveal, parallax,
   page transitions, loading states.
   ============================================================================= */
/* =============================================================================
   REVEAL (Intersection Observer)
   Elements start hidden, gain --visible class when entering viewport.
   ============================================================================= */
.asc-reveal {
  opacity: 0;
  transform: translateY(20px);
  transition: opacity 0.6s var(--ease-out-expo),
              transform 0.8s var(--ease-out-expo);
}
.asc-reveal--visible {
  opacity: 1;
  transform: translateY(0);
}
/* Variants */
.asc-reveal--up {
  transform: translateY(30px);
}
.asc-reveal--up.asc-reveal--visible {
  transform: translateY(0);
}
.asc-reveal--left {
  opacity: 0;
  transform: translateX(-24px);
  transition: opacity 0.7s var(--ease-out-expo),
              transform 0.9s var(--ease-out-expo);
}
.asc-reveal--left.asc-reveal--visible {
  opacity: 1;
  transform: translateX(0);
}
.asc-reveal--right {
  opacity: 0;
  transform: translateX(24px);
  transition: opacity 0.7s var(--ease-out-expo),
              transform 0.9s var(--ease-out-expo);
}
.asc-reveal--right.asc-reveal--visible {
  opacity: 1;
  transform: translateX(0);
}
.asc-reveal--scale {
  opacity: 0;
  transform: scale(0.96);
  transition: opacity 0.6s var(--ease-out-expo),
              transform 0.8s var(--ease-out-expo);
}
.asc-reveal--scale.asc-reveal--visible {
  opacity: 1;
  transform: scale(1);
}
/* =============================================================================
   STAGGER DELAYS
   Apply to direct children or sibling elements for cascade effect.
   ============================================================================= */
.asc-reveal--delay-1  { transition-delay: 0.05s; }
.asc-reveal--delay-2  { transition-delay: 0.10s; }
.asc-reveal--delay-3  { transition-delay: 0.15s; }
.asc-reveal--delay-4  { transition-delay: 0.20s; }
.asc-reveal--delay-5  { transition-delay: 0.25s; }
.asc-reveal--delay-6  { transition-delay: 0.30s; }
.asc-reveal--delay-7  { transition-delay: 0.35s; }
.asc-reveal--delay-8  { transition-delay: 0.40s; }
/* Auto-stagger children (JS adds data-stagger to parent) */
[data-stagger] > * {
  opacity: 0;
  transform: translateY(16px);
  transition: opacity 0.6s var(--ease-out-expo),
              transform 0.8s var(--ease-out-expo);
}
[data-stagger].asc-reveal--visible > * {
  opacity: 1;
  transform: translateY(0);
}
[data-stagger].asc-reveal--visible > *:nth-child(1)  { transition-delay: 0.00s; }
[data-stagger].asc-reveal--visible > *:nth-child(2)  { transition-delay: 0.06s; }
[data-stagger].asc-reveal--visible > *:nth-child(3)  { transition-delay: 0.12s; }
[data-stagger].asc-reveal--visible > *:nth-child(4)  { transition-delay: 0.18s; }
[data-stagger].asc-reveal--visible > *:nth-child(5)  { transition-delay: 0.24s; }
[data-stagger].asc-reveal--visible > *:nth-child(6)  { transition-delay: 0.30s; }
[data-stagger].asc-reveal--visible > *:nth-child(7)  { transition-delay: 0.36s; }
[data-stagger].asc-reveal--visible > *:nth-child(8)  { transition-delay: 0.42s; }
/* =============================================================================
   IMAGE REVEAL (clip-path from bottom)
   ============================================================================= */
.asc-image-reveal {
  clip-path: inset(100% 0 0 0);
  transition: clip-path 1.2s var(--ease-out-expo);
}
.asc-image-reveal--visible {
  clip-path: inset(0% 0 0 0);
}
/* Reveal from left */
.asc-image-reveal--left {
  clip-path: inset(0 100% 0 0);
  transition: clip-path 1.2s var(--ease-out-expo);
}
.asc-image-reveal--left.asc-image-reveal--visible {
  clip-path: inset(0 0% 0 0);
}
/* Reveal fade in with slight scale */
.asc-image-reveal--fade {
  opacity: 0;
  transform: scale(1.04);
  clip-path: none;
  transition: opacity 1s var(--ease-out-expo),
              transform 1.4s var(--ease-out-expo);
}
.asc-image-reveal--fade.asc-image-reveal--visible {
  opacity: 1;
  transform: scale(1);
}
/* =============================================================================
   PARALLAX CONTAINER
   JS writes transform: translateY(Xpx) on .asc-parallax-img
   ============================================================================= */
.asc-parallax-wrap {
  overflow: hidden;
  position: relative;
}
.asc-parallax-img {
  will-change: transform;
  transition: none; /* JS controls this */
}
/* Scale up parallax images slightly so edges don't show during movement */
.asc-parallax-wrap .asc-parallax-img {
  transform: scale(1.12);
}
/* =============================================================================
   COUNTER ANIMATION
   JS increments from 0 to data-target on intersection.
   ============================================================================= */
[data-count-to] {
  font-variant-numeric: tabular-nums;
}
/* =============================================================================
   PAGE TRANSITIONS
   Body classes added during navigation for smooth transitions.
   ============================================================================= */
.asc-page-exit {
  opacity: 0;
  transition: opacity 0.3s ease;
}
.asc-page-enter {
  animation: pageEnter 0.5s var(--ease-out-expo) forwards;
}
@keyframes pageEnter {
  from {
    opacity: 0;
    transform: translateY(8px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}
/* =============================================================================
   HOVER LINE ANIMATION (editorial links)
   ============================================================================= */
.asc-line-through {
  position: relative;
  display: inline-block;
}
.asc-line-through::after {
  content: '';
  position: absolute;
  bottom: -1px;
  left: 0;
  width: 0;
  height: 1px;
  background-color: currentColor;
  transition: width 0.5s var(--ease-out-expo);
}
.asc-line-through:hover::after {
  width: 100%;
}
/* =============================================================================
   LOADING SPINNER
   ============================================================================= */
@keyframes asc-spin {
  to { transform: rotate(360deg); }
}
.asc-spinner {
  display: inline-block;
  width: 24px;
  height: 24px;
  border: 2px solid var(--clr-border);
  border-top-color: var(--clr-primary);
  border-radius: 50%;
  animation: asc-spin 0.7s linear infinite;
  flex-shrink: 0;
}
.asc-spinner--sm {
  width: 16px;
  height: 16px;
  border-width: 1.5px;
}
/* =============================================================================
   SKELETON LOADING
   ============================================================================= */
@keyframes asc-shimmer {
  0%   { background-position: -400px 0; }
  100% { background-position: 400px 0; }
}
.asc-skeleton {
  background: linear-gradient(
    90deg,
    var(--clr-muted) 25%,
    var(--clr-card) 50%,
    var(--clr-muted) 75%
  );
  background-size: 800px 100%;
  animation: asc-shimmer 1.5s ease-in-out infinite;
}
.asc-skeleton-text {
  height: 0.875rem;
  border-radius: 0;
  margin-bottom: 0.5rem;
}
.asc-skeleton-text:last-child {
  width: 70%;
}
.asc-skeleton-rect {
  aspect-ratio: 3 / 4;
  width: 100%;
}
/* =============================================================================
   PULSE (for out-of-stock / live indicators)
   ============================================================================= */
@keyframes asc-pulse {
  0%, 100% { opacity: 1; }
  50%       { opacity: 0.4; }
}
.asc-pulse {
  animation: asc-pulse 2s ease-in-out infinite;
}
/* =============================================================================
   SLIDE DOWN (for drawers / mobile nav items)
   ============================================================================= */
@keyframes asc-slideDown {
  from {
    opacity: 0;
    transform: translateY(-8px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}
.asc-slide-down {
  animation: asc-slideDown 0.3s var(--ease-out-expo) forwards;
}
/* =============================================================================
   FADE IN
   ============================================================================= */
@keyframes asc-fadeIn {
  from { opacity: 0; }
  to   { opacity: 1; }
}
.asc-fade-in {
  animation: asc-fadeIn var(--transition-base) var(--ease-out-expo) forwards;
}
/* =============================================================================
   RESPECT REDUCED MOTION
   ============================================================================= */
@media (prefers-reduced-motion: reduce) {
  .asc-reveal,
  .asc-reveal--up,
  .asc-reveal--left,
  .asc-reveal--right,
  .asc-reveal--scale,
  [data-stagger] > * {
    transition: none;
    opacity: 1;
    transform: none;
    clip-path: none;
  }

  .asc-image-reveal,
  .asc-image-reveal--left,
  .asc-image-reveal--fade {
    clip-path: none;
    opacity: 1;
    transform: none;
    transition: none;
  }

  .asc-parallax-img {
    will-change: auto;
  }

  .asc-page-exit {
    transition: none;
  }

  .asc-spinner {
    animation-duration: 1.5s;
  }

  .asc-skeleton {
    animation: none;
    background: var(--clr-muted);
  }

  .asc-pulse {
    animation: none;
  }

  * {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
}
/* =============================================================================
   16 — Utilities
   Helper classes, quantity stepper, pagination, selection, focus, misc.
   ============================================================================= */
/* =============================================================================
   ACCESSIBILITY
   ============================================================================= */
/* Screen reader only */
.asc-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;
}
/* Skip link */
.asc-skip-link {
  position: absolute;
  top: -100%;
  left: 1rem;
  z-index: var(--z-modal);
  background: var(--clr-fg);
  color: var(--clr-bg);
  padding: 0.75rem 1.5rem;
  font-size: 11px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  font-weight: var(--fw-medium);
  text-decoration: none;
  transition: top 0.2s;
}
.asc-skip-link:focus {
  top: 1rem;
}
/* =============================================================================
   TEXT SELECTION
   ============================================================================= */
::-moz-selection {
  background-color: hsl(28 40% 59% / 0.2);
  color: var(--clr-fg);
}
::selection {
  background-color: hsl(28 40% 59% / 0.2);
  color: var(--clr-fg);
}
::-moz-selection {
  background-color: hsl(28 40% 59% / 0.2);
  color: var(--clr-fg);
}
/* =============================================================================
   FOCUS VISIBLE
   ============================================================================= */
:focus-visible {
  outline: 2px solid var(--clr-primary);
  outline-offset: 2px;
}
/* Specific elements */
a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible {
  outline: 2px solid var(--clr-primary);
  outline-offset: 2px;
}
/* =============================================================================
   EDITORIAL LINK (animated underline)
   ============================================================================= */
.asc-link-editorial {
  position: relative;
  display: inline-block;
  text-decoration: none !important;
}
.asc-link-editorial::after {
  content: '';
  position: absolute;
  left: 0;
  bottom: -2px;
  width: 0;
  height: 1px;
  background-color: currentColor;
  transition: width 0.5s var(--ease-out-expo);
}
.asc-link-editorial:hover::after {
  width: 100%;
}
/* =============================================================================
   TEXT UTILITIES
   ============================================================================= */
.asc-muted        { color: var(--clr-muted-fg) !important; }
.asc-primary-clr  { color: var(--clr-primary) !important; }
.asc-fg           { color: var(--clr-fg) !important; }
.asc-small {
  font-size: 11px;
  letter-spacing: 0.05em;
}
.asc-uppercase {
  text-transform: uppercase;
  letter-spacing: 0.2em;
}
.asc-display-font {
  font-family: var(--font-display);
}
.asc-body-font {
  font-family: var(--font-body);
}
.asc-light   { font-weight: var(--fw-light); }
.asc-regular { font-weight: var(--fw-regular); }
.asc-medium  { font-weight: var(--fw-medium); }
.asc-semibold{ font-weight: var(--fw-semibold); }
.asc-text-center { text-align: center; }
.asc-text-left   { text-align: left; }
.asc-text-right  { text-align: right; }
.asc-italic { font-style: italic; }
.asc-truncate {
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
}
.asc-line-clamp-2 {
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.asc-line-clamp-3 {
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
/* =============================================================================
   DIVIDER
   ============================================================================= */
.asc-divider {
  border: none;
  border-top: 1px solid var(--clr-border);
  margin-block: 2rem;
}
.asc-divider--sm { margin-block: 1rem; }
.asc-divider--lg { margin-block: 3rem; }
/* =============================================================================
   SPACING UTILITIES
   ============================================================================= */
.asc-mt-0  { margin-top: 0; }
.asc-mt-1  { margin-top: var(--space-4); }
.asc-mt-2  { margin-top: var(--space-8); }
.asc-mt-3  { margin-top: var(--space-12); }
.asc-mt-4  { margin-top: var(--space-16); }
.asc-mb-0  { margin-bottom: 0; }
.asc-mb-1  { margin-bottom: var(--space-4); }
.asc-mb-2  { margin-bottom: var(--space-8); }
.asc-mb-3  { margin-bottom: var(--space-12); }
.asc-mb-4  { margin-bottom: var(--space-16); }
/* =============================================================================
   QUANTITY STEPPER
   ============================================================================= */
.asc-qty-stepper {
  display: inline-flex;
  align-items: center;
  border: 1px solid var(--clr-border);
  overflow: hidden;
}
.asc-qty-stepper__btn {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  background: transparent;
  border: none;
  color: var(--clr-fg);
  cursor: pointer;
  font-size: 18px;
  font-weight: var(--fw-light);
  line-height: 1;
  transition: background-color var(--trans-fast),
              color var(--trans-fast);
  flex-shrink: 0;
  -moz-user-select: none;
       user-select: none;
  -webkit-user-select: none;
}
.asc-qty-stepper__btn:hover {
  background-color: var(--clr-muted);
  color: var(--clr-fg);
}
.asc-qty-stepper__btn:active {
  background-color: var(--clr-border);
}
.asc-qty-stepper__btn:disabled,
.asc-qty-stepper__btn[aria-disabled="true"] {
  opacity: 0.35;
  cursor: not-allowed;
}
.asc-qty-stepper__input {
  width: 52px;
  height: 40px;
  border: none;
  border-left: 1px solid var(--clr-border);
  border-right: 1px solid var(--clr-border);
  background: transparent;
  font-family: var(--font-body);
  font-size: 14px;
  color: var(--clr-fg);
  text-align: center;
  outline: none;
  -moz-appearance: textfield;
}
.asc-qty-stepper__input::-webkit-outer-spin-button,
.asc-qty-stepper__input::-webkit-inner-spin-button {
  -webkit-appearance: none;
  margin: 0;
}
/* =============================================================================
   PAGINATION
   ============================================================================= */
.asc-pagination {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
  gap: 0.375rem;
  padding-block: 2.5rem;
}
.asc-pagination__list {
  display: flex;
  align-items: center;
  gap: 0.375rem;
  list-style: none;
  margin: 0;
  padding: 0;
}
.asc-pagination__btn,
.asc-pagination a,
.asc-pagination span {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 40px;
  height: 40px;
  padding-inline: 0.75rem;
  font-family: var(--font-body);
  font-size: 11px;
  font-weight: var(--fw-medium);
  letter-spacing: 0.08em;
  color: var(--clr-muted-fg);
  border: 1px solid var(--clr-border);
  background: transparent;
  cursor: pointer;
  text-decoration: none !important;
  transition: color var(--trans-fast),
              border-color var(--trans-fast),
              background-color var(--trans-fast);
  -webkit-user-select: none;
     -moz-user-select: none;
          user-select: none;
}
.asc-pagination__btn:hover,
.asc-pagination a:hover {
  color: var(--clr-fg);
  border-color: var(--clr-fg);
}
.asc-pagination__btn.is-active,
.asc-pagination .current,
.asc-pagination span.current {
  background-color: var(--clr-fg);
  color: var(--clr-bg);
  border-color: var(--clr-fg);
  cursor: default;
}
.asc-pagination__btn--prev,
.asc-pagination__btn--next {
  padding-inline: 1rem;
}
.asc-pagination__btn:disabled,
.asc-pagination__btn[aria-disabled="true"] {
  opacity: 0.4;
  cursor: not-allowed;
}
/* =============================================================================
   DISPLAY HELPERS
   ============================================================================= */
.asc-hidden {
  display: none !important;
}
.asc-visually-hidden {
  opacity: 0;
  pointer-events: none;
}
.asc-block   { display: block; }
.asc-inline  { display: inline; }
.asc-flex    { display: flex; }
.asc-grid    { display: grid; }
/* Responsive hidden */
@media (max-width: 639px) {
  .asc-hide-mobile { display: none !important; }
}
@media (min-width: 640px) and (max-width: 1023px) {
  .asc-hide-tablet { display: none !important; }
}
@media (min-width: 1024px) {
  .asc-hide-desktop { display: none !important; }
}
@media (max-width: 1023px) {
  .asc-desktop-only { display: none !important; }
}
@media (min-width: 1024px) {
  .asc-mobile-only { display: none !important; }
}
/* =============================================================================
   NO PRODUCTS (empty state — also defined in shop)
   ============================================================================= */
.asc-no-products {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 1.25rem;
  padding-block: 5rem;
  text-align: center;
  grid-column: 1 / -1;
}
.asc-no-products__icon {
  width: 40px;
  height: 40px;
  color: var(--clr-muted-fg);
  opacity: 0.35;
  flex-shrink: 0;
}
.asc-no-products__title {
  font-family: var(--font-display);
  font-weight: var(--fw-light);
  font-size: 1.5rem;
  color: var(--clr-fg);
}
.asc-no-products__text {
  font-size: 13px;
  color: var(--clr-muted-fg);
  max-width: 40ch;
  margin: 0;
  line-height: 1.65;
}
/* =============================================================================
   HORIZONTAL SCROLL CONTAINER
   ============================================================================= */
.asc-scroll-x {
  overflow-x: auto;
  scrollbar-width: none;
  -ms-overflow-style: none;
  -webkit-overflow-scrolling: touch;
}
.asc-scroll-x::-webkit-scrollbar {
  display: none;
}
/* =============================================================================
   SEPARATOR (decorative dot)
   ============================================================================= */
.asc-separator {
  display: inline-flex;
  align-items: center;
  gap: 1rem;
  font-size: 11px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--clr-muted-fg);
}
.asc-separator::before,
.asc-separator::after {
  content: '';
  flex: 1;
  height: 1px;
  background-color: var(--clr-border);
}
/* =============================================================================
   BACK TO TOP
   ============================================================================= */
.asc-back-to-top {
  position: fixed;
  bottom: 2rem;
  right: 2rem;
  width: 44px;
  height: 44px;
  background-color: var(--clr-fg);
  color: var(--clr-bg);
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  opacity: 0;
  transform: translateY(12px);
  transition: opacity var(--trans-base),
              transform var(--trans-base);
  pointer-events: none;
  z-index: var(--z-raised);
  border: none;
}
.asc-back-to-top.is-visible {
  opacity: 1;
  transform: translateY(0);
  pointer-events: auto;
}
.asc-back-to-top:hover {
  background-color: var(--clr-primary);
}
.asc-back-to-top svg {
  width: 16px;
  height: 16px;
  stroke-width: 2;
  pointer-events: none;
}
/* =============================================================================
   PRINT
   ============================================================================= */
@media print {
  .asc-navbar,
  .asc-announcement-bar,
  .asc-footer,
  .asc-mobile-drawer,
  .asc-cart-drawer,
  .asc-search-overlay,
  .asc-back-to-top {
    display: none !important;
  }

  body {
    background: white;
    color: black;
    font-size: 12pt;
  }

  a {
    text-decoration: underline;
    color: black;
  }

  img {
    max-width: 100% !important;
    page-break-inside: avoid;
  }

  h1, h2, h3 {
    page-break-after: avoid;
  }

  .asc-container {
    max-width: 100%;
    padding-inline: 1cm;
  }
}
/* =============================================================================
   17 — UI/UX Refinements
   Final polish pass: focus states, contrast, spacing, hover affordance,
   mobile consistency, and premium visual coherence.
   ============================================================================= */
/* =============================================================================
   FOCUS STATES — Accessible & Branded
   ============================================================================= */
/* Global focus-visible for interactive elements */
a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible,
[tabindex]:focus-visible {
  outline: 2px solid var(--clr-primary);
  outline-offset: 2px;
}
/* Remove default focus ring for mouse users */
:focus:not(:focus-visible) {
  outline: none;
}
/* =============================================================================
   TEXT CONTRAST & READABILITY IMPROVEMENTS
   ============================================================================= */
/* Strengthen muted text contrast for WCAG AA */
.asc-breadcrumb__list,
.asc-field-hint,
.asc-mobile-drawer__link-subtitle,
.asc-navbar__dropdown-link-subtitle {
  color: hsl(25 6% 45%); /* slightly stronger than --clr-muted-fg */
}
/* Ensure body text line-height is generous on long-form pages */
.asc-page-content p,
.woocommerce-MyAccount-content p,
.asc-dashboard__intro,
.woocommerce-order p {
  line-height: 1.7;
}
/* =============================================================================
   FORM POLISH
   ============================================================================= */
/* Placeholder contrast improvement */
::-moz-placeholder {
  color: hsl(25 6% 55%);
  opacity: 1;
}
::placeholder {
  color: hsl(25 6% 55%);
  opacity: 1;
}
/* Autofill styling — prevent browser from adding ugly blue/yellow bg */
input:-webkit-autofill,
input:-webkit-autofill:hover,
input:-webkit-autofill:focus,
textarea:-webkit-autofill,
select:-webkit-autofill {
  -webkit-text-fill-color: var(--clr-fg);
  -webkit-box-shadow: 0 0 0px 1000px var(--clr-bg) inset;
  -webkit-transition: background-color 5000s ease-in-out 0s;
  transition: background-color 5000s ease-in-out 0s;
}
/* Required asterisk consistency */
.required,
abbr[title] {
  text-decoration: none;
  color: var(--clr-primary);
}
/* =============================================================================
   BUTTON HOVER / ACTIVE STATES
   ============================================================================= */
/* Subtle press feedback on all buttons */
.asc-btn:active:not(:disabled) {
  transform: translateY(1px);
}
/* Ghost button underline on hover for editorial links */
.asc-btn--ghost:hover {
  text-decoration: underline !important;
  text-underline-offset: 3px;
  text-decoration-thickness: 1px;
}
/* =============================================================================
   CARD HOVER POLISH
   ============================================================================= */
.asc-card {
  transition: border-color var(--trans-base);
}
.asc-card:hover {
  border-color: hsl(30 18% 82%); /* slightly darker than --clr-border */
}
/* Product card image hover zoom */
.asc-product-card__image-wrap img {
  transition: transform var(--trans-slow);
}
.asc-product-card:hover .asc-product-card__image-wrap img {
  transform: scale(1.03);
}
/* =============================================================================
   NAVIGATION POLISH
   ============================================================================= */
/* Smooth dropdown reveal */
.asc-navbar__dropdown {
  transition: opacity var(--trans-base), visibility var(--trans-base);
}
/* Active page link indicator */
.asc-navbar__menu-link[aria-current="page"],
.asc-navbar__menu-item--current > .asc-navbar__menu-link {
  color: var(--clr-fg);
}
/* Mobile drawer link hover */
.asc-mobile-drawer__link {
  transition: color var(--trans-fast), padding-left var(--trans-fast);
}
.asc-mobile-drawer__link:hover {
  color: var(--clr-fg);
  padding-left: 0.25rem;
}
/* =============================================================================
   FOOTER REFINEMENTS
   ============================================================================= */
/* Footer link hover — slightly warmer */
.asc-footer a:hover {
  color: var(--clr-primary);
}
/* Footer social icons hover */
.asc-footer__social a {
  transition: color var(--trans-fast), opacity var(--trans-fast);
}
.asc-footer__social a:hover {
  opacity: 1;
  color: var(--clr-primary);
}
/* =============================================================================
   SEARCH OVERLAY REFINEMENT
   ============================================================================= */
/* Stronger input border on the search overlay for clarity */
.asc-search-overlay__input {
  border-bottom-width: 2px;
}
/* =============================================================================
   SHOP / PRODUCT CONSISTENCY
   ============================================================================= */
/* Ensure price display is consistently weighted */
.woocommerce ul.products li.product .price {
  font-family: var(--font-display);
  font-weight: var(--fw-light);
  font-size: 1rem;
  color: var(--clr-fg);
}
/* Archive empty state */
.woocommerce-info.wc-empty-cart-message {
  text-align: center;
  padding: 3rem 2rem !important;
}
/* =============================================================================
   MOBILE RESPONSIVENESS
   ============================================================================= */
@media (max-width: 767px) {
  /* Tighter section spacing on mobile */
  .asc-section {
    padding-block: clamp(3rem, 8vw, 4rem);
  }

  /* Ensure buttons are comfortably tappable */
  .asc-btn {
    min-height: 44px;
  }

  .asc-icon-btn,
  .asc-navbar__icon-btn {
    min-width: 44px;
    min-height: 44px;
  }

  /* Stack the checkout review below form on small screens */
  .woocommerce-checkout .col2-set {
    margin-bottom: 2rem;
  }
}
/* Touch target size for links in mobile nav */
@media (max-width: 767px) {
  .asc-mobile-drawer__link {
    min-height: 44px;
    display: flex;
    align-items: center;
  }
}
/* =============================================================================
   LOADING / TRANSITION STATES
   ============================================================================= */
/* WooCommerce processing overlay */
.woocommerce .blockUI.blockOverlay {
  background-color: var(--clr-bg) !important;
  opacity: 0.7 !important;
}
/* Smooth page transitions for WC AJAX */
.woocommerce .woocommerce-notices-wrapper {
  transition: opacity var(--trans-base);
}
/* =============================================================================
   PRINT STYLES
   ============================================================================= */
@media print {
  .asc-navbar,
  .asc-announcement-bar,
  .asc-footer,
  .asc-mobile-drawer,
  .asc-cart-drawer,
  .asc-search-overlay {
    display: none !important;
  }

  .asc-container {
    max-width: 100%;
    padding: 0;
  }

  body {
    font-size: 12pt;
    color: #000;
    background: #fff;
  }
}
