/* ============================================================
   Tarawell Travels — company.css v2.0 (Golden Night, premium)
   Shared component system for every company-*.html page.

   Load order on every company page:
     main.css → template-hero-section.css → template-header.css
     → template-footer.css → company.css → company-<page>.css

   Rules
   - Every value resolves to a main.css custom property
     (section 2 brand tokens, section 33 company tokens).
   - The hero is owned by template-hero-section.css. Nothing in
     this file targets .hero-slideshow or its children.
   - Photos sit in rounded rectangles with no overlays.
   - company-<page>.css holds only that page's unique layout.
   ============================================================ */

/* ============================================================
   1. KICKER STRIP (breadcrumb + quick company links)
   ============================================================ */
.coy-kicker {
  position: relative;
  background: var(--coy-glass-strong);
  border-bottom: 1px solid var(--coy-border-soft);
  padding: var(--spacing-4) 0;
  backdrop-filter: blur(10px);
}
.coy-kicker::after {
  content: '';
  position: absolute;
  left: 0; right: 0; bottom: -1px;
  height: 1px;
  background: var(--coy-hairline);
  opacity: 0.6;
}
.coy-kicker-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: var(--spacing-3);
}
.coy-crumbs {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: var(--spacing-2);
  font-family: var(--font-primary);
  font-size: var(--text-xs);
  letter-spacing: var(--ls-wider);
  text-transform: uppercase;
  color: var(--text-muted);
}
.coy-crumbs a { color: var(--text-muted); text-decoration: none; transition: var(--transition-fast); }
.coy-crumbs a:hover { color: var(--color-gold); }
.coy-crumbs i { font-size: var(--text-xs); color: var(--color-gold-dark); opacity: 0.8; }
.coy-crumbs span[aria-current] { color: var(--color-gold-light); }

.coy-kicker-links { display: flex; gap: var(--spacing-2); flex-wrap: wrap; }
.coy-kicker-link {
  display: inline-flex;
  align-items: center;
  gap: var(--spacing-2);
  font-family: var(--font-primary);
  font-size: var(--text-xs);
  font-weight: var(--font-weight-semibold);
  letter-spacing: var(--ls-wide);
  text-transform: uppercase;
  color: var(--text-secondary);
  padding: var(--spacing-2) var(--spacing-4);
  border-radius: var(--coy-radius-chip);
  border: 1px solid var(--coy-border-soft);
  background: var(--coy-glass);
  text-decoration: none;
  transition: var(--transition-elegant);
}
.coy-kicker-link i { color: var(--color-gold); transition: var(--transition-fast); }
.coy-kicker-link:hover {
  color: var(--color-navy-abyss);
  background: var(--gradient-gold);
  border-color: transparent;
  box-shadow: var(--shadow-gold);
}
.coy-kicker-link:hover i { color: var(--color-navy-abyss); }

/* ============================================================
   2. SECTIONS & SECTION HEADS
   ============================================================ */
.coy-section {
  position: relative;
  padding: var(--coy-section-pad) 0;
}
.coy-section--tight { padding: var(--coy-section-pad-sm) 0; }
.coy-section--alt {
  background: var(--coy-surface-alt);
  border-top: 1px solid var(--coy-border-soft);
  border-bottom: 1px solid var(--coy-border-soft);
}
.coy-section--glow { background-image: var(--coy-section-glow); background-repeat: no-repeat; }
.coy-section--panel {
  background: var(--color-navy-deep);
  background-image: var(--coy-panel-glow);
  background-repeat: no-repeat;
  border-top: 1px solid var(--coy-border-gold);
  border-bottom: 1px solid var(--coy-border-gold);
}

.coy-head {
  max-width: var(--coy-measure);
  margin: 0 auto var(--coy-head-gap);
  text-align: center;
}
.coy-head--wide { max-width: var(--coy-measure-wide); }
.coy-head--left { margin-left: 0; text-align: left; }

