/* ============================================================
   DESIGN SYSTEM — L'Atelier d'Amélie
   Aesthetic: Refined Atelier / Provençal Femininity
   Palette: Dark Slate + Warm Sand/Gold + Rose Poudré
============================================================ */
:root {
  --clr-bg:          #0D0F14;
  --clr-surface:     #141720;
  --clr-surface-2:   #1C202B;
  --clr-border:      rgba(201,169,110,0.12);
  --clr-sand:        #C9A96E;
  --clr-sand-light:  #E2D5BC;
  --clr-sand-dark:   #8A6F4E;
  --clr-rose:        #C4949F;
  --clr-rose-dim:    rgba(196,148,159,0.09);
  --clr-rose-hover:  #a87480;
  --clr-cream:       #F5F2EC;
  --clr-text:        #EDE9E0;
  --clr-text-muted:  rgba(237,233,224,0.55);
  --clr-text-dim:    rgba(237,233,224,0.28);
  --font-display:    'Cormorant Garamond', Georgia, serif;
  --font-script:     'Dancing Script', cursive;
  --font-body:       'DM Sans', system-ui, sans-serif;
  --space-xs:   0.5rem;
  --space-sm:   1rem;
  --space-md:   2rem;
  --space-lg:   4rem;
  --space-xl:   8rem;
  --ease-out:   cubic-bezier(0.22,1,0.36,1);
  --ease-spring:cubic-bezier(0.34,1.56,0.64,1);
  --dur-fast:   200ms;
  --dur-base:   400ms;
  --dur-slow:   700ms;
  --max-w:      1280px;
  --nav-h:      72px;
  --radius-sm:  8px;
  --radius-md:  16px;
}

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{font-size:16px;scroll-behavior:smooth;-webkit-font-smoothing:antialiased}
body{font-family:var(--font-body);background:var(--clr-bg);color:var(--clr-text);line-height:1.6;overflow-x:hidden}

/* Noise texture */
body::before{content:'';position:fixed;inset:0;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.04'/%3E%3C/svg%3E");pointer-events:none;z-index:9999;opacity:0.6}

a{color:inherit;text-decoration:none}
img{max-width:100%;display:block}
button{cursor:pointer;border:none;background:none;font:inherit;color:inherit}
ul{list-style:none}

/* Typography */
.t-display{font-family:var(--font-display);font-size:clamp(3.2rem,7.5vw,7rem);font-weight:600;line-height:0.95;letter-spacing:-0.02em}
.t-h1{font-family:var(--font-display);font-size:clamp(2.5rem,5vw,5rem);font-weight:600;line-height:1.05}
.t-h2{font-family:var(--font-display);font-size:clamp(1.9rem,3.5vw,3.2rem);font-weight:600;line-height:1.1}
.t-h3{font-family:var(--font-body);font-size:clamp(1.1rem,2vw,1.4rem);font-weight:500;line-height:1.2}
.t-body{font-size:1rem;line-height:1.7}
.t-small{font-size:0.875rem;line-height:1.5}
.t-label{font-size:0.72rem;font-weight:600;letter-spacing:0.18em;text-transform:uppercase}
.t-script{font-family:var(--font-script);font-size:1.2em;font-weight:600}
.t-italic{font-style:italic}
.c-sand{color:var(--clr-sand)}
.c-rose{color:var(--clr-rose)}
.c-muted{color:var(--clr-text-muted)}
.c-cream{color:var(--clr-cream)}

/* Layout */
.container{width:100%;max-width:var(--max-w);margin:0 auto;padding:0 var(--space-md)}
.section{padding:var(--space-xl) 0}
.section--surface{background:var(--clr-surface)}
.grid-2{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--space-md)}
.grid-4{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--space-md)}

@media(max-width:1024px){.grid-4{grid-template-columns:repeat(2,1fr)}}
@media(max-width:768px){.grid-2,.grid-4{grid-template-columns:1fr}}

/* Section label */
.section-label{display:flex;align-items:center;gap:1rem;margin-bottom:var(--space-md)}
.section-label__line{width:32px;height:1px;background:var(--clr-sand);flex-shrink:0}
.section-label__text{font-size:0.7rem;font-weight:600;letter-spacing:0.2em;text-transform:uppercase;color:var(--clr-sand)}

