/* Atelier Lepnina Design System – June 2025
   Understated, confident, subtly poetic. */

/* 1 — Google Fonts */
@import url('https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600&family=Playfair+Display:wght@600;700&display=swap');

/* 2 — Brand Palette as CSS Custom Properties */
:root {
  /* Colours */
  --chalk-white: #F6F5F3;
  --calcaire-stone: #E0DED8;
  --bleu-nuit:   #1E1F26;
  --champagne-gold: #D9B87A;
  --sage-patina: #8A9A8E;

  /* Typography */
  --font-heading: 'Playfair Display', serif;
  --font-body:    'Inter', sans-serif;

  /* Spacing & Motion */
  --radius-lg: 1.5rem;
  --radius-md: 0.75rem;
  --shadow-soft: 0 4px 12px rgba(30,31,38,0.08);
  --transition-smooth: all 0.3s ease;
}

/* 3 — Global Elements */
html { scroll-behavior: smooth; }

body {
  background-color: var(--chalk-white);
  color: var(--bleu-nuit);
  font-family: var(--font-body);
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
}

h1,h2,h3,h4,h5,h6 {
  font-family: var(--font-heading);
  line-height: 1.2;
  letter-spacing: 0.5px;
  margin-bottom: 0.5em;
}

a {
  color: var(--bleu-nuit);
  text-decoration: none;
  transition: var(--transition-smooth);
}

a:hover,a:focus { color: var(--champagne-gold); }

/* 4 — Components */

/* Buttons */
.btn {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  font-family: var(--font-body);
  font-weight: 500;
  padding: 0.75rem 1.5rem;
  border-radius: var(--radius-md);
  border: 1px solid transparent;
  cursor: pointer;
  transition: var(--transition-smooth);
}

.btn-primary {
  background-color: var(--bleu-nuit);
  color: var(--chalk-white);
}

.btn-primary:hover,
.btn-primary:focus {
  background-color: var(--champagne-gold);
  color: var(--bleu-nuit);
}

.btn-outline {
  background-color: transparent;
  border-color: var(--bleu-nuit);
  color: var(--bleu-nuit);
}

.btn-outline:hover,
.btn-outline:focus {
  background-color: var(--bleu-nuit);
  color: var(--chalk-white);
}
.cta-btn:hover,
.cta-btn:focus{
  background:var(--champagne-gold);
  color:var(--bleu-nuit);
  box-shadow:0 4px 12px rgba(30,31,38,.12);
}
.cta-btn:active{ transform:translateY(1px); }

/* Cards */
.card {
  background-color: var(--calcaire-stone);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-soft);
  padding: 2rem;
  transition: var(--transition-smooth);
}

.card:hover {
  transform: translateY(-4px);
  box-shadow: 0 8px 24px rgba(30,31,38,0.12);
}

/* Navigation */
.navbar {
  background-color: var(--chalk-white);
  border-bottom: 1px solid var(--calcaire-stone);
  position: sticky;
  top: 0;
  z-index: 100;
}

.navbar a {
  padding: 1rem 1.25rem;
  display: inline-block;
}

/* Hero Banner */
.hero {
  padding: 8rem 2rem;
  background-image: linear-gradient(135deg, rgba(246,245,243,.85) 0%, rgba(224,222,216,.85) 100%), url('../images/hero-haussmann.jpg');
  background-size: cover;
  background-position: center;
  text-align: center;
}

.hero h1 { font-size: clamp(2.5rem, 6vw, 4rem); margin-bottom: 1rem; }
.hero p  { max-width: 40rem; margin: 0 auto 2rem; }

/* Section Titles */
.section-title { font-size: clamp(1.75rem, 4vw, 2.5rem); margin-bottom: 1.5rem; }

/* Forms */
.form-control {
  width: 100%;
  padding: 0.75rem 1rem;
  border: 1px solid var(--calcaire-stone);
  border-radius: var(--radius-md);
  background-color: var(--chalk-white);
  transition: var(--transition-smooth);
}

.form-control:focus {
  border-color: var(--champagne-gold);
  outline: none;
  box-shadow: 0 0 0 3px rgba(217,184,122,.3);
}

/* Booking Section */
.booking-section { padding: 4rem 2rem; background-color: var(--chalk-white); }
.booking-form   { max-width: 40rem; margin: 0 auto; }
.booking-form .btn-submit { margin-top: 1rem; }

/* Footer */
.footer {
  background-color: var(--bleu-nuit);
  color: var(--chalk-white);
  padding: 3rem 1.5rem;
}

.footer a { color: var(--champagne-gold); }

/* 5 — Utilities */
.text-center { text-align: center; }
.mt-0 { margin-top: 0; }
.mb-0 { margin-bottom: 0; }
.mt-2 { margin-top: 0.5rem; }
.mb-2 { margin-bottom: 0.5rem; }

/* 6 — Responsive Grid */
@media (min-width: 768px) {
  .grid-2 { display: grid; grid-template-columns: 1fr 1fr; gap: 2rem; }
}

/* 7 — Subtle Motion */
@media (prefers-reduced-motion: no-preference) {
  .fade-in-up { opacity: 0; transform: translateY(20px); animation: fadeInUp 0.8s ease forwards; }
}

@keyframes fadeInUp {
  to { opacity: 1; transform: translateY(0); }
}

/* 8 — Decorative Fleuron */
hr.fleuron { border: none; height: 1px; background: var(--calcaire-stone); position: relative; }
hr.fleuron::after {
  content: '❧';
  position: absolute;
  left: 50%;
  transform: translateX(-50%) translateY(-50%);
  top: 50%;
  font-size: 1rem;
  color: var(--champagne-gold);
}