.coy-eyebrow {
  display: inline-flex;
  align-items: center;
  gap: var(--spacing-3);
  font-family: var(--font-primary);
  font-size: var(--text-xs);
  font-weight: var(--font-weight-bold);
  letter-spacing: var(--ls-widest);
  text-transform: uppercase;
  color: var(--color-gold);
  margin-bottom: var(--spacing-4);
}
.coy-eyebrow::before,
.coy-eyebrow::after {
  content: '\2726';
  font-size: var(--text-xs);
  color: var(--color-gold-light);
  text-shadow: var(--coy-number-glow);
}
.coy-head--left .coy-eyebrow::after { display: none; }

.coy-title {
  font-family: var(--font-display);
  font-size: clamp(var(--text-3xl), 4vw, var(--text-5xl));
  font-weight: var(--font-weight-semibold);
  line-height: var(--leading-tight);
  letter-spacing: var(--ls-tight);
  color: var(--text-primary);
  margin: 0 0 var(--spacing-4);
}
.coy-title em {
  font-family: var(--font-elegant);
  font-style: italic;
  font-weight: var(--font-weight-medium);
  color: var(--color-gold-pale);
  text-shadow: 0 0 24px rgba(var(--color-gold-rgb), 0.45);
}
.coy-sub {
  font-family: var(--font-primary);
  font-size: var(--text-md);
  line-height: var(--leading-relaxed);
  color: var(--text-muted);
  margin: 0;
}
.coy-rule {
  width: 7rem;
  height: 1px;
  margin: var(--spacing-6) auto 0;
  background: var(--coy-hairline);
}
.coy-head--left .coy-rule { margin-left: 0; }

/* ============================================================
   3. GRIDS & SPLITS
   ============================================================ */
.coy-grid { display: grid; gap: var(--coy-grid-gap); }
.coy-grid--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.coy-grid--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.coy-grid--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }

.coy-split {
  display: grid;
  grid-template-columns: minmax(0, 1.05fr) minmax(0, 0.95fr);
  gap: var(--spacing-16);
  align-items: center;
}
.coy-split--flip > :first-child { order: 2; }

/* ============================================================
   4. PROSE
   ============================================================ */
.coy-prose p {
  font-family: var(--font-primary);
  font-size: var(--text-md);
  line-height: var(--leading-relaxed);
  color: var(--text-secondary);
  margin: 0 0 var(--spacing-5);
}
.coy-prose p:last-child { margin-bottom: 0; }
.coy-prose strong { color: var(--color-gold-light); font-weight: var(--font-weight-semibold); }
.coy-lead {
  font-family: var(--font-display);
  font-size: clamp(var(--text-xl), 2.4vw, var(--text-3xl));
  font-style: italic;
  line-height: var(--leading-snug);
  color: var(--color-gold-pale);
  margin: 0 0 var(--spacing-6);
}

/* ============================================================
   5. MEDIA FRAMES (rounded rectangles, no overlays)
   ============================================================ */
.coy-media {
  position: relative;
  border-radius: var(--coy-radius-photo);
  box-shadow: var(--coy-photo-shadow);
}
.coy-media img {
  display: block;
  width: 100%;
  height: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  border-radius: var(--coy-radius-photo);
}
.coy-media--tall img { aspect-ratio: 4 / 5; }
.coy-media--wide img { aspect-ratio: 16 / 9; }
.coy-media-badge {
  position: absolute;
  left: var(--spacing-6);
  bottom: calc(-1 * var(--spacing-6));
  display: flex;
  align-items: center;
  gap: var(--spacing-3);
  padding: var(--spacing-4) var(--spacing-5);
  border-radius: var(--radius-xl);
  background: var(--coy-glass-strong);
  border: 1px solid var(--coy-border-gold);
  backdrop-filter: blur(12px);
  box-shadow: var(--shadow-xl);
}
.coy-media-badge i { font-size: var(--text-2xl); color: var(--color-gold); }
.coy-media-badge strong {
  display: block;
  font-family: var(--font-display);
  font-size: var(--text-2xl);
  line-height: var(--leading-none);
  color: var(--text-primary);
}
.coy-media-badge span {
  font-family: var(--font-primary);
  font-size: var(--text-xs);
  letter-spacing: var(--ls-wider);
  text-transform: uppercase;
  color: var(--text-muted);
}