/* ============================================================ NAV */
.nav{position:fixed;top:0;left:0;right:0;height:var(--nav-h);z-index:1000;transition:background var(--dur-base) var(--ease-out),border-color var(--dur-base) var(--ease-out);border-bottom:1px solid transparent}
.nav.scrolled{background:rgba(13,15,20,0.92);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border-color:var(--clr-border)}
.nav__inner{display:flex;align-items:center;justify-content:space-between;height:100%}
.nav__logo{font-family:var(--font-display);font-size:1.35rem;font-weight:700;color:var(--clr-cream);display:flex;align-items:center;gap:0.5rem}
.nav__logo-mark{width:36px;height:36px;border:1.5px solid var(--clr-sand);border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.nav__logo-mark svg{width:18px;height:18px;color:var(--clr-sand)}
.nav__logo-sub{font-family:var(--font-script);color:var(--clr-rose);font-size:1.1rem}
.nav__links{display:flex;align-items:center;gap:var(--space-lg)}
.nav__links a{font-size:0.875rem;font-weight:400;color:var(--clr-text-muted);transition:color var(--dur-fast) var(--ease-out);position:relative;letter-spacing:0.02em}
.nav__links a::after{content:'';position:absolute;bottom:-4px;left:0;right:0;height:1px;background:var(--clr-sand);transform:scaleX(0);transform-origin:left;transition:transform var(--dur-base) var(--ease-out)}
.nav__links a:hover{color:var(--clr-cream)}
.nav__links a:hover::after{transform:scaleX(1)}
.nav__cta{padding:0.6rem 1.4rem;border:1px solid var(--clr-sand);border-radius:40px;font-size:0.8rem;font-weight:600;letter-spacing:0.08em;text-transform:uppercase;color:var(--clr-sand)!important;transition:all var(--dur-fast) var(--ease-out)!important}
.nav__cta:hover{background:var(--clr-sand)!important;color:var(--clr-bg)!important}
.nav__cta::after{display:none!important}
.nav__burger{display:none;flex-direction:column;gap:5px;padding:8px;cursor:pointer}
.nav__burger span{display:block;width:24px;height:1.5px;background:var(--clr-cream);transition:all var(--dur-base) var(--ease-out)}
.mobile-menu{display:none;position:fixed;inset:0;background:var(--clr-bg);z-index:999;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-md)}
.mobile-menu.open{display:flex}
.mobile-menu a{font-family:var(--font-display);font-size:2.5rem;color:var(--clr-text-muted);transition:color var(--dur-fast)}
.mobile-menu a:hover{color:var(--clr-sand)}
@media(max-width:1024px){.nav__links{display:none}.nav__burger{display:flex}}

/* ============================================================ BUTTONS */
.btn{display:inline-flex;align-items:center;gap:0.6rem;padding:1rem 2rem;border-radius:50px;font-size:0.85rem;font-weight:600;letter-spacing:0.06em;text-transform:uppercase;transition:all var(--dur-base) var(--ease-out);position:relative;overflow:hidden}
.btn::before{content:'';position:absolute;inset:0;background:rgba(255,255,255,0.07);transform:scaleX(0);transform-origin:right;transition:transform var(--dur-base) var(--ease-out)}
.btn:hover::before{transform:scaleX(1);transform-origin:left}
.btn-primary{background:var(--clr-sand);color:var(--clr-bg)}
.btn-primary:hover{background:var(--clr-sand-light);transform:translateY(-2px);box-shadow:0 12px 40px rgba(201,169,110,0.28)}
.btn-sand{background:var(--clr-sand);color:var(--clr-bg)}
.btn-sand:hover{background:var(--clr-sand-light);transform:translateY(-2px);box-shadow:0 12px 40px rgba(201,169,110,0.28)}
.btn-outline{border:1px solid var(--clr-sand);color:var(--clr-sand)}
.btn-outline:hover{background:var(--clr-sand);color:var(--clr-bg);transform:translateY(-2px)}
.btn svg{width:16px;height:16px;flex-shrink:0}

