/* =========================================================
   Cathy Events v3 — tokens, sheets, hero video, photo wall
   Spec: cathyevents-website.md v3.0 (§3 colour, §4 type, §5 layout,
   §6 shape, §7 motion, §8 components, §17 starter kit)
   ========================================================= */
:root {
  /* Colour */
  --c-ivory: #FBF7F1;  --c-sand: #F3EADC;  --c-white: #FFFFFF;  --c-line: #E6DED2;
  --c-ink: #24191C;    --c-ink-soft: #5F5254;
  --c-wine: #4A1020;   --c-wine-deep: #360A17; --c-wine-2: #5C1A2E; --c-ivory-muted: #E3D3CC;
  --c-marigold: #E3BC6A; --c-marigold-hi: #EDCB85; --c-marigold-deep: #835E1F; --c-maroon: #7A1E34;
  --c-gold: #B8893B;   --c-gold-deep: #835E1F; --c-sage: #5E6E58; --c-night: #1D1416; --c-error: #A3282E;
  --c-tint: rgba(227, 188, 106, 0.16);
  --gold-foil: linear-gradient(135deg, #B08236 0%, #E2BF77 26%, #F6E2A6 46%, #D6A95A 66%, #B08236 100%);
  --gold-text-dark: linear-gradient(100deg, #E2BD72 0%, #F8E6B0 38%, #D9AB5B 68%, #F0D292 100%);
  --gold-text-light: linear-gradient(100deg, #6E4510 0%, #A87A2E 45%, #7A4E12 75%, #8C5A1E 100%);

  /* Type (fluid 360 → 1440 px) */
  --f: "Montserrat", "Segoe UI", system-ui, -apple-system, Arial, sans-serif;
  --f-display: "Cormorant Garamond", Georgia, "Times New Roman", serif;
  --t-hero: clamp(3rem, 2.167rem + 3.704vw, 5.5rem);         /* 48 → 88 (serif) */
  --t-h1:   clamp(2.75rem, 2.083rem + 2.963vw, 4.75rem);      /* 44 → 76 */
  --t-h2:   clamp(2.25rem, 1.75rem + 2.222vw, 3.75rem);       /* 36 → 60 */
  --t-h3:   clamp(1.375rem, 1.292rem + 0.37vw, 1.625rem);     /* 22 → 26 */
  --t-stat: clamp(2.5rem, 2.167rem + 1.481vw, 3.5rem);        /* 40 → 56 */
  --t-lead: clamp(1.0625rem, 1.021rem + 0.185vw, 1.1875rem);  /* 17 → 19 */
  --t-body: clamp(0.9375rem, 0.917rem + 0.093vw, 1rem);       /* 15 → 16 */

  /* Space & shape */
  --pad: 20px;
  --inset: clamp(8px, 0.333rem + 0.741vw, 16px);
  --r-sheet: clamp(1.5rem, 1.083rem + 1.852vw, 2.75rem);      /* 24 → 44 */
  --section-y: clamp(4rem, 2.667rem + 5.926vw, 8rem);
  --sheet-y: clamp(3.5rem, 2.333rem + 5.185vw, 7rem);
  --hh: 60px; --htop: 8px;                                     /* header height / offset */
  --shadow-card: 0 24px 60px -18px rgba(36, 25, 28, 0.32);
  --shadow-soft: 0 18px 40px -26px rgba(74, 16, 32, 0.45);

  /* Motion */
  --ease-expo: cubic-bezier(0.16, 1, 0.3, 1);
  --ease-silk: cubic-bezier(0.22, 1, 0.36, 1);
  --ease-inout: cubic-bezier(0.65, 0, 0.35, 1);
  --dur-fast: 180ms; --dur-base: 360ms; --dur-slow: 800ms; --dur-reveal: 1100ms;
}
@media (min-width: 768px)  { :root { --pad: 32px; } }
@media (min-width: 1025px) { :root { --pad: 48px; --hh: 68px; --htop: 10px; } }

/* ---------- Base ---------- */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; scroll-padding-top: calc(var(--htop) + var(--hh) + 24px); }
body {
  margin: 0; padding-top: calc(var(--htop) + var(--hh) + 16px);
  background: var(--c-ivory); color: var(--c-ink-soft);
  font: 400 var(--t-body)/1.7 var(--f); -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale;
  overflow-x: hidden;
}
img, svg, video { display: block; max-width: 100%; }
img { height: auto; }
h1, h2, h3, h4, p, ul, ol, figure, blockquote, dl, dd { margin: 0; }
ul[role="list"], ol[role="list"] { list-style: none; padding: 0; }
a { color: inherit; }
button, input, select, textarea { font: inherit; color: inherit; }
button { cursor: pointer; }
[hidden] { display: none !important; }
::selection { background: var(--c-marigold); color: var(--c-wine); }
:focus-visible { outline: 2px solid var(--c-maroon); outline-offset: 3px; }

h1, h2, h3 { font-family: var(--f-display); color: var(--c-ink); text-wrap: balance; }
h1 { font-size: var(--t-h1); font-weight: 600; line-height: 1.02; letter-spacing: -0.01em; }
h2 { font-size: var(--t-h2); font-weight: 600; line-height: 1.04; letter-spacing: -0.01em; }
h3 { font-size: var(--t-h3); font-weight: 600; line-height: 1.2; letter-spacing: 0; }
p { text-wrap: pretty; }
b, strong { font-weight: 600; }

.visually-hidden { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
.skip-link { position: fixed; left: 16px; top: -80px; z-index: 100; padding: 12px 18px; border-radius: 999px; background: var(--c-wine); color: var(--c-ivory); font-weight: 700; text-decoration: none; transition: top var(--dur-base) var(--ease-silk); }
.skip-link:focus { top: 16px; }

.ce-icon { width: 1.25rem; height: 1.25rem; flex: none; fill: none; stroke: currentColor; stroke-width: 1.75; stroke-linecap: round; stroke-linejoin: round; }
.ce-icon * { vector-effect: non-scaling-stroke; }
.mt-s { margin-top: 16px; } .mt-m { margin-top: 24px; } .mt-l { margin-top: 40px; }

/* ---------- Layout ---------- */
.ce-wrap { width: 100%; max-width: calc(1240px + 2 * var(--pad)); margin-inline: auto; padding-inline: var(--pad); }
.ce-wrap--read { max-width: calc(720px + 2 * var(--pad)); }
.ce-section { padding-block: var(--section-y); }
.ce-section--tight { padding-block: calc(var(--section-y) * 0.55); }
.bg-sand { background: var(--c-sand); }

/* Wine sheet */
.ce-sheet {
  position: relative; isolation: isolate; overflow: hidden;
  margin-inline: var(--inset); border-radius: var(--r-sheet); padding-block: var(--sheet-y);
  background: var(--c-wine); color: var(--c-ivory-muted);
}
.ce-sheet::before {
  content: ""; position: absolute; inset: 0; z-index: -1; opacity: 0.55; pointer-events: none;
  background-image: radial-gradient(rgba(255, 255, 255, 0.13) 1px, transparent 1.4px); background-size: 26px 26px;
  -webkit-mask: radial-gradient(70% 80% at 72% 45%, #000, transparent 72%); mask: radial-gradient(70% 80% at 72% 45%, #000, transparent 72%);
}
.ce-sheet h1, .ce-sheet h2, .ce-sheet h3 { color: var(--c-ivory); }
.ce-sheet .ce-eyebrow, .ce-sheet .ce-accent { color: var(--c-marigold); }
.ce-sheet .ce-lead, .ce-sheet .ce-body { color: var(--c-ivory-muted); }
.ce-sheet :focus-visible { outline-color: var(--c-marigold); }
.ce-sheet + .ce-sheet { margin-top: 16px; }

/* Heads */
.ce-eyebrow { display: inline-flex; align-items: center; gap: 10px; font: 700 0.75rem/1.4 var(--f); letter-spacing: 0.24em; text-transform: uppercase; color: var(--c-marigold-deep); }
.ce-eyebrow::before { content: ""; flex: none; width: 12px; height: 8px; border: 1.5px solid currentColor; border-bottom: 0; border-radius: 12px 12px 0 0; }
.ce-accent { color: var(--c-maroon); }
.ce-lead { font-size: var(--t-lead); line-height: 1.6; max-width: 58ch; }
.ce-body { max-width: 68ch; }
.ce-body + .ce-body { margin-top: 1em; }
.ce-head { margin-bottom: 48px; }
.ce-head h2, .ce-head h1 { margin-top: 14px; }
.ce-head .ce-lead { margin-top: 20px; }
.ce-head--center { text-align: center; }
.ce-head--center .ce-lead { margin-inline: auto; }
.ce-head--split { display: grid; gap: 20px 64px; align-items: end; }
@media (min-width: 1025px) { .ce-head--split { grid-template-columns: 7fr 5fr; } .ce-head--split .ce-lead { margin-top: 0; } }
.ce-center { display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: 12px 22px; margin-top: 48px; }

/* ---------- Buttons ---------- */
.ce-btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 14px; min-height: 56px; padding: 8px 8px 8px 26px;
  border: 0; border-radius: 999px; background: var(--c-marigold); color: var(--c-wine);
  font: 700 0.9375rem/1.1 var(--f); text-decoration: none; white-space: nowrap; cursor: pointer;
  transition: background-color var(--dur-base) var(--ease-silk), box-shadow var(--dur-base), transform var(--dur-fast), opacity var(--dur-base);
}
.ce-btn__ic { display: grid; place-items: center; flex: none; width: 40px; height: 40px; border-radius: 50%; background: var(--c-white); color: var(--c-wine); transition: transform var(--dur-base) var(--ease-silk); }
.ce-btn__ic .ce-icon { width: 18px; height: 18px; stroke-width: 2.2; }
.ce-btn:hover { background: var(--c-marigold-hi); }
.ce-btn:hover .ce-btn__ic { transform: translateX(3px); }
.ce-btn:active { transform: scale(0.98); }
.ce-btn[disabled] { opacity: 0.55; pointer-events: none; }
.ce-btn--ghost { padding: 8px 26px; background: rgba(255, 255, 255, 0.06); color: var(--c-ivory); box-shadow: inset 0 0 0 1px rgba(251, 247, 241, 0.4); }
.ce-btn--ghost:hover { background: rgba(255, 255, 255, 0.14); }
.ce-btn--outline { padding: 8px 26px; background: transparent; color: var(--c-ink); box-shadow: inset 0 0 0 1px var(--c-line); }
.ce-btn--outline:hover { background: var(--c-white); box-shadow: inset 0 0 0 1px var(--c-ink); }
.ce-btn--sm { min-height: 48px; padding: 6px 6px 6px 20px; font-size: 0.875rem; }
.ce-btn--sm .ce-btn__ic { width: 36px; height: 36px; }
.ce-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 14px 22px; }

.ce-link { display: inline-flex; align-items: center; gap: 6px; min-height: 44px; color: var(--c-maroon); font-weight: 700; text-decoration: none; background: linear-gradient(currentColor, currentColor) left calc(50% + 0.8em) / 0% 1.5px no-repeat; transition: background-size var(--dur-base) var(--ease-silk); }
.ce-link:hover, .ce-link:focus-visible { background-size: 100% 1.5px; }
.ce-sheet .ce-link { color: var(--c-ivory); }

.ce-iconbtn { width: 44px; height: 44px; flex: none; display: inline-grid; place-items: center; padding: 0; border-radius: 50%; background: transparent; color: var(--c-ink); border: 1px solid var(--c-line); text-decoration: none; transition: border-color var(--dur-fast), color var(--dur-fast), background-color var(--dur-fast); }
.ce-iconbtn:hover { border-color: var(--c-maroon); color: var(--c-maroon); }
.ce-iconbtn .ce-icon { width: 18px; height: 18px; }
.ce-sheet .ce-iconbtn, .ce-iconbtn--dark { color: var(--c-ivory); border-color: rgba(251, 247, 241, 0.45); background: rgba(54, 10, 23, 0.35); }
.ce-sheet .ce-iconbtn:hover, .ce-iconbtn--dark:hover { border-color: var(--c-marigold); color: var(--c-marigold); }

/* Chips */
.ce-chips { display: flex; flex-wrap: wrap; gap: 8px; margin: 0; padding: 0; list-style: none; }
.ce-chip { display: inline-flex; align-items: center; gap: 8px; padding: 8px 14px; border-radius: 999px; border: 1px solid var(--c-line); background: var(--c-white); font-size: 0.8125rem; font-weight: 600; color: var(--c-ink); }
.ce-chip small { font-size: 0.6875rem; font-weight: 700; letter-spacing: 0.14em; text-transform: uppercase; color: var(--c-ink-soft); }
.ce-chip b { color: var(--c-marigold-deep); font-weight: 800; }
.ce-sheet .ce-chip { background: rgba(255, 255, 255, 0.04); border-color: rgba(255, 255, 255, 0.18); color: var(--c-ivory); }
.ce-sheet .ce-chip small, .ce-sheet .ce-chip b { color: var(--c-marigold); }

.ce-stars { display: inline-flex; flex-wrap: nowrap; gap: 2px; color: var(--c-marigold); }
.ce-stars .ce-icon { width: 14px; height: 14px; max-width: none; flex: none; fill: currentColor; stroke: none; }

/* ---------- Logo (supplied artwork: CE monogram + "Cathy Events" wordmark) ---------- */
.ce-logo { display: inline-flex; align-items: center; gap: 10px; min-height: 44px; flex: none; text-decoration: none; }
.ce-logo img { width: auto; max-width: none; }
.ce-logo__mark { height: 42px; }
.ce-logo__word { height: 24px; margin-top: 2px; }
@media (min-width: 1025px) { .ce-logo__mark { height: 50px; } .ce-logo__word { height: 28px; } }
@media (max-width: 359px) { .ce-logo__word { height: 20px; } }
.ce-logo--stack img { width: 150px; height: auto; }
.ce-intro .ce-header .ce-logo img { animation: ce-rise 900ms var(--ease-expo) both; }
.ce-intro .ce-header .ce-logo__word { animation-delay: 120ms; }

/* ---------- Floating pill header (M11) ---------- */
.ce-header { position: fixed; inset: var(--htop) 0 auto; z-index: 50; padding-inline: var(--inset); pointer-events: none; }
.ce-header__bar {
  pointer-events: auto; max-width: 1240px; height: var(--hh); margin: 0 auto; padding: 0 8px 0 18px;
  display: flex; align-items: center; gap: 12px;
  background: var(--c-white); border: 1px solid var(--c-line); border-radius: 999px;
  box-shadow: 0 1px 2px rgba(74, 16, 32, 0.04), 0 10px 30px -22px rgba(74, 16, 32, 0.35);
  transition: box-shadow var(--dur-base) var(--ease-silk);
}
.ce-header.is-scrolled .ce-header__bar { box-shadow: 0 1px 2px rgba(74, 16, 32, 0.06), 0 18px 40px -20px rgba(74, 16, 32, 0.45); }
.ce-nav { display: none; margin-inline: auto; }
.ce-nav ul { display: flex; gap: clamp(18px, 2vw, 30px); margin: 0; padding: 0; list-style: none; }
.ce-nav a { position: relative; display: inline-flex; align-items: center; min-height: 44px; font-weight: 600; font-size: 0.9375rem; color: var(--c-ink); text-decoration: none; transition: color var(--dur-fast); }
.ce-nav a:hover { color: var(--c-maroon); }
.ce-nav a[aria-current="page"]::after { content: ""; position: absolute; left: 50%; bottom: 2px; width: 5px; height: 5px; border-radius: 50%; background: var(--c-marigold); transform: translateX(-50%); }
.ce-header__end { display: flex; align-items: center; gap: 10px; margin-left: auto; }
.ce-hphone { display: none; align-items: center; gap: 10px; text-decoration: none; color: var(--c-ink); }
.ce-hphone__ic { display: grid; place-items: center; width: 40px; height: 40px; border-radius: 50%; background: var(--c-sand); color: var(--c-maroon); }
.ce-hphone__ic .ce-icon { width: 18px; height: 18px; }
.ce-hphone small { display: block; font: 700 0.5625rem/1.2 var(--f); letter-spacing: 0.18em; text-transform: uppercase; color: var(--c-ink-soft); }
.ce-hphone b { display: block; font-size: 0.875rem; font-weight: 700; }
.ce-header__cta { display: none; }
.ce-header__call { display: inline-grid; }
.ce-menu-btn { background: var(--c-wine); color: var(--c-ivory); border-color: var(--c-wine); }
.ce-menu-btn:hover { background: var(--c-maroon); color: var(--c-ivory); border-color: var(--c-maroon); }
@media (min-width: 560px) { .ce-header__cta { display: inline-flex; } }
@media (min-width: 1025px) {
  .ce-nav { display: block; }
  .ce-header__end { margin-left: 0; }
  .ce-menu-btn, .ce-header__call { display: none; }
  .ce-header__bar { padding-left: 22px; gap: 24px; }
}
@media (min-width: 1240px) { .ce-hphone { display: inline-flex; } }

/* Drawer */
.ce-drawer {
  position: fixed; inset: 0; z-index: 70; display: flex; flex-direction: column; overflow-y: auto;
  padding: 0 var(--pad) calc(28px + env(safe-area-inset-bottom)); background: var(--c-wine); color: var(--c-ivory);
  visibility: hidden; opacity: 0; transition: opacity var(--dur-base) var(--ease-silk), visibility 0s linear var(--dur-base);
}
.ce-drawer.is-open { visibility: visible; opacity: 1; transition: opacity var(--dur-base) var(--ease-silk); }
.ce-drawer__top { display: flex; align-items: center; justify-content: space-between; min-height: calc(var(--hh) + 2 * var(--htop) + 8px); }
.ce-drawer nav ul { margin: 16px 0 0; padding: 0; list-style: none; }
.ce-drawer nav li { opacity: 0; transform: translateY(24px); transition: opacity 600ms var(--ease-expo), transform 600ms var(--ease-expo); transition-delay: calc(80ms + var(--i, 0) * 60ms); }
.ce-drawer.is-open nav li { opacity: 1; transform: none; }
.ce-drawer nav a { display: block; padding: 8px 0; font: 700 2rem/1.15 var(--f); letter-spacing: -0.02em; color: var(--c-ivory); text-decoration: none; }
.ce-drawer nav a[aria-current="page"] { color: var(--c-marigold); }
.ce-drawer__cta { margin-top: 28px; }
.ce-drawer__foot { margin-top: auto; padding-top: 36px; display: grid; gap: 4px; }
.ce-drawer__foot a { display: inline-flex; align-items: center; gap: 12px; min-height: 44px; color: var(--c-ivory); text-decoration: none; font-weight: 600; }
.ce-drawer__foot .ce-icon { color: var(--c-marigold); }
body.menu-open { overflow: hidden; }

/* ---------- Home hero: video (M1, M2, M3) ---------- */
.ce-hero { min-height: min(calc(100svh - 110px), 820px); display: flex; flex-direction: column; justify-content: flex-end; padding-block: clamp(48px, 7vw, 96px) clamp(20px, 3vw, 32px); }
.ce-hero::before { display: none; }
.ce-hero__media { position: absolute; inset: 0; z-index: -2; background: var(--c-wine-deep); }
.ce-hero__media img, .ce-hero__media video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.ce-hero__media video { opacity: 0; transition: opacity 900ms var(--ease-silk); }
.ce-hero__media video.is-playing { opacity: 1; }
.ce-hero::after {
  content: ""; position: absolute; inset: 0; z-index: -1; pointer-events: none;
  background:
    linear-gradient(90deg, rgba(54, 10, 23, 0.92) 0%, rgba(54, 10, 23, 0.74) 36%, rgba(54, 10, 23, 0.24) 70%, rgba(54, 10, 23, 0.12) 100%),
    linear-gradient(180deg, rgba(54, 10, 23, 0.38) 0%, rgba(54, 10, 23, 0) 28%, rgba(54, 10, 23, 0) 60%, rgba(54, 10, 23, 0.86) 100%);
}
@media (max-width: 767px) {
  .ce-hero::after { background: linear-gradient(180deg, rgba(54, 10, 23, 0.45) 0%, rgba(54, 10, 23, 0.55) 30%, rgba(54, 10, 23, 0.94) 100%); }
}
.ce-hero__text { max-width: 720px; }
.ce-hero h1 { margin-top: 26px; font-size: var(--t-hero); line-height: 0.98; letter-spacing: -0.01em; }
.ce-hero .ce-lead { margin-top: 22px; }
.ce-hero__row { display: flex; flex-wrap: wrap; align-items: center; gap: 14px 22px; margin-top: 32px; }
.ce-tag {
  display: inline-flex; align-items: center; gap: 10px; padding: 10px 18px; border-radius: 999px;
  border: 1px solid rgba(251, 247, 241, 0.3); background: rgba(54, 10, 23, 0.35);
  font: 700 0.6875rem/1.2 var(--f); letter-spacing: 0.18em; text-transform: uppercase; color: var(--c-ivory);
}
.ce-tag::before { content: ""; flex: none; width: 8px; height: 8px; border-radius: 50%; background: var(--c-marigold); box-shadow: 0 0 0 4px rgba(233, 169, 58, 0.25); }
.ce-rating-line { display: inline-flex; flex-wrap: wrap; align-items: center; gap: 4px 10px; font-size: 0.8125rem; font-weight: 500; color: var(--c-ivory-muted); }
.ce-rating-line b { color: var(--c-ivory); font-weight: 700; }
.ce-hero__pause { position: absolute; top: 18px; right: 18px; z-index: 2; }
@media (max-width: 1024px) { .ce-hero { padding-top: 80px; } }
@media (min-width: 1025px) { .ce-hero__pause { top: auto; bottom: 24px; right: 24px; } }

.ce-rise { animation: ce-rise var(--dur-reveal) var(--ease-expo) both; animation-delay: var(--d, 0s); }
@keyframes ce-rise { from { opacity: 0; transform: translateY(24px); } }

.ce-stats {
  display: grid; grid-template-columns: repeat(2, 1fr); margin: clamp(36px, 6vw, 64px) 0 0; padding: 0; list-style: none;
  border: 1px solid rgba(255, 255, 255, 0.14); border-radius: 26px;
  background: rgba(54, 10, 23, 0.5); -webkit-backdrop-filter: blur(14px); backdrop-filter: blur(14px);
}
@media (min-width: 768px) { .ce-stats { grid-template-columns: repeat(4, 1fr); } }
.ce-stats li { padding: 20px 12px; text-align: center; }
.ce-stats li + li { border-left: 1px solid rgba(255, 255, 255, 0.12); }
@media (max-width: 767px) { .ce-stats li:nth-child(3) { border-left: 0; } .ce-stats li:nth-child(n + 3) { border-top: 1px solid rgba(255, 255, 255, 0.12); } }
.ce-stats b { display: block; font: 800 var(--t-stat)/1 var(--f); letter-spacing: -0.02em; color: var(--c-ivory); font-variant-numeric: tabular-nums; }
.ce-stats b i { font-style: normal; color: var(--c-marigold); }
.ce-stats li > span { display: block; margin-top: 10px; font: 700 0.6875rem/1.4 var(--f); letter-spacing: 0.18em; text-transform: uppercase; color: var(--c-ivory-muted); }

/* ---------- Inner-page hero (9.3) ---------- */
.ce-phero__grid { display: grid; gap: 40px; align-items: center; }
@media (min-width: 1025px) { .ce-phero__grid { grid-template-columns: 7fr 5fr; gap: 64px; } }
.ce-phero h1 { margin-top: 22px; }
.ce-phero .ce-lead { margin-top: 20px; }
.ce-phero .ce-hero__row { margin-top: 28px; }
.ce-phero__media { position: relative; width: 100%; max-width: 400px; margin: 14px auto 0; }
.ce-crumbs ol { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 22px; padding: 0; list-style: none; font-size: 0.8125rem; font-weight: 600; color: var(--c-ivory-muted); }
.ce-crumbs li + li::before { content: "/"; margin-right: 8px; opacity: 0.55; }
.ce-crumbs a { color: inherit; text-decoration: none; }
.ce-crumbs a:hover { color: var(--c-ivory); text-decoration: underline; text-underline-offset: 3px; }
.ce-crumbs--light ol { color: var(--c-ink-soft); }
.ce-crumbs--light a:hover { color: var(--c-maroon); }
@media (max-width: 1024px) { .ce-phero__media { max-width: 560px; margin-top: 0; } .ce-phero__media .ce-arch { aspect-ratio: 4 / 3; border-radius: 24px; } .ce-phero__media.ce-archframe::before { display: none; } }

/* Arch frame with gold outline */
.ce-archframe { position: relative; isolation: isolate; }
.ce-archframe::before { content: ""; position: absolute; inset: -14px -14px 14px 14px; z-index: -1; border: 1px solid var(--c-gold); border-radius: 999px 999px 22px 22px; opacity: 0.7; }
.ce-arch { position: relative; overflow: hidden; aspect-ratio: 3 / 4; border-radius: 999px 999px 18px 18px; background: var(--c-wine-2); }
.ce-arch img { width: 100%; height: 100%; object-fit: cover; }
.ce-settle img { animation: ce-settle 2.4s var(--ease-silk) both; }
@keyframes ce-settle { from { transform: scale(1.08); } to { transform: scale(1); } }

/* Page head (light pages without a hero sheet) */
.ce-pagehead { padding-top: clamp(32px, 5vw, 64px); padding-bottom: clamp(28px, 4vw, 48px); }
.ce-pagehead__row { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 20px 40px; }
.ce-pagehead h1 { margin-top: 14px; }
.ce-pagehead .ce-lead { margin-top: 18px; }

/* ---------- Occasion strip (M4) ---------- */
.ce-occ { padding-top: clamp(48px, 6vw, 72px); text-align: center; }
.ce-occ__h { font-size: clamp(1.125rem, 1rem + 0.6vw, 1.5rem); font-weight: 700; color: var(--c-ink); letter-spacing: -0.01em; }
.ce-occ__h b { color: var(--c-maroon); font-weight: 800; }
.ce-strip {
  max-width: 1080px; margin: 28px auto 0; overflow: hidden;
  background: var(--c-white); border: 1px solid var(--c-line); border-radius: 999px; box-shadow: var(--shadow-soft);
  -webkit-mask: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent); mask: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent);
}
.ce-strip__t { display: flex; width: max-content; animation: ce-slide 54s linear infinite; }
.ce-strip__t span { padding: 22px 0 22px 28px; font-weight: 600; font-size: 1rem; line-height: 1; color: var(--c-ink-soft); white-space: nowrap; }
.ce-strip__t span::after { content: "✦"; margin-left: 28px; color: var(--c-gold); font-size: 0.7em; }
.ce-strip:hover .ce-strip__t { animation-play-state: paused; }
@keyframes ce-slide { to { transform: translateX(-50%); } }

