/*
Theme Name: City Oriental
Theme URI: https://cityoriental.dk
Author: City Oriental
Description: Custom block theme for City Oriental — Thai Massage & Spa. Deep red & gold luxury aesthetic with lotus brand mark, Cinzel + Cormorant Garamond + Jost typography. WooCommerce-ready.
Version: 1.0.0
Requires at least: 6.5
Tested up to: 6.7
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: cityoriental
Tags: full-site-editing, block-theme, custom-colors, custom-menu, custom-logo, e-commerce, one-column, two-columns, three-columns, wide-blocks
*/

:root {
  --co-red-deep: #1a0303;
  --co-red: #2a0606;
  --co-red-mid: #3a0606;
  --co-red-velvet: #2a0505;
  --co-gold: #e8c050;
  --co-gold-bright: #f5d870;
  --co-gold-deep: #d4a838;
  --co-gold-dark: #a8801a;
  --co-cream: #f3e4cf;
  --co-mauve: #c8a888;
  --co-rust: #a86040;
  --co-rust-dark: #6a3020;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }

body {
  background: var(--co-red-deep);
  font-family: 'Jost', sans-serif;
  color: var(--co-cream);
  -webkit-font-smoothing: antialiased;
  margin: 0;
}

::-webkit-scrollbar { width: 6px; }
::-webkit-scrollbar-track { background: var(--co-red); }
::-webkit-scrollbar-thumb { background: var(--co-gold); border-radius: 2px; }

input, select, textarea { color-scheme: dark; }

img { max-width: 100%; height: auto; display: block; }

/* ───── Textures ───── */
.co-red-damask {
  background-color: var(--co-red-mid);
  background-image:
    radial-gradient(ellipse at 30% 20%, rgba(160,30,30,0.35) 0%, transparent 55%),
    radial-gradient(ellipse at 75% 60%, rgba(120,15,15,0.4) 0%, transparent 60%),
    radial-gradient(ellipse at 50% 50%, rgba(80,8,8,0.6) 0%, rgba(20,2,2,0.85) 80%);
}
.co-red-velvet {
  background-color: var(--co-red-velvet);
  background-image:
    radial-gradient(ellipse at 50% 0%, rgba(110,12,12,0.5) 0%, transparent 70%),
    radial-gradient(ellipse at 0% 100%, rgba(60,8,8,0.5) 0%, transparent 60%);
}

/* ───── Nav ───── */
.co-nav {
  position: fixed; top: 0; left: 0; right: 0; z-index: 100;
  background: transparent;
  border-bottom: 1px solid transparent;
  transition: all 0.5s ease;
  padding: 0 5vw;
}
/* Drop the nav below the WP admin bar for logged-in users */
body.admin-bar .co-nav { top: 32px; }
@media (max-width: 782px) {
  body.admin-bar .co-nav { top: 46px; }
}
.co-nav.scrolled {
  background: rgba(26,3,3,0.96);
  backdrop-filter: blur(16px);
  border-bottom-color: rgba(232,192,80,0.2);
}
.co-nav__inner {
  max-width: 1280px; margin: 0 auto;
  display: flex; align-items: center; justify-content: space-between;
  height: 112px;                           /* taller at top of page */
  transition: height 0.4s ease;
}
.co-nav.scrolled .co-nav__inner { height: 78px; }  /* compact after scroll */
.co-nav__brand {
  display: flex; align-items: center; gap: 14px;
  padding-right: 40px;                     /* breathing room before nav links */
  text-decoration: none;
}
/* Brand stacking — !important and higher specificity to survive
   WooCommerce / Germanized stylesheets that add their own typography
   rules on shop/product/category pages. */
.co-nav .co-nav__brand-title {
  display: block !important;
  margin: 0 !important;
  padding: 4px 0 0 !important;            /* nudges title visually deeper */
  font-family: 'Cinzel', serif !important;
  font-size: 16px !important;
  font-weight: 600 !important;
  color: var(--co-gold) !important;
  letter-spacing: 3px !important;
  line-height: 1 !important;
  white-space: nowrap !important;
}
.co-nav .co-nav__brand-sub {
  display: block !important;
  margin: -11px 0 0 !important;             /* tightly tucked under the title */
  padding: 0 !important;
  font-family: 'Cormorant Garamond', serif !important;
  font-style: italic !important;
  font-size: 12px !important;
  font-weight: 400 !important;
  color: var(--co-mauve) !important;
  letter-spacing: 1px !important;
  line-height: 1 !important;
  white-space: nowrap !important;
}
.co-nav__links { display: flex; gap: 32px; align-items: center; }
.co-nav__link {
  text-decoration: none; color: var(--co-mauve);
  font-family: 'Jost', sans-serif; font-size: 11px; font-weight: 400;
  letter-spacing: 3px; text-transform: uppercase; transition: color 0.2s;
  white-space: nowrap;                     /* keep "ÜBER UNS" on one line */
}
.co-nav__link:hover { color: var(--co-gold); }
.co-nav__cta {
  border: 1px solid var(--co-gold); color: var(--co-gold);
  padding: 10px 26px; font-size: 11px; letter-spacing: 3px; font-weight: 500;
  font-family: 'Jost', sans-serif; text-transform: uppercase; text-decoration: none;
  transition: all 0.3s;
  white-space: nowrap;                     /* "JETZT BUCHEN" stays one line */
}
.co-nav__cta:hover { background: var(--co-gold); color: var(--co-red-deep); }

.co-nav__cart {
  position: relative; display: inline-flex; align-items: center; justify-content: center;
  width: 42px; height: 42px; margin-left: 8px;
  border: 1px solid rgba(232,192,80,0.4); border-radius: 50%;
  transition: all 0.3s; text-decoration: none;
}
.co-nav__cart:hover { border-color: var(--co-gold); background: rgba(232,192,80,0.08); }
.co-nav__cart:hover svg path { stroke: var(--co-gold-bright); }
.co-nav__cart-count {
  position: absolute; top: -6px; right: -6px;
  min-width: 18px; height: 18px; padding: 0 5px;
  background: linear-gradient(135deg, var(--co-gold), var(--co-gold-deep));
  color: var(--co-red-deep);
  font-family: 'Jost', sans-serif; font-size: 10px; font-weight: 600;
  letter-spacing: 0; line-height: 18px; text-align: center;
  border-radius: 9px;
  opacity: 0; transform: scale(0.5); transition: all 0.3s;
}
.co-nav__cart-count.is-visible { opacity: 1; transform: scale(1); }

.co-nav__toggle { display: none; background: none; border: none; color: var(--co-gold); cursor: pointer; }

/* ───── Buttons ───── */
.co-btn {
  display: inline-block; padding: 16px 48px;
  font-family: 'Jost', sans-serif; font-size: 11px; letter-spacing: 3px;
  text-transform: uppercase; text-decoration: none; font-weight: 500;
  transition: all 0.3s; cursor: pointer; border: none;
}
.co-btn--gold {
  background: linear-gradient(135deg, var(--co-gold) 0%, var(--co-gold-deep) 100%);
  color: var(--co-red-deep);
  box-shadow: 0 8px 28px rgba(232,192,80,0.2);
}
.co-btn--gold:hover {
  transform: translateY(-2px);
  box-shadow: 0 12px 32px rgba(232,192,80,0.33);
}
.co-btn--ghost {
  border: 1px solid rgba(232,192,80,0.4); color: var(--co-cream);
  background: transparent;
}
.co-btn--ghost:hover { border-color: var(--co-gold); color: var(--co-gold); }

/* ───── SVG ornaments are inlined; helpers below ───── */
.co-leaf-flourish { display: inline-block; }
.co-corner-ornament { position: absolute; }

/* ───── Section base ───── */
.co-section { padding: 130px 5vw; position: relative; }
.co-section__inner { max-width: 1280px; margin: 0 auto; }
.co-eyebrow {
  display: flex; align-items: center; gap: 12px; margin-bottom: 24px;
  font-family: 'Jost', sans-serif; font-size: 10px; letter-spacing: 5px;
  text-transform: uppercase; color: var(--co-gold); font-weight: 400;
}
.co-eyebrow--center { justify-content: center; }
.co-heading {
  font-family: 'Cinzel', serif; font-weight: 500;
  color: var(--co-gold-bright); letter-spacing: 3px; line-height: 1.1;
  margin: 0 0 16px;
}
.co-heading--xl { font-size: clamp(34px, 4.5vw, 58px); letter-spacing: 4px; }
.co-heading--lg { font-size: clamp(32px, 4vw, 52px); }
.co-heading--md { font-size: clamp(28px, 3.5vw, 46px); }
.co-subhead {
  font-family: 'Cormorant Garamond', serif; font-style: italic;
  font-size: 22px; color: var(--co-mauve); font-weight: 300; margin: 0 0 24px;
}
.co-body {
  font-family: 'Jost', sans-serif; font-size: 14px; font-weight: 300;
  color: var(--co-mauve); line-height: 1.85; letter-spacing: 0.3px;
}

/* ───── Hero ───── */
.co-hero {
  position: relative; min-height: 100vh;
  display: flex; align-items: center; justify-content: center;
  overflow: hidden; padding-top: 100px;
}
.co-hero__bg {
  position: absolute; inset: 0; opacity: 0.28; z-index: 0;
  background-size: cover; background-position: center;
}
.co-hero__glow {
  position: absolute; inset: 0; pointer-events: none; z-index: 1;
  background: radial-gradient(ellipse at 50% 40%, rgba(232,192,80,0.09) 0%, transparent 60%);
}
.co-hero__content {
  position: relative; z-index: 2; text-align: center;
  padding: 60px 5vw; max-width: 1100px;
}
.co-hero__tagline {
  font-family: 'Cormorant Garamond', serif; font-weight: 300; font-style: italic;
  font-size: clamp(22px, 2.8vw, 36px); color: var(--co-cream);
  line-height: 1.4; margin: 0 0 28px; letter-spacing: 1px;
}
.co-hero__body {
  font-family: 'Jost', sans-serif; font-size: 15px; font-weight: 300;
  color: var(--co-mauve); max-width: 560px; margin: 0 auto 52px;
  line-height: 1.85; letter-spacing: 0.5px;
}
.co-hero__cta-row {
  display: flex; gap: 18px; justify-content: center; flex-wrap: wrap;
}

/* ───── Brand mark ───── */
.co-brand { display: flex; flex-direction: column; align-items: center; gap: 8px; }
.co-brand__title {
  display: flex; align-items: center; gap: 10px;
  font-family: 'Cinzel', serif; font-weight: 600;
  color: var(--co-gold); line-height: 1; margin: 0;
}
.co-brand--lg .co-brand__title {
  font-size: clamp(38px, 5.5vw, 72px); letter-spacing: 4px;
  text-shadow: 0 0 24px rgba(232,192,80,0.33), 0 2px 0 rgba(0,0,0,0.4);
}
.co-brand--md .co-brand__title { font-size: 28px; letter-spacing: 4px; }
.co-brand__sub {
  display: flex; align-items: center; gap: 8px;
  font-family: 'Cormorant Garamond', serif; font-style: italic;
  color: var(--co-gold); font-weight: 400;
}
.co-brand--lg .co-brand__sub { font-size: clamp(20px, 2.5vw, 32px); }
.co-brand--md .co-brand__sub { font-size: 18px; }

/* ───── Services grid ───── */
.co-services-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1px;
  background: rgba(232,192,80,0.13);
}
.co-service-card {
  transition: transform 0.4s;
  position: relative; overflow: hidden;
  display: flex; flex-direction: column;
}
.co-service-card:hover { transform: translateY(-4px); }
.co-service-card:hover::before {
  content: ""; position: absolute; top: 0; left: 0; right: 0; height: 2px;
  background: linear-gradient(90deg, transparent, var(--co-gold), transparent); z-index: 3;
}
.co-service-card__media {
  position: relative; aspect-ratio: 4 / 3; overflow: hidden;
}
.co-service-card__media img {
  width: 100%; height: 100%; object-fit: cover;
  transition: transform 0.6s, filter 0.6s;
  filter: brightness(0.7) saturate(0.85);
}
.co-service-card:hover .co-service-card__media img {
  transform: scale(1.05); filter: brightness(0.85) saturate(1);
}
.co-service-card__media::after {
  content: ""; position: absolute; inset: 0; pointer-events: none;
  background: linear-gradient(180deg, transparent 30%, rgba(26,3,3,0.7) 100%);
}
.co-service-card__body { padding: 32px 40px 40px; flex: 1; }
.co-service-card__lotus { margin-bottom: 18px; }
.co-service-card__head {
  display: flex; justify-content: space-between; align-items: flex-start;
  margin-bottom: 10px; gap: 12px;
}
.co-service-card__name {
  font-family: 'Cinzel', serif; font-size: 18px; font-weight: 500;
  color: var(--co-gold-bright); letter-spacing: 1.5px; line-height: 1.3; margin: 0;
}
.co-service-card__price {
  font-family: 'Cormorant Garamond', serif; font-size: 19px;
  color: var(--co-gold); white-space: nowrap; font-weight: 400;
}
.co-service-card__dur {
  font-family: 'Jost', sans-serif; font-size: 10px; letter-spacing: 3px;
  color: var(--co-rust); text-transform: uppercase; margin: 0 0 18px;
}
.co-service-card__desc { margin: 0; }