/* Photo mosaic (team / fleet strips) */
.coy-mosaic {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: var(--spacing-4);
}
.coy-mosaic figure { margin: 0; }
.coy-mosaic img {
  display: block;
  width: 100%;
  aspect-ratio: 1 / 1;
  object-fit: cover;
  border-radius: var(--radius-xl);
  border: 1px solid var(--coy-border-soft);
  transition: var(--transition-elegant);
}
.coy-mosaic figure:hover img { border-color: var(--coy-border-gold-strong); transform: translateY(-4px); }
.coy-mosaic figcaption {
  margin-top: var(--spacing-3);
  font-family: var(--font-primary);
  font-size: var(--text-xs);
  font-weight: var(--font-weight-semibold);
  letter-spacing: var(--ls-wider);
  text-transform: uppercase;
  color: var(--text-muted);
  text-align: center;
}

/* Missing-image state (set by company-core.js) */
.coy-img-missing {
  display: flex;
  align-items: center;
  justify-content: center;
  aspect-ratio: 4 / 3;
  border-radius: var(--coy-radius-photo);
  background: var(--coy-surface-raised);
  border: 1px dashed var(--coy-border-gold);
  color: var(--color-gold);
  font-size: var(--text-5xl);
}

/* ============================================================
   6. STATS
   ============================================================ */
.coy-stats {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: var(--spacing-4);
}
.coy-stat {
  position: relative;
  padding: var(--spacing-8) var(--spacing-6);
  text-align: center;
  border-radius: var(--coy-radius-card);
  background: var(--coy-glass);
  border: 1px solid var(--coy-border-soft);
  overflow: hidden;
}
.coy-stat::before {
  content: '';
  position: absolute;
  top: 0; left: 15%; right: 15%;
  height: 1px;
  background: var(--coy-hairline);
}
.coy-stat-num {
  display: block;
  font-family: var(--font-display);
  font-size: clamp(var(--text-4xl), 4vw, var(--text-6xl));
  font-weight: var(--font-weight-semibold);
  line-height: var(--leading-none);
  background: var(--coy-gold-text);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
  margin-bottom: var(--spacing-3);
}
.coy-stat-label {
  font-family: var(--font-primary);
  font-size: var(--text-xs);
  font-weight: var(--font-weight-semibold);
  letter-spacing: var(--ls-wider);
  text-transform: uppercase;
  color: var(--text-muted);
}

/* ============================================================
   7. CARDS
   ============================================================ */
.coy-card {
  position: relative;
  display: flex;
  flex-direction: column;
  height: 100%;
  padding: var(--spacing-8);
  border-radius: var(--coy-radius-card);
  background: var(--coy-surface);
  border: 1px solid var(--coy-border);
  box-shadow: var(--coy-card-shadow);
  overflow: hidden;
  transition: var(--transition-elegant);
}
.coy-card::before {
  content: '';
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 1px;
  background: var(--coy-hairline);
  opacity: 0;
  transition: var(--transition-elegant);
}
.coy-card:hover {
  transform: translateY(-6px);
  border-color: var(--coy-border-gold-strong);
  box-shadow: var(--coy-card-shadow-hover);
}
.coy-card:hover::before { opacity: 1; }
.coy-card--glass { background: var(--coy-glass); border-color: var(--coy-border-soft); }
.coy-card--center { text-align: center; align-items: center; }

