/* === Souveniretoile — Global styles === */
/* Library-first: Bootstrap 5.3 + AOS + FontAwesome + minimal custom CSS */

:root {
  --st-cream: #f7f3ec;
  --st-sand: #ede4d7;
  --st-gold: #c5a059;
  --st-gold-light: #e2c792;
  --st-teal: #0b3c3a;
  --st-teal-dark: #062826;
  --st-ink: #1f252a;
  --st-slate: #4a545c;
  --st-overlay: rgba(0, 0, 0, 0.5);
}

html {
  scroll-behavior: smooth;
  overflow-x: hidden;
  max-width: 100%;}

body {
  font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
  background-color: var(--st-cream);
  color: var(--st-ink);
  overflow-x: hidden;
}

h1, h2, h3, h4, h5, h6 {
  font-family: 'Playfair Display', Georgia, serif;
  font-weight: 600;
  color: var(--st-gold-light);
}

a {
  color: var(--st-teal);
  text-decoration: none;
  transition: color 0.25s ease;
}

a:hover {
  color: var(--st-gold);
}

/* === Theme utilities === */
.bg-cream { background-color: var(--st-cream); }
.bg-sand { background-color: var(--st-sand); }
.bg-teal { background-color: var(--st-teal); }
.bg-ink { background-color: var(--st-ink); }
.text-gold { color: var(--st-gold); }
.text-teal { color: var(--st-teal); }
.text-cream { color: var(--st-cream); }
.text-sand { color: var(--st-sand); }
.border-gold { border-color: var(--st-gold) !important; }

.btn-gold {
  --bs-btn-color: var(--st-teal);
  --bs-btn-bg: var(--st-gold);
  --bs-btn-border-color: var(--st-gold);
  --bs-btn-hover-color: var(--st-cream);
  --bs-btn-hover-bg: var(--st-teal);
  --bs-btn-hover-border-color: var(--st-teal);
  letter-spacing: 0.04em;
  text-transform: uppercase;
  font-size: 0.8rem;
  font-weight: 600;
  padding: 0.85rem 1.75rem;
}

.btn-teal {
  --bs-btn-color: var(--st-cream);
  --bs-btn-bg: var(--st-teal);
  --bs-btn-border-color: var(--st-teal);
  --bs-btn-hover-color: var(--st-teal);
  --bs-btn-hover-bg: var(--st-gold);
  --bs-btn-hover-border-color: var(--st-gold);
  letter-spacing: 0.04em;
  text-transform: uppercase;
  font-size: 0.8rem;
  font-weight: 600;
  padding: 0.85rem 1.75rem;
}

.btn-outline-gold {
  --bs-btn-color: var(--st-gold);
  --bs-btn-bg: transparent;
  --bs-btn-border-color: var(--st-gold);
  --bs-btn-hover-color: var(--st-teal);
  --bs-btn-hover-bg: var(--st-gold);
  letter-spacing: 0.04em;
  text-transform: uppercase;
  font-size: 0.8rem;
  font-weight: 600;
}

/* === Decorative elements === */
.section-label {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  font-size: 0.75rem;
  text-transform: uppercase;
  letter-spacing: 0.18em;
  color: var(--st-gold);
  margin-bottom: 1rem;
}

.section-label::before {
  content: '';
  width: 2.5rem;
  height: 1px;
  background-color: var(--st-gold);
}

.divider-gold {
  width: 4rem;
  height: 2px;
  background: linear-gradient(90deg, var(--st-gold), var(--st-gold-light));
}

.py-7 {
  padding-top: 5rem;
  padding-bottom: 5rem;
}

@media (min-width: 992px) {
  .py-7 {
    padding-top: 7rem;
    padding-bottom: 7rem;
  }
}

/* === Background images & overlays === */
.bg-cover {
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
}

.min-vh-70 { min-height: 70vh; }
.min-vh-80 { min-height: 80vh; }
.min-vh-90 { min-height: 90vh; }
.min-vh-100 { min-height: 100vh; }

/* === Cards & hover === */
.card-premium {
  border: 1px solid rgba(197, 160, 89, 0.18);
  background-color: rgba(255, 255, 255, 0.55);
  backdrop-filter: blur(8px);
  transition: transform 0.35s ease, box-shadow 0.35s ease;
}

.card-premium:hover {
  transform: translateY(-6px);
  box-shadow: 0 22px 48px rgba(11, 60, 58, 0.12);
}

.card-dark {
  background-color: rgba(31, 37, 42, 0.92);
  color: var(--st-cream);
  border: 1px solid rgba(197, 160, 89, 0.25);
}

.card-dark h3, .card-dark h4, .card-dark h5 {
  color: var(--st-cream);
}