/* ───── Wellness packages ───── */
.co-wellness-grid {
  display: grid; grid-template-columns: repeat(2, 1fr); gap: 32px;
}
.co-wellness-card {
  display: grid; grid-template-columns: 280px 1fr;
  border: 1px solid rgba(232,192,80,0.2);
  overflow: hidden; transition: transform 0.4s, border-color 0.4s;
  position: relative;
}
.co-wellness-card:hover {
  transform: translateY(-4px);
  border-color: var(--co-gold);
}
.co-wellness-card__media {
  position: relative; min-height: 100%; overflow: hidden;
}
.co-wellness-card__media img {
  width: 100%; height: 100%; object-fit: cover;
  transition: transform 0.6s;
  filter: brightness(0.85);
}
.co-wellness-card:hover .co-wellness-card__media img { transform: scale(1.06); }
.co-wellness-card__tag {
  position: absolute; top: 14px; left: 14px;
  background: linear-gradient(135deg, var(--co-gold), var(--co-gold-deep));
  color: var(--co-red-deep);
  padding: 5px 12px;
  font-family: 'Jost', sans-serif; font-size: 9px; letter-spacing: 2px;
  text-transform: uppercase; font-weight: 600;
}
.co-wellness-card__body { padding: 32px 36px 36px; display: flex; flex-direction: column; }
.co-wellness-card__head {
  display: flex; justify-content: space-between; align-items: flex-start;
  margin-bottom: 6px; gap: 12px;
}
.co-wellness-card__name {
  font-family: 'Cinzel', serif; font-size: 16px; font-weight: 500;
  color: var(--co-gold-bright); letter-spacing: 1.5px; line-height: 1.3; margin: 0;
}
.co-wellness-card__price {
  font-family: 'Cormorant Garamond', serif; font-size: 22px;
  color: var(--co-gold); white-space: nowrap; font-weight: 500;
}
.co-wellness-card__dur {
  font-family: 'Jost', sans-serif; font-size: 10px; letter-spacing: 3px;
  color: var(--co-rust); text-transform: uppercase; margin: 0 0 22px;
}
.co-wellness-card__features {
  list-style: none; padding: 0; margin: 0 0 28px;
  display: flex; flex-direction: column; gap: 10px;
  font-family: 'Jost', sans-serif; font-size: 13px; font-weight: 300;
  color: var(--co-mauve); line-height: 1.5;
}
.co-wellness-card__features li {
  padding-left: 22px; position: relative;
}
.co-wellness-card__features li::before {
  content: ""; position: absolute; left: 0; top: 7px;
  width: 8px; height: 8px; background: var(--co-gold);
  transform: rotate(45deg);
}
.co-wellness-card__cta {
  display: inline-block; margin-top: auto; align-self: flex-start;
  font-family: 'Jost', sans-serif; font-size: 11px;
  letter-spacing: 3px; text-transform: uppercase;
  color: var(--co-gold); text-decoration: none; font-weight: 500;
  padding: 10px 0; border-bottom: 1px solid rgba(232,192,80,0.4);
  transition: border-color 0.3s;
}
.co-wellness-card__cta:hover { border-bottom-color: var(--co-gold); }