.coy-card-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  width: var(--coy-icon-size);
  height: var(--coy-icon-size);
  border-radius: var(--radius-lg);
  background: var(--coy-icon-bg);
  box-shadow: var(--coy-icon-ring);
  color: var(--color-gold-light);
  font-size: var(--text-xl);
  margin-bottom: var(--spacing-5);
}
.coy-card-num {
  position: absolute;
  top: var(--spacing-5);
  right: var(--spacing-6);
  font-family: var(--font-display);
  font-size: var(--text-4xl);
  font-style: italic;
  line-height: var(--leading-none);
  color: rgba(var(--color-gold-rgb), 0.18);
}
.coy-card-tag {
  display: inline-block;
  align-self: flex-start;
  font-family: var(--font-primary);
  font-size: var(--text-xs);
  font-weight: var(--font-weight-bold);
  letter-spacing: var(--ls-wider);
  text-transform: uppercase;
  color: var(--color-gold);
  padding: var(--spacing-1) var(--spacing-3);
  border-radius: var(--coy-radius-chip);
  border: 1px solid var(--coy-border-gold);
  margin-bottom: var(--spacing-4);
}
.coy-card-title {
  font-family: var(--font-display);
  font-size: var(--text-2xl);
  font-weight: var(--font-weight-semibold);
  line-height: var(--leading-tight);
  color: var(--text-primary);
  margin: 0 0 var(--spacing-3);
}
.coy-card-text {
  font-family: var(--font-primary);
  font-size: var(--text-sm);
  line-height: var(--leading-relaxed);
  color: var(--text-muted);
  margin: 0;
}
.coy-card-list {
  list-style: none;
  margin: var(--spacing-4) 0 0;
  padding: 0;
}
.coy-card-list li {
  position: relative;
  padding-left: var(--spacing-6);
  margin-bottom: var(--spacing-2);
  font-family: var(--font-primary);
  font-size: var(--text-sm);
  line-height: var(--leading-normal);
  color: var(--text-secondary);
}
.coy-card-list li::before {
  content: '\2726';
  position: absolute;
  left: 0; top: 0;
  font-size: var(--text-xs);
  color: var(--color-gold);
}

/* Photo card: rounded image on top, text below */
.coy-photo-card {
  display: flex;
  flex-direction: column;
  height: 100%;
  border-radius: var(--coy-radius-card);
  background: var(--coy-surface);
  border: 1px solid var(--coy-border);
  overflow: hidden;
  transition: var(--transition-elegant);
}
.coy-photo-card:hover {
  transform: translateY(-6px);
  border-color: var(--coy-border-gold-strong);
  box-shadow: var(--coy-card-shadow-hover);
}
.coy-photo-card-media { padding: var(--spacing-3) var(--spacing-3) 0; }
.coy-photo-card-media img { display: block; }
.coy-photo-card-media .coy-img-missing { display: flex; }
.coy-photo-card-media img,
.coy-photo-card-media .coy-img-missing {
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  border-radius: var(--radius-2xl);
}
.coy-photo-card-body { padding: var(--spacing-6) var(--spacing-6) var(--spacing-8); }

/* ============================================================
   8. ICON LIST (advantages, standards, commitments)
   ============================================================ */
.coy-list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--spacing-4) var(--spacing-8);
}
.coy-list--single { grid-template-columns: 1fr; }
.coy-list-item {
  display: flex;
  gap: var(--spacing-5);
  align-items: flex-start;
  padding: var(--spacing-6);
  border-radius: var(--radius-2xl);
  border: 1px solid transparent;
  transition: var(--transition-elegant);
}
.coy-list-item:hover { background: var(--coy-glass); border-color: var(--coy-border-soft); }
.coy-list-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  width: var(--coy-icon-size-sm);
  height: var(--coy-icon-size-sm);
  border-radius: var(--radius-full);
  background: var(--coy-icon-bg);
  box-shadow: var(--coy-icon-ring);
  color: var(--color-gold-light);
  font-size: var(--text-base);
}
.coy-list-title {
  font-family: var(--font-primary);
  font-size: var(--text-md);
  font-weight: var(--font-weight-bold);
  color: var(--text-primary);
  margin: 0 0 var(--spacing-1-5);
}
.coy-list-text {
  font-family: var(--font-primary);
  font-size: var(--text-sm);
  line-height: var(--leading-relaxed);
  color: var(--text-muted);
  margin: 0;
}