/* ============================================================ HERO */
.hero{position:relative;min-height:100svh;display:flex;align-items:flex-end;padding-bottom:var(--space-xl);overflow:hidden}
.hero__bg{position:absolute;inset:0;background:radial-gradient(ellipse 80% 60% at 70% 40%,rgba(196,148,159,0.03) 0%,transparent 60%),radial-gradient(ellipse 60% 80% at 20% 80%,rgba(201,169,110,0.06) 0%,transparent 60%),var(--clr-bg)}
.hero__grid{position:absolute;inset:0;background-image:linear-gradient(rgba(201,169,110,0.04) 1px,transparent 1px),linear-gradient(90deg,rgba(201,169,110,0.04) 1px,transparent 1px);background-size:80px 80px;mask-image:radial-gradient(ellipse 80% 60% at 50% 50%,black 20%,transparent 70%)}
.hero__content{position:relative;z-index:2;flex:1;min-width:0}
.hero>.container{display:flex;align-items:center;justify-content:space-between;gap:var(--space-lg)}
.hero__logo-wrap{flex-shrink:0;width:clamp(260px,36vw,460px);opacity:0;animation:fadeIn 1s var(--ease-out) 0.6s forwards;position:relative;z-index:2}
.hero__logo-wrap img{width:100%;height:auto;filter:drop-shadow(0 0 60px rgba(201,169,110,0.1))}
@media(max-width:1024px){.hero__logo-wrap{width:clamp(220px,30vw,360px)}}
@media(max-width:768px){.hero>.container{flex-direction:column;align-items:flex-start;gap:var(--space-sm);padding-top:calc(var(--nav-h) + var(--space-md))}.hero__logo-wrap{order:-1;width:clamp(140px,50vw,200px);align-self:center}}
.hero__eyebrow{display:inline-flex;align-items:center;gap:0.8rem;margin-bottom:var(--space-md);opacity:0;transform:translateY(20px);animation:fadeUp 0.7s var(--ease-out) 0.2s forwards}
.hero__eyebrow-line{width:40px;height:1px;background:var(--clr-sand)}
.hero__title{color:var(--clr-cream);margin-bottom:var(--space-md);opacity:0;transform:translateY(30px);animation:fadeUp 0.8s var(--ease-out) 0.35s forwards}
.hero__title-script{display:block;font-family:var(--font-script);color:var(--clr-rose);font-size:0.7em;font-weight:600;line-height:1.1;margin-top:0.1em}
.hero__subtitle{font-size:1.1rem;color:var(--clr-text-muted);max-width:540px;margin-bottom:var(--space-lg);opacity:0;transform:translateY(30px);animation:fadeUp 0.8s var(--ease-out) 0.5s forwards;line-height:1.7}
.hero__actions{display:flex;gap:var(--space-sm);flex-wrap:wrap;opacity:0;transform:translateY(20px);animation:fadeUp 0.7s var(--ease-out) 0.65s forwards}
.hero__stats{position:absolute;bottom:var(--space-xl);right:0;display:flex;gap:var(--space-lg);opacity:0;animation:fadeIn 0.8s var(--ease-out) 0.9s forwards}
.hero__stat{text-align:right}
.hero__stat-num{font-family:var(--font-display);font-size:3rem;font-weight:600;color:var(--clr-sand);line-height:1}
.hero__stat-label{font-size:0.72rem;color:var(--clr-text-muted);letter-spacing:0.08em;text-transform:uppercase}
@media(max-width:768px){.hero__stats{display:none};.hero{padding-bottom:var(--space-lg)}}