@media (max-width: 900px) {
  .co-wellness-grid { grid-template-columns: 1fr; }
  .co-wellness-card { grid-template-columns: 1fr; }
  .co-wellness-card__media { aspect-ratio: 16 / 10; }
}

/* ───── About ───── */
.co-about-grid {
  display: grid; grid-template-columns: 1fr 1fr; gap: 100px; align-items: center;
}
.co-stats {
  display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px;
  border-top: 1px solid rgba(232,192,80,0.2); padding-top: 40px; margin-top: 16px;
}
.co-stat__num {
  font-family: 'Cinzel', serif; font-size: 32px; font-weight: 500;
  color: var(--co-gold); margin-bottom: 6px; letter-spacing: 1px;
}
.co-stat__lbl {
  font-family: 'Jost', sans-serif; font-size: 10px; letter-spacing: 2px;
  color: var(--co-rust); text-transform: uppercase; font-weight: 400; line-height: 1.5;
}
.co-framed-img {
  position: relative;
}
.co-framed-img img { width: 100%; display: block; }
.co-framed-img::before {
  content: ""; position: absolute; inset: -12px;
  border: 2px solid var(--co-gold); pointer-events: none;
}
.co-framed-img::after {
  content: ""; position: absolute; inset: -4px;
  border: 1px solid rgba(232,192,80,0.4); pointer-events: none;
}