/* ============================================================
   9. PROCESS STEPS (client journey)
   ============================================================ */
.coy-steps {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--spacing-6);
  counter-reset: coy-step;
}
.coy-step {
  position: relative;
  padding: var(--spacing-8) var(--spacing-6) var(--spacing-6);
  border-radius: var(--coy-radius-card);
  background: var(--coy-glass);
  border: 1px solid var(--coy-border-soft);
  counter-increment: coy-step;
  transition: var(--transition-elegant);
}
.coy-step:hover { border-color: var(--coy-border-gold-strong); }
.coy-step::before {
  content: counter(coy-step, decimal-leading-zero);
  display: block;
  font-family: var(--font-display);
  font-size: var(--text-5xl);
  font-style: italic;
  line-height: var(--leading-none);
  background: var(--coy-gold-text);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
  margin-bottom: var(--spacing-4);
}
.coy-step-icon {
  position: absolute;
  top: var(--spacing-8);
  right: var(--spacing-6);
  color: var(--color-gold);
  font-size: var(--text-xl);
  opacity: 0.8;
}

/* ============================================================
   10. TIMELINE
   ============================================================ */
.coy-timeline {
  position: relative;
  max-width: var(--coy-measure-wide);
  margin: 0 auto;
  padding-left: var(--spacing-12);
}
.coy-timeline::before {
  content: '';
  position: absolute;
  left: var(--spacing-4);
  top: var(--spacing-2);
  bottom: var(--spacing-2);
  width: 1px;
  background: var(--coy-hairline-v);
}
.coy-tl-item { position: relative; padding-bottom: var(--spacing-10); }
.coy-tl-item:last-child { padding-bottom: 0; }
.coy-tl-item::before {
  content: '\2726';
  position: absolute;
  left: calc(-1 * var(--spacing-8) - var(--spacing-1));
  top: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  width: var(--spacing-6);
  height: var(--spacing-6);
  font-size: var(--text-sm);
  color: var(--color-gold-light);
  background: var(--color-navy-deep);
  text-shadow: var(--coy-number-glow);
}
.coy-tl-year {
  display: inline-block;
  font-family: var(--font-primary);
  font-size: var(--text-xs);
  font-weight: var(--font-weight-bold);
  letter-spacing: var(--ls-widest);
  color: var(--color-gold);
  margin-bottom: var(--spacing-2);
}
.coy-tl-title {
  font-family: var(--font-display);
  font-size: var(--text-2xl);
  font-weight: var(--font-weight-semibold);
  color: var(--text-primary);
  margin: 0 0 var(--spacing-2);
}
.coy-tl-text {
  font-family: var(--font-primary);
  font-size: var(--text-sm);
  line-height: var(--leading-relaxed);
  color: var(--text-muted);
  margin: 0;
}

/* ============================================================
   11. FAQ (native details/summary)
   ============================================================ */
.coy-faq { max-width: var(--coy-measure-wide); margin: 0 auto; display: grid; gap: var(--spacing-3); }
.coy-faq details {
  border-radius: var(--radius-2xl);
  background: var(--coy-glass);
  border: 1px solid var(--coy-border-soft);
  transition: var(--transition-elegant);
}
.coy-faq details[open] { border-color: var(--coy-border-gold); background: var(--coy-surface); }
.coy-faq summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--spacing-4);
  padding: var(--spacing-5) var(--spacing-6);
  font-family: var(--font-primary);
  font-size: var(--text-md);
  font-weight: var(--font-weight-semibold);
  color: var(--text-primary);
  cursor: pointer;
  list-style: none;
}
.coy-faq summary::-webkit-details-marker { display: none; }
.coy-faq summary::after {
  content: '+';
  flex-shrink: 0;
  font-family: var(--font-display);
  font-size: var(--text-3xl);
  line-height: var(--leading-none);
  color: var(--color-gold);
  transition: var(--transition-base);
}
.coy-faq details[open] summary::after { transform: rotate(45deg); }
.coy-faq-answer {
  padding: 0 var(--spacing-6) var(--spacing-6);
  font-family: var(--font-primary);
  font-size: var(--text-sm);
  line-height: var(--leading-relaxed);
  color: var(--text-muted);
  margin: 0;
}

