*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; }
body { font-family: 'Raleway', sans-serif; background: #F9EFF3; color: #1A0A0F; line-height: 1.6; overflow-x: hidden; }

:root {
  --dark:      #1A0A0F;
  --pink:      #E8186A;
  --pink-deep: #B5104F;
  --cream:     #F9EFF3;
  --muted-1:   #C4A8B5;
  --muted-2:   #8C7480;
  --muted-3:   #5A3D4A;
  --muted-dark:#3D2030;
  --border:    rgba(26,10,15,0.12);
}

.serif { font-family: 'Playfair Display', Georgia, serif; }

/* ── Skip link ── */
.skip-link { position:absolute; top:-100%; left:1rem; background:var(--pink); color:#fff; padding:8px 16px; border-radius:0 0 4px 4px; font-size:13px; font-weight:500; text-decoration:none; z-index:1000; transition:top .2s; }
.skip-link:focus { top:0; }

/* ── Header ── */
header.site-header { position:sticky; top:0; z-index:100; background:rgba(26,10,15,0.97); backdrop-filter:blur(8px); border-bottom:1px solid rgba(232,24,106,0.15); }
.nav-inner { max-width:1100px; margin:0 auto; padding:0 2rem; display:flex; align-items:center; justify-content:space-between; height:64px; }
.nav-logo { font-family:'Playfair Display',serif; font-style:italic; font-size:20px; color:#F9EFF3; text-decoration:none; }
.nav-logo span { color:var(--pink); }
nav ul { list-style:none; display:flex; gap:2rem; align-items:center; }
nav ul li a { font-size:11px; letter-spacing:0.12em; text-transform:uppercase; color:var(--muted-2); text-decoration:none; transition:color .2s; }
nav ul li a:hover, nav ul li a:focus { color:var(--muted-1); outline:none; }
.nav-cta a { color:var(--pink) !important; border:1px solid rgba(232,24,106,0.5); padding:6px 14px; border-radius:20px; transition:background .2s,color .2s !important; }
.nav-cta a:hover, .nav-cta a:focus { background:var(--pink); color:#fff !important; }
.menu-toggle { display:none; background:none; border:none; cursor:pointer; color:var(--muted-1); font-size:22px; padding:4px; }

/* ── Hero ── */
.hero { background:var(--dark); min-height:92vh; display:flex; align-items:center; position:relative; overflow:hidden; }
.hero-decor { position:absolute; inset:0; pointer-events:none; overflow:hidden; }
.hero-decor span { position:absolute; border-radius:50%; border:1px solid rgba(232,24,106,0.12); }
.hero-decor span:nth-child(1) { width:500px;height:500px;bottom:-150px;right:-150px; }
.hero-decor span:nth-child(2) { width:320px;height:320px;bottom:-80px;right:-80px;border-color:rgba(232,24,106,0.08); }
.hero-decor span:nth-child(3) { width:200px;height:200px;top:-60px;left:45%;border-color:rgba(255,255,255,0.04); }
.hero-decor span:nth-child(4) { width:60px;height:60px;top:30%;left:8%;border-color:rgba(232,24,106,0.2); }
.hero-inner { max-width:1100px; margin:0 auto; padding:5rem 2rem 4rem; width:100%; display:grid; grid-template-columns:1fr 1fr; gap:4rem; align-items:center; }
.hero-eyebrow { display:inline-block; margin-bottom:1.5rem; padding:5px 14px; border:1px solid rgba(232,24,106,0.35); border-radius:20px; font-size:11px; font-weight:500; letter-spacing:0.18em; text-transform:uppercase; color:var(--pink); }
.hero-h1 { font-family:'Playfair Display',serif; font-size:clamp(44px,6vw,72px); font-weight:400; line-height:1.05; color:#F9EFF3; margin-bottom:.3rem; }
.hero-h1 em { font-style:italic; color:var(--pink); }
.hero-tagline { font-size:12px; letter-spacing:0.22em; text-transform:uppercase; color:var(--muted-1); margin-bottom:1.5rem; font-weight:400; }
.hero-desc { font-size:15px; line-height:1.75; color:var(--muted-1); max-width:420px; margin-bottom:2.5rem; font-weight:300; }
.btn-row { display:flex; gap:14px; flex-wrap:wrap; }
.btn-primary { display:inline-block; background:var(--pink); color:#fff; font-family:'Raleway',sans-serif; font-size:11px; font-weight:600; letter-spacing:0.14em; text-transform:uppercase; padding:14px 28px; border-radius:2px; border:none; cursor:pointer; text-decoration:none; transition:background .2s,transform .15s; }
.btn-primary:hover { background:var(--pink-deep); transform:translateY(-1px); }
.btn-primary:focus { outline:3px solid rgba(232,24,106,0.5); outline-offset:2px; }
.btn-ghost { display:inline-block; background:transparent; color:var(--muted-1); font-family:'Raleway',sans-serif; font-size:11px; font-weight:500; letter-spacing:0.14em; text-transform:uppercase; padding:13px 28px; border-radius:2px; border:1px solid var(--muted-3); cursor:pointer; text-decoration:none; transition:border-color .2s,color .2s; }
.btn-ghost:hover { border-color:var(--muted-1); color:#F9EFF3; }
.hero-stats { display:flex; gap:2.5rem; margin-top:3rem; padding-top:2rem; border-top:1px solid rgba(255,255,255,0.07); }
.stat-num { display:block; font-family:'Playfair Display',serif; font-size:28px; font-weight:400; color:var(--pink); line-height:1; margin-bottom:4px; }
.stat-label { font-size:10px; letter-spacing:0.14em; text-transform:uppercase; color:var(--muted-2); }

/* Hero card */
.hero-card { background:rgba(255,255,255,0.04); border:1px solid rgba(232,24,106,0.18); border-radius:16px; overflow:hidden; }
.hero-card-img { width:100%; height:220px; object-fit:cover; display:block; }
.hero-card-body { padding:1.5rem; }
.hero-card-title { font-size:11px; letter-spacing:0.16em; text-transform:uppercase; color:var(--pink); margin-bottom:1rem; }
.service-pill { display:flex; align-items:center; gap:12px; padding:10px 12px; background:rgba(255,255,255,0.05); border:1px solid rgba(255,255,255,0.07); border-radius:8px; cursor:pointer; transition:background .2s,border-color .2s; text-decoration:none; margin-bottom:8px; }
.service-pill:hover,.service-pill:focus { background:rgba(232,24,106,0.1); border-color:rgba(232,24,106,0.3); outline:none; }
.pill-dot { width:8px; height:8px; border-radius:50%; background:var(--pink); flex-shrink:0; }
.pill-name { font-size:14px; font-weight:500; color:#F9EFF3; flex:1; }
.pill-arrow { font-size:13px; color:var(--muted-2); }
.hero-tel { display:flex; align-items:center; justify-content:space-between; gap:1rem; margin-top:1rem; padding:14px; background:var(--pink); border-radius:8px; text-decoration:none; transition:background .2s; }
.hero-tel:hover { background:var(--pink-deep); }
.hero-tel span { font-family:'Playfair Display',serif; font-style:italic; font-size:18px; color:#fff; }
.hero-tel small { font-size:10px; letter-spacing:0.1em; text-transform:uppercase; color:rgba(255,255,255,0.8); }

/* ── Sections communes ── */
section { padding:5rem 2rem; }
.container { max-width:1100px; margin:0 auto; }
.section-label { font-size:11px; letter-spacing:0.16em; text-transform:uppercase; color:var(--muted-dark); margin-bottom:6px; }
.section-title { font-family:'Playfair Display',serif; font-size:clamp(26px,4vw,36px); font-weight:400; color:var(--dark); margin-bottom:2rem; }
.section-title em, .title-accent { font-style:italic; color:var(--pink); }

/* ── Services ── */
#services { background:var(--cream); }
.services-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(240px,1fr)); gap:1px; background:var(--border); border-radius:16px; overflow:hidden; }
.service-card { background:#fff; position:relative; overflow:hidden; transition:background .2s; display:flex; flex-direction:column; }
.service-card::before { content:''; position:absolute; top:0; left:0; width:3px; height:0; background:var(--pink); transition:height .3s ease; z-index:1; }
.service-card:hover { background:#fdf5f8; }
.service-card:hover::before { height:100%; }
.service-card-img { width:100%; height:200px; object-fit:cover; display:block; }
.service-card-body { padding:1.75rem; flex:1; display:flex; flex-direction:column; }
.svc-number { font-family:'Playfair Display',serif; font-size:11px; color:var(--pink); letter-spacing:.1em; margin-bottom:1rem; display:block; }
.svc-title { font-size:18px; font-weight:500; color:var(--dark); margin-bottom:.75rem; }
.svc-desc-text { font-size:13px; color:var(--muted-dark); line-height:1.6; margin-bottom:1.5rem; font-weight:300; flex:1; }
.svc-items { list-style:none; display:flex; flex-direction:column; gap:6px; margin-bottom:1.5rem; }
.svc-items li { font-size:12px; color:var(--muted-dark); display:flex; align-items:center; gap:8px; }
.svc-items li::before { content:''; width:4px; height:4px; border-radius:50%; background:var(--pink); flex-shrink:0; }
.svc-link-btn { display:inline-flex; align-items:center; gap:6px; font-size:11px; letter-spacing:.1em; text-transform:uppercase; color:var(--pink); font-weight:500; text-decoration:none; transition:gap .2s; margin-top:auto; }
.svc-link-btn:hover { gap:10px; }

/* ── À propos ── */
#about { background:var(--dark); }
.about-grid { display:grid; grid-template-columns:1fr 1fr; gap:5rem; align-items:start; }
.about-content .section-label { color:var(--muted-2); }
.about-content .section-title { color:#F9EFF3; }
.about-content .section-title em { color:var(--pink); font-style:italic; }
.about-text { font-size:14px; line-height:1.8; color:var(--muted-1); font-weight:300; margin-bottom:1.25rem; }
.about-values { display:flex; flex-direction:column; gap:.75rem; margin-top:1.5rem; }
.value-item { display:flex; align-items:flex-start; gap:14px; padding:1rem 1.25rem; background:rgba(255,255,255,0.04); border:1px solid rgba(255,255,255,0.07); border-radius:8px; }
.value-dot { width:10px; height:10px; border-radius:50%; background:var(--pink); flex-shrink:0; margin-top:4px; }
.value-title { font-size:13px; font-weight:500; color:#F9EFF3; margin-bottom:2px; }
.value-desc { font-size:12px; color:var(--muted-1); font-weight:300; }
.about-visual { display:flex; flex-direction:column; gap:1rem; }
.about-img { width:100%; border-radius:12px; object-fit:cover; height:260px; display:block; }
.about-stats-row { display:grid; grid-template-columns:1fr 1fr; gap:1rem; }
.about-stat-card { background:rgba(232,24,106,0.08); border:1px solid rgba(232,24,106,0.2); border-radius:12px; padding:1.25rem; text-align:center; }
.about-stat-num { font-family:'Playfair Display',serif; font-size:36px; font-weight:400; color:var(--pink); line-height:1; }
.about-stat-label { font-size:10px; letter-spacing:.14em; text-transform:uppercase; color:var(--muted-1); margin-top:6px; }
.about-badges { display:flex; flex-wrap:wrap; gap:8px; }
.about-badge { font-size:11px; letter-spacing:.1em; text-transform:uppercase; color:var(--muted-1); border:1px solid var(--muted-3); padding:6px 12px; border-radius:20px; }

/* ── Témoignages ── */
#temoignages { background:var(--cream); }
.temoignages-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(280px,1fr)); gap:16px; }
.temoignage-card { background:#fff; border-radius:12px; padding:1.5rem; border:0.5px solid var(--border); position:relative; }
.temo-stars { color:var(--pink); font-size:14px; margin-bottom:.75rem; letter-spacing:2px; }
.temo-text { font-size:13px; color:var(--muted-dark); line-height:1.65; font-weight:300; font-style:italic; margin-bottom:1rem; }
.temo-author { display:flex; align-items:center; gap:10px; }
.temo-avatar { width:36px; height:36px; border-radius:50%; background:var(--pink); display:flex; align-items:center; justify-content:center; font-size:14px; font-weight:600; color:#fff; font-family:'Playfair Display',serif; flex-shrink:0; }
.temo-name { font-size:13px; font-weight:500; color:var(--dark); }
.temo-source { font-size:11px; color:var(--muted-2); }
.temo-google { position:absolute; top:1.25rem; right:1.25rem; font-size:11px; color:var(--muted-2); letter-spacing:.06em; }
.temo-links { display:flex; align-items:center; gap:1.75rem; margin-top:1.5rem; flex-wrap:wrap; }
.temo-links a { font-size:12px; letter-spacing:.1em; text-transform:uppercase; font-weight:600; color:var(--pink-deep); text-decoration:none; transition:opacity .2s; }
.temo-links a:hover { opacity:.75; }
.temo-links .temo-links-secondary { color:var(--muted-2); font-weight:500; }

/* ── CTA Strip ── */
.cta-strip { background:var(--pink); padding:3rem 2rem; }
.cta-inner { max-width:1100px; margin:0 auto; display:flex; align-items:center; justify-content:space-between; gap:2rem; flex-wrap:wrap; }
.cta-text h2 { font-family:'Playfair Display',serif; font-size:clamp(22px,3vw,32px); font-weight:400; color:#fff; margin-bottom:4px; }
.cta-text p { font-size:14px; color:rgba(255,255,255,0.88); font-weight:300; }
.cta-actions { display:flex; align-items:center; gap:1rem; flex-wrap:wrap; }
.cta-tel { font-family:'Playfair Display',serif; font-style:italic; font-size:26px; color:#fff; text-decoration:none; transition:opacity .2s; }
.cta-tel:hover { opacity:.85; }
.cta-btn { background:var(--dark); color:#F9EFF3; font-family:'Raleway',sans-serif; font-size:11px; font-weight:600; letter-spacing:.14em; text-transform:uppercase; padding:13px 24px; border-radius:2px; border:none; cursor:pointer; text-decoration:none; transition:background .2s; white-space:nowrap; }
.cta-btn:hover { background:#2E0F1E; }

/* ── Infos pratiques ── */
#contact { background:var(--cream); }
.contact-grid { display:grid; grid-template-columns:1fr 1fr; gap:3rem; align-items:start; }
.info-cards { display:grid; grid-template-columns:1fr 1fr; gap:1px; background:var(--border); border-radius:16px; overflow:hidden; }
.info-card { background:#fff; padding:1.25rem; }
.info-card-label { font-size:10px; letter-spacing:.16em; text-transform:uppercase; color:var(--muted-dark); display:flex; align-items:center; gap:6px; margin-bottom:8px; }
.info-card-label svg { color:var(--pink); flex-shrink:0; }
.info-card-val { font-size:13px; color:var(--dark); line-height:1.6; }
.info-card-val a { color:var(--dark); text-decoration:none; }
.info-card-val a:hover { color:var(--pink); }
.map-link { display:block; margin-top:1.5rem; border-radius:12px; overflow:hidden; border:1px solid var(--border); }
.map-link img { width:100%; height:200px; object-fit:cover; display:block; transition:opacity .2s; }
.map-link:hover img { opacity:.85; }
.map-caption { background:#fff; padding:10px 14px; font-size:12px; color:var(--muted-dark); display:flex; align-items:center; gap:6px; border-top:1px solid var(--border); }

/* ── Formulaires ── */
.contact-form-area { background:#fff; border-radius:16px; border:1px solid var(--border); padding:2rem; }
.form-title { font-family:'Playfair Display',serif; font-size:20px; font-weight:400; color:var(--dark); margin-bottom:1.5rem; }
.form-group { margin-bottom:1rem; }
.form-label { display:block; font-size:11px; letter-spacing:.1em; text-transform:uppercase; color:var(--muted-dark); margin-bottom:6px; font-weight:500; }
.form-input,.form-select,.form-textarea { width:100%; padding:10px 14px; border:1px solid var(--border); border-radius:4px; font-family:'Raleway',sans-serif; font-size:14px; color:var(--dark); background:#fff; transition:border-color .2s; outline:none; }
.form-input:focus,.form-select:focus,.form-textarea:focus { border-color:var(--pink); box-shadow:0 0 0 3px rgba(232,24,106,0.12); }
.form-textarea { resize:vertical; min-height:90px; }
.form-row { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.form-submit { width:100%; background:var(--pink); color:#fff; font-family:'Raleway',sans-serif; font-size:12px; font-weight:600; letter-spacing:.14em; text-transform:uppercase; padding:13px; border:none; border-radius:2px; cursor:pointer; margin-top:.5rem; transition:background .2s; }
.form-submit:hover { background:var(--pink-deep); }
.form-consent { font-size:11px; color:var(--muted-dark); margin-top:.75rem; display:flex; align-items:flex-start; gap:8px; line-height:1.5; }
.form-consent input { margin-top:2px; accent-color:var(--pink); }
.form-error { color:#B5104F; font-size:12px; margin-top:4px; }
.form-input.is-invalid,.form-select.is-invalid,.form-textarea.is-invalid { border-color:#B5104F; }
.honeypot { position:absolute; left:-9999px; opacity:0; height:0; overflow:hidden; }

/* ── Alertes ── */
.alert { max-width:1100px; margin:1rem auto; padding:14px 18px; border-radius:8px; font-size:14px; }
.alert-success { background:#e8f7ee; border:1px solid #9fe1cb; color:#14532d; }
.alert-error { background:#fdecf2; border:1px solid rgba(232,24,106,0.35); color:#B5104F; }

/* ── Bannière d'information réservation ── */
.resa-notice { display:flex; gap:14px; align-items:flex-start; background:#fff; border:1px solid rgba(232,24,106,0.3); border-left:4px solid var(--pink); border-radius:12px; padding:1.1rem 1.3rem; margin-bottom:2rem; }
.resa-notice-icon { font-size:20px; flex-shrink:0; line-height:1.4; }
.resa-notice p { font-size:13.5px; color:var(--muted-dark); line-height:1.65; margin:0; }
.slot-legend { font-size:11.5px; color:var(--muted-2); margin-top:5px; }
.form-select option:disabled { color:#b9a7b0; }

/* ── FAQ ── */
#faq { background:var(--dark); }
#faq .section-label { color:var(--muted-2); }
#faq .section-title { color:#F9EFF3; }
.faq-list { display:flex; flex-direction:column; gap:1px; background:rgba(255,255,255,0.06); border-radius:12px; overflow:hidden; }
.faq-item { background:rgba(255,255,255,0.03); }
.faq-q { width:100%; background:none; border:none; padding:1.25rem 1.5rem; text-align:left; cursor:pointer; display:flex; align-items:center; justify-content:space-between; gap:1rem; }
.faq-q-text { font-size:14px; font-weight:500; color:#F9EFF3; line-height:1.4; }
.faq-icon { color:var(--pink); font-size:20px; flex-shrink:0; font-weight:300; transition:transform .3s; }
.faq-item.open .faq-icon { transform:rotate(45deg); }
.faq-a { font-size:13px; color:var(--muted-1); line-height:1.7; font-weight:300; padding:0 1.5rem 1.25rem; display:none; }
.faq-item.open .faq-a { display:block; }

/* ── Page intérieure (réservation) ── */
.page-hero { background:var(--dark); padding:4.5rem 2rem 3.5rem; position:relative; overflow:hidden; }
.page-hero .hero-decor span:nth-child(1) { width:340px;height:340px;bottom:-180px;right:-120px; }
.page-hero .hero-decor span:nth-child(2) { width:180px;height:180px;top:-70px;left:10%; border-color:rgba(232,24,106,0.08); }
.page-hero-inner { max-width:1100px; margin:0 auto; position:relative; }
.page-hero .section-label { color:var(--muted-2); }
.page-hero h1 { font-family:'Playfair Display',serif; font-size:clamp(32px,5vw,52px); font-weight:400; color:#F9EFF3; line-height:1.1; }
.page-hero h1 em { font-style:italic; color:var(--pink); }
.page-hero p.lead { color:var(--muted-1); font-size:15px; font-weight:300; margin-top:1rem; max-width:520px; }

.resa-grid { display:grid; grid-template-columns:1.2fr .8fr; gap:2.5rem; align-items:start; }
.resa-aside { display:flex; flex-direction:column; gap:1rem; }
.resa-aside-card { background:#fff; border:1px solid var(--border); border-radius:16px; padding:1.5rem; }
.resa-aside-card h3 { font-family:'Playfair Display',serif; font-size:18px; font-weight:400; margin-bottom:.75rem; color:var(--dark); }
.resa-aside-card p, .resa-aside-card li { font-size:13px; color:var(--muted-dark); font-weight:300; line-height:1.7; }
.resa-aside-card ol { padding-left:1.1rem; display:flex; flex-direction:column; gap:.5rem; }
.resa-dark-card { background:var(--dark); border:1px solid rgba(232,24,106,0.25); }
.resa-dark-card h3 { color:#F9EFF3; }
.resa-dark-card p { color:var(--muted-1); }
.resa-dark-card .hero-tel { margin-top:1rem; }

/* Confirmation */
.success-wrap { max-width:640px; margin:0 auto; text-align:center; }
.success-badge { width:64px; height:64px; margin:0 auto 1.5rem; border-radius:50%; background:rgba(232,24,106,0.1); border:1px solid rgba(232,24,106,0.35); display:flex; align-items:center; justify-content:center; color:var(--pink); font-size:28px; }
.success-ref { display:inline-block; margin:1rem 0; padding:8px 18px; background:#fff; border:1px dashed rgba(232,24,106,0.5); border-radius:8px; font-size:14px; letter-spacing:.08em; color:var(--pink-deep); font-weight:600; }
.recap-card { background:#fff; border:1px solid var(--border); border-radius:16px; padding:1.5rem 2rem; margin:1.5rem 0; text-align:left; }
.recap-row { display:flex; justify-content:space-between; gap:1rem; padding:.6rem 0; border-bottom:1px solid var(--border); font-size:14px; }
.recap-row:last-child { border-bottom:none; }
.recap-row .k { color:var(--muted-2); font-size:11px; letter-spacing:.12em; text-transform:uppercase; padding-top:2px; }
.recap-row .v { color:var(--dark); font-weight:500; text-align:right; }

/* ── Footer ── */
footer.site-footer { background:var(--dark); padding:3rem 2rem 2rem; border-top:1px solid rgba(232,24,106,0.15); }
.footer-inner { max-width:1100px; margin:0 auto; }
.footer-top { display:flex; justify-content:space-between; align-items:flex-start; gap:3rem; flex-wrap:wrap; margin-bottom:2rem; padding-bottom:2rem; border-bottom:1px solid rgba(255,255,255,0.07); }
.footer-brand .footer-logo { font-family:'Playfair Display',serif; font-style:italic; font-size:22px; color:#F9EFF3; text-decoration:none; }
.footer-brand .footer-logo span { color:var(--pink); }
.footer-brand p { font-size:12px; color:var(--muted-2); margin-top:8px; max-width:240px; line-height:1.6; }
.footer-nav h3 { font-size:10px; letter-spacing:.16em; text-transform:uppercase; color:var(--muted-2); margin-bottom:1rem; }
.footer-nav ul { list-style:none; display:flex; flex-direction:column; gap:8px; }
.footer-nav a { font-size:13px; color:var(--muted-2); text-decoration:none; transition:color .2s; }
.footer-nav a:hover { color:var(--muted-1); }
.footer-bottom { display:flex; justify-content:space-between; align-items:center; gap:1rem; flex-wrap:wrap; }
.footer-copy { font-size:11px; color:var(--muted-3); letter-spacing:.06em; }
.footer-legal { display:flex; gap:1.5rem; }
.footer-legal a { font-size:11px; color:var(--muted-3); text-decoration:none; }
.footer-legal a:hover { color:var(--muted-1); }
.footer-credit { display:inline-flex; align-items:center; gap:8px; font-size:11px; color:var(--muted-3); letter-spacing:.06em; }
.footer-credit img { height:20px; opacity:.75; transition:opacity .2s; }
.footer-credit:hover img { opacity:1; }

/* ── Barre CTA mobile ── */
.mobile-cta { display:none; }

/* ── Responsive ── */
@media (max-width:768px) {
  .mobile-cta { position:fixed; bottom:0; left:0; right:0; z-index:200; display:flex; gap:10px; padding:10px 14px calc(10px + env(safe-area-inset-bottom)); background:rgba(26,10,15,0.97); backdrop-filter:blur(8px); border-top:1px solid rgba(232,24,106,0.25); }
  .mobile-cta a { flex:1; display:flex; align-items:center; justify-content:center; gap:8px; font-size:12px; font-weight:600; letter-spacing:.1em; text-transform:uppercase; text-decoration:none; padding:13px 8px; border-radius:6px; }
  .mobile-cta-call { color:var(--muted-1); border:1px solid var(--muted-3); background:transparent; }
  .mobile-cta-book { background:var(--pink); color:#fff; }
  body:has(.mobile-cta) { padding-bottom:70px; }
  footer.site-footer { padding-bottom:5rem; }
  nav ul { display:none; }
  nav ul.open { display:flex; flex-direction:column; gap:1rem; }
  .menu-toggle { display:block; }
  .nav-inner { flex-wrap:wrap; height:auto; padding:1rem 1.5rem; gap:0; }
  nav { width:100%; }
  nav ul.open { padding:1rem 0; border-top:1px solid rgba(255,255,255,0.08); margin-top:.5rem; }
  .hero-inner { grid-template-columns:1fr; gap:3rem; padding:4rem 1.5rem 3rem; }
  .hero-card { display:none; }
  .hero-stats { gap:1.5rem; }
  .about-grid { grid-template-columns:1fr; gap:3rem; }
  .contact-grid { grid-template-columns:1fr; }
  .resa-grid { grid-template-columns:1fr; }
  .form-row { grid-template-columns:1fr; }
  .footer-top { flex-direction:column; gap:2rem; }
  section { padding:3.5rem 1.5rem; }
}

@media (prefers-reduced-motion:no-preference) {
  .fade-in { opacity:0; transform:translateY(20px); transition:opacity .6s ease,transform .6s ease; }
  .fade-in.visible { opacity:1; transform:translateY(0); }
  .fade-in:nth-child(2) { transition-delay:.1s; }
  .fade-in:nth-child(3) { transition-delay:.2s; }
  .fade-in:nth-child(4) { transition-delay:.3s; }
}