/* ───── Book ───── */
.co-book-grid {
  display: grid; grid-template-columns: 1fr 1fr; gap: 100px;
  align-items: start; position: relative;
}
.co-book__glow {
  position: absolute; top: 50%; left: 50%;
  transform: translate(-50%, -50%);
  width: 700px; height: 700px; border-radius: 50%;
  background: radial-gradient(circle, rgba(232,192,80,0.06), transparent 70%);
  pointer-events: none; z-index: 0;
}
.co-info-row {
  display: flex; flex-direction: column; gap: 28px;
}
.co-info-item { display: flex; gap: 20px; align-items: flex-start; }
.co-info-icon {
  width: 36px; height: 36px;
  border: 1px solid rgba(232,192,80,0.4);
  display: flex; align-items: center; justify-content: center;
  flex-shrink: 0;
}
.co-info-label {
  font-family: 'Jost', sans-serif; font-size: 9px; letter-spacing: 3px;
  text-transform: uppercase; color: var(--co-gold); font-weight: 500;
  margin-bottom: 4px;
}
.co-info-value {
  font-family: 'Jost', sans-serif; font-size: 14px; font-weight: 300;
  color: var(--co-mauve); white-space: pre-line; line-height: 1.75;
}
.co-form-card {
  position: relative; padding: 52px 48px;
  background: var(--co-red); border: 1px solid rgba(232,192,80,0.2);
}
.co-form-card h3 {
  font-family: 'Cinzel', serif; font-size: 18px; font-weight: 500;
  color: var(--co-gold-bright); letter-spacing: 2.5px; margin: 0 0 36px;
}
.co-form-field { display: flex; flex-direction: column; gap: 2px; margin-bottom: 26px; }
.co-form-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 18px;
}
.co-form-row .co-form-field { margin-bottom: 26px; }
@media (max-width: 600px) {
  .co-form-row { grid-template-columns: 1fr; gap: 0; }
}
.co-form-field label {
  font-family: 'Jost', sans-serif; font-size: 9px; letter-spacing: 3px;
  text-transform: uppercase; color: var(--co-gold); font-weight: 500;
}
.co-form-field input,
.co-form-field select,
.co-form-field textarea {
  width: 100%; background: transparent; border: none;
  border-bottom: 1px solid rgba(232,192,80,0.2);
  padding: 12px 0;
  font-family: 'Jost', sans-serif; font-size: 14px;
  color: var(--co-cream); outline: none; font-weight: 300;
}
.co-form-field textarea { resize: none; height: 56px; }
.co-form-field input:focus,
.co-form-field select:focus,
.co-form-field textarea:focus { border-bottom-color: var(--co-gold); }
.co-form-card button[type="submit"] {
  background: linear-gradient(135deg, var(--co-gold) 0%, var(--co-gold-deep) 100%);
  color: var(--co-red-deep); border: none; padding: 16px 0; width: 100%;
  font-family: 'Jost', sans-serif; font-size: 11px; letter-spacing: 3px;
  text-transform: uppercase; cursor: pointer; font-weight: 500; margin-top: 12px;
  transition: opacity 0.2s; box-shadow: 0 6px 24px rgba(232,192,80,0.2);
}
.co-form-card button[type="submit"]:hover { opacity: 0.85; }
.co-form-divider {
  margin-top: 28px; padding-top: 24px;
  border-top: 1px solid rgba(232,192,80,0.15);
  text-align: center;
}
.co-form-divider p {
  font-family: 'Cormorant Garamond', serif; font-style: italic;
  font-size: 14px; color: var(--co-mauve); margin: 0 0 14px;
}

/* ───── Testimonials ───── */
.co-testimonials { text-align: center; max-width: 900px; margin: 0 auto; }
.co-testimonial {
  margin: 56px 0 32px;
}
.co-testimonial__mark {
  font-size: 64px; color: rgba(232,192,80,0.3);
  font-family: 'Cormorant Garamond', serif; line-height: 0.5; margin-bottom: 18px;
}
.co-testimonial__quote {
  font-family: 'Cormorant Garamond', serif;
  font-size: clamp(20px, 2.4vw, 28px);
  font-weight: 400; font-style: italic; color: var(--co-cream);
  line-height: 1.65; max-width: 760px; margin: 0 auto 36px;
}
.co-testimonial__name {
  font-family: 'Cinzel', serif; font-size: 12px; font-weight: 600;
  color: var(--co-gold); letter-spacing: 3px;
}
.co-testimonial__label {
  font-family: 'Jost', sans-serif; font-size: 10px; color: var(--co-rust);
  letter-spacing: 2px; margin-top: 6px; text-transform: uppercase; font-weight: 400;
}
.co-testimonial-dots {
  display: flex; justify-content: center; gap: 14px; margin-top: 36px;
}
.co-testimonial-dot {
  width: 8px; height: 8px; background: rgba(232,192,80,0.2);
  border: none; cursor: pointer; padding: 0; transform: rotate(45deg);
  transition: all 0.4s;
}
.co-testimonial-dot.is-active { background: var(--co-gold); }