/* ============================================================ ABOUT */
.about__grid{display:grid;grid-template-columns:1fr 1.1fr;gap:var(--space-lg);align-items:center}
.about__visual{position:relative}
.about__img-frame{aspect-ratio:4/5;background:var(--clr-surface-2);border-radius:var(--radius-md);border:1px solid var(--clr-border);display:flex;align-items:center;justify-content:center;font-size:5rem;color:rgba(201,169,110,0.12);position:relative;overflow:hidden}
.about__img-frame::after{content:'';position:absolute;bottom:0;left:0;right:0;height:35%;background:linear-gradient(to top,var(--clr-surface) 0%,transparent 100%)}
.about__badge{position:absolute;bottom:-1rem;right:-1rem;background:var(--clr-sand);color:var(--clr-bg);padding:0.55rem 1.1rem;border-radius:50px;font-size:0.72rem;font-weight:600;letter-spacing:0.1em;text-transform:uppercase}
.about__text .t-h2{margin-bottom:var(--space-sm)}
.about__text p{color:var(--clr-text-muted);margin-bottom:var(--space-sm);font-size:0.95rem;line-height:1.75}
.about__values{display:grid;grid-template-columns:1fr 1fr;gap:0.8rem;margin-top:var(--space-md)}
.value-item{display:flex;align-items:flex-start;gap:0.7rem;font-size:0.85rem;color:var(--clr-text-muted)}
.value-item::before{content:'✦';color:var(--clr-sand);flex-shrink:0;margin-top:0.05rem}
@media(max-width:900px){.about__grid{grid-template-columns:1fr}}
@media(max-width:600px){.about__values{grid-template-columns:1fr}}

/* ============================================================ SERVICES */
.services__header{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:var(--space-lg);flex-wrap:wrap;gap:var(--space-sm)}
.services__viewall{display:inline-flex;align-items:center;gap:0.5rem;font-size:0.8rem;font-weight:600;color:var(--clr-text-muted);letter-spacing:0.08em;text-transform:uppercase;transition:color var(--dur-fast);white-space:nowrap}
.services__viewall:hover{color:var(--clr-sand)}
.services__viewall svg{width:14px;height:14px}
.service-card{background:var(--clr-surface-2);border:1px solid var(--clr-border);border-radius:var(--radius-md);padding:var(--space-md);transition:all var(--dur-base) var(--ease-out);position:relative;overflow:hidden}
.service-card::before{content:'';position:absolute;top:0;left:0;right:0;height:2px;background:var(--clr-sand);transform:scaleX(0);transform-origin:left;transition:transform var(--dur-base) var(--ease-out)}
.service-card:hover{border-color:rgba(201,169,110,0.25);transform:translateY(-6px);box-shadow:0 24px 60px rgba(0,0,0,0.4)}
.service-card:hover::before{transform:scaleX(1)}
.service-card__icon{width:48px;height:48px;border-radius:var(--radius-sm);background:rgba(201,169,110,0.08);display:flex;align-items:center;justify-content:center;margin-bottom:var(--space-sm)}
.service-card__icon svg{width:22px;height:22px;color:var(--clr-sand)}
.service-card__title{font-family:var(--font-body);font-size:1.1rem;font-weight:600;color:var(--clr-cream);margin-bottom:0.5rem}
.service-card__desc{font-size:0.88rem;color:var(--clr-text-muted);margin-bottom:var(--space-sm);line-height:1.65}
.service-card__details{margin-bottom:var(--space-sm)}
.service-card__details li{font-size:0.78rem;color:var(--clr-text-muted);padding:0.2rem 0;padding-left:1rem;position:relative}
.service-card__details li::before{content:'—';position:absolute;left:0;color:var(--clr-sand);font-size:0.7rem}
.service-card__link{display:inline-flex;align-items:center;gap:0.4rem;font-size:0.78rem;font-weight:600;color:var(--clr-text-muted);transition:color var(--dur-fast)}
.service-card__link:hover{color:var(--clr-sand)}
.service-card__link svg{width:13px;height:13px}

/* ============================================================ POURQUOI */
.atouts__grid{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--space-md);margin-top:var(--space-lg)}
.atout-card{padding:var(--space-md);border:1px solid var(--clr-border);border-radius:var(--radius-md);background:var(--clr-surface-2);transition:all var(--dur-base) var(--ease-out)}
.atout-card:hover{border-color:rgba(201,169,110,0.3);transform:translateY(-4px)}
.atout-card__num{font-family:var(--font-display);font-size:3.5rem;font-weight:600;color:var(--clr-text-dim);line-height:1;margin-bottom:0.5rem;transition:color var(--dur-base)}
.atout-card:hover .atout-card__num{color:var(--clr-sand)}
.atout-card__title{font-size:1rem;font-weight:600;color:var(--clr-cream);margin-bottom:0.5rem}
.atout-card__desc{font-size:0.875rem;color:var(--clr-text-muted);line-height:1.65}
@media(max-width:640px){.atouts__grid{grid-template-columns:1fr}}