/* ============================================================
   12. CHIPS
   ============================================================ */
.coy-chip-row { display: flex; flex-wrap: wrap; gap: var(--spacing-3); justify-content: center; }
.coy-chip-row--left { justify-content: flex-start; }
.coy-chip {
  display: inline-flex;
  align-items: center;
  gap: var(--spacing-2);
  padding: var(--spacing-2) var(--spacing-5);
  border-radius: var(--coy-radius-chip);
  border: 1px solid var(--coy-border-gold);
  background: var(--coy-glass);
  font-family: var(--font-primary);
  font-size: var(--text-sm);
  font-weight: var(--font-weight-medium);
  color: var(--text-secondary);
}
.coy-chip i { color: var(--color-gold); }
.coy-chip small {
  font-size: var(--text-xs);
  letter-spacing: var(--ls-wide);
  text-transform: uppercase;
  color: var(--color-gold);
}

/* ============================================================
   13. PULL QUOTE / NOTE PANEL
   ============================================================ */
.coy-quote {
  position: relative;
  max-width: var(--coy-measure-wide);
  margin: 0 auto;
  padding: var(--spacing-12) var(--spacing-10);
  text-align: center;
  border-radius: var(--coy-radius-card);
  background: var(--coy-glass);
  border: 1px solid var(--coy-border-gold);
}
.coy-quote::before {
  content: '\201C';
  position: absolute;
  top: calc(-1 * var(--spacing-8));
  left: 50%;
  transform: translateX(-50%);
  font-family: var(--font-display);
  font-size: var(--text-9xl);
  line-height: var(--leading-none);
  color: var(--color-gold);
  text-shadow: var(--coy-number-glow);
}
.coy-quote p {
  font-family: var(--font-display);
  font-size: clamp(var(--text-xl), 2.4vw, var(--text-3xl));
  font-style: italic;
  line-height: var(--leading-snug);
  color: var(--text-primary);
  margin: 0;
}

/* Profile block (founder text, no photo) */
.coy-profile {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: var(--spacing-10);
  align-items: start;
  padding: var(--spacing-10);
  border-radius: var(--coy-radius-card);
  background: var(--coy-surface);
  border: 1px solid var(--coy-border-gold);
  box-shadow: var(--coy-card-shadow);
}
.coy-monogram {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 8rem;
  height: 8rem;
  border-radius: var(--radius-3xl);
  background: var(--coy-icon-bg);
  box-shadow: var(--coy-icon-ring);
  font-family: var(--font-display);
  font-size: var(--text-5xl);
  font-style: italic;
  color: var(--color-gold-light);
  text-shadow: var(--coy-number-glow);
}
.coy-profile-role {
  font-family: var(--font-primary);
  font-size: var(--text-xs);
  font-weight: var(--font-weight-bold);
  letter-spacing: var(--ls-widest);
  text-transform: uppercase;
  color: var(--color-gold);
  margin: 0 0 var(--spacing-2);
}
.coy-profile-name {
  font-family: var(--font-display);
  font-size: var(--text-4xl);
  font-weight: var(--font-weight-semibold);
  color: var(--text-primary);
  margin: 0 0 var(--spacing-4);
}

/* ============================================================
   14. CTA PANEL
   ============================================================ */