/* ───── Shop preview ───── */
.co-shop-head {
  display: flex; justify-content: space-between; align-items: flex-end;
  margin-bottom: 72px; flex-wrap: wrap; gap: 24px;
}
.co-products-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(290px, 1fr));
  gap: 16px;
}
.co-products-grid--teaser {
  grid-template-columns: repeat(3, 1fr);
}
@media (max-width: 900px) {
  .co-products-grid--teaser { grid-template-columns: 1fr; }
}
/* Defensive: WC's product loop styles target .product { float:left; width:22%; }
   which can sneak in via wc_product_class() output. Pin our cards back. */
.co-products-grid .co-product.product {
  float: none !important;
  width: auto !important;
  margin: 0 !important;
  padding: 0 !important;
  display: flex !important;
  flex-direction: column !important;
}
.co-products-grid .co-product .co-product__body { display: block !important; }
.co-product {
  position: relative; overflow: hidden;
  transition: transform 0.3s;
  background: var(--co-red-velvet);
}
.co-product:hover { transform: translateY(-4px); }
.co-product__media { position: relative; aspect-ratio: 4 / 3; overflow: hidden; }
.co-product__media img { width: 100%; height: 100%; object-fit: cover; display: block; }
.co-product__tag {
  position: absolute; top: 14px; left: 14px;
  background: linear-gradient(135deg, var(--co-gold), var(--co-gold-deep));
  color: var(--co-red-deep);
  padding: 5px 12px;
  font-family: 'Jost', sans-serif; font-size: 9px; letter-spacing: 2px;
  text-transform: uppercase; font-weight: 600;
}
.co-product__body {
  padding: 26px 28px 30px;
  display: flex;
  flex-direction: column;
  flex: 1;                                  /* fill the card height */
}
.co-product__foot {
  margin-top: auto;                          /* pin the price + button to the bottom */
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 12px;
}
.co-product__name {
  font-family: 'Cinzel', serif; font-size: 14px; font-weight: 500;
  color: var(--co-gold-bright); letter-spacing: 1.5px; margin: 0 0 6px;
}
.co-product__sub {
  font-family: 'Cormorant Garamond', serif; font-style: italic;
  font-size: 14px; color: var(--co-mauve); margin: 0 0 20px; font-weight: 300;
}
.co-product__foot {
  display: flex; justify-content: space-between; align-items: center;
}
.co-product__price-wrap { display: flex; flex-direction: column; gap: 2px; }
.co-product__price {
  font-family: 'Cinzel', serif; font-size: 22px;
  color: var(--co-gold); font-weight: 600;
}
.co-product__tax {
  font-family: 'Jost', sans-serif; font-size: 9px;
  letter-spacing: 1.5px; color: var(--co-rust);
  text-transform: uppercase;
}
.co-product__btn {
  background: transparent; border: 1px solid rgba(232,192,80,0.4);
  color: var(--co-gold);
  padding: 8px 18px;
  font-family: 'Jost', sans-serif; font-size: 10px; letter-spacing: 2px;
  text-transform: uppercase; cursor: pointer; font-weight: 500;
  transition: all 0.3s; text-decoration: none; display: inline-block;
}
.co-product__btn:hover {
  background: var(--co-gold); color: var(--co-red-deep); border-color: var(--co-gold);
}

/* ───── FAQ ───── */
.co-faq { max-width: 820px; margin: 0 auto; }
.co-faq__item { border-top: 1px solid rgba(232,192,80,0.13); }
.co-faq__item:last-of-type { border-bottom: 1px solid rgba(232,192,80,0.13); }
.co-faq__btn {
  width: 100%; background: none; border: none; padding: 26px 0;
  display: flex; justify-content: space-between; align-items: center;
  cursor: pointer; text-align: left; gap: 24px; color: var(--co-cream);
}
.co-faq__btn:hover .co-faq__q { color: var(--co-gold); }
.co-faq__q {
  font-family: 'Cinzel', serif; font-size: 14px; font-weight: 500;
  letter-spacing: 1.5px; transition: color 0.3s;
}
.co-faq__icon { flex-shrink: 0; transition: transform 0.4s; }
.co-faq__item.is-open .co-faq__icon { transform: rotate(45deg); }
.co-faq__item.is-open .co-faq__q { color: var(--co-gold); }
.co-faq__panel {
  overflow: hidden; max-height: 0;
  transition: max-height 0.4s ease;
}
.co-faq__item.is-open .co-faq__panel { max-height: 360px; }
.co-faq__a {
  font-family: 'Jost', sans-serif; font-size: 14px; font-weight: 300;
  color: var(--co-mauve); line-height: 1.9; padding-bottom: 28px; margin: 0;
}