/* ---------- Celebration cards (M5) ---------- */
.ce-cel { display: grid; gap: 16px; margin: 0; padding: 0; list-style: none; }
@media (min-width: 768px) { .ce-cel { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1025px) {
  .ce-cel { grid-template-columns: 2fr 1fr 1fr; grid-auto-rows: 250px; }
  .ce-cel > :first-child { grid-row: span 2; }
  .ce-cel > :nth-child(6):last-child { grid-column: 1 / -1; }   /* the sixth card becomes a wide banner */
  .ce-cel > :nth-child(6):last-child .ce-ccard { min-height: 0; }
}
.ce-cel > li { display: grid; }
.ce-ccard {
  position: relative; isolation: isolate; min-height: 250px; padding: 22px; overflow: hidden;
  display: flex; flex-direction: column; justify-content: flex-end;
  border-radius: 24px; background: var(--c-wine-deep); color: var(--c-ivory); text-decoration: none;
}
@media (max-width: 1024px) { .ce-cel > :first-child .ce-ccard { min-height: 360px; } }
.ce-ccard__ph { position: absolute; inset: 0; z-index: -2; }
.ce-ccard__ph img {
  position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: 0;
  animation: ce-fx 15s linear infinite; animation-delay: var(--d, -0.6s);
  transition: transform var(--dur-slow) var(--ease-silk);
}
.ce-ccard__ph img:nth-child(2) { animation-delay: calc(var(--d, -0.6s) + 5s); }
.ce-ccard__ph img:nth-child(3) { animation-delay: calc(var(--d, -0.6s) + 10s); }
.ce-ccard__ph img:only-child { animation: none; opacity: 1; }
@keyframes ce-fx { 0% { opacity: 0; } 2% { opacity: 1; } 33% { opacity: 1; } 35% { opacity: 0; } 100% { opacity: 0; } }
.ce-ccard::after { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(180deg, rgba(54, 10, 23, 0) 30%, rgba(54, 10, 23, 0.9) 100%); }
.ce-ccard h3 { color: var(--c-ivory); font-size: 1.125rem; }
.ce-cel > :first-child .ce-ccard h3 { font-size: clamp(1.375rem, 1.2rem + 0.8vw, 1.75rem); }
.ce-ccard p { margin-top: 6px; font-size: 0.875rem; line-height: 1.5; color: var(--c-ivory-muted); }
.ce-ccard__go { position: absolute; top: 16px; right: 16px; width: 38px; height: 38px; display: grid; place-items: center; border-radius: 50%; background: rgba(255, 255, 255, 0.14); border: 1px solid rgba(255, 255, 255, 0.3); transition: background-color var(--dur-base), color var(--dur-base), border-color var(--dur-base); }
.ce-ccard__go .ce-icon { width: 16px; height: 16px; stroke-width: 2.2; }
.ce-ccard:hover .ce-ccard__go, .ce-ccard:focus-visible .ce-ccard__go { background: var(--c-marigold); color: var(--c-wine); border-color: var(--c-marigold); }
.ce-ccard:hover .ce-ccard__ph img { transform: scale(1.06); }
.ce-ccard:focus-visible { outline: 2px solid var(--c-maroon); outline-offset: 3px; }
.ce-cel > :nth-child(2) .ce-ccard { --d: -1.7s; } .ce-cel > :nth-child(3) .ce-ccard { --d: -2.8s; }
.ce-cel > :nth-child(4) .ce-ccard { --d: -3.9s; } .ce-cel > :nth-child(5) .ce-ccard { --d: -5s; } .ce-cel > :nth-child(6) .ce-ccard { --d: -6.1s; }
/* Card still waiting for its photos */
.ce-ccard--soon { background: radial-gradient(120% 90% at 85% 0%, var(--c-wine-2) 0%, var(--c-wine-deep) 60%); }
.ce-ccard--soon::before { content: ""; position: absolute; inset: 0; z-index: -1; opacity: 0.5; background-image: radial-gradient(rgba(255, 255, 255, 0.12) 1px, transparent 1.4px); background-size: 22px 22px; }
.ce-ccard__big { position: absolute; right: 22px; bottom: 70px; z-index: -1; width: 76px; height: 76px; color: var(--c-marigold); opacity: 0.3; }
.ce-ccard__big .ce-icon { width: 100%; height: 100%; stroke-width: 1.2; }
.ce-soon { align-self: flex-start; display: inline-block; margin-top: 12px; padding: 4px 10px; border-radius: 999px; border: 1px solid rgba(255, 255, 255, 0.2); font-size: 0.625rem; font-weight: 700; letter-spacing: 0.14em; text-transform: uppercase; color: var(--c-ivory-muted); }

/* ---------- Why section ---------- */
.ce-why { display: grid; gap: 56px; align-items: center; }
@media (min-width: 1025px) { .ce-why { grid-template-columns: 7fr 5fr; gap: 80px; } }
.ce-why .ce-lead { margin-top: 20px; }
.ce-why .ce-chips { margin-top: 28px; }
.ce-why__media { position: relative; width: 100%; max-width: 380px; margin: 14px auto 0; }
.ce-ratecard { position: absolute; top: 14%; right: -22px; z-index: 2; width: max-content; padding: 12px 16px; border-radius: 18px; background: var(--c-white); box-shadow: var(--shadow-card); color: var(--c-ink); }
.ce-ratecard b { display: flex; align-items: center; gap: 8px; font-size: 1.375rem; font-weight: 800; line-height: 1; }
.ce-ratecard > span { display: block; margin-top: 6px; font-size: 0.75rem; font-weight: 500; color: var(--c-ink-soft); }
.ce-badge { position: absolute; left: -30px; bottom: 44px; z-index: 2; width: 120px; height: 120px; display: grid; place-items: center; border-radius: 50%; background: var(--c-marigold); color: var(--c-wine); box-shadow: var(--shadow-card); }
.ce-badge svg { position: absolute; inset: 0; width: 100%; height: 100%; animation: ce-spin 20s linear infinite; }
.ce-badge text { font: 700 9.5px var(--f); letter-spacing: 0.2em; fill: currentColor; }
.ce-badge b { font: 800 1.75rem/1 var(--f); text-align: center; }
.ce-badge b small { display: block; margin-top: 3px; font-size: 0.625rem; letter-spacing: 0.14em; }
@keyframes ce-spin { to { transform: rotate(360deg); } }
@media (max-width: 480px) { .ce-badge { width: 96px; height: 96px; left: -6px; } .ce-badge b { font-size: 1.375rem; } .ce-ratecard { right: -4px; } }

.ce-feats { display: grid; gap: 16px; margin: clamp(56px, 7vw, 88px) 0 0; padding: 0; list-style: none; }
@media (min-width: 768px) { .ce-feats { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1025px) { .ce-feats { grid-template-columns: repeat(4, 1fr); } }
.ce-feat { height: 100%; padding: 28px 24px; border-radius: 24px; background: rgba(255, 255, 255, 0.05); border: 1px solid rgba(255, 255, 255, 0.1); }
.ce-feat h3 { margin-top: 18px; font-size: 1.0625rem; }
.ce-feat p { margin-top: 10px; font-size: 0.875rem; line-height: 1.6; }
.ce-ic { display: grid; place-items: center; flex: none; width: 44px; height: 44px; border-radius: 50%; background: var(--c-tint); color: var(--c-marigold); }
.ce-ic--light { background: var(--c-sand); color: var(--c-maroon); }

/* ---------- Steps with dotted path (M8) ---------- */
.ce-steps { position: relative; }
.ce-steps__list { display: grid; gap: 44px; margin: 0; padding: 0; list-style: none; text-align: center; }
@media (min-width: 1025px) { .ce-steps__list { grid-template-columns: repeat(3, 1fr); gap: 32px; } }
.ce-steps__path { position: absolute; left: 17%; top: 8px; width: 66%; height: 80px; color: var(--c-gold); pointer-events: none; }
.js .ce-steps__path { clip-path: inset(0 100% 0 0); transition: clip-path 1200ms var(--ease-inout) 200ms; }
.js .ce-steps.is-in .ce-steps__path { clip-path: inset(0); }
@media (max-width: 1024px) { .ce-steps__path { display: none; } }
.ce-step { position: relative; }
.ce-step__num { position: relative; width: 96px; height: 96px; margin: 0 auto 22px; display: grid; place-items: center; border-radius: 50%; background: var(--c-white); box-shadow: var(--shadow-soft); font: 800 1.875rem/1 var(--f); color: var(--c-wine); }
.ce-step__num::before { content: ""; position: absolute; inset: 7px; border: 1px dashed var(--c-gold); border-radius: 50%; }
.ce-step h3 { font-size: 1.1875rem; }
.ce-step p { max-width: 32ch; margin: 10px auto 0; font-size: 0.9375rem; }

/* ---------- Photo wall & review wall (M9, M10) ---------- */
.ce-wallsec { display: grid; gap: 40px; align-items: center; }
@media (min-width: 1025px) { .ce-wallsec { grid-template-columns: 1fr 1fr; gap: 64px; } }
.ce-wallsec .ce-lead { margin-top: 20px; }
.ce-wallsec .ce-chips { margin-top: 24px; }
.ce-wallsec .ce-actions { margin-top: 28px; }
.ce-wall {
  position: relative; display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px;
  height: clamp(420px, 46vw, 640px); overflow: hidden;
  -webkit-mask: linear-gradient(180deg, transparent, #000 14%, #000 86%, transparent);
  mask: linear-gradient(180deg, transparent, #000 14%, #000 86%, transparent);
}
.ce-wall__col { position: relative; overflow: hidden; }
.ce-wall__track { display: grid; gap: 12px; padding-bottom: 12px; animation: ce-up 46s linear infinite; }
.ce-wall__col:nth-child(2) .ce-wall__track { animation-name: ce-down; animation-duration: 54s; }
.ce-wall__col:nth-child(3) .ce-wall__track { animation-duration: 40s; }
.ce-wall__col:focus-within .ce-wall__track, .ce-wall__col.is-held .ce-wall__track,
.ce-wall.is-paused .ce-wall__track, .ce-wall.is-off .ce-wall__track { animation-play-state: paused; }
.ce-wall figure { position: relative; margin: 0; overflow: hidden; border-radius: 18px; aspect-ratio: 3 / 4; background: var(--c-wine-2); }
.ce-wall__col:nth-child(2) figure:nth-child(odd) { aspect-ratio: 1 / 1; }
.ce-wall img { width: 100%; height: 100%; object-fit: cover; }
.ce-wall figcaption { position: absolute; left: 8px; right: 8px; bottom: 8px; padding: 6px 9px; border-radius: 10px; background: rgba(54, 10, 23, 0.72); -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px); font: 700 0.6875rem/1.3 var(--f); color: var(--c-ivory); }
.ce-wall__pause { position: absolute; right: 12px; bottom: 12px; z-index: 2; }
@keyframes ce-up   { from { transform: translate3d(0, 0, 0); }    to { transform: translate3d(0, -50%, 0); } }
@keyframes ce-down { from { transform: translate3d(0, -50%, 0); } to { transform: translate3d(0, 0, 0); } }
@media (max-width: 1024px) {
  .ce-wall:not(.ce-wall--quotes) { height: 340px; margin-inline: calc(-1 * var(--pad)); padding-inline: 12px; }
  .ce-wall:not(.ce-wall--quotes) figure, .ce-wall:not(.ce-wall--quotes) .ce-wall__col:nth-child(2) figure:nth-child(odd) { aspect-ratio: 4 / 5; }
}
@media (max-width: 480px) {
  .ce-wall:not(.ce-wall--quotes) { grid-template-columns: repeat(2, 1fr); }
  .ce-wall:not(.ce-wall--quotes) .ce-wall__col:nth-child(3) { display: none; }
}
/* Review wall */
.ce-wall--quotes { height: clamp(520px, 50vw, 680px); }
.ce-wall--quotes .ce-wall__track { animation-duration: 70s; }
.ce-wall--quotes .ce-wall__col:nth-child(2) .ce-wall__track { animation-duration: 80s; }
.ce-wall--quotes .ce-wall__col:nth-child(3) .ce-wall__track { animation-duration: 64s; }
.ce-wall--quotes figure, .ce-wall--quotes .ce-wall__col:nth-child(2) figure:nth-child(odd) { aspect-ratio: auto; padding: 26px 24px; border-radius: 24px; background: rgba(255, 255, 255, 0.05); border: 1px solid rgba(255, 255, 255, 0.1); overflow: visible; }
.ce-q__mark { display: block; height: 30px; font: 800 3.5rem/1 var(--f); color: var(--c-marigold); }
.ce-wall--quotes blockquote { margin-top: 12px; padding-left: 14px; border-left: 2px solid rgba(233, 169, 58, 0.35); font-size: 0.9375rem; line-height: 1.65; color: var(--c-ivory); }
.ce-wall--quotes figcaption { position: static; margin-top: 20px; padding: 16px 0 0; border-radius: 0; border-top: 1px solid rgba(255, 255, 255, 0.12); background: none; -webkit-backdrop-filter: none; backdrop-filter: none; font-size: 0.875rem; }
.ce-wall--quotes figcaption small { display: block; margin-top: 4px; font-weight: 500; font-size: 0.75rem; color: var(--c-ivory-muted); }
.ce-wall--quotes .ce-stars { margin-top: 8px; }
@media (max-width: 767px) { .ce-wall--quotes { grid-template-columns: 1fr; height: 560px; } .ce-wall--quotes .ce-wall__col:nth-child(n + 2) { display: none; } }
.ce-gpill { display: inline-flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: 6px 12px; padding: 14px 24px; border-radius: 999px; border: 1px solid rgba(255, 255, 255, 0.18); background: rgba(255, 255, 255, 0.04); color: var(--c-ivory); font-size: 0.875rem; font-weight: 500; text-decoration: none; transition: background-color var(--dur-base); }
.ce-gpill:hover { background: rgba(255, 255, 255, 0.1); }
.ce-gpill b { font-weight: 800; }

/* ---------- Service tiles (Home #8) ---------- */
.ce-tiles { display: grid; grid-template-columns: repeat(2, 1fr); gap: 12px; margin: 0; padding: 0; list-style: none; }
@media (min-width: 768px) { .ce-tiles { grid-template-columns: repeat(3, 1fr); gap: 16px; } }
@media (min-width: 1025px) { .ce-tiles { grid-template-columns: repeat(4, 1fr); } }
.ce-tile { height: 100%; display: flex; flex-direction: column; gap: 14px; padding: 22px 20px; border-radius: 20px; background: var(--c-white); border: 1px solid var(--c-line); color: var(--c-ink); text-decoration: none; transition: transform var(--dur-base) var(--ease-silk), box-shadow var(--dur-base) var(--ease-silk), border-color var(--dur-base); }
.ce-tile:hover { transform: translateY(-4px); box-shadow: var(--shadow-card); border-color: transparent; }
.ce-tile:hover .ce-ic--light { background: var(--c-tint); }
.ce-tile b { font-size: 1rem; font-weight: 700; line-height: 1.3; }
.ce-tile span { font-size: 0.8125rem; line-height: 1.5; color: var(--c-ink-soft); }

/* ---------- Brands ---------- */
.ce-brands { display: grid; gap: 24px; margin: 0; padding: 0; list-style: none; }
@media (min-width: 768px) { .ce-brands { grid-template-columns: 1fr 1fr; } }
.ce-brand { height: 100%; display: flex; flex-direction: column; overflow: hidden; border-radius: 24px; background: var(--c-white); border: 1px solid var(--c-line); }
.ce-brand__media { aspect-ratio: 16 / 10; overflow: hidden; }
.ce-brand__media img { width: 100%; height: 100%; object-fit: cover; }
.ce-brand__body { padding: clamp(22px, 3vw, 32px); }
.ce-brand__body h3 { margin-top: 10px; font-size: 1.375rem; }
.ce-brand__body p { margin-top: 10px; }

/* Placeholder for a photo slot the owner hasn't supplied yet (§11) */
.ce-ph { position: relative; width: 100%; height: 100%; min-height: 160px; display: grid; place-content: center; justify-items: center; gap: 10px; padding: 24px; text-align: center; border-radius: inherit; background: radial-gradient(120% 80% at 50% 0%, #F7E4DB 0%, rgba(247, 228, 219, 0) 62%), var(--c-sand); color: var(--c-maroon); }
.ce-ph::before { content: ""; position: absolute; inset: 12px; border: 1px dashed rgba(184, 137, 59, 0.55); border-radius: 14px; pointer-events: none; }
.ce-ph .ce-icon { width: 36px; height: 36px; stroke-width: 1.4; }
.ce-ph__label { font-weight: 700; font-size: 0.9375rem; color: var(--c-ink); }
.ce-ph__slot { font-size: 0.625rem; font-weight: 700; letter-spacing: 0.2em; text-transform: uppercase; color: var(--c-marigold-deep); }
.ce-arch .ce-ph::before { border-radius: 999px 999px 10px 10px; }

/* ---------- FAQ ---------- */
.ce-faqsec { display: grid; gap: 40px; }
@media (min-width: 1025px) { .ce-faqsec { grid-template-columns: 5fr 7fr; gap: 72px; align-items: start; } .ce-faqsec > :first-child { position: sticky; top: calc(var(--htop) + var(--hh) + 32px); } }
.ce-faqsec .ce-lead { margin-top: 20px; }
.ce-faqsec .ce-lead a { color: var(--c-maroon); font-weight: 700; text-underline-offset: 3px; }
.ce-faq { display: grid; gap: 12px; }
.ce-faq details { border-radius: 20px; background: var(--c-white); border: 1px solid var(--c-line); transition: box-shadow var(--dur-base); }
.ce-faq details[open] { box-shadow: var(--shadow-soft); }
.ce-faq summary { display: flex; align-items: center; justify-content: space-between; gap: 20px; min-height: 64px; padding: 16px 18px 16px 24px; list-style: none; cursor: pointer; font-weight: 700; font-size: 1rem; line-height: 1.4; color: var(--c-ink); }
.ce-faq summary::-webkit-details-marker { display: none; }
.ce-faq summary:hover { color: var(--c-maroon); }
.ce-faq__i { flex: none; display: grid; place-items: center; width: 34px; height: 34px; border-radius: 50%; background: var(--c-sand); color: var(--c-maroon); transition: transform var(--dur-base) var(--ease-silk), background-color var(--dur-base); }
.ce-faq__i .ce-icon { width: 16px; height: 16px; stroke-width: 2.2; }
.ce-faq details[open] .ce-faq__i { transform: rotate(45deg); background: var(--c-marigold); color: var(--c-wine); }
.ce-faq__a { padding: 0 24px 22px; max-width: 64ch; }
.ce-faq details[open] .ce-faq__a { animation: ce-rise 320ms var(--ease-silk); }

/* ---------- Enquiry sheet ---------- */
.ce-enq { display: grid; gap: 44px; }
@media (min-width: 1025px) { .ce-enq { grid-template-columns: 5fr 7fr; gap: 72px; align-items: start; } }
.ce-enq .ce-lead { margin-top: 20px; }
.ce-direct { display: grid; gap: 4px; margin: 32px 0 0; padding: 0; list-style: none; }
.ce-direct a, .ce-direct__row { display: inline-flex; align-items: center; gap: 14px; min-height: 52px; color: var(--c-ivory); text-decoration: none; font-weight: 600; }
.ce-direct a:hover { color: var(--c-marigold); }
.ce-direct .ce-ic { width: 40px; height: 40px; }
.ce-direct .ce-ic .ce-icon { width: 18px; height: 18px; }
.ce-enq__photo { display: none; margin-top: 36px; max-width: 360px; aspect-ratio: 4 / 5; border-radius: 24px; overflow: hidden; }
.ce-enq__photo img { width: 100%; height: 100%; object-fit: cover; }
@media (min-width: 1025px) { .ce-enq__photo { display: block; } }
.ce-formcard { background: var(--c-white); border-radius: 28px; padding: clamp(22px, 4vw, 44px); box-shadow: 0 30px 70px -30px rgba(0, 0, 0, 0.5); color: var(--c-ink-soft); }

/* Compact CTA sheet */
.ce-ctasheet { text-align: center; }
.ce-ctasheet h2 { max-width: 18ch; margin: 14px auto 0; }
.ce-ctasheet .ce-lead { margin: 18px auto 0; }
.ce-ctasheet .ce-actions { justify-content: center; margin-top: 32px; }

/* ---------- Form fields (§8.2, §10) ---------- */
.ce-form { display: grid; gap: 24px; }
.ce-form__note { font-size: 0.8125rem; color: var(--c-ink-soft); }
.ce-form__row { display: grid; gap: 24px; }
@media (min-width: 640px) { .ce-form__row--2 { grid-template-columns: 1fr 1fr; } }
.ce-field { display: grid; gap: 8px; align-content: start; min-width: 0; }
.ce-label, .ce-fieldset legend { padding: 0; font-weight: 600; font-size: 0.875rem; line-height: 1.4; color: var(--c-ink); }
.ce-label .req, .ce-fieldset legend .req { color: var(--c-maroon); }
.ce-label .opt, .ce-fieldset legend .opt { font-weight: 400; color: var(--c-ink-soft); }
.ce-form input:not([type="radio"]):not([type="checkbox"]), .ce-form select, .ce-form textarea {
  width: 100%; min-height: 54px; padding: 0.875rem 1.125rem;
  font: 400 1rem/1.4 var(--f); color: var(--c-ink);
  background: var(--c-ivory); border: 1px solid var(--c-line); border-radius: 14px;
  transition: border-color var(--dur-fast), box-shadow var(--dur-fast), background-color var(--dur-fast);
  -webkit-appearance: none; appearance: none;
}
.ce-form textarea { min-height: 128px; resize: vertical; }
.ce-form input::placeholder, .ce-form textarea::placeholder { color: #8E8183; }
.ce-form input:focus, .ce-form select:focus, .ce-form textarea:focus { outline: none; background: var(--c-white); border-color: var(--c-marigold-deep); box-shadow: 0 0 0 4px rgba(233, 169, 58, 0.22); }
.ce-form [aria-invalid="true"] { border-color: var(--c-error) !important; }
.ce-form input[type="date"] { min-width: 0; }
.ce-form input[type="date"]:disabled { opacity: 0.45; }
.ce-tel { display: flex; }
.ce-tel__prefix { display: grid; place-items: center; padding: 0 14px; border: 1px solid var(--c-line); border-right: 0; border-radius: 14px 0 0 14px; background: var(--c-sand); color: var(--c-ink-soft); font-weight: 600; }
.ce-form .ce-tel input { border-radius: 0 14px 14px 0; }
.ce-fieldset { min-width: 0; margin: 0; padding: 0; border: 0; }
.ce-chipset { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 10px; }
.ce-choice { position: relative; display: inline-flex; }
.ce-choice input { position: absolute; inset: 0; z-index: 1; width: 100%; height: 100%; margin: 0; opacity: 0; cursor: pointer; }
.ce-choice span { display: inline-flex; align-items: center; gap: 6px; min-height: 46px; padding: 0 16px; border: 1px solid var(--c-line); border-radius: 999px; background: var(--c-white); font-size: 0.875rem; font-weight: 500; line-height: 1.2; color: var(--c-ink); transition: background-color var(--dur-fast), border-color var(--dur-fast), color var(--dur-fast); }
.ce-choice span .ce-icon { width: 15px; height: 15px; display: none; stroke-width: 2.2; }
.ce-choice:hover span { border-color: var(--c-gold); }
.ce-choice input:checked + span { background: var(--c-tint); border-color: var(--c-maroon); color: var(--c-maroon); font-weight: 600; }
.ce-choice input:checked + span .ce-icon { display: block; }
.ce-choice input:focus-visible + span { outline: 2px solid var(--c-maroon); outline-offset: 3px; }
.ce-fieldset[aria-invalid="true"] .ce-choice span { border-color: rgba(163, 40, 46, 0.55); }
.ce-check { display: inline-flex; align-items: center; gap: 10px; min-height: 44px; font-size: 0.9375rem; cursor: pointer; justify-self: start; color: var(--c-ink); }
.ce-check input { width: 20px; height: 20px; margin: 0; accent-color: var(--c-maroon); cursor: pointer; }
.ce-error { display: flex; align-items: flex-start; gap: 6px; font-size: 0.875rem; line-height: 1.45; color: var(--c-error); }
.ce-error:empty { display: none; }
.ce-error .ce-icon { width: 16px; height: 16px; margin-top: 2px; }
.ce-more { justify-self: start; display: inline-flex; align-items: center; gap: 10px; text-align: left; min-height: 44px; padding: 0; border: 0; background: none; color: var(--c-maroon); font-weight: 700; font-size: 0.9375rem; }
.ce-more .ce-icon { width: 18px; height: 18px; stroke-width: 2.2; transition: transform var(--dur-base) var(--ease-silk); }
.ce-more[aria-expanded="true"] .ce-icon { transform: rotate(45deg); }
.ce-form__more { display: grid; gap: 24px; }
.ce-form__more:not([hidden]) { animation: ce-rise 450ms var(--ease-silk); }
.ce-form__submit { display: grid; gap: 14px; }
.ce-form__submit .ce-btn { justify-self: start; }
@media (max-width: 639px) { .ce-form__submit .ce-btn { justify-self: stretch; justify-content: space-between; } }
.ce-form__alt { font-size: 0.9375rem; }
.ce-form__alt a { color: var(--c-maroon); font-weight: 700; text-underline-offset: 3px; }
.ce-form__privacy { font-size: 0.8125rem; }
.ce-form__privacy a { color: inherit; text-underline-offset: 3px; }
.ce-form__status { font-size: 0.9375rem; color: var(--c-error); }
.ce-form__status a { color: inherit; }
.ce-hp { position: absolute !important; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.ce-spinner { display: none; width: 16px; height: 16px; border: 2px solid currentColor; border-right-color: transparent; border-radius: 50%; animation: ce-spin 0.8s linear infinite; }
.is-loading .ce-spinner { display: block; }
.is-loading .ce-btn__arrow { display: none; }
.ce-sendpanel { display: grid; justify-items: center; gap: 16px; padding: 12px 0; text-align: center; }
.ce-sendpanel h3 { color: var(--c-ink); font-size: 1.375rem; }
.ce-sendpanel p { max-width: 44ch; }
.ce-sendpanel .ce-actions { justify-content: center; margin-top: 6px; }
.ce-sendpanel .ce-btn--outline { padding-right: 8px; }
.ce-sendpanel .ce-more { justify-self: center; }
.ce-checkmark { width: 72px; height: 72px; color: var(--c-sage); }
.ce-checkmark circle, .ce-checkmark path { fill: none; stroke: currentColor; stroke-width: 1.75; stroke-linecap: round; stroke-linejoin: round; stroke-dasharray: 1; stroke-dashoffset: 1; }
.is-drawn .ce-checkmark circle { animation: ce-draw 700ms var(--ease-silk) forwards; }
.is-drawn .ce-checkmark path { animation: ce-draw 600ms var(--ease-silk) 450ms forwards; }

/* ---------- Footer ---------- */
.ce-footer { margin: 16px var(--inset) 0; padding: clamp(56px, 7vw, 96px) 0 calc(28px + env(safe-area-inset-bottom)); border-radius: var(--r-sheet) var(--r-sheet) 0 0; background: var(--c-wine); color: var(--c-ivory-muted); font-size: 0.9375rem; }
.ce-footer__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 40px 24px; }
.ce-footer__brand, .ce-footer__contact { grid-column: 1 / -1; }
@media (min-width: 768px) { .ce-footer__grid { grid-template-columns: repeat(3, 1fr); } .ce-footer__contact { grid-column: auto; } }
@media (min-width: 1025px) { .ce-footer__grid { grid-template-columns: 1.5fr 1fr 0.8fr 1.2fr; } .ce-footer__brand { grid-column: auto; } }
.ce-footer__brand p { margin-top: 18px; max-width: 30ch; }
.ce-footer h2 { margin-bottom: 16px; font: 700 0.75rem/1.4 var(--f); letter-spacing: 0.22em; text-transform: uppercase; color: var(--c-marigold); }
.ce-footer ul { margin: 0; padding: 0; list-style: none; }
.ce-footer li + li { margin-top: 2px; }
.ce-footer a { display: inline-flex; align-items: center; min-height: 36px; color: inherit; text-decoration: none; transition: color var(--dur-fast); }
.ce-footer a:hover { color: var(--c-ivory); }
.ce-social { display: flex; gap: 10px; margin-top: 22px; }
.ce-social a { width: 44px; height: 44px; justify-content: center; border: 1px solid rgba(205, 191, 180, 0.3); border-radius: 50%; }
.ce-social a:hover { border-color: var(--c-marigold); color: var(--c-marigold); }
.ce-social .ce-icon { width: 18px; height: 18px; }
.ce-footer__rule { height: 1px; margin: clamp(44px, 6vw, 64px) 0 22px; background: rgba(255, 255, 255, 0.12); }
.ce-footer__bottom { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px 32px; font-size: 0.8125rem; }
.ce-footer__bottom ul { display: flex; flex-wrap: wrap; gap: 0 22px; }

/* ---------- Mobile action bar ---------- */
.ce-actionbar { position: fixed; inset: auto 0 0; z-index: 60; display: none; grid-template-columns: repeat(3, 1fr); background: var(--c-white); border-top: 1px solid var(--c-line); padding-bottom: env(safe-area-inset-bottom); transition: transform var(--dur-base) var(--ease-silk); }
.ce-actionbar.is-hidden { transform: translateY(100%); }
.ce-actionbar a { min-height: 60px; display: grid; place-content: center; justify-items: center; gap: 4px; font: 700 0.6875rem/1 var(--f); letter-spacing: 0.1em; text-transform: uppercase; color: var(--c-ink); text-decoration: none; }
.ce-actionbar a + a { border-left: 1px solid var(--c-line); }
.ce-actionbar .ce-icon { width: 20px; height: 20px; color: var(--c-maroon); }
.ce-actionbar a:last-child { background: var(--c-marigold); color: var(--c-wine); border-left: 0; }
.ce-actionbar a:last-child .ce-icon { color: var(--c-wine); }
@media (max-width: 767px) { .ce-actionbar { display: grid; } body { padding-bottom: calc(60px + env(safe-area-inset-bottom)); } }

/* ---------- About ---------- */
.ce-split { display: grid; gap: 44px; align-items: center; }
@media (min-width: 1025px) { .ce-split { grid-template-columns: 5fr 7fr; gap: 80px; } .ce-split--rev { grid-template-columns: 7fr 5fr; } .ce-split--rev > :first-child { order: 2; } }
.ce-split h2 { margin-top: 14px; }
.ce-photo { overflow: hidden; border-radius: 24px; background: var(--c-sand); }
.ce-photo img { width: 100%; height: 100%; object-fit: cover; }
.ce-statcards { display: grid; grid-template-columns: repeat(2, 1fr); gap: 12px; margin: 0; padding: 0; list-style: none; }
@media (min-width: 768px) { .ce-statcards { grid-template-columns: repeat(4, 1fr); gap: 16px; } }
.ce-statcards li { padding: 26px 18px; border-radius: 22px; background: var(--c-white); border: 1px solid var(--c-line); text-align: center; }
.ce-statcards b { display: block; font: 800 var(--t-stat)/1 var(--f); letter-spacing: -0.02em; color: var(--c-ink); font-variant-numeric: tabular-nums; }
.ce-statcards b i { font-style: normal; color: var(--c-marigold-deep); }
.ce-statcards li > span { display: block; margin-top: 10px; font: 700 0.6875rem/1.4 var(--f); letter-spacing: 0.16em; text-transform: uppercase; color: var(--c-ink-soft); }
.ce-vm { display: grid; gap: 16px; margin: 0; padding: 0; list-style: none; }
@media (min-width: 1025px) { .ce-vm { grid-template-columns: 1fr 1fr; gap: 24px; } }
.ce-vm li { padding: clamp(28px, 4vw, 44px); border-radius: 24px; background: var(--c-white); border: 1px solid var(--c-line); }
.ce-vm .ce-q__mark { margin-top: 18px; color: var(--c-marigold); }
.ce-vm p { margin-top: 12px; font-size: clamp(1.0625rem, 1rem + 0.3vw, 1.25rem); line-height: 1.6; font-weight: 500; color: var(--c-ink); }
.ce-values > img { position: absolute; inset: 0; z-index: -2; width: 100%; height: 100%; object-fit: cover; }
.ce-values::after { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(180deg, rgba(54, 10, 23, 0.86), rgba(54, 10, 23, 0.93)); }
.ce-values .ce-feats { margin-top: 0; }
@media (min-width: 1025px) { .ce-values .ce-feats { grid-template-columns: repeat(3, 1fr); } }
.ce-bts { margin: 0; }
.ce-bts .ce-photo { aspect-ratio: 16 / 9; }
@media (max-width: 767px) { .ce-bts .ce-photo { aspect-ratio: 4 / 3; } }
.ce-bts figcaption { margin-top: 14px; font-size: 0.9375rem; font-weight: 500; }
.ce-brandrow + .ce-brandrow { margin-top: clamp(56px, 7vw, 96px); }
.ce-brandrow .ce-photo { aspect-ratio: 4 / 3; }
.ce-brandrow h3 { margin-top: 12px; font-size: clamp(1.5rem, 1.3rem + 1vw, 2.125rem); font-weight: 800; letter-spacing: -0.02em; }
.ce-brandrow .ce-body { margin-top: 16px; }
.ce-ticks { display: grid; gap: 10px; margin: 22px 0 0; padding: 0; list-style: none; }
.ce-ticks li { display: flex; align-items: flex-start; gap: 12px; color: var(--c-ink); font-weight: 500; }
.ce-ticks li::before { content: ""; flex: none; width: 20px; height: 20px; margin-top: 2px; border-radius: 50%; background: var(--c-tint) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%237A1E34' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E") center / 12px no-repeat; }
.ce-quotes { display: grid; gap: 16px; margin: 0; padding: 0; list-style: none; }
@media (min-width: 1025px) { .ce-quotes { grid-template-columns: repeat(3, 1fr); gap: 24px; } }
.ce-quotecard { height: 100%; display: flex; flex-direction: column; gap: 14px; padding: 28px; border-radius: 24px; background: var(--c-white); border: 1px solid var(--c-line); }
.ce-quotecard blockquote { color: var(--c-ink); font-weight: 500; line-height: 1.6; }
.ce-quotecard figcaption { margin-top: auto; padding-top: 14px; border-top: 1px solid var(--c-line); font-weight: 700; font-size: 0.875rem; color: var(--c-ink); }
.ce-quotecard figcaption small { display: block; margin-top: 2px; font-weight: 500; color: var(--c-ink-soft); }

/* ---------- Décor ---------- */
.ce-subnav, .ce-filters { position: sticky; top: calc(var(--htop) + var(--hh) + 10px); z-index: 20; padding-inline: var(--inset); margin-top: 20px; }
.ce-subnav ul, .ce-filters ul { max-width: max-content; margin: 0 auto; padding: 6px; display: flex; gap: 4px; list-style: none; overflow-x: auto; scrollbar-width: none; background: var(--c-white); border: 1px solid var(--c-line); border-radius: 999px; box-shadow: var(--shadow-soft); }
.ce-subnav ul::-webkit-scrollbar, .ce-filters ul::-webkit-scrollbar { display: none; }
@media (max-width: 767px) { .ce-subnav ul, .ce-filters ul { max-width: 100%; } }
.ce-subnav a, .ce-filter { display: inline-flex; align-items: center; gap: 6px; min-height: 44px; padding: 0 18px; border: 0; border-radius: 999px; background: transparent; white-space: nowrap; text-decoration: none; font-weight: 600; font-size: 0.875rem; color: var(--c-ink-soft); transition: background-color var(--dur-fast), color var(--dur-fast); }
.ce-subnav a:hover, .ce-filter:hover { color: var(--c-ink); }
.ce-subnav a.is-active, .ce-filter[aria-pressed="true"] { background: var(--c-marigold); color: var(--c-wine); }
.ce-filter .n { font-size: 0.75rem; opacity: 0.75; }
.ce-cat { padding-top: var(--section-y); scroll-margin-top: calc(var(--htop) + var(--hh) + 80px); }
.ce-cat__grid { display: grid; gap: 44px; align-items: center; }
.ce-cat__media { width: 100%; max-width: 380px; margin: 14px auto 0; }
@media (min-width: 1025px) {
  .ce-cat__grid { grid-template-columns: 5fr 7fr; gap: 88px; }
  .ce-cat--mirror .ce-cat__grid { grid-template-columns: 7fr 5fr; }
  .ce-cat--mirror .ce-cat__media { order: 2; }
}
.ce-cat h2 { margin-top: 14px; }
.ce-cat .ce-body { margin-top: 20px; }
.ce-cat .ce-actions { margin-top: 30px; }
.ce-strip4 { display: grid; grid-template-columns: repeat(2, 1fr); gap: 12px; margin: clamp(32px, 4vw, 48px) 0 0; padding: 0; list-style: none; }
@media (min-width: 768px) { .ce-strip4 { grid-template-columns: repeat(4, 1fr); gap: 16px; } }
.ce-tilephoto { position: relative; display: block; overflow: hidden; aspect-ratio: 1; border-radius: 18px; background: var(--c-sand); }
.ce-tilephoto img { width: 100%; height: 100%; object-fit: cover; transition: transform var(--dur-slow) var(--ease-silk); }
.ce-tilephoto:hover img { transform: scale(1.05); }
.ce-cap { position: absolute; left: 8px; right: 8px; bottom: 8px; padding: 6px 10px; border-radius: 10px; background: rgba(54, 10, 23, 0.72); -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px); font: 700 0.6875rem/1.3 var(--f); color: var(--c-ivory); }

/* ---------- Services page ---------- */
.ce-group + .ce-group { margin-top: clamp(56px, 7vw, 96px); }
.ce-group__head { display: flex; align-items: center; gap: 20px; margin-bottom: 28px; }
.ce-group__head .ce-eyebrow { white-space: nowrap; }
.ce-group__head::after { content: ""; flex: 1; height: 1px; background: var(--c-line); }
.ce-svcgrid { display: grid; gap: 16px; margin: 0; padding: 0; list-style: none; }
@media (min-width: 600px) { .ce-svcgrid { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1025px) { .ce-svcgrid { grid-template-columns: repeat(4, 1fr); gap: 20px; } }
.ce-svccard { height: 100%; display: flex; flex-direction: column; overflow: hidden; border-radius: 22px; background: var(--c-white); border: 1px solid var(--c-line); scroll-margin-top: calc(var(--htop) + var(--hh) + 24px); transition: transform var(--dur-base) var(--ease-silk), box-shadow var(--dur-base) var(--ease-silk); }
.ce-svccard:hover { transform: translateY(-4px); box-shadow: var(--shadow-card); }
.ce-svccard__media { aspect-ratio: 4 / 3; overflow: hidden; border-radius: 22px 22px 0 0; }
.ce-svccard__media img { width: 100%; height: 100%; object-fit: cover; }
.ce-svccard__media .ce-ph { padding-bottom: 40px; }
.ce-svccard__body { position: relative; padding: 0 22px 26px; }
.ce-svccard__body .ce-ic { position: relative; margin: -26px 0 14px; box-sizing: content-box; border: 4px solid var(--c-white); }
.ce-svccard h3 { font-size: 1.125rem; }
.ce-svccard p { margin-top: 8px; font-size: 0.875rem; line-height: 1.6; }

/* ---------- Gallery ---------- */
.ce-gallery { padding-top: clamp(28px, 3vw, 40px); }
.ce-masonry { columns: 2; column-gap: 10px; margin: 0; padding: 0; list-style: none; }
.ce-masonry > li { break-inside: avoid; margin-bottom: 10px; }
@media (min-width: 1025px) { .ce-masonry { columns: 3; column-gap: 16px; } .ce-masonry > li { margin-bottom: 16px; } }
.ce-work { position: relative; display: block; overflow: hidden; border-radius: 18px; background: var(--c-sand); cursor: zoom-in; }
.ce-work img { width: 100%; height: auto; transition: transform var(--dur-slow) var(--ease-silk); }
.ce-work:hover img { transform: scale(1.04); }
.ce-empty { display: grid; justify-items: center; gap: 16px; padding: 64px 0; text-align: center; }
.ce-empty p { max-width: 46ch; }
.ce-lightbox { position: fixed; inset: 0; z-index: 90; display: grid; grid-template-rows: auto minmax(0, 1fr) auto; background: rgba(29, 20, 22, 0.96); color: var(--c-ivory); visibility: hidden; opacity: 0; transition: opacity 350ms var(--ease-silk), visibility 0s linear 350ms; }
.ce-lightbox.is-open { visibility: visible; opacity: 1; transition: opacity 350ms var(--ease-silk); }
.ce-lightbox__top { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 12px var(--pad); }
.ce-lightbox__count { font-size: 0.875rem; font-weight: 600; letter-spacing: 0.1em; color: var(--c-ivory-muted); font-variant-numeric: tabular-nums; }
.ce-lightbox__stage { position: relative; min-height: 0; touch-action: pan-y; }
.ce-lightbox__stage img { position: absolute; inset: 0; margin: auto; width: auto; height: auto; max-width: calc(100% - 2 * var(--pad)); max-height: 100%; object-fit: contain; border-radius: 14px; transform: scale(0.92); transition: transform 350ms var(--ease-silk), opacity 200ms; }
.ce-lightbox.is-open .ce-lightbox__stage img { transform: none; }
.ce-lightbox__stage img.is-swapping { opacity: 0; }
.ce-lightbox__nav { position: absolute; top: 50%; transform: translateY(-50%); }
.ce-lightbox__nav--prev { left: max(12px, calc(var(--pad) - 32px)); }
.ce-lightbox__nav--next { right: max(12px, calc(var(--pad) - 32px)); }
.ce-lightbox__bottom { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px 24px; padding: 16px var(--pad) calc(20px + env(safe-area-inset-bottom)); }
.ce-lightbox__cap { font-weight: 700; font-size: 1rem; }
@media (max-width: 767px) { .ce-lightbox__nav { display: none; } .ce-lightbox__bottom .ce-btn { width: 100%; justify-content: space-between; } }

/* ---------- Contact ---------- */
.ce-status { display: inline-flex; align-items: center; gap: 10px; min-height: 44px; padding: 0 18px; border: 1px solid var(--c-line); border-radius: 999px; background: var(--c-white); font-size: 0.875rem; font-weight: 600; color: var(--c-ink-soft); }
.ce-status::before { content: ""; width: 8px; height: 8px; border-radius: 50%; background: var(--c-ink-soft); }
.ce-status[data-open-status="open"]::before { background: var(--c-sage); box-shadow: 0 0 0 4px rgba(94, 110, 88, 0.18); }
.ce-ccards { display: grid; gap: 12px; margin: 0; padding: 0; list-style: none; }
@media (min-width: 600px) { .ce-ccards { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1025px) { .ce-ccards { grid-template-columns: repeat(4, 1fr); gap: 16px; } }
.ce-contact { height: 100%; display: flex; flex-direction: column; gap: 6px; padding: 26px 22px; border-radius: 24px; background: var(--c-white); border: 1px solid var(--c-line); color: var(--c-ink); text-decoration: none; transition: transform var(--dur-base) var(--ease-silk), box-shadow var(--dur-base) var(--ease-silk), border-color var(--dur-base); }
.ce-contact:hover { transform: translateY(-4px); box-shadow: var(--shadow-card); border-color: transparent; }
.ce-contact .ce-ic { margin-bottom: 12px; }
.ce-contact__label { font-size: 0.6875rem; font-weight: 700; letter-spacing: 0.18em; text-transform: uppercase; color: var(--c-marigold-deep); }
.ce-contact__value { font-weight: 800; font-size: 1.125rem; letter-spacing: -0.01em; overflow-wrap: anywhere; }
.ce-contact__hint { margin-top: auto; padding-top: 4px; font-size: 0.8125rem; color: var(--c-ink-soft); }
.ce-cform { display: grid; gap: 44px; }
@media (min-width: 1025px) { .ce-cform { grid-template-columns: 7fr 5fr; gap: 64px; align-items: start; } .ce-cform__photo { position: sticky; top: calc(var(--htop) + var(--hh) + 32px); } }
.ce-cform .ce-lead { margin-top: 18px; margin-bottom: 32px; }
.ce-cform__photo { aspect-ratio: 4 / 5; overflow: hidden; border-radius: 24px; }
.ce-cform__photo img { width: 100%; height: 100%; object-fit: cover; }
@media (max-width: 1024px) { .ce-cform__photo { display: none; } }
.ce-tablist { display: inline-flex; flex-wrap: wrap; gap: 4px; padding: 6px; margin-bottom: 28px; border-radius: 999px; background: var(--c-white); border: 1px solid var(--c-line); }
.ce-offices { display: grid; gap: 32px; }
@media (min-width: 1025px) { .ce-offices { grid-template-columns: 5fr 7fr; gap: 56px; align-items: stretch; } }
.ce-office h3 { margin-top: 12px; font-size: 1.5rem; font-weight: 800; }
.ce-office address { margin-top: 12px; font-style: normal; max-width: 36ch; }
.ce-office .ce-actions { margin-top: 22px; }
.ce-map { position: relative; min-height: 360px; overflow: hidden; border-radius: 24px; background: var(--c-white); border: 1px solid var(--c-line); }
.ce-map::before { content: ""; position: absolute; inset: 0; background: repeating-linear-gradient(0deg, transparent 0 39px, rgba(184, 137, 59, 0.14) 39px 40px), repeating-linear-gradient(90deg, transparent 0 39px, rgba(184, 137, 59, 0.14) 39px 40px), linear-gradient(115deg, transparent 0 46%, var(--c-sand) 46% 49%, transparent 49%), linear-gradient(25deg, transparent 0 62%, var(--c-sand) 62% 64%, transparent 64%); }
.ce-map__ph { position: absolute; inset: 0; display: grid; place-content: center; justify-items: center; gap: 14px; padding: 24px; text-align: center; }
.ce-map__pin { display: grid; place-items: center; width: 56px; height: 56px; border-radius: 50%; background: var(--c-wine); color: var(--c-marigold); box-shadow: var(--shadow-card); }
.ce-map__pin .ce-icon { width: 24px; height: 24px; }
.ce-map__ph p { font-weight: 800; font-size: 1.125rem; color: var(--c-ink); }
.ce-map iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }

/* ---------- Thank you ---------- */
.ce-thanks { display: grid; gap: 44px; align-items: center; }
@media (min-width: 1025px) { .ce-thanks { grid-template-columns: 7fr 5fr; gap: 88px; } }
.ce-thanks h1 { margin-top: 22px; }
.ce-next { display: grid; gap: 14px; margin: 26px 0 0; padding: 0; list-style: none; counter-reset: step; }
.ce-next li { display: grid; grid-template-columns: 44px 1fr; gap: 14px; align-items: center; color: var(--c-ink); font-weight: 500; }
.ce-next li::before { counter-increment: step; content: counter(step, decimal-leading-zero); display: grid; place-items: center; width: 44px; height: 44px; border-radius: 50%; background: var(--c-white); box-shadow: var(--shadow-soft); font-weight: 800; font-size: 0.875rem; color: var(--c-wine); }
.ce-thanks .ce-actions { margin-top: 36px; }
.ce-thanks__photo { aspect-ratio: 4 / 5; max-width: 420px; width: 100%; margin-inline: auto; }

/* ---------- Journal & article ---------- */
.ce-jcard { display: grid; overflow: hidden; border-radius: 28px; background: var(--c-white); border: 1px solid var(--c-line); color: var(--c-ink); text-decoration: none; transition: box-shadow var(--dur-base) var(--ease-silk), transform var(--dur-base) var(--ease-silk); }
.ce-jcard:hover { box-shadow: var(--shadow-card); transform: translateY(-4px); }
@media (min-width: 1025px) { .ce-jcard { grid-template-columns: 7fr 5fr; } }
.ce-jcard__media { aspect-ratio: 16 / 9; overflow: hidden; }
@media (min-width: 1025px) { .ce-jcard__media { aspect-ratio: auto; min-height: 100%; } }
.ce-jcard__media img { width: 100%; height: 100%; object-fit: cover; transition: transform var(--dur-slow) var(--ease-silk); }
.ce-jcard:hover .ce-jcard__media img { transform: scale(1.04); }
.ce-jcard__body { display: flex; flex-direction: column; justify-content: center; gap: 14px; padding: clamp(24px, 4vw, 48px); }
.ce-jcard__body h2 { font-size: clamp(1.5rem, 1.25rem + 1vw, 2.125rem); }
.ce-meta { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 14px; font-size: 0.8125rem; font-weight: 600; color: var(--c-ink-soft); }
.ce-meta .ce-chip { padding: 5px 12px; background: var(--c-tint); border-color: transparent; color: var(--c-maroon); }
.ce-article__head h1 { margin-top: 16px; font-size: clamp(2rem, 1.6rem + 2vw, 3.25rem); }
.ce-article__head .ce-lead { margin-top: 20px; }
.ce-article__cover { margin-top: 36px; aspect-ratio: 16 / 9; }
.ce-prose { font-size: 1.0625rem; line-height: 1.8; }
.ce-prose > * + * { margin-top: 1.2em; }
.ce-prose > :first-child { margin-top: 0; }
.ce-prose h2 { margin-top: 1.8em; font-size: clamp(1.5rem, 1.3rem + 0.9vw, 2rem); }
.ce-prose h3 { margin-top: 1.6em; font-size: 1.1875rem; }
.ce-prose ul { padding-left: 1.2em; }
.ce-prose li + li { margin-top: 0.5em; }
.ce-prose li::marker { color: var(--c-marigold-deep); }
.ce-prose strong { color: var(--c-ink); }
.ce-prose a:not(.ce-btn) { color: var(--c-maroon); font-weight: 600; text-underline-offset: 3px; }
.ce-pull { margin-block: 2em; padding: 28px 30px; border-radius: 24px; background: var(--c-wine); color: var(--c-ivory); font-weight: 700; font-size: 1.25rem; line-height: 1.45; letter-spacing: -0.01em; }
.ce-pull::before { content: "\201C"; display: block; height: 28px; font-size: 3.5rem; line-height: 1; color: var(--c-marigold); }
.ce-inline-cta { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 16px 24px; margin-block: 2.2em; padding: 24px 28px; border-radius: 24px; background: var(--c-sand); }
.ce-inline-cta p { margin: 0; font-weight: 800; font-size: 1.125rem; color: var(--c-ink); }
.ce-related { display: grid; gap: 16px; margin: 0; padding: 0; list-style: none; }
@media (min-width: 768px) { .ce-related { grid-template-columns: repeat(3, 1fr); } }
.ce-related a { height: 100%; display: flex; flex-direction: column; gap: 8px; padding: 24px; border-radius: 22px; background: var(--c-white); border: 1px solid var(--c-line); color: var(--c-ink); text-decoration: none; transition: transform var(--dur-base) var(--ease-silk), box-shadow var(--dur-base); }
.ce-related a:hover { transform: translateY(-3px); box-shadow: var(--shadow-card); }
.ce-related strong { font-weight: 800; font-size: 1.0625rem; }
.ce-related span { font-size: 0.875rem; color: var(--c-ink-soft); }
.ce-updated { margin-top: 14px; font-size: 0.8125rem; font-weight: 600; }

/* ---------- 404 ---------- */
.ce-404 { min-height: calc(100svh - 160px); display: grid; place-items: center; text-align: center; }
.ce-404__arch { width: 140px; aspect-ratio: 3 / 4; margin: 0 auto 28px; display: grid; place-items: center; border: 1px solid var(--c-gold); border-radius: 999px 999px 18px 18px; font-weight: 800; font-size: 2.25rem; color: var(--c-marigold); }
.ce-404 h1 { max-width: 16ch; margin-inline: auto; }
.ce-404 .ce-lead { margin: 20px auto 0; }
.ce-404 .ce-actions { justify-content: center; margin-top: 32px; }

/* ---------- Scroll reveals (M6) — only when JS is running ---------- */
.js .ce-reveal { opacity: 0; transform: translateY(28px); transition: opacity var(--dur-reveal) var(--ease-expo), transform var(--dur-reveal) var(--ease-expo); transition-delay: calc(var(--i, 0) * 80ms); }
.js .ce-reveal.is-in { opacity: 1; transform: none; }

/* ---------- Reduced motion (§7.4) ---------- */
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: 0.01ms !important; animation-iteration-count: 1 !important; transition-duration: 0.01ms !important; transition-delay: 0ms !important; scroll-behavior: auto !important; }
  .ce-wall__track, .ce-strip__t, .ce-badge svg, .ce-ccard__ph img { animation: none !important; }
  .ce-ccard__ph img:first-child { opacity: 1; }
  .ce-wall__track > [aria-hidden="true"], .ce-strip__t > [aria-hidden="true"], .ce-wall__pause, .ce-hero__pause { display: none; }
  .ce-strip__t { flex-wrap: wrap; width: auto; justify-content: center; padding: 6px 20px; }
  .js .ce-reveal { opacity: 1; transform: none; }
  .js .ce-steps__path { clip-path: none; }
  .ce-checkmark circle, .ce-checkmark path { stroke-dashoffset: 0; }
}

/* =========================================================
   Premium pass — serif display, champagne gold foil, velvet sheets,
   lotus ornament, refined UI type (layered over the v3 base above)
   ========================================================= */
body { letter-spacing: 0.005em; }

/* Gold-foil accent phrase: serif italic in a gold gradient */
.ce-accent {
  font-family: var(--f-display); font-style: italic; font-weight: 600;
  background: var(--gold-text-light); -webkit-background-clip: text; background-clip: text; color: transparent;
  -webkit-box-decoration-break: clone; box-decoration-break: clone; padding-right: 0.04em;
}
.ce-sheet .ce-accent { background-image: var(--gold-text-dark); color: transparent; }
@media (forced-colors: active) { .ce-accent, .ce-sheet .ce-accent, .ce-stats b, .ce-statcards b, .ce-q__mark { background: none; color: CanvasText; } }

/* Eyebrows: finer, wider tracking */
.ce-eyebrow { font-weight: 600; font-size: 0.6875rem; letter-spacing: 0.32em; }

/* Centred section heads get a small gold ornament: line, diamond, line */
.ce-head--center::after { content: ""; display: block; width: 132px; height: 12px; margin: 22px auto 0; background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='132' height='12'%3E%3Cpath d='M0 6h54M78 6h54' stroke='%23B8893B' stroke-width='1'/%3E%3Cpath d='M66 1l5 5-5 5-5-5z' fill='none' stroke='%23B8893B'/%3E%3Ccircle cx='66' cy='6' r='1.4' fill='%23B8893B'/%3E%3C/svg%3E") center / contain no-repeat; }

/* Buttons: uppercase, gold foil with a soft sheen on hover */
.ce-btn {
  position: relative; overflow: hidden; isolation: isolate;
  font-weight: 600; font-size: 0.75rem; letter-spacing: 0.16em; text-transform: uppercase;
  background: var(--gold-foil); background-size: 160% 100%; background-position: 0% 50%; color: var(--c-wine-deep);
  box-shadow: 0 12px 30px -14px rgba(176, 130, 54, 0.75), inset 0 1px 0 rgba(255, 255, 255, 0.45);
  transition: background-position 600ms var(--ease-silk), box-shadow var(--dur-base), transform var(--dur-fast), opacity var(--dur-base);
}
.ce-btn::after {
  content: ""; position: absolute; inset: 0; z-index: -1; pointer-events: none;
  background: linear-gradient(110deg, transparent 30%, rgba(255, 255, 255, 0.55) 48%, transparent 66%);
  transform: translateX(-120%); transition: transform 900ms var(--ease-silk);
}
.ce-btn:hover { background: var(--gold-foil); background-size: 160% 100%; background-position: 100% 50%; box-shadow: 0 16px 36px -14px rgba(176, 130, 54, 0.9), inset 0 1px 0 rgba(255, 255, 255, 0.5); }
.ce-btn:hover::after { transform: translateX(120%); }
.ce-btn__ic { background: var(--c-wine-deep); color: var(--c-marigold); }
.ce-btn--ghost, .ce-btn--outline { box-shadow: none; }
.ce-btn--ghost { background: rgba(255, 255, 255, 0.04); color: var(--c-ivory); border: 1px solid rgba(227, 188, 106, 0.55); }
.ce-btn--ghost:hover { background: rgba(227, 188, 106, 0.14); box-shadow: none; }
.ce-btn--outline { background: transparent; color: var(--c-ink); border: 1px solid rgba(131, 94, 31, 0.45); }
.ce-btn--outline:hover { background: var(--c-white); border-color: var(--c-gold-deep); box-shadow: none; }
.ce-btn--ghost::after, .ce-btn--outline::after { display: none; }
.ce-link { font-weight: 600; letter-spacing: 0.02em; }

/* Header: frosted glass with a gold hairline; small-caps navigation */
.ce-header__bar { background: rgba(255, 255, 255, 0.86); -webkit-backdrop-filter: blur(14px) saturate(1.2); backdrop-filter: blur(14px) saturate(1.2); border-color: rgba(184, 137, 59, 0.3); }
.ce-nav a { font-size: 0.75rem; font-weight: 600; letter-spacing: 0.16em; text-transform: uppercase; }
.ce-nav a[aria-current="page"]::after { background: var(--c-gold); }
.ce-hphone b { font-weight: 600; }

/* Velvet wine sheets: deep radial glow, fine grain, gold inner hairline */
.ce-sheet, .ce-footer {
  background:
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 .05 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E"),
    radial-gradient(110% 80% at 88% 0%, #64203A 0%, rgba(100, 32, 58, 0) 58%),
    radial-gradient(90% 70% at 0% 100%, #3A0B19 0%, rgba(58, 11, 25, 0) 60%),
    var(--c-wine);
  box-shadow: inset 0 0 0 1px rgba(227, 188, 106, 0.16);
}
.ce-sheet::before { opacity: 0.35; }
.ce-footer { position: relative; isolation: isolate; overflow: hidden; }
.ce-lotus { position: absolute; right: -60px; bottom: -40px; z-index: -1; width: min(52vw, 520px); height: auto; color: var(--c-marigold); opacity: 0.09; pointer-events: none; fill: none; stroke: currentColor; stroke-width: 1.1; }
.ce-lotus * { vector-effect: non-scaling-stroke; }

/* Hero */
.ce-tag { border-color: rgba(227, 188, 106, 0.45); font-weight: 600; letter-spacing: 0.24em; font-size: 0.625rem; }
.ce-hero__media::after { content: ""; position: absolute; inset: 0; box-shadow: inset 0 0 160px rgba(20, 4, 9, 0.55); }
.ce-stats { border-color: rgba(227, 188, 106, 0.22); }
.ce-stats b, .ce-statcards b { font-family: var(--f-display); font-weight: 600; letter-spacing: 0; }
.ce-stats b { background: var(--gold-text-dark); -webkit-background-clip: text; background-clip: text; color: transparent; }
.ce-statcards b { background: var(--gold-text-light); -webkit-background-clip: text; background-clip: text; color: transparent; }
.ce-stats b i, .ce-statcards b i { color: inherit; }
.ce-stats li > span, .ce-statcards li > span { font-weight: 600; letter-spacing: 0.24em; font-size: 0.625rem; }

/* Occasion strip in serif italic */
.ce-occ__h { font-family: var(--f-display); font-weight: 600; font-size: clamp(1.5rem, 1.3rem + 0.9vw, 2.125rem); letter-spacing: 0; }
.ce-occ__h b { font-weight: 700; color: var(--c-maroon); }
.ce-strip { border-color: rgba(184, 137, 59, 0.3); }
.ce-strip__t span { font-family: var(--f-display); font-style: italic; font-weight: 500; font-size: 1.375rem; color: var(--c-ink); }

/* Cards and tiles: serif titles, gold hairlines */
.ce-ccard { box-shadow: inset 0 0 0 1px rgba(227, 188, 106, 0.18); }
.ce-ccard h3 { font-size: 1.625rem; }
.ce-cel > :first-child .ce-ccard h3 { font-size: clamp(1.875rem, 1.5rem + 1.2vw, 2.5rem); }
.ce-ccard__go { border-color: rgba(227, 188, 106, 0.5); }
.ce-ccard--soon .ce-lotus { right: -40px; bottom: auto; top: -20px; width: 280px; opacity: 0.13; }
.ce-ccard__big { opacity: 0.6; width: 52px; height: 52px; top: 24px; right: auto; bottom: auto; left: 22px; }
.ce-feat, .ce-wall--quotes figure, .ce-wall--quotes .ce-wall__col:nth-child(2) figure:nth-child(odd) { background: rgba(255, 255, 255, 0.035); border-color: rgba(227, 188, 106, 0.18); }
.ce-feat h3 { font-size: 1.5rem; }
.ce-step h3 { font-size: 1.625rem; }
.ce-step__num { font-family: var(--f-display); font-weight: 600; font-size: 2.25rem; color: var(--c-gold-deep); }
.ce-tile { border-color: rgba(184, 137, 59, 0.22); }
.ce-tile b { font-family: var(--f-display); font-weight: 600; font-size: 1.375rem; line-height: 1.15; }
.ce-svccard, .ce-brand, .ce-contact, .ce-quotecard, .ce-vm li, .ce-faq details, .ce-jcard, .ce-related a, .ce-statcards li { border-color: rgba(184, 137, 59, 0.22); }
.ce-svccard h3 { font-size: 1.5rem; }
.ce-brand__body h3, .ce-office h3 { font-size: 1.875rem; font-weight: 600; }
.ce-brandrow h3 { font-size: clamp(2rem, 1.6rem + 1.4vw, 2.75rem); font-weight: 600; letter-spacing: 0; }
.ce-contact__value { font-family: var(--f-display); font-weight: 600; font-size: 1.5rem; letter-spacing: 0; }
.ce-related strong { font-family: var(--f-display); font-weight: 600; font-size: 1.375rem; }

/* Reviews and quotes in serif italic */
.ce-q__mark { font-family: var(--f-display); font-weight: 600; font-size: 4.5rem; height: 34px; background: var(--gold-text-dark); -webkit-background-clip: text; background-clip: text; color: transparent; }
.ce-vm .ce-q__mark { background-image: var(--gold-text-light); }
.ce-wall--quotes blockquote { font-family: var(--f-display); font-style: italic; font-weight: 500; font-size: 1.25rem; line-height: 1.5; border-left-color: rgba(227, 188, 106, 0.35); }
.ce-quotecard blockquote { font-family: var(--f-display); font-style: italic; font-size: 1.3125rem; line-height: 1.5; }
.ce-vm p { font-family: var(--f-display); font-style: italic; font-weight: 500; font-size: clamp(1.375rem, 1.2rem + 0.7vw, 1.75rem); line-height: 1.45; }
.ce-pull { font-family: var(--f-display); font-style: italic; font-weight: 500; font-size: 1.625rem; }
.ce-inline-cta p { font-family: var(--f-display); font-weight: 600; font-size: 1.5rem; }

/* FAQ in serif */
.ce-faq summary { font-family: var(--f-display); font-weight: 600; font-size: 1.3125rem; line-height: 1.3; }

/* Captions: small caps */
.ce-wall figcaption, .ce-cap { font-weight: 600; font-size: 0.625rem; letter-spacing: 0.12em; text-transform: uppercase; }

/* Photo frames: a fine gold inner edge on rounded photos */
.ce-photo, .ce-tilephoto, .ce-work, .ce-enq__photo, .ce-cform__photo { position: relative; }
.ce-photo::after, .ce-tilephoto::after, .ce-work::after, .ce-enq__photo::after, .ce-cform__photo::after {
  content: ""; position: absolute; inset: 0; border-radius: inherit; pointer-events: none; box-shadow: inset 0 0 0 1px rgba(227, 188, 106, 0.3);
}

/* A designed tile where a photo is still to come: velvet wine with a gold icon */
.ce-ph {
  overflow: hidden; isolation: isolate; color: var(--c-marigold); gap: 14px;
  background: radial-gradient(90% 70% at 50% 0%, #64203A 0%, rgba(100, 32, 58, 0) 70%), linear-gradient(180deg, var(--c-wine) 0%, var(--c-wine-deep) 100%);
}
.ce-ph::before { inset: 10px; border: 1px solid rgba(227, 188, 106, 0.3); border-radius: 12px; }
.ce-ph .ce-icon { width: 44px; height: 44px; stroke-width: 1.2; }
.ce-ph__label { font-family: var(--f-display); font-style: italic; font-weight: 500; font-size: 1.5rem; color: var(--c-ivory); }
.ce-ph .ce-lotus { right: 50%; bottom: -24%; transform: translateX(50%); width: 130%; opacity: 0.1; }

/* Footer headings and action bar */
.ce-footer h2 { letter-spacing: 0.28em; font-weight: 600; font-size: 0.6875rem; }
.ce-actionbar a:last-child { background: var(--gold-foil); color: var(--c-wine-deep); }

/* Full-height numerals where numbers carry information */
.ce-stats b, .ce-statcards b, .ce-occ__h, .ce-contact__value, .ce-step__num, .ce-ratecard b { font-variant-numeric: lining-nums; }
.ce-wall--quotes figcaption small { text-transform: none; letter-spacing: 0.02em; font-weight: 500; font-size: 0.75rem; }

/* Celebration cards with exactly two photos: 10 s crossfade instead of the three-photo 15 s cycle */
.ce-ccard__ph img:first-child:nth-last-child(2), .ce-ccard__ph img:first-child:nth-last-child(2) ~ img { animation-name: ce-fx2; animation-duration: 10s; }
.ce-ccard__ph img:first-child:nth-last-child(2) ~ img { animation-delay: calc(var(--d, -0.6s) + 5s); }
@keyframes ce-fx2 { 0% { opacity: 0; } 3% { opacity: 1; } 50% { opacity: 1; } 53% { opacity: 0; } 100% { opacity: 0; } }
@media (prefers-reduced-motion: reduce) { .ce-ccard__ph img { animation: none !important; } }

/* Journal index: smaller cards under the featured article */
.ce-jgrid { display: grid; gap: 20px; margin: 24px 0 0; padding: 0; list-style: none; }
@media (min-width: 768px) { .ce-jgrid { grid-template-columns: 1fr 1fr; } }
.ce-jcard--small { height: 100%; grid-template-columns: 1fr !important; }
.ce-jcard--small .ce-jcard__media { aspect-ratio: 16 / 9 !important; min-height: 0 !important; }
.ce-jcard--small .ce-jcard__body { justify-content: flex-start; padding: 26px 28px 30px; }
.ce-jcard--small h2 { font-size: clamp(1.5rem, 1.3rem + 0.8vw, 1.875rem); }

/* Lighthouse fixes: legible caption size, filter-count contrast, selected office tab */
.ce-wall figcaption, .ce-cap { font-size: 0.75rem; letter-spacing: 0.08em; }
.ce-filter .n { opacity: 1; color: var(--c-ink-soft); }
.ce-filter[aria-pressed="true"] .n, .ce-filter[aria-selected="true"] .n { color: inherit; }
.ce-filter[aria-selected="true"] { background: var(--c-marigold); color: var(--c-wine); }
/* Lightbox: soften the page behind so captions don't show through */
.ce-lightbox.is-open { -webkit-backdrop-filter: blur(16px); backdrop-filter: blur(16px); }
/* Hero overlay lightened (11 Oct 2026): the video shows in full colour; only the area behind the text is softly shaded */
.ce-hero__media::after { display: none; }
.ce-hero::after { background: linear-gradient(90deg, rgba(36, 7, 15, 0.66) 0%, rgba(36, 7, 15, 0.5) 30%, rgba(36, 7, 15, 0.16) 52%, rgba(36, 7, 15, 0) 66%); }
@media (max-width: 767px) {
  .ce-hero::after { background: linear-gradient(180deg, rgba(36, 7, 15, 0.22) 0%, rgba(36, 7, 15, 0.46) 22%, rgba(36, 7, 15, 0.5) 70%, rgba(36, 7, 15, 0.3) 100%); }
}
.ce-hero h1, .ce-hero .ce-lead, .ce-hero .ce-rating-line { text-shadow: 0 1px 2px rgba(20, 4, 9, 0.6), 0 2px 22px rgba(20, 4, 9, 0.7); }
.ce-hero .ce-lead, .ce-hero .ce-rating-line { color: var(--c-ivory); }
.ce-hero h1 .ce-accent { text-shadow: none; filter: drop-shadow(0 1px 2px rgba(20, 4, 9, 0.65)) drop-shadow(0 2px 16px rgba(20, 4, 9, 0.6)); }
.ce-hero .ce-btn--ghost { background: rgba(36, 7, 15, 0.35); -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px); }

/* =========================================================
   Luxury pass (v3.3, 11 Oct 2026): flat colour instead of foil gradients, fewer badges,
   quieter surfaces, lighter display weights, editorial lists
   ========================================================= */

/* Headlines a touch lighter; the italic accent is plain colour, not a gradient */
.ce-section h2, .ce-sheet h2 { font-weight: 500; letter-spacing: -0.005em; }
.ce-accent { background: none; color: var(--c-maroon); font-weight: 500; }
.ce-sheet .ce-accent { background-image: none; color: var(--c-marigold); }
.ce-stats b, .ce-statcards b, .ce-q__mark, .ce-vm .ce-q__mark { background: none; }
.ce-stats b { color: var(--c-ivory); }
.ce-stats b i { color: var(--c-marigold); }
.ce-statcards b { color: var(--c-wine); }
.ce-q__mark { color: var(--c-marigold); }
.ce-vm .ce-q__mark { color: var(--c-gold-deep); }

/* Eyebrows: a fine rule instead of the arch; no ornament under centred titles */
.ce-eyebrow::before { width: 28px; height: 1px; border: 0; border-radius: 0; background: currentColor; opacity: 0.8; }
.ce-head--center .ce-eyebrow::before { display: none; }
.ce-head--center::after { display: none; }

/* Buttons: solid wine on light, solid champagne on wine; no sheen */
.ce-btn:not(.ce-btn--ghost):not(.ce-btn--outline) { background: var(--c-wine); color: var(--c-ivory); box-shadow: none; transition: background-color 500ms var(--ease-silk), transform var(--dur-fast), opacity var(--dur-base); }
.ce-btn:not(.ce-btn--ghost):not(.ce-btn--outline):hover { background: var(--c-wine-2); box-shadow: none; }
.ce-btn::after { display: none; }
.ce-btn__ic { background: rgba(251, 247, 241, 0.14); color: var(--c-ivory); }
.ce-sheet .ce-btn:not(.ce-btn--ghost):not(.ce-btn--outline), .ce-hero .ce-btn:not(.ce-btn--ghost):not(.ce-btn--outline) { background: var(--c-marigold); color: var(--c-wine-deep); }
.ce-sheet .ce-btn:not(.ce-btn--ghost):not(.ce-btn--outline):hover { background: var(--c-marigold-hi); }
.ce-sheet .ce-btn__ic { background: var(--c-wine-deep); color: var(--c-marigold); }
.ce-formcard .ce-btn:not(.ce-btn--ghost):not(.ce-btn--outline) { background: var(--c-wine); color: var(--c-ivory); }
.ce-formcard .ce-btn:not(.ce-btn--ghost):not(.ce-btn--outline):hover { background: var(--c-wine-2); }
.ce-formcard .ce-btn__ic { background: rgba(251, 247, 241, 0.14); color: var(--c-ivory); }
.ce-btn--outline { border-color: rgba(36, 25, 28, 0.28); transition: background-color 400ms var(--ease-silk), color 400ms var(--ease-silk), border-color 400ms; }
.ce-btn--outline:hover { background: var(--c-ink); border-color: var(--c-ink); color: var(--c-ivory); }
.ce-actionbar a:last-child { background: var(--c-wine); color: var(--c-ivory); }

/* Quieter wine panels: no grain or dot grid; the lotus only on closing call-to-action panels */
.ce-sheet, .ce-footer { background: radial-gradient(110% 80% at 88% 0%, #5E1C33 0%, rgba(94, 28, 51, 0) 58%), var(--c-wine); }
.ce-sheet::before { display: none; }
.ce-sheet > .ce-lotus { display: none; }
.ce-ctasheet > .ce-lotus, #enquiry > .ce-lotus { display: block; }

/* Hero: an editorial line instead of the pill tag, an understated text link */
.ce-hero .ce-tag, .ce-phero .ce-tag { padding: 0; border: 0; background: none; font-size: 0.6875rem; letter-spacing: 0.32em; text-shadow: 0 1px 10px rgba(20, 4, 9, 0.6); }
.ce-hero .ce-tag::before, .ce-phero .ce-tag::before { width: 28px; height: 1px; border-radius: 0; box-shadow: none; background: var(--c-marigold); }
.ce-link--light { color: var(--c-ivory); }
.ce-hero .ce-link, .ce-phero .ce-link { font-size: 0.75rem; letter-spacing: 0.22em; text-transform: uppercase; background-size: 100% 1px; text-shadow: 0 1px 2px rgba(20, 4, 9, 0.6), 0 2px 18px rgba(20, 4, 9, 0.7); }
.ce-hero .ce-link:hover, .ce-phero .ce-link:hover { background-size: 0% 1px; background-position: right calc(50% + 0.8em); }

/* Occasion strip: a ruled band rather than a pill */
.ce-strip { max-width: none; border-radius: 0; border-inline: 0; background: none; box-shadow: none; border-color: rgba(184, 137, 59, 0.35); }
@media (prefers-reduced-motion: reduce) {
  .ce-strip { -webkit-mask: none; mask: none; }
  .ce-strip__t { gap: 0; padding: 14px 8px; }
  .ce-strip__t span { padding: 8px 0 8px 18px; font-size: 1.125rem; }
  .ce-strip__t span::after { margin-left: 18px; }
}

/* Why us: facts as label/value pairs; open, hairline-ruled points instead of boxed cards */
.ce-facts { display: grid; grid-template-columns: 1fr 1fr; gap: 0 32px; margin: 32px 0 0; }
.ce-facts > div { padding: 16px 0; border-top: 1px solid rgba(227, 188, 106, 0.28); }
.ce-facts dt { font-size: 0.6875rem; font-weight: 600; letter-spacing: 0.24em; text-transform: uppercase; color: var(--c-marigold); }
.ce-facts dd { margin-top: 6px; font-family: var(--f-display); font-size: 1.25rem; font-weight: 500; line-height: 1.25; color: var(--c-ivory); }
.ce-feat { padding: 28px 0 0; border: 0; border-top: 1px solid rgba(227, 188, 106, 0.28); border-radius: 0; background: none; }
.ce-feat h3 { margin-top: 16px; font-weight: 500; }
.ce-feats { gap: 8px 40px; }

/* Services: a numbered editorial list */
.ce-svclist { display: grid; margin: 0; padding: 0; list-style: none; border-top: 1px solid rgba(184, 137, 59, 0.3); }
@media (min-width: 900px) { .ce-svclist { grid-template-columns: 1fr 1fr; column-gap: clamp(40px, 5vw, 80px); } }
.ce-svclist a { display: grid; grid-template-columns: 44px 1fr auto; grid-template-areas: "n t go" "n d go"; gap: 6px 16px; align-items: baseline; height: 100%; padding: 24px 0; border-bottom: 1px solid rgba(184, 137, 59, 0.3); color: inherit; text-decoration: none; }
.ce-svclist__n { grid-area: n; font-size: 0.75rem; font-weight: 600; letter-spacing: 0.14em; color: var(--c-gold-deep); font-variant-numeric: lining-nums tabular-nums; }
.ce-svclist__t { grid-area: t; font-family: var(--f-display); font-size: clamp(1.5rem, 1.3rem + 0.6vw, 1.875rem); font-weight: 500; line-height: 1.1; color: var(--c-ink); transition: color 400ms var(--ease-silk), transform 600ms var(--ease-expo); }
.ce-svclist__d { grid-area: d; font-size: 0.875rem; line-height: 1.55; color: var(--c-ink-soft); }
.ce-svclist__go { grid-area: go; align-self: center; display: grid; place-items: center; width: 42px; height: 42px; border-radius: 50%; border: 1px solid rgba(36, 25, 28, 0.18); color: var(--c-maroon); transition: background-color 400ms var(--ease-silk), color 400ms, border-color 400ms; }
.ce-svclist__go .ce-icon { width: 16px; height: 16px; }
.ce-svclist a:hover .ce-svclist__t, .ce-svclist a:focus-visible .ce-svclist__t { color: var(--c-maroon); transform: translateX(6px); }
.ce-svclist a:hover .ce-svclist__go, .ce-svclist a:focus-visible .ce-svclist__go { background: var(--c-wine); border-color: var(--c-wine); color: var(--c-ivory); }

/* Reviews: open cards with a hairline, no tinted fill */
.ce-wall--quotes figure, .ce-wall--quotes .ce-wall__col:nth-child(2) figure:nth-child(odd) { background: transparent; border-color: rgba(227, 188, 106, 0.22); }
.ce-facts dd, .ce-ratecard b, .ce-svclist__n { font-variant-numeric: lining-nums; }
/* Enquiry (desktop): the photo fills the space beside the form and ends level with it, so there is no empty band under the form */
@media (min-width: 1025px) {
  .ce-enq { align-items: stretch; }
  .ce-enq > :first-child { display: flex; flex-direction: column; }
  .ce-enq__photo { flex: 1 1 0; min-height: 220px; aspect-ratio: auto; }
  .ce-enq__photo img { position: absolute; inset: 0; }
}

/* Header (v3.3): deep wine glass with the gold logo, ivory small-caps navigation, a gold underline on hover
   and a champagne call to action */
.ce-header__bar {
  background: linear-gradient(180deg, rgba(84, 20, 38, 0.95) 0%, rgba(54, 10, 23, 0.95) 100%);
  -webkit-backdrop-filter: blur(16px) saturate(1.3); backdrop-filter: blur(16px) saturate(1.3);
  border: 1px solid rgba(227, 188, 106, 0.4);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.07), 0 14px 34px -18px rgba(54, 10, 23, 0.65);
}
.ce-header.is-scrolled .ce-header__bar { box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.07), 0 18px 44px -16px rgba(36, 7, 15, 0.8); }
.ce-header :focus-visible { outline-color: var(--c-marigold); }
.ce-nav a { color: rgba(251, 247, 241, 0.9); }
.ce-nav a::before { content: ""; position: absolute; left: 0; right: 0; bottom: 9px; height: 1px; background: var(--c-marigold); transform: scaleX(0); transform-origin: right; transition: transform 450ms var(--ease-expo); }
.ce-nav a:hover, .ce-nav a:focus-visible, .ce-nav a[aria-current="page"] { color: var(--c-marigold); }
.ce-nav a:hover::before, .ce-nav a:focus-visible::before { transform: scaleX(1); transform-origin: left; }
.ce-nav a[aria-current="page"]::after { background: var(--c-marigold); }
.ce-hphone { color: var(--c-ivory); }
.ce-hphone small { color: var(--c-marigold); opacity: 0.9; }
.ce-hphone__ic { background: rgba(227, 188, 106, 0.12); color: var(--c-marigold); box-shadow: inset 0 0 0 1px rgba(227, 188, 106, 0.4); transition: background-color 400ms var(--ease-silk), color 400ms; }
.ce-hphone:hover .ce-hphone__ic { background: var(--c-marigold); color: var(--c-wine-deep); }
.ce-header .ce-btn:not(.ce-btn--ghost):not(.ce-btn--outline) { background: var(--c-marigold); color: var(--c-wine-deep); }
.ce-header .ce-btn:not(.ce-btn--ghost):not(.ce-btn--outline):hover { background: var(--c-marigold-hi); }
.ce-header .ce-btn__ic { background: var(--c-wine-deep); color: var(--c-marigold); }
.ce-header .ce-header__call { color: var(--c-marigold); background: transparent; border-color: rgba(227, 188, 106, 0.45); }
.ce-header .ce-header__call:hover { background: rgba(227, 188, 106, 0.14); }
.ce-header .ce-menu-btn { background: var(--c-marigold); color: var(--c-wine-deep); border-color: var(--c-marigold); }
.ce-header .ce-menu-btn:hover { background: var(--c-marigold-hi); color: var(--c-wine-deep); border-color: var(--c-marigold-hi); }

/* =========================================================
   v3.4 motion: opening animation (home, first page of a visit), word-by-word headlines,
   photo unveils, gentle parallax, a slow zoom on the hero and a gold shine on its accent
   ========================================================= */

/* ---- Opening: four slanted photo panels, the logo, then the panels part to reveal the hero ---- */
.ce-opening { display: none; }
html.ce-opening-run .ce-opening { position: fixed; inset: 0; z-index: 95; display: block; overflow: hidden; background: rgb(54, 10, 23); }
.ce-opening { --s: min(20svh, 14vw); --g: clamp(6px, 0.7vw, 10px); }
/* four upright panels cut into slanted parallelograms (clip-path), overlapping by the slant so the gaps line up */
.ce-opening__panels { position: absolute; top: 0; bottom: 0; left: calc(var(--s) * -0.5); right: calc(var(--s) * -0.5); display: grid; grid-template-columns: repeat(4, 1fr); }
.ce-opening__panel {
  position: relative; min-width: 0; margin: 0 calc(var(--s) * -0.5); overflow: hidden; background: var(--c-wine);
  clip-path: polygon(calc(var(--s) + var(--g) / 2) 0, calc(100% - var(--g) / 2) 0, calc(100% - var(--s) - var(--g) / 2) 100%, calc(var(--g) / 2) 100%);
}
.ce-opening__panel:nth-child(odd) { translate: 0 -105%; }
.ce-opening__panel:nth-child(even) { translate: 0 105%; }
.ce-opening__panel img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; scale: 1.18; }
.ce-opening__panel::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(36, 7, 15, 0) 55%, rgba(36, 7, 15, 0.65) 100%); }
.ce-opening__panel figcaption {
  position: absolute; left: calc(50% - var(--s) * 0.34); bottom: 16%; z-index: 1; translate: -50% 0; opacity: 0;
  white-space: nowrap; font: 600 clamp(0.5625rem, 0.48rem + 0.35vw, 0.8125rem)/1 var(--f); letter-spacing: 0.3em; text-transform: uppercase;
  color: var(--c-ivory); text-shadow: 0 2px 12px rgba(0, 0, 0, 0.6);
}
.ce-opening__panel:first-child figcaption { left: calc(50% + var(--s) * 0.2); }
@media (max-width: 599px) { .ce-opening__panel figcaption { display: none; } }
.ce-opening__brand {
  position: absolute; inset: 0; z-index: 2; display: grid; place-content: center; justify-items: center; gap: 14px; padding: 24px; text-align: center; opacity: 0;
  background: radial-gradient(circle at 50% 50%, rgba(36, 7, 15, 0.55) 0, rgba(36, 7, 15, 0) min(40vw, 420px));
}
.ce-opening__brand img { width: clamp(118px, 12vw, 180px); height: auto; filter: drop-shadow(0 6px 24px rgba(0, 0, 0, 0.45)); }
.ce-opening__tag { margin-top: 8px; font-family: var(--f-display); font-size: clamp(1.5rem, 1.15rem + 1.4vw, 2.5rem); font-weight: 500; line-height: 1.1; color: var(--c-ivory); }
.ce-opening__tag em { font-style: italic; color: var(--c-marigold); }
.ce-opening__sub { font-size: 0.6875rem; font-weight: 600; letter-spacing: 0.32em; text-transform: uppercase; color: var(--c-marigold); }
.ce-opening__tag, .ce-opening__sub { opacity: 0; }
/* while the opening plays, the hero and header wait; they make their entrance as the panels part */
html.ce-opening-run:not(.ce-opened) .ce-hero .ce-rise,
html.ce-opening-run:not(.ce-opened) .ce-hero .ce-words .w > span { animation-play-state: paused; }
html.ce-opening-run:not(.ce-opened) .ce-header__bar { opacity: 0; translate: 0 -28px; }
html.ce-opening-run .ce-header__bar { transition: opacity 0.8s var(--ease-silk) 0.45s, translate 1s var(--ease-expo) 0.45s, box-shadow var(--dur-base) var(--ease-silk); }

/* ---- Headlines rise word by word (page titles on load, section titles as they scroll into view) ---- */
.ce-words .w { display: inline-block; overflow: hidden; vertical-align: top; padding: 0 0.07em 0.16em; margin: 0 -0.07em -0.16em; }
.ce-words .w > span { display: inline-block; }
@keyframes ce-word { from { translate: 0 112%; } }
h1.ce-words .w > span { animation: ce-word 1.15s var(--ease-expo) both; animation-delay: calc(0.18s + var(--wi) * 70ms); }
.js .ce-reveal h2.ce-words .w > span { transition: translate 1.1s var(--ease-expo); transition-delay: calc(0.1s + var(--wi) * 55ms); }
.js .ce-reveal:not(.is-in) h2.ce-words .w > span { translate: 0 112%; }

/* the hero headline: soft shadow on the whole line (not per word), and a slow gold shine across the accent */
.ce-hero h1 { text-shadow: none; filter: drop-shadow(0 1px 2px rgba(20, 4, 9, 0.55)) drop-shadow(0 4px 22px rgba(20, 4, 9, 0.5)); }
.ce-hero h1 .ce-accent { filter: none; }
.ce-hero h1 .ce-accent .w > span {
  background: linear-gradient(100deg, var(--c-marigold) 0 42%, #FFF4D6 50%, var(--c-marigold) 58% 100%) 100% 0 / 260% 100% no-repeat;
  -webkit-background-clip: text; background-clip: text; color: transparent;
  animation: ce-word 1.15s var(--ease-expo) both, ce-shine 7s ease-in-out infinite;
  animation-delay: calc(0.18s + var(--wi) * 70ms), calc(2.4s + var(--wi) * 110ms);
}
@keyframes ce-shine { 0%, 58% { background-position: 100% 0; } 100% { background-position: 0 0; } }
@media (forced-colors: active) { .ce-hero h1 .ce-accent .w > span { background: none; color: CanvasText; } }

/* ---- Photos unveil from the bottom and settle as they scroll into view ---- */
.js :is(.ce-ccard__ph, .ce-brand__media, .ce-arch, .ce-jcard__media, .ce-svccard__media, .ce-tilephoto, .ce-enq__photo, .ce-photo) img {
  transition: clip-path 1.4s var(--ease-expo) calc(var(--i, 0) * 90ms), scale 1.9s var(--ease-expo) calc(var(--i, 0) * 90ms);
}
.js :is(.ce-reveal:not(.is-in) :is(.ce-ccard__ph, .ce-brand__media, .ce-arch, .ce-jcard__media, .ce-svccard__media, .ce-tilephoto, .ce-enq__photo), .ce-photo.ce-reveal:not(.is-in)) img {
  clip-path: inset(100% 0 0 0); scale: 1.2;
}

/* ---- Gentle parallax on the large feature photos (browsers with scroll-driven animations) ---- */
.ce-why__media .ce-arch img, .ce-brand__media img, .ce-split .ce-photo img { scale: 1.14; }
@keyframes ce-par { from { translate: 0 -6%; } to { translate: 0 6%; } }
@supports (animation-timeline: view()) {
  @media (prefers-reduced-motion: no-preference) {
    .ce-why__media .ce-arch img, .ce-brand__media img, .ce-split .ce-photo img { animation: ce-par linear both; animation-timeline: view(); animation-range: cover; }
  }
}

/* ---- The hero video drifts in very slowly ---- */
@keyframes ce-kb { from { scale: 1; } to { scale: 1.07; } }
@media (prefers-reduced-motion: no-preference) {
  .ce-hero__media img, .ce-hero__media video { animation: ce-kb 26s ease-in-out infinite alternate; }
}

@media (prefers-reduced-motion: reduce) {
  .ce-words .w > span { animation: none !important; translate: none !important; }
  .js :is(.ce-ccard__ph, .ce-brand__media, .ce-arch, .ce-jcard__media, .ce-svccard__media, .ce-tilephoto, .ce-enq__photo, .ce-photo) img { clip-path: none !important; }
}

/* Service cards without photos (11 Oct 2026): a gold-ringed icon, serif title and description on a clean card */
.ce-svccard { padding: clamp(26px, 2.4vw, 34px) clamp(22px, 2vw, 28px) clamp(24px, 2.2vw, 30px); transition: transform 500ms var(--ease-expo), box-shadow 500ms var(--ease-silk), border-color 400ms; }
.ce-svccard:hover { border-color: rgba(184, 137, 59, 0.55); }
.ce-svccard__body { padding: 0; }
.ce-svccard__body .ce-ic { width: 54px; height: 54px; margin: 0 0 24px; border: 0; background: var(--c-ivory); color: var(--c-maroon); box-shadow: inset 0 0 0 1px rgba(184, 137, 59, 0.45); transition: background-color 400ms var(--ease-silk), color 400ms; }
.ce-svccard__body .ce-ic .ce-icon { width: 22px; height: 22px; }
.ce-svccard:hover .ce-ic { background: var(--c-wine); color: var(--c-marigold); box-shadow: none; }
.ce-svccard h3 { font-weight: 500; line-height: 1.15; }
.ce-svccard p { margin-top: 10px; }
@media (max-width: 599px) {
  .ce-svccard { padding: 22px 20px; }
  .ce-svccard__body { display: grid; grid-template-columns: auto 1fr; column-gap: 18px; align-items: start; }
  .ce-svccard__body .ce-ic { grid-row: span 2; width: 48px; height: 48px; margin: 2px 0 0; }
  .ce-svccard h3 { font-size: 1.375rem; }
  .ce-svccard p { margin-top: 6px; }
}

/* Service cards are links to the enquiry form (with the service ticked) */
a.ce-svccard { color: inherit; text-decoration: none; }
.ce-svccard__go { display: inline-flex; align-items: center; gap: 8px; margin-top: auto; padding-top: 22px; font-size: 0.75rem; font-weight: 600; letter-spacing: 0.2em; text-transform: uppercase; color: var(--c-gold-deep); }
.ce-svccard__go span { transition: transform 400ms var(--ease-expo); }
.ce-svccard:hover .ce-svccard__go, .ce-svccard:focus-visible .ce-svccard__go { color: var(--c-maroon); }
.ce-svccard:hover .ce-svccard__go span, .ce-svccard:focus-visible .ce-svccard__go span { transform: translateX(5px); }
@media (max-width: 599px) { .ce-svccard__go { padding: 14px 0 0 66px; } }

/* Wine panels clip their contents without becoming a scroll container, so sticky elements inside them
   (the contact-page photo beside the long form) stay pinned while the page scrolls */
.ce-sheet { overflow: clip; }
/* the photo-frame rule above set position: relative on .ce-cform__photo, which cancelled its sticky position */
@media (min-width: 1025px) { .ce-cform__photo { position: sticky; } }

/* Hero pause button: out of sight (owner's request, 11 Oct 2026) but still reachable from the keyboard and by
   screen readers, so the moving video keeps a pause control (WCAG 2.2.2); it appears only when tabbed to */
.ce-hero__pause:not(:focus-visible) { opacity: 0; pointer-events: none; }

/* Opening: the photos dim behind the logo with a shade layer (captions stay crisp above it) */
.ce-opening__dim { position: absolute; inset: 0; background: rgba(28, 5, 12, 0.62); opacity: 0; }

/* Brighter gold logo on wine, with a faint glow */
.ce-header .ce-logo img, .ce-drawer .ce-logo img { filter: drop-shadow(0 0 10px rgba(240, 205, 127, 0.18)); }

/* Footer credit: designed & managed by Usher Media */
.ce-credit { display: grid; justify-items: center; gap: 18px; margin-top: clamp(36px, 5vw, 56px); padding-top: clamp(28px, 4vw, 40px); border-top: 1px solid rgba(255, 255, 255, 0.08); text-align: center; }
.ce-credit__label { display: flex; align-items: center; justify-content: center; gap: 18px; font-size: 0.6875rem; font-weight: 600; letter-spacing: 0.34em; text-transform: uppercase; color: rgba(251, 247, 241, 0.62); }
.ce-credit__label em { font-family: var(--f-display); font-style: italic; font-size: 1.5rem; font-weight: 500; letter-spacing: 0; text-transform: none; color: var(--c-marigold); vertical-align: -0.12em; }
.ce-credit__line { position: relative; flex: none; width: clamp(36px, 7vw, 72px); height: 1px; background: linear-gradient(90deg, rgba(227, 188, 106, 0), rgba(227, 188, 106, 0.85)); }
.ce-credit__line::after { content: ""; position: absolute; right: -3px; top: 50%; width: 6px; height: 6px; background: var(--c-marigold); transform: translateY(-50%) rotate(45deg); }
.ce-credit__line--r { transform: scaleX(-1); }
.ce-credit__pill { display: inline-flex; align-items: center; gap: 14px; padding: 8px 26px 8px 8px; border-radius: 999px; border: 1px solid rgba(227, 188, 106, 0.32); background: rgba(255, 255, 255, 0.035); font-family: var(--f-display); font-size: 1.375rem; font-weight: 600; letter-spacing: 0.06em; color: var(--c-marigold); }
.ce-credit__mark { display: grid; place-items: center; width: 40px; height: 40px; border-radius: 50%; background: #12050A; box-shadow: inset 0 0 0 1px rgba(227, 188, 106, 0.4); font-family: var(--f-display); font-size: 0.875rem; font-weight: 700; letter-spacing: 0.02em; color: var(--c-ivory); }
@media (max-width: 420px) { .ce-credit__label { gap: 10px; letter-spacing: 0.24em; } }

/* hover pauses a photo-wall column only where there is a real mouse (touch screens keep a "hover" after a tap,
   which would leave the column stuck; there a tap toggles .is-held instead) */
@media (hover: hover) { .ce-wall__col:hover .ce-wall__track { animation-play-state: paused; } }

/* =========================================================
   Client form (12 Oct 2026): "no lag and clumsy look". Fewer things moving and no blur on moving parts.
   ========================================================= */
/* photo captions: solid backing instead of a live blur (32 moving photos each re-blurred every frame) */
.ce-wall figcaption, .ce-cap { -webkit-backdrop-filter: none; backdrop-filter: none; background: rgba(36, 7, 15, 0.84); }
/* review cards keep their open, transparent name line (the solid backing is only for captions on photos) */
.ce-wall--quotes figcaption { background: none; }
/* the header and the hero stats bar sit over moving content: solid, not blurred */
.ce-header__bar { -webkit-backdrop-filter: none; backdrop-filter: none; background: linear-gradient(180deg, #541426 0%, #360A17 100%); }
.ce-stats { -webkit-backdrop-filter: none; backdrop-filter: none; background: rgba(36, 7, 15, 0.74); }
/* no constant background motion: the hero video plays as filmed, the accent shine and photo parallax are gone */
.ce-hero__media img, .ce-hero__media video { animation: none !important; }
.ce-hero h1 .ce-accent .w > span { animation: ce-word 1.15s var(--ease-expo) both; animation-delay: calc(0.18s + var(--wi) * 70ms); background: none; color: var(--c-marigold); }
.ce-why__media .ce-arch img, .ce-brand__media img, .ce-split .ce-photo img { animation: none !important; scale: 1; }
/* footer tagline */
.ce-footer__tagline { margin-top: 18px; font-family: var(--f-display); font-size: 1.375rem; font-weight: 500; line-height: 1.3; color: var(--c-ivory); }
.ce-footer__tagline em { font-style: italic; color: var(--c-marigold); }
.ce-footer__brand .ce-footer__tagline + p { margin-top: 8px; }
/* Usher Media logo in the footer credit (white mark on black, shown round) */
img.ce-credit__mark { display: block; flex: none; object-fit: cover; border-radius: 50%; }