/* ============================================================ RDV */
.rdv__grid{display:grid;grid-template-columns:1fr 1.2fr;gap:var(--space-lg);margin-top:var(--space-lg);align-items:start}
.rdv__steps{margin-top:var(--space-md)}
.rdv__step{display:flex;align-items:flex-start;gap:1rem;margin-bottom:var(--space-md);position:relative}
.rdv__step:not(:last-child)::after{content:'';position:absolute;left:15px;top:36px;bottom:-12px;width:1px;background:var(--clr-border)}
.rdv__step-num{width:32px;height:32px;border-radius:50%;border:1px solid var(--clr-sand);color:var(--clr-sand);display:flex;align-items:center;justify-content:center;font-size:0.75rem;font-weight:600;flex-shrink:0;font-family:var(--font-display);font-size:1rem}
.rdv__step-body strong{display:block;font-size:0.875rem;color:var(--clr-cream);font-weight:600;margin-bottom:0.2rem}
.rdv__step-body span{font-size:0.8rem;color:var(--clr-text-muted)}
.rdv__notice{margin-top:var(--space-md);padding:var(--space-sm) var(--space-sm) var(--space-sm) 1.2rem;border-left:2px solid var(--clr-sand);background:rgba(201,169,110,0.04);border-radius:0 var(--radius-sm) var(--radius-sm) 0}
.rdv__notice p{font-size:0.82rem;color:var(--clr-text-muted);line-height:1.6}
.rdv__notice strong{color:var(--clr-sand)}

/* Booking widget */
.booking-widget{background:var(--clr-surface);border:1px solid var(--clr-border);border-radius:var(--radius-md);padding:var(--space-md)}
.booking-widget__title{font-family:var(--font-display);font-size:1.5rem;color:var(--clr-cream);margin-bottom:var(--space-md);font-weight:600}

/* Calendar */
.cal-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-sm)}
.cal-month{font-family:var(--font-display);font-size:1.1rem;color:var(--clr-cream);font-weight:600}
.cal-nav button{background:none;border:1px solid var(--clr-border);color:var(--clr-sand);width:30px;height:30px;border-radius:50%;font-size:1rem;line-height:1;transition:all var(--dur-fast);cursor:pointer}
.cal-nav button:hover{background:var(--clr-sand);color:var(--clr-bg);border-color:var(--clr-sand)}
.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:3px;margin-bottom:var(--space-sm)}
.cal-dayname{text-align:center;font-size:0.62rem;color:var(--clr-text-dim);letter-spacing:0.1em;text-transform:uppercase;padding:0.4rem 0}
.cal-day{text-align:center;padding:0.45rem 0.2rem;font-size:0.82rem;cursor:pointer;border-radius:var(--radius-sm);transition:all var(--dur-fast) var(--ease-out);color:var(--clr-text-muted);border:1px solid transparent;font-family:var(--font-body)}
.cal-day.available{color:var(--clr-text);cursor:pointer}
.cal-day.available:hover{border-color:var(--clr-sand);color:var(--clr-sand);background:rgba(201,169,110,0.06)}
.cal-day.selected{background:var(--clr-sand);color:var(--clr-bg);font-weight:600;border-color:var(--clr-sand)}
.cal-day.today{border-color:rgba(201,169,110,0.5);color:var(--clr-sand)}
.cal-day.past,.cal-day.empty{color:var(--clr-text-dim);cursor:default}
.cal-day.unavailable{color:var(--clr-text-dim);cursor:not-allowed;text-decoration:line-through}
.cal-legend{display:flex;gap:var(--space-sm);flex-wrap:wrap;margin-top:0.3rem}
.legend-item{display:flex;align-items:center;gap:0.4rem;font-size:0.68rem;color:var(--clr-text-muted)}
.legend-dot{width:8px;height:8px;border-radius:50%}
.legend-dot.avail{background:var(--clr-sand)}
.legend-dot.unavail{background:rgba(237,233,224,0.15)}