/* ───── Footer ───── */
.co-footer {
  background: #0d0202;
  border-top: 1px solid rgba(232,192,80,0.2);
  padding: 72px 5vw 40px;
}
.co-footer__inner { max-width: 1280px; margin: 0 auto; }
.co-footer__brand {
  text-align: center; margin-bottom: 56px; padding-bottom: 56px;
  border-bottom: 1px solid rgba(232,192,80,0.13);
}
.co-footer__brand p {
  font-family: 'Cormorant Garamond', serif; font-style: italic;
  font-size: 16px; color: var(--co-mauve); margin-top: 24px; font-weight: 300;
}
.co-footer__cols {
  display: flex; justify-content: space-between; align-items: flex-start;
  flex-wrap: wrap; gap: 48px; margin-bottom: 48px;
}
.co-footer__col-title {
  font-family: 'Cinzel', serif; font-size: 11px; letter-spacing: 3px;
  color: var(--co-gold); margin-bottom: 20px; font-weight: 600;
  text-transform: uppercase;
}
.co-footer__col-links { display: flex; flex-direction: column; gap: 10px; }
.co-footer__col-links a {
  font-family: 'Jost', sans-serif; font-size: 12px; font-weight: 300;
  color: var(--co-rust); text-decoration: none; transition: color 0.2s;
}
.co-footer__col-links a:hover { color: var(--co-gold); }
.co-footer__legal {
  display: flex; justify-content: space-between; flex-wrap: wrap; gap: 12px;
  padding-top: 32px; border-top: 1px solid rgba(232,192,80,0.08);
}
.co-footer__legal p {
  font-family: 'Jost', sans-serif; font-size: 11px; font-weight: 300;
  color: var(--co-rust-dark); margin: 0;
}

/* ───── Responsive ───── */
@media (max-width: 1100px) {
  .co-services-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 900px) {
  .co-nav__links { display: none; position: absolute; top: 86px; left: 0; right: 0;
    flex-direction: column; gap: 0; background: rgba(26,3,3,0.98);
    padding: 24px 5vw; border-bottom: 1px solid rgba(232,192,80,0.2);
  }
  .co-nav__links.is-open { display: flex; }
  .co-nav__link { padding: 14px 0; border-bottom: 1px solid rgba(232,192,80,0.08); }
  .co-nav__cart { margin-left: 0; margin-top: 16px; align-self: flex-start; }
  .co-nav__toggle { display: block; }
  .co-services-grid { grid-template-columns: 1fr; }
  .co-about-grid { grid-template-columns: 1fr; gap: 60px; }
  .co-book-grid { grid-template-columns: 1fr; gap: 60px; }
  .co-section { padding: 90px 5vw; }
  .co-form-card { padding: 36px 28px; }
  .co-service-card__body { padding: 28px 28px 32px; }
}

/* ───── Shop archive (branded) ───── */
.co-shop-cats {
  display: flex; justify-content: center; gap: 0; flex-wrap: wrap;
  margin: 0 auto 56px; padding-bottom: 32px;
  border-bottom: 1px solid rgba(232,192,80,0.15);
}
.co-shop-cat {
  display: inline-block;
  font-family: 'Jost', sans-serif; font-size: 11px; letter-spacing: 3px;
  text-transform: uppercase; color: var(--co-mauve);
  text-decoration: none; padding: 14px 28px;
  border: 1px solid transparent;
  transition: all 0.3s;
}
.co-shop-cat:hover { color: var(--co-gold); }
.co-shop-cat.is-active {
  color: var(--co-gold);
  border-color: rgba(232,192,80,0.3);
}
.co-shop-archive ul.products,
.co-shop-archive .products {
  list-style: none; padding: 0; margin: 0;
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
  gap: 1px;
  background: rgba(232,192,80,0.13);
}
.co-shop-archive ul.products::before,
.co-shop-archive ul.products::after { display: none; }
.co-shop-archive ul.products li,
.co-shop-archive .products li {
  list-style: none; margin: 0;
}
.co-shop-archive__foot {
  margin-top: 48px;
  display: flex; justify-content: center;
}
.co-shop-archive .woocommerce-pagination ul {
  display: flex; gap: 4px; list-style: none; padding: 0; margin: 0;
}
.co-shop-archive .woocommerce-pagination ul li a,
.co-shop-archive .woocommerce-pagination ul li span {
  display: inline-block; padding: 10px 16px;
  font-family: 'Jost', sans-serif; font-size: 12px;
  color: var(--co-mauve); text-decoration: none;
  border: 1px solid rgba(232,192,80,0.2);
  transition: all 0.3s;
}
.co-shop-archive .woocommerce-pagination ul li span.current,
.co-shop-archive .woocommerce-pagination ul li a:hover {
  color: var(--co-red-deep);
  background: var(--co-gold);
  border-color: var(--co-gold);
}

