/* css/styles.css */
/* Bold Stripe Interiors Custom Styles — Camillo Redesign */

:root {
  --color-coral: #fa7864;
  --color-desert-rose: #dc8264;
  --color-passion: #d9698c;
  --color-zesty: #ee6d22;
  --color-cream: #fff5e6;
  --color-blush: #f5e5e5;
  --color-ink: #000000;
  --color-truffle: #282828;
  --color-ash: #707070;
  --color-pebble: #cccccc;
  --color-white: #ffffff;
  --color-buttermilk: #e8e8e1;
  --font-body: 'Inter', sans-serif;
  --font-heading: 'Playfair Display', serif;
}

body {
  font-family: var(--font-body);
  font-size: 20px; /* Target audience 60-80yo — generous, readable */
  color: var(--color-truffle);
  line-height: 1.7;
}

h1, h2, h3, h4, h5, h6 {
  font-family: var(--font-heading);
}

.text-brand-coral { color: var(--color-coral); }
.text-brand-desert-rose { color: var(--color-desert-rose); }
.text-brand-passion { color: var(--color-passion); }
.text-brand-zesty { color: var(--color-zesty); }
.text-brand-ink { color: var(--color-ink); }
.text-brand-truffle { color: var(--color-truffle); }
.text-brand-ash { color: var(--color-ash); }
.bg-brand-coral { background-color: var(--color-coral); }
.bg-brand-desert-rose { background-color: var(--color-desert-rose); }
.bg-brand-passion { background-color: var(--color-passion); }
.bg-brand-zesty { background-color: var(--color-zesty); }
.bg-brand-cream { background-color: var(--color-cream); }
.bg-brand-blush { background-color: var(--color-blush); }
.bg-brand-ink { background-color: var(--color-ink); }
.border-brand-pebble { border-color: var(--color-pebble); }

.brush-stroke {
  position: relative;
  display: inline-block;
  z-index: 1;
}

.brush-stroke::after {
  content: '';
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 0.3em;
  background-color: var(--color-coral);
  z-index: -1;
  transform: rotate(-1deg);
  border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%;
}

.hover-pop {
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.hover-pop:hover {
  transform: translateY(-5px);
  box-shadow: 0 10px 20px rgba(0,0,0,0.15);
}

/* Ensure large tap targets */
a, button {
  min-height: 44px;
  min-width: 44px;
}

/* Sticky Nav Offset for scrolling */
html {
  scroll-behavior: smooth;
  scroll-padding-top: 80px;
}

/* ===== SKIP TO CONTENT LINK ===== */
.skip-link {
  position: absolute;
  left: -9999px;
  top: auto;
  width: 1px;
  height: 1px;
  overflow: hidden;
  z-index: 9999;
}
.skip-link:focus {
  position: fixed;
  left: 1rem;
  top: 1rem;
  width: auto;
  height: auto;
  z-index: 9999;
  background: var(--color-coral);
  color: white;
  padding: 0.75rem 1.5rem;
  font-weight: bold;
  border-radius: 0.5rem;
  text-decoration: none;
  font-size: 1.125rem;
}

/* ===== STRIPE DIVIDER — BOLD SIGNATURE PATTERN ===== */
.stripe-divider {
  height: 8px;
  width: 100%;
  background: repeating-linear-gradient(
    90deg,
    var(--color-coral) 0px, var(--color-coral) 12px,
    var(--color-cream) 12px, var(--color-cream) 16px,
    var(--color-passion) 16px, var(--color-passion) 28px,
    var(--color-cream) 28px, var(--color-cream) 32px,
    var(--color-zesty) 32px, var(--color-zesty) 44px,
    var(--color-cream) 44px, var(--color-cream) 48px,
    var(--color-desert-rose) 48px, var(--color-desert-rose) 60px,
    var(--color-cream) 60px, var(--color-cream) 64px
  );
}

/* ===== MOBILE MENU ANIMATION ===== */
#mobile-menu {
  transition: transform 0.3s ease, opacity 0.3s ease;
  transform-origin: top;
}
#mobile-menu:not(.hidden) {
  transform: translateY(0);
  opacity: 1;
}
#mobile-menu.hidden {
  transform: translateY(-10px);
  opacity: 0;
  pointer-events: none;
}

/* ===== FOCUS-VISIBLE OUTLINES ===== */
*:focus-visible {
  outline: 3px solid var(--color-coral);
  outline-offset: 2px;
  border-radius: 4px;
}

button:focus-visible,
a:focus-visible {
  outline: 3px solid var(--color-coral);
  outline-offset: 2px;
  border-radius: 4px;
}

/* ===== PREFERS-REDUCED-MOTION ===== */
@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
  html {
    scroll-behavior: auto;
  }
  #mobile-menu {
    transition: none !important;
  }
  .hover-pop {
    transition: none !important;
  }
  .hover-pop:hover {
    transform: none !important;
  }
}

.color-teaser-swatch {
  transition: transform 0.2s ease, ring 0.2s ease;
  cursor: pointer;
}
.color-teaser-swatch:hover {
  transform: scale(1.1);
}
.color-teaser-swatch.active {
  ring: 4px solid white;
  transform: scale(1.1);
}

/* Hero with photographic background */
.hero-with-image {
  position: relative;
  background-size: cover;
  background-position: center;
  min-height: 60vh;
}

@media (max-width: 640px) {
  .hero-with-image {
    min-height: 70vh;
  }
}

.hero-with-image::before {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(
    120deg,
    rgba(0, 0, 0, 0.78) 0%,
    rgba(40, 40, 40, 0.45) 45%,
    rgba(250, 120, 100, 0.25) 100%
  );
  z-index: 1;
}

.hero-with-image > .hero-inner {
  position: relative;
  z-index: 2;
}

/* Prose for long-form blog */
.prose-blog p {
  margin-bottom: 1.25em;
}
.prose-blog h2 {
  margin-top: 1.75em;
  margin-bottom: 0.5em;
}

/* Decorative accent elements */
.accent-dot {
  display: inline-block;
  width: 8px;
  height: 8px;
  border-radius: 50%;
  margin: 0 4px;
}
.accent-dot-coral { background-color: var(--color-coral); }
.accent-dot-passion { background-color: var(--color-passion); }
.accent-dot-zesty { background-color: var(--color-zesty); }
.accent-dot-desert-rose { background-color: var(--color-desert-rose); }

/* Decorative underline */
.accent-underline {
  display: inline-block;
  position: relative;
}
.accent-underline::after {
  content: '';
  position: absolute;
  bottom: -4px;
  left: 0;
  width: 100%;
  height: 3px;
  background: repeating-linear-gradient(
    90deg,
    var(--color-coral) 0px, var(--color-coral) 8px,
    transparent 8px, transparent 12px,
    var(--color-passion) 12px, var(--color-passion) 20px,
    transparent 20px, transparent 24px
  );
  border-radius: 2px;
}

/* Body scroll lock */
.overflow-hidden {
  overflow: hidden;
}

/* Section background alternation utility */
.section-cream { background-color: var(--color-cream); }
.section-blush { background-color: var(--color-blush); }
.section-white { background-color: var(--color-white); }