.coy-cta {
  position: relative;
  padding: var(--spacing-20) var(--spacing-10);
  text-align: center;
  border-radius: var(--radius-4xl);
  background: var(--color-navy-deep);
  background-image: var(--coy-panel-glow-bottom);
  background-repeat: no-repeat;
  border: 1px solid var(--coy-border-gold);
  overflow: hidden;
}
.coy-cta::before {
  content: '';
  position: absolute;
  top: 0; left: 10%; right: 10%;
  height: 1px;
  background: var(--coy-hairline);
}
.coy-cta-eyebrow {
  display: block;
  font-family: var(--font-primary);
  font-size: var(--text-xs);
  font-weight: var(--font-weight-bold);
  letter-spacing: var(--ls-widest);
  text-transform: uppercase;
  color: var(--color-gold);
  margin-bottom: var(--spacing-4);
}
.coy-cta-title {
  font-family: var(--font-display);
  font-size: clamp(var(--text-3xl), 4vw, var(--text-5xl));
  font-weight: var(--font-weight-semibold);
  line-height: var(--leading-tight);
  color: var(--text-primary);
  margin: 0 0 var(--spacing-4);
}
.coy-cta-title em { font-style: italic; color: var(--color-gold-pale); text-shadow: 0 0 24px rgba(var(--color-gold-rgb), 0.45); }
.coy-cta-sub {
  max-width: 36rem;
  margin: 0 auto var(--spacing-8);
  font-family: var(--font-primary);
  font-size: var(--text-md);
  line-height: var(--leading-relaxed);
  color: var(--text-muted);
}
.coy-cta-actions { display: flex; gap: var(--spacing-4); justify-content: center; flex-wrap: wrap; }
.coy-cta-contact {
  display: flex;
  gap: var(--spacing-6);
  justify-content: center;
  flex-wrap: wrap;
  margin-top: var(--spacing-8);
  font-family: var(--font-primary);
  font-size: var(--text-sm);
  color: var(--text-secondary);
}
.coy-cta-contact a { color: var(--text-secondary); text-decoration: none; transition: var(--transition-fast); }
.coy-cta-contact a:hover { color: var(--color-gold); }
.coy-cta-contact i { color: var(--color-gold); margin-right: var(--spacing-2); }
.coy-center { text-align: center; margin-top: var(--spacing-12); }

/* ============================================================
   15. LEGAL DOCUMENT LAYOUT (privacy, terms)
   ============================================================ */
.coy-doc {
  display: grid;
  grid-template-columns: 17rem minmax(0, 1fr);
  gap: var(--spacing-12);
  align-items: start;
}
.coy-doc-toc {
  position: sticky;
  top: calc(var(--header-height-scrolled) + var(--spacing-6));
  padding: var(--spacing-6);
  border-radius: var(--radius-2xl);
  background: var(--coy-glass);
  border: 1px solid var(--coy-border-soft);
}
.coy-doc-toc-title {
  font-family: var(--font-primary);
  font-size: var(--text-xs);
  font-weight: var(--font-weight-bold);
  letter-spacing: var(--ls-widest);
  text-transform: uppercase;
  color: var(--color-gold);
  margin: 0 0 var(--spacing-4);
}
.coy-doc-toc ol { list-style: none; margin: 0; padding: 0; counter-reset: coy-toc; }
.coy-doc-toc li { counter-increment: coy-toc; }
.coy-doc-toc a {
  display: flex;
  gap: var(--spacing-3);
  padding: var(--spacing-2) 0;
  font-family: var(--font-primary);
  font-size: var(--text-sm);
  color: var(--text-muted);
  text-decoration: none;
  border-bottom: 1px solid var(--coy-border-soft);
  transition: var(--transition-fast);
}
.coy-doc-toc a::before { content: counter(coy-toc, decimal-leading-zero); color: var(--color-gold-dark); font-weight: var(--font-weight-bold); }
.coy-doc-toc a:hover,
.coy-doc-toc a.is-active { color: var(--color-gold-light); }