/* ───── Single product (branded) ───── */
.co-single__inner {
  display: grid; grid-template-columns: 1fr 1fr; gap: 80px;
  align-items: start;
}
.co-single__media { position: relative; }
.co-single__media img { width: 100%; height: auto; display: block; }
.co-single__body { padding-top: 20px; }
.co-single__back {
  display: inline-block; margin-bottom: 28px;
  font-family: 'Jost', sans-serif; font-size: 10px; letter-spacing: 3px;
  text-transform: uppercase; color: var(--co-mauve);
  text-decoration: none; transition: color 0.3s;
}
.co-single__back:hover { color: var(--co-gold); }
.co-single__title {
  font-family: 'Cinzel', serif; font-size: clamp(28px, 3.5vw, 42px);
  font-weight: 500; color: var(--co-gold-bright);
  letter-spacing: 3px; line-height: 1.15;
  margin: 0 0 20px;
}
.co-single__sub {
  font-family: 'Cormorant Garamond', serif; font-style: italic;
  font-size: 22px; color: var(--co-mauve); font-weight: 300;
  margin: 0 0 32px;
}
.co-single__price-row {
  display: flex; align-items: baseline; gap: 14px; flex-wrap: wrap;
  padding: 24px 0; margin-bottom: 24px;
  border-top: 1px solid rgba(232,192,80,0.2);
  border-bottom: 1px solid rgba(232,192,80,0.2);
}
.co-single__price {
  font-family: 'Cinzel', serif; font-size: 32px;
  color: var(--co-gold); font-weight: 600;
}
.co-single__price del { opacity: 0.5; margin-right: 12px; }
.co-single__tax {
  font-family: 'Jost', sans-serif; font-size: 10px;
  letter-spacing: 2px; color: var(--co-rust);
  text-transform: uppercase;
}
.co-single__form { margin-bottom: 32px; }
.co-single__form form.cart {
  display: flex; align-items: stretch; gap: 14px; flex-wrap: wrap;
  margin: 0;
}
.co-single__form .quantity input.qty {
  width: 70px; height: 50px; text-align: center;
  background: var(--co-red); color: var(--co-cream);
  border: 1px solid rgba(232,192,80,0.3);
  font-family: 'Jost', sans-serif; font-size: 14px;
}
.co-single__form button.single_add_to_cart_button {
  background: linear-gradient(135deg, var(--co-gold) 0%, var(--co-gold-deep) 100%) !important;
  color: var(--co-red-deep) !important;
  border: none; padding: 16px 40px !important;
  font-family: 'Jost', sans-serif; font-size: 11px;
  letter-spacing: 3px; text-transform: uppercase;
  font-weight: 500; cursor: pointer;
  box-shadow: 0 8px 24px rgba(232,192,80,0.2);
  transition: transform 0.2s, box-shadow 0.3s;
}
.co-single__form button.single_add_to_cart_button:hover {
  transform: translateY(-2px);
  box-shadow: 0 12px 30px rgba(232,192,80,0.3);
}
.co-single__delivery {
  font-family: 'Jost', sans-serif; font-size: 13px; font-weight: 300;
  color: var(--co-mauve); margin: 0 0 32px;
}
.co-single__delivery strong { color: var(--co-gold); font-weight: 500; }
.co-single__desc { margin-bottom: 32px; }
.co-single__desc p { margin-bottom: 14px; }
.co-single__meta {
  display: flex; flex-direction: column; gap: 6px;
  padding-top: 24px;
  border-top: 1px solid rgba(232,192,80,0.15);
  font-family: 'Jost', sans-serif; font-size: 11px; letter-spacing: 2px;
  text-transform: uppercase; color: var(--co-rust);
}

@media (max-width: 900px) {
  .co-single__inner { grid-template-columns: 1fr; gap: 60px; }
  .co-single__title { font-size: 28px; }
}

/* ───── Treatment / wellness detail page ───── */
.co-treatment__inner {
  display: grid; grid-template-columns: 1fr 1fr; gap: 80px;
  align-items: start;
}
.co-treatment__media { position: relative; }
.co-treatment__media img {
  width: 100%; aspect-ratio: 4 / 5; object-fit: cover; display: block;
}
.co-treatment__body { padding-top: 20px; }
.co-treatment__pricerow {
  display: flex; gap: 60px; padding: 28px 0; margin: 12px 0 36px;
  border-top: 1px solid rgba(232,192,80,0.2);
  border-bottom: 1px solid rgba(232,192,80,0.2);
}
.co-treatment__pricelabel {
  font-family: 'Jost', sans-serif; font-size: 10px;
  letter-spacing: 3px; text-transform: uppercase;
  color: var(--co-gold); font-weight: 500; margin-bottom: 6px;
}
.co-treatment__pricevalue {
  font-family: 'Cinzel', serif; font-size: 26px;
  color: var(--co-gold-bright); font-weight: 500;
}
.co-treatment__desc p { margin-bottom: 18px; font-size: 15px; line-height: 1.9; }
.co-treatment__meta {
  display: grid; grid-template-columns: 1fr 1fr; gap: 80px;
  margin-top: 80px; padding-top: 64px;
  border-top: 1px solid rgba(232,192,80,0.15);
}
.co-treatment__meta-col h2 { margin-bottom: 20px; }
.co-services-grid--related { grid-template-columns: repeat(3, 1fr); }
@media (max-width: 900px) {
  .co-treatment__inner { grid-template-columns: 1fr; gap: 60px; }
  .co-treatment__meta { grid-template-columns: 1fr; gap: 48px; }
  .co-services-grid--related { grid-template-columns: 1fr; }
  .co-treatment__pricerow { gap: 32px; }
}