/* Slots */
.time-slots{margin-top:var(--space-md);display:none}
.time-slots.visible{display:block}
.slots-title{font-size:0.7rem;font-weight:600;letter-spacing:0.15em;text-transform:uppercase;color:var(--clr-sand);margin-bottom:0.7rem}
.slots-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:0.4rem}
.slot{padding:0.45rem 0.2rem;text-align:center;font-size:0.78rem;border:1px solid var(--clr-border);color:var(--clr-text-muted);cursor:pointer;transition:all var(--dur-fast);border-radius:var(--radius-sm)}
.slot.available:hover,.slot.selected-slot{background:var(--clr-sand);color:var(--clr-bg);border-color:var(--clr-sand);font-weight:600}
.slot.booked{color:var(--clr-text-dim);cursor:not-allowed;text-decoration:line-through;border-color:transparent}

/* Mini booking form */
.booking-form{margin-top:var(--space-md);display:none}
.booking-form.visible{display:block}
.booking-summary{background:rgba(201,169,110,0.07);border:1px solid rgba(201,169,110,0.2);border-radius:var(--radius-sm);padding:0.75rem 1rem;margin-bottom:var(--space-sm);font-size:0.82rem;color:var(--clr-sand)}
.form-row{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--space-sm)}
.form-field{display:flex;flex-direction:column;gap:0.4rem;margin-bottom:var(--space-sm)}
.form-label{font-size:0.72rem;font-weight:600;letter-spacing:0.08em;text-transform:uppercase;color:var(--clr-text-muted)}
.form-input,.form-select,.form-textarea{width:100%;padding:0.65rem 0.9rem;background:rgba(255,255,255,0.04);border:1px solid var(--clr-border);border-radius:var(--radius-sm);color:var(--clr-text);font-family:var(--font-body);font-size:0.875rem;outline:none;transition:border-color var(--dur-fast) var(--ease-out),box-shadow var(--dur-fast)}
.form-input::placeholder,.form-textarea::placeholder{color:var(--clr-text-dim)}
.form-input:focus,.form-select:focus,.form-textarea:focus{border-color:var(--clr-sand);box-shadow:0 0 0 3px rgba(201,169,110,0.1)}
.form-select option{background:var(--clr-surface);color:var(--clr-text)}
.form-textarea{min-height:80px;resize:vertical}
.btn-submit{width:100%;padding:1rem;border-radius:50px;background:var(--clr-sand);color:var(--clr-bg);font-family:var(--font-body);font-size:0.85rem;font-weight:600;letter-spacing:0.08em;text-transform:uppercase;border:none;cursor:pointer;transition:all var(--dur-base) var(--ease-out);margin-top:0.25rem}
.btn-submit:hover{background:var(--clr-sand-light);transform:translateY(-2px)}

.booking-success{display:none;text-align:center;padding:var(--space-md);border:1px solid rgba(201,169,110,0.3);border-radius:var(--radius-md);margin-top:var(--space-sm)}
.booking-success.show{display:block}
.booking-success h4{font-family:var(--font-display);color:var(--clr-sand);font-size:1.4rem;margin-bottom:0.5rem}
.booking-success p{font-size:0.875rem;color:var(--clr-text-muted)}

.gcal-note{margin-top:var(--space-md);padding:var(--space-sm);border:1px dashed rgba(201,169,110,0.15);border-radius:var(--radius-sm);text-align:center}
.gcal-note p{font-size:0.78rem;color:var(--clr-text-dim);line-height:1.6}
.gcal-badge{display:inline-flex;align-items:center;gap:0.4rem;margin-top:0.4rem;font-size:0.7rem;color:var(--clr-sand);letter-spacing:0.1em;text-transform:uppercase;opacity:0.7}

@media(max-width:900px){.rdv__grid{grid-template-columns:1fr;gap:var(--space-sm)}}
@media(max-width:480px){.slots-grid{grid-template-columns:repeat(3,1fr)}.form-row{grid-template-columns:1fr}}