.coy-doc-body {
  padding: var(--spacing-12);
  border-radius: var(--coy-radius-card);
  background: var(--coy-surface);
  border: 1px solid var(--coy-border);
}
.coy-doc-meta {
  display: flex;
  flex-wrap: wrap;
  gap: var(--spacing-3);
  margin-bottom: var(--spacing-8);
}
.coy-doc-body section { scroll-margin-top: calc(var(--header-height-total) + var(--spacing-4)); }
.coy-doc-body section + section {
  margin-top: var(--spacing-10);
  padding-top: var(--spacing-10);
  border-top: 1px solid var(--coy-border-soft);
}
.coy-doc-body h2 {
  font-family: var(--font-display);
  font-size: var(--text-3xl);
  font-weight: var(--font-weight-semibold);
  color: var(--text-primary);
  margin: 0 0 var(--spacing-4);
}
.coy-doc-body h3 {
  font-family: var(--font-primary);
  font-size: var(--text-md);
  font-weight: var(--font-weight-bold);
  color: var(--color-gold-light);
  margin: var(--spacing-6) 0 var(--spacing-3);
}
.coy-doc-body p,
.coy-doc-body li {
  font-family: var(--font-primary);
  font-size: var(--text-base);
  line-height: var(--leading-relaxed);
  color: var(--text-secondary);
}
.coy-doc-body p { margin: 0 0 var(--spacing-4); }
.coy-doc-body ul { list-style: disc; margin: 0 0 var(--spacing-4); padding-left: var(--spacing-6); }
.coy-doc-body li { margin-bottom: var(--spacing-2); }
.coy-doc-body li::marker { color: var(--color-gold); }
.coy-doc-body a { color: var(--color-gold-light); }
.coy-doc-contact {
  display: grid;
  gap: var(--spacing-3);
  padding: var(--spacing-6);
  border-radius: var(--radius-2xl);
  background: var(--coy-glass);
  border: 1px solid var(--coy-border-gold);
}
.coy-doc-contact p { margin: 0; }
.coy-doc-contact i { width: var(--spacing-6); color: var(--color-gold); }

/* ============================================================
   16. SCROLL REVEAL (driven by company-core.js)
   ============================================================ */
.reveal-on-scroll {
  opacity: 0;
  transform: translateY(var(--coy-reveal-shift));
  transition: opacity var(--coy-reveal-duration) var(--coy-reveal-ease),
              transform var(--coy-reveal-duration) var(--coy-reveal-ease);
}
.reveal-on-scroll.revealed { opacity: 1; transform: none; }

@media (prefers-reduced-motion: reduce) {
  .reveal-on-scroll { opacity: 1; transform: none; transition: none; }
  .coy-card:hover,
  .coy-photo-card:hover,
  .coy-mosaic figure:hover img { transform: none; }
}

/* ============================================================
   17. RESPONSIVE
   ============================================================ */
@media (max-width: 1100px) {
  .coy-grid--4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .coy-steps { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .coy-doc { grid-template-columns: 1fr; }
  .coy-doc-toc { position: static; }
}
@media (max-width: 991px) {
  .coy-section { padding: var(--coy-section-pad-mobile) 0; }
  .coy-grid--3 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .coy-split { grid-template-columns: 1fr; gap: var(--spacing-12); }
  .coy-split--flip > :first-child { order: 0; }
  .coy-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .coy-mosaic { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .coy-list { grid-template-columns: 1fr; }
}
@media (max-width: 640px) {
  .coy-grid--2,
  .coy-grid--3,
  .coy-grid--4,
  .coy-steps { grid-template-columns: 1fr; }
  .coy-kicker-links { display: none; }
  .coy-card { padding: var(--spacing-6); }
  .coy-profile { grid-template-columns: 1fr; padding: var(--spacing-6); }
  .coy-monogram { width: 5.5rem; height: 5.5rem; font-size: var(--text-4xl); }
  .coy-cta { padding: var(--spacing-12) var(--spacing-5); border-radius: var(--radius-3xl); }
  .coy-quote { padding: var(--spacing-10) var(--spacing-5); }
  .coy-doc-body { padding: var(--spacing-6); }
  .coy-media-badge { left: var(--spacing-3); right: var(--spacing-3); }
  .coy-timeline { padding-left: var(--spacing-10); }
}