/* ───── Gift card landing page ───── */
.co-gift-hero {
  text-align: center; max-width: 720px; margin: 0 auto 80px;
}
.co-gift-hero p { font-size: 16px; line-height: 1.85; }
.co-gift-grid {
  display: grid; grid-template-columns: repeat(3, 1fr); gap: 32px;
  margin-bottom: 64px;
}
.co-gift-card {
  position: relative;
  background: var(--co-red-velvet);
  border: 1px solid rgba(232,192,80,0.3);
  padding: 48px 36px;
  text-align: center;
  transition: all 0.3s;
  display: flex; flex-direction: column;
}
.co-gift-card:hover {
  border-color: var(--co-gold);
  transform: translateY(-4px);
}
.co-gift-card__media {
  width: 120px; height: 120px; margin: 0 auto 32px;
  border-radius: 50%; overflow: hidden;
  border: 2px solid var(--co-gold);
}
.co-gift-card__media img { width: 100%; height: 100%; object-fit: cover; }
.co-gift-card__name {
  font-family: 'Cinzel', serif; font-size: 18px; font-weight: 500;
  color: var(--co-gold-bright); letter-spacing: 2px; margin: 0 0 8px;
}
.co-gift-card__sub {
  font-family: 'Cormorant Garamond', serif; font-style: italic;
  font-size: 16px; color: var(--co-mauve);
  margin: 0 0 32px; font-weight: 300;
}
.co-gift-card__price {
  font-family: 'Cinzel', serif; font-size: 36px;
  color: var(--co-gold); font-weight: 600; margin-bottom: 4px;
}
.co-gift-card__tax {
  font-family: 'Jost', sans-serif; font-size: 9px; letter-spacing: 2px;
  color: var(--co-rust); text-transform: uppercase;
  margin-bottom: 28px;
}
.co-gift-card__cta {
  margin-top: auto;
  display: inline-block; padding: 14px 32px;
  background: linear-gradient(135deg, var(--co-gold) 0%, var(--co-gold-deep) 100%);
  color: var(--co-red-deep) !important;
  font-family: 'Jost', sans-serif; font-size: 11px;
  letter-spacing: 3px; text-transform: uppercase;
  font-weight: 500; text-decoration: none;
  transition: transform 0.2s;
}
.co-gift-card__cta:hover { transform: translateY(-2px); }
.co-gift-perks {
  display: grid; grid-template-columns: repeat(3, 1fr); gap: 32px;
  padding-top: 56px;
  border-top: 1px solid rgba(232,192,80,0.15);
}
.co-gift-perk {
  text-align: center; padding: 20px;
}
.co-gift-perk__icon { margin: 0 auto 16px; }
.co-gift-perk__title {
  font-family: 'Cinzel', serif; font-size: 13px; font-weight: 500;
  color: var(--co-gold); letter-spacing: 2px;
  margin: 0 0 8px; text-transform: uppercase;
}
.co-gift-perk__body {
  font-family: 'Jost', sans-serif; font-size: 13px;
  color: var(--co-mauve); font-weight: 300; line-height: 1.7;
}
@media (max-width: 900px) {
  .co-gift-grid { grid-template-columns: 1fr; }
  .co-gift-perks { grid-template-columns: 1fr; gap: 24px; }
}

/* ───── WooCommerce page wrappers (cart, checkout, account)
   These pages use WC's own block-based page-content-wrapper instead
   of our templates/page.html, so they don't inherit our 160px top
   padding and end up colliding with the fixed nav. */
body.woocommerce-cart    main[data-block-name="woocommerce/page-content-wrapper"],
body.woocommerce-checkout main[data-block-name="woocommerce/page-content-wrapper"],
body.woocommerce-account main[data-block-name="woocommerce/page-content-wrapper"],
body.woocommerce-cart    .wp-site-blocks > main.wp-block-group,
body.woocommerce-checkout .wp-site-blocks > main.wp-block-group,
body.woocommerce-account .wp-site-blocks > main.wp-block-group {
  padding-top: 160px !important;
  padding-bottom: 80px;
  background: var(--co-red-velvet);
}

/* ───── WooCommerce overrides ───── */
.woocommerce-page,
.woocommerce {
  background: var(--co-red-deep); color: var(--co-cream);
}
.woocommerce ul.products li.product .woocommerce-loop-product__title,
.woocommerce ul.products li.product h2,
.woocommerce ul.products li.product h3 {
  font-family: 'Cinzel', serif !important;
  color: var(--co-gold-bright) !important;
  letter-spacing: 1.5px;
}
.woocommerce ul.products li.product .price,
.woocommerce div.product p.price,
.woocommerce div.product span.price {
  color: var(--co-gold) !important;
  font-family: 'Cinzel', serif !important;
  font-weight: 500;
}
.woocommerce #respond input#submit,
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button {
  background: linear-gradient(135deg, var(--co-gold) 0%, var(--co-gold-deep) 100%) !important;
  color: var(--co-red-deep) !important;
  font-family: 'Jost', sans-serif !important;
  text-transform: uppercase;
  letter-spacing: 2px;
  font-weight: 500;
  border: none !important;
  padding: 12px 28px !important;
}
.woocommerce #respond input#submit:hover,
.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce input.button:hover {
  opacity: 0.9; color: var(--co-red-deep) !important;
}
.woocommerce a.button.alt,
.woocommerce button.button.alt {
  background: var(--co-gold) !important; color: var(--co-red-deep) !important;
}
.woocommerce-message,
.woocommerce-info,
.woocommerce-error {
  background: var(--co-red-velvet) !important; color: var(--co-cream) !important;
  border-top-color: var(--co-gold) !important;
}
.woocommerce-message::before,
.woocommerce-info::before { color: var(--co-gold) !important; }
.woocommerce .quantity .qty {
  background: var(--co-red-velvet); color: var(--co-cream);
  border: 1px solid rgba(232,192,80,0.3);
}
.woocommerce table.shop_table,
.woocommerce-cart table.cart {
  background: var(--co-red-velvet); color: var(--co-cream);
  border-color: rgba(232,192,80,0.2);
}
.woocommerce table.shop_table th { color: var(--co-gold); font-family: 'Cinzel', serif; letter-spacing: 2px; }
.woocommerce-cart .cart-collaterals .cart_totals h2,
.woocommerce-checkout #order_review_heading,
.woocommerce h1, .woocommerce h2, .woocommerce h3 {
  font-family: 'Cinzel', serif; color: var(--co-gold-bright); letter-spacing: 2px;
}
.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.woocommerce form .form-row select {
  background: var(--co-red); color: var(--co-cream);
  border: 1px solid rgba(232,192,80,0.2); padding: 12px;
}
.woocommerce form .form-row label { color: var(--co-gold); font-family: 'Jost', sans-serif; font-size: 12px; letter-spacing: 1px; }