/* === Marquee === */
.marquee-track {
  display: flex;
  gap: 3rem;
  animation: marquee 24s linear infinite;
  white-space: nowrap;
}

@keyframes marquee {
  0% { transform: translateX(0); }
  100% { transform: translateX(-50%); }
}

/* === Bento grid === */
.bento-grid {
  display: grid;
  gap: 1.25rem;
  grid-template-columns: repeat(1, 1fr);
}

@media (min-width: 768px) {
  .bento-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (min-width: 1200px) {
  .bento-grid {
    grid-template-columns: repeat(4, 1fr);
  }
  .bento-item-lg {
    grid-column: span 2;
    grid-row: span 2;
  }
  .bento-item-md {
    grid-column: span 2;
  }
}

/* === Masonry gallery === */
.masonry-grid {
  column-count: 1;
  column-gap: 1rem;
}

@media (min-width: 576px) { .masonry-grid { column-count: 2; } }
@media (min-width: 992px) { .masonry-grid { column-count: 3; } }

.masonry-item {
  break-inside: avoid;
  margin-bottom: 1rem;
}

/* === Forms === */
.form-control, .form-select {
  border: 1px solid rgba(11, 60, 58, 0.18);
  background-color: rgba(255, 255, 255, 0.8);
  color: var(--st-ink);
  border-radius: 0.25rem;
}

.form-control:focus, .form-select:focus {
  border-color: var(--st-gold);
  box-shadow: 0 0 0 0.2rem rgba(197, 160, 89, 0.2);
  background-color: #fff;
}

.form-floating > .form-control:focus ~ label,
.form-floating > .form-control:not(:placeholder-shown) ~ label,
.form-floating > .form-select ~ label {
  color: var(--st-gold);
}

/* === Cookie banner === */
.cookie-banner {
  position: fixed;
  bottom: 0;
  left: 0;
  right: 0;
  z-index: 1080;
  background-color: var(--st-ink);
  color: var(--st-cream);
  padding: 1rem 0;
  transform: translateY(100%);
  transition: transform 0.35s ease;
}

.cookie-banner.show {
  transform: translateY(0);
}

/* === Offline badge === */
.offline-badge {
  display: inline-block;
  border: 1px solid var(--st-gold);
  color: var(--st-gold);
  padding: 0.35rem 0.85rem;
  font-size: 0.72rem;
  letter-spacing: 0.15em;
  text-transform: uppercase;
}

/* === Testimonial carousel === */
.testimonial-card {
  background: rgba(255, 255, 255, 0.06);
  backdrop-filter: blur(12px);
  border: 1px solid rgba(255, 255, 255, 0.1);
}

/* === Accordion === */
.accordion-premium .accordion-button {
  background-color: transparent;
  color: var(--st-ink);
  box-shadow: none;
  font-weight: 500;
}

.accordion-premium .accordion-button:not(.collapsed) {
  color: var(--st-teal);
  background-color: var(--st-sand);
}

.accordion-premium .accordion-item {
  background-color: rgba(255, 255, 255, 0.5);
  border: 1px solid rgba(11, 60, 58, 0.1);
}

/* === Tables === */
.table-premium {
  --bs-table-bg: transparent;
  --bs-table-color: var(--st-ink);
  --bs-table-border-color: rgba(11, 60, 58, 0.12);
}

.table-premium thead {
  background-color: var(--st-teal);
  color: var(--st-cream);
}

.table-premium th {
  font-weight: 500;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  font-size: 0.78rem;
}

/* === Image frames === */
.img-frame {
  position: relative;
  overflow: hidden;
}

.img-frame::after {
  content: '';
  position: absolute;
  inset: 0;
  border: 1px solid rgba(197, 160, 89, 0.3);
  pointer-events: none;
}

.img-frame img {
  transition: transform 0.6s ease;
}

.img-frame:hover img {
  transform: scale(1.05);
}

/* === Scrollbar === */
::-webkit-scrollbar {
  width: 10px;
}

::-webkit-scrollbar-track {
  background: var(--st-sand);
}

::-webkit-scrollbar-thumb {
  background: var(--st-gold);
  border-radius: 5px;
}

::-webkit-scrollbar-thumb:hover {
  background: var(--st-teal);
}

/* === Toast / notification === */
.st-notification {
  position: fixed;
  top: 1.25rem;
  right: 1.25rem;
  z-index: 1090;
  max-width: 24rem;
  display: none;
}

/* === Reveal line === */
.reveal-line {
  width: 60px;
  height: 2px;
  background-color: var(--st-gold);
  margin: 1.5rem 0;
}

/* === Footer links === */
.footer-link {
  color: var(--st-sand);
  opacity: 0.85;
}

.footer-link:hover {
  color: var(--st-gold);
  opacity: 1;
}