/* ============================================================ TEMOIGNAGES */
.testimonials__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-md)}
@media(max-width:1024px){.testimonials__grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:640px){.testimonials__grid{grid-template-columns:1fr}}
.testimonial-card{padding:var(--space-md);border:1px solid var(--clr-border);border-radius:var(--radius-md);background:var(--clr-surface-2);transition:all var(--dur-base)}
.testimonial-card:hover{border-color:rgba(212,137,158,0.25);transform:translateY(-4px)}
.testimonial-card__stars{display:flex;gap:2px;margin-bottom:var(--space-sm)}
.testimonial-card__stars svg{width:15px;height:15px;color:var(--clr-sand)}
.testimonial-card__quote{font-family:var(--font-display);font-size:1.1rem;font-style:italic;color:var(--clr-cream);line-height:1.45;margin-bottom:var(--space-sm)}
.testimonial-card__author{font-size:0.85rem;font-weight:600;color:var(--clr-sand)}
.testimonial-card__source{font-size:0.75rem;color:var(--clr-text-muted);margin-top:0.15rem}

/* ============================================================ CONTACT */
.contact__grid{display:grid;grid-template-columns:1fr 1.5fr;gap:var(--space-lg);margin-top:var(--space-lg)}
.contact__info-item{display:flex;align-items:flex-start;gap:var(--space-sm);margin-bottom:var(--space-md)}
.contact__info-icon{width:44px;height:44px;border-radius:var(--radius-sm);border:1px solid var(--clr-border);display:flex;align-items:center;justify-content:center;flex-shrink:0}
.contact__info-icon svg{width:18px;height:18px;color:var(--clr-sand)}
.contact__info-label{font-size:0.7rem;font-weight:600;letter-spacing:0.12em;text-transform:uppercase;color:var(--clr-sand);margin-bottom:0.2rem}
.contact__info-val{font-size:0.875rem;color:var(--clr-text-muted);line-height:1.6}
.social-row{display:flex;gap:0.6rem;margin-top:var(--space-md)}
.social-link{width:40px;height:40px;border-radius:50%;border:1px solid var(--clr-border);display:flex;align-items:center;justify-content:center;transition:all var(--dur-fast)}
.social-link:hover{border-color:var(--clr-sand);background:rgba(201,169,110,0.08)}
.social-link svg{width:15px;height:15px}
.contact-form{background:var(--clr-surface);border:1px solid var(--clr-border);border-radius:var(--radius-md);padding:var(--space-md)}
@media(max-width:900px){.contact__grid{grid-template-columns:1fr}}

/* ============================================================ CTA BANNER */
.cta-section{position:relative;padding:var(--space-xl) 0;text-align:center;overflow:hidden}
.cta-section__bg{position:absolute;inset:0;background:radial-gradient(ellipse 70% 60% at 50% 50%,rgba(201,169,110,0.05) 0%,transparent 65%),var(--clr-surface)}
.cta-section__content{position:relative;z-index:2}
.cta-section__title{font-family:var(--font-display);font-size:clamp(2rem,4.5vw,4rem);font-weight:600;color:var(--clr-cream);margin-bottom:var(--space-sm);line-height:1.05}
.cta-section__sub{color:var(--clr-text-muted);font-size:1rem;margin-bottom:var(--space-lg)}
.cta-section__actions{display:flex;gap:var(--space-sm);justify-content:center;flex-wrap:wrap}

/* ============================================================ FOOTER */
.footer{background:var(--clr-surface);border-top:1px solid var(--clr-border);padding:var(--space-xl) 0 var(--space-md)}
.footer__grid{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:var(--space-lg);margin-bottom:var(--space-xl)}
@media(max-width:1024px){.footer__grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:640px){.footer__grid{grid-template-columns:1fr}}
.footer__brand-name{font-family:var(--font-display);font-size:1.8rem;font-weight:700;color:var(--clr-cream);margin-bottom:0.2rem}
.footer__brand-name span{font-family:var(--font-script);color:var(--clr-rose);font-size:1em}
.footer__brand-sub{font-size:0.75rem;color:var(--clr-text-dim);margin-bottom:var(--space-sm)}
.footer__brand-desc{font-size:0.875rem;color:var(--clr-text-muted);max-width:300px;margin-bottom:var(--space-md);line-height:1.7}
.footer__social{display:flex;gap:0.7rem}
.footer__social-link{width:38px;height:38px;border-radius:50%;border:1px solid var(--clr-border);display:flex;align-items:center;justify-content:center;transition:all var(--dur-fast)}
.footer__social-link:hover{border-color:var(--clr-sand);background:rgba(201,169,110,0.08)}
.footer__social-link svg{width:15px;height:15px}
.footer__col-title{font-size:0.68rem;font-weight:600;letter-spacing:0.15em;text-transform:uppercase;color:var(--clr-sand);margin-bottom:var(--space-sm)}
.footer__col-links{display:flex;flex-direction:column;gap:0.55rem}
.footer__col-links a{font-size:0.875rem;color:var(--clr-text-muted);transition:color var(--dur-fast)}
.footer__col-links a:hover{color:var(--clr-cream)}
.footer__bottom{display:flex;justify-content:space-between;align-items:center;padding-top:var(--space-md);border-top:1px solid var(--clr-border);flex-wrap:wrap;gap:var(--space-sm)}
.footer__copy{font-size:0.78rem;color:var(--clr-text-dim)}
.footer__legal{display:flex;gap:var(--space-md)}
.footer__legal a{font-size:0.78rem;color:var(--clr-text-dim);transition:color var(--dur-fast)}
.footer__legal a:hover{color:var(--clr-text-muted)}

/* ============================================================ ANIMATIONS */
@keyframes fadeUp{to{opacity:1;transform:translateY(0)}}
@keyframes fadeIn{from{opacity:0}to{opacity:1}}
.reveal{opacity:0;transform:translateY(28px);transition:opacity 0.7s var(--ease-out),transform 0.7s var(--ease-out)}
.reveal.visible{opacity:1;transform:translateY(0)}
.reveal-d1{transition-delay:0.1s}
.reveal-d2{transition-delay:0.2s}
.reveal-d3{transition-delay:0.3s}

/* ============================================================ MODAL */
.modal{position:fixed;inset:0;z-index:2000;display:flex;align-items:center;justify-content:center;padding:var(--space-md);opacity:0;pointer-events:none;transition:opacity var(--dur-base) var(--ease-out)}
.modal.open{opacity:1;pointer-events:all}
.modal__overlay{position:absolute;inset:0;background:rgba(0,0,0,0.8);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}
.modal__panel{position:relative;z-index:1;background:var(--clr-surface);border:1px solid var(--clr-border);border-radius:var(--radius-md);width:100%;max-width:680px;max-height:88vh;overflow-y:auto;transform:translateY(24px) scale(0.97);transition:transform var(--dur-base) var(--ease-out)}
.modal.open .modal__panel{transform:translateY(0) scale(1)}
.modal__close{position:sticky;top:var(--space-md);z-index:2;float:right;margin:var(--space-md) var(--space-md) 0 0;display:flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:50%;border:1px solid var(--clr-border);color:var(--clr-text-muted);background:var(--clr-surface);transition:all var(--dur-fast);flex-shrink:0}
.modal__close:hover{border-color:var(--clr-sand);color:var(--clr-sand)}
.modal__close svg{width:16px;height:16px}
.modal__body{padding:0 var(--space-lg) var(--space-lg);clear:both}
.modal__title{font-family:var(--font-display);font-size:clamp(1.8rem,3.5vw,2.4rem);font-weight:600;color:var(--clr-cream);padding-bottom:var(--space-sm);border-bottom:1px solid var(--clr-border);margin-bottom:var(--space-md)}
.modal__section-title{font-size:0.7rem;font-weight:600;letter-spacing:0.18em;text-transform:uppercase;color:var(--clr-sand);margin-top:var(--space-md);margin-bottom:0.5rem}
.modal__body p{font-size:0.875rem;color:var(--clr-text-muted);line-height:1.75;margin-bottom:0.5rem}
@media(max-width:640px){.modal__body{padding:0 var(--space-md) var(--space-md)}}

/* Scrollbar */
::-webkit-scrollbar{width:6px;height:6px}
::-webkit-scrollbar-track{background:var(--clr-bg)}
::-webkit-scrollbar-thumb{background:var(--clr-border);border-radius:3px}
::-webkit-scrollbar-thumb:hover{background:rgba(201,169,110,0.3)}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
