/* =========================================================
   Art'Café Courroux — feuille de style
   Thème : chaleureux & rustique (bois, terracotta, crème)
   ========================================================= */

:root{
  --cream:        #FBF3E7;
  --cream-soft:   #F3E7D6;
  --paper:        #FFFCF7;
  --coffee-900:   #2B1810;
  --coffee-800:   #3B2418;
  --coffee-700:   #4A2E23;
  --coffee-600:   #6B4433;
  --terracotta:   #C1652E;
  --terracotta-d: #A8501F;
  --gold:         #D9A441;
  --gold-soft:    #EAC989;
  --sage:         #7C8B5D;
  --ink:          #2B1810;
  --ink-soft:     #6B5B4E;
  --shadow-soft:  0 20px 50px -20px rgba(43,24,16,.35);
  --shadow-card:  0 12px 30px -12px rgba(43,24,16,.25);
  --radius-lg: 28px;
  --radius-md: 18px;
  --radius-sm: 10px;
  --ff-display: Georgia, 'Iowan Old Style', 'Palatino Linotype', 'URW Palladio L', serif;
  --ff-body: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif;
  --container: 1180px;
  --nav-h: 84px;
}

*,*::before,*::after{ box-sizing:border-box; }
html{ scroll-behavior:smooth; }
@media (prefers-reduced-motion: reduce){
  html{ scroll-behavior:auto; }
  *,*::before,*::after{ animation-duration:.001ms !important; animation-iteration-count:1 !important; transition-duration:.001ms !important; scroll-behavior:auto !important; }
}

body{
  margin:0;
  font-family:var(--ff-body);
  color:var(--ink);
  background:var(--cream);
  overflow-x:hidden;
  -webkit-font-smoothing:antialiased;
}

img{ max-width:100%; display:block; }
a{ color:inherit; text-decoration:none; }
ul{ list-style:none; margin:0; padding:0; }
h1,h2,h3,h4{ font-family:var(--ff-display); margin:0; line-height:1.15; color:var(--coffee-900); }
p{ margin:0; }
button{ font:inherit; cursor:pointer; }

.container{ max-width:var(--container); margin:0 auto; padding:0 28px; }
.section{ padding:120px 0; position:relative; }
@media (max-width:768px){ .section{ padding:80px 0; } }

.eyebrow{
  display:inline-flex; align-items:center; gap:10px;
  font-size:.78rem; letter-spacing:.22em; text-transform:uppercase;
  color:var(--terracotta-d); font-weight:700; margin-bottom:18px;
}
.eyebrow::before{ content:""; width:28px; height:2px; background:var(--terracotta); display:inline-block; border-radius:2px; }

.section-head{ max-width:640px; margin:0 0 56px; }
.section-head.center{ margin-left:auto; margin-right:auto; text-align:center; }
.section-head h2{ font-size:clamp(2rem,4vw,3rem); }
.section-head .lead{ margin-top:16px; color:var(--ink-soft); font-size:1.05rem; line-height:1.7; }

/* ---------- Reveal on scroll ---------- */
.reveal{ opacity:0; transform:translateY(36px); transition:opacity .8s cubic-bezier(.16,.84,.44,1), transform .8s cubic-bezier(.16,.84,.44,1); }
.reveal.is-visible{ opacity:1; transform:translateY(0); }
.reveal-scale{ opacity:0; transform:scale(.92); transition:opacity .8s ease, transform .8s cubic-bezier(.16,.84,.44,1); }
.reveal-scale.is-visible{ opacity:1; transform:scale(1); }
.stagger > *{ transition-delay:calc(var(--i,0) * 110ms); }

/* ---------- Buttons ---------- */
.btn{
  display:inline-flex; align-items:center; gap:10px;
  padding:16px 30px; border-radius:100px; font-weight:700; font-size:.95rem;
  border:2px solid transparent; transition:transform .35s cubic-bezier(.34,1.56,.64,1), box-shadow .35s ease, background .3s ease, color .3s ease, border-color .3s ease;
  position:relative; overflow:hidden; white-space:nowrap;
}
.btn-primary{ background:var(--terracotta); color:var(--paper); box-shadow:0 14px 30px -10px rgba(193,101,46,.55); }
.btn-primary:hover{ transform:translateY(-4px) scale(1.03); box-shadow:0 20px 36px -12px rgba(193,101,46,.65); }
.btn-ghost{ background:transparent; color:var(--paper); border-color:rgba(255,255,255,.55); }
.btn-ghost:hover{ background:rgba(255,255,255,.14); border-color:#fff; transform:translateY(-4px); }
.btn-outline{ background:transparent; color:var(--coffee-800); border-color:var(--coffee-800); }
.btn-outline:hover{ background:var(--coffee-800); color:var(--paper); transform:translateY(-4px); }
.btn svg{ width:18px; height:18px; transition:transform .35s ease; }
.btn:hover svg{ transform:translateX(4px); }

/* ================= HEADER / NAV ================= */
.site-header{
  position:fixed; top:0; left:0; right:0; z-index:1000;
  height:var(--nav-h);
  display:flex; align-items:center;
  transition:background .4s ease, box-shadow .4s ease, height .4s ease, backdrop-filter .4s ease;
}
.site-header .container{ display:flex; align-items:center; justify-content:space-between; width:100%; }
.site-header.scrolled{
  height:70px;
  background:rgba(251,243,231,.86);
  backdrop-filter:blur(14px) saturate(160%);
  -webkit-backdrop-filter:blur(14px) saturate(160%);
  box-shadow:0 8px 30px -18px rgba(43,24,16,.4);
}

.brand{ display:flex; align-items:center; gap:12px; font-family:var(--ff-display); font-weight:700; font-size:1.35rem; color:var(--paper); transition:color .4s ease; }
.site-header.scrolled .brand{ color:var(--coffee-900); }
.brand .mark{ width:42px; height:42px; flex:none; }
.brand .mark circle,.brand .mark path{ transition:stroke .4s ease, fill .4s ease; }

.nav-links{ display:flex; align-items:center; gap:6px; }
.nav-links a{
  position:relative; padding:10px 16px; font-size:.92rem; font-weight:600; color:rgba(255,255,255,.92);
  transition:color .4s ease;
}
.site-header.scrolled .nav-links a{ color:var(--coffee-800); }
.nav-links a::after{
  content:""; position:absolute; left:16px; right:16px; bottom:4px; height:2px;
  background:var(--terracotta); transform:scaleX(0); transform-origin:left; transition:transform .35s cubic-bezier(.65,0,.35,1);
}
.nav-links a:hover::after, .nav-links a.active::after{ transform:scaleX(1); }
.nav-links a.active{ color:var(--terracotta) !important; }

.nav-cta{ display:flex; align-items:center; gap:14px; }
.nav-call{ display:flex; align-items:center; gap:8px; font-weight:700; font-size:.9rem; color:rgba(255,255,255,.92); transition:color .4s ease; }
.site-header.scrolled .nav-call{ color:var(--coffee-800); }
.nav-call svg{ width:18px; height:18px; }

.burger{ display:none; width:46px; height:46px; border-radius:50%; border:none; background:rgba(255,255,255,.14); position:relative; flex:none; }
.site-header.scrolled .burger{ background:rgba(43,24,16,.08); }
.burger span{ position:absolute; left:14px; right:14px; height:2px; background:currentColor; color:var(--paper); transition:transform .35s ease, opacity .35s ease, top .35s ease; }
.site-header.scrolled .burger span{ color:var(--coffee-900); }
.burger span:nth-child(1){ top:17px; }
.burger span:nth-child(2){ top:23px; }
.burger span:nth-child(3){ top:29px; }
.burger.open span:nth-child(1){ top:23px; transform:rotate(45deg); }
.burger.open span:nth-child(2){ opacity:0; }
.burger.open span:nth-child(3){ top:23px; transform:rotate(-45deg); }

.mobile-panel{
  position:fixed; inset:0; z-index:999; background:var(--coffee-900);
  display:flex; flex-direction:column; align-items:center; justify-content:center; gap:8px;
  transform:translateY(-100%); transition:transform .5s cubic-bezier(.65,0,.35,1);
}
.mobile-panel.open{ transform:translateY(0); }
.mobile-panel a{ color:var(--cream); font-family:var(--ff-display); font-size:1.7rem; padding:14px 0; opacity:0; transform:translateY(14px); transition:opacity .5s ease, transform .5s ease; }
.mobile-panel.open a{ opacity:1; transform:translateY(0); }
.mobile-panel a:nth-child(1){ transition-delay:.1s; } .mobile-panel a:nth-child(2){ transition-delay:.16s; }
.mobile-panel a:nth-child(3){ transition-delay:.22s; } .mobile-panel a:nth-child(4){ transition-delay:.28s; }
.mobile-panel a:nth-child(5){ transition-delay:.34s; }
.mobile-panel .btn{ margin-top:16px; }

/* ================= HERO ================= */
.hero{
  position:relative; min-height:100svh; display:flex; align-items:center;
  background:linear-gradient(180deg,#3b2418 0%, #5a341f 45%, #a8501f 100%);
  overflow:hidden; color:var(--paper);
}
.hero-sky{ position:absolute; inset:0; }
.hero-sun{
  position:absolute; width:340px; height:340px; border-radius:50%; right:8%; top:12%;
  background:radial-gradient(circle at 40% 35%, #ffe6b0, var(--gold) 60%, transparent 72%);
  filter:blur(1px); animation:sunPulse 7s ease-in-out infinite;
}
@keyframes sunPulse{ 0%,100%{ transform:scale(1); opacity:.9;} 50%{ transform:scale(1.08); opacity:1;} }

.hero-hills{ position:absolute; left:0; right:0; bottom:-2px; width:100%; }
.hero-hills svg{ width:100%; height:auto; display:block; }

.hero-beans{ position:absolute; inset:0; pointer-events:none; }
.bean{ position:absolute; width:16px; height:22px; border-radius:50% 50% 50% 50%/60% 60% 40% 40%; background:var(--coffee-900); opacity:.35; animation:floatBean 12s ease-in-out infinite; }
.bean::after{ content:""; position:absolute; left:50%; top:8%; bottom:8%; width:1.5px; background:rgba(255,255,255,.4); transform:translateX(-50%); }
@keyframes floatBean{ 0%{ transform:translateY(0) rotate(0deg);} 50%{ transform:translateY(-40px) rotate(180deg);} 100%{ transform:translateY(0) rotate(360deg);} }

.hero-inner{ position:relative; z-index:3; width:100%; padding-top:var(--nav-h); }
.hero-grid{ display:grid; grid-template-columns:1.15fr .85fr; gap:40px; align-items:center; }
@media (max-width:940px){ .hero-grid{ grid-template-columns:1fr; text-align:center; } }

.hero-badge{
  display:inline-flex; align-items:center; gap:8px; padding:8px 16px; border-radius:100px;
  background:rgba(255,255,255,.12); border:1px solid rgba(255,255,255,.25); font-size:.82rem; font-weight:700;
  letter-spacing:.04em; margin-bottom:26px; backdrop-filter:blur(6px);
}
.hero-badge .dot{ width:8px; height:8px; border-radius:50%; background:#7CD97C; box-shadow:0 0 0 0 rgba(124,217,124,.6); animation:pulseDot 2s infinite; }
@keyframes pulseDot{ 0%{ box-shadow:0 0 0 0 rgba(124,217,124,.55);} 70%{ box-shadow:0 0 0 10px rgba(124,217,124,0);} 100%{ box-shadow:0 0 0 0 rgba(124,217,124,0);} }

.hero h1{
  font-size:clamp(2.6rem,6vw,4.6rem); color:#fff; letter-spacing:-.01em;
}
.hero h1 .line{ display:block; overflow:hidden; }
.hero h1 .line span{ display:inline-block; transform:translateY(110%); animation:lineUp .9s cubic-bezier(.16,.84,.44,1) forwards; }
.hero h1 .line:nth-child(1) span{ animation-delay:.15s; }
.hero h1 .line:nth-child(2) span{ animation-delay:.32s; color:var(--gold-soft); font-style:italic; }
@keyframes lineUp{ to{ transform:translateY(0); } }

.hero .subtitle{ margin-top:24px; font-size:1.15rem; color:rgba(255,255,255,.85); max-width:520px; line-height:1.7; opacity:0; animation:fadeUp .9s ease forwards; animation-delay:.6s; }
@media (max-width:940px){ .hero .subtitle{ margin-left:auto; margin-right:auto; } }
.hero-actions{ display:flex; flex-wrap:wrap; gap:16px; margin-top:38px; opacity:0; animation:fadeUp .9s ease forwards; animation-delay:.78s; }
@media (max-width:940px){ .hero-actions{ justify-content:center; } }
@keyframes fadeUp{ from{ opacity:0; transform:translateY(18px);} to{ opacity:1; transform:translateY(0);} }

.hero-stats{ display:flex; gap:34px; margin-top:52px; opacity:0; animation:fadeUp .9s ease forwards; animation-delay:.95s; }
@media (max-width:940px){ .hero-stats{ justify-content:center; flex-wrap:wrap; } }
.hero-stats .stat b{ display:block; font-family:var(--ff-display); font-size:1.9rem; color:#fff; }
.hero-stats .stat span{ font-size:.8rem; letter-spacing:.05em; text-transform:uppercase; color:rgba(255,255,255,.7); }

.hero-visual{ position:relative; display:flex; justify-content:center; align-items:center; min-height:420px; }
.cup-wrap{ position:relative; width:300px; }
.cup-wrap svg{ width:100%; filter:drop-shadow(0 30px 40px rgba(0,0,0,.35)); }
.steam{ position:absolute; left:50%; bottom:64%; width:70px; margin-left:-35px; }
.steam path{ stroke:rgba(255,255,255,.55); stroke-width:6; fill:none; stroke-linecap:round; }
.steam path.s1{ animation:steamRise 3.2s ease-in-out infinite; }
.steam path.s2{ animation:steamRise 3.2s ease-in-out infinite; animation-delay:.6s; opacity:.7; }
.steam path.s3{ animation:steamRise 3.2s ease-in-out infinite; animation-delay:1.2s; opacity:.5; }
@keyframes steamRise{ 0%{ transform:translateY(10px) scale(.9); opacity:0;} 25%{ opacity:.8;} 100%{ transform:translateY(-70px) scale(1.15); opacity:0;} }

.hero-orbit{ position:absolute; inset:0; animation:spin 34s linear infinite; }
@keyframes spin{ to{ transform:rotate(360deg); } }
.hero-orbit .chip{ position:absolute; padding:10px 16px; border-radius:100px; background:rgba(255,255,255,.14); border:1px solid rgba(255,255,255,.28); font-size:.78rem; font-weight:700; color:#fff; backdrop-filter:blur(6px); animation:counterSpin 34s linear infinite; }
@keyframes counterSpin{ to{ transform:rotate(-360deg); } }
.chip-1{ top:0; left:50%; transform:translateX(-50%); }
.chip-2{ bottom:8%; left:0; }
.chip-3{ bottom:8%; right:0; }

.scroll-cue{ position:absolute; bottom:34px; left:50%; transform:translateX(-50%); display:flex; flex-direction:column; align-items:center; gap:8px; color:rgba(255,255,255,.75); font-size:.72rem; letter-spacing:.14em; text-transform:uppercase; z-index:3; }
.scroll-cue .wheel{ width:24px; height:38px; border:2px solid rgba(255,255,255,.55); border-radius:100px; position:relative; }
.scroll-cue .wheel::after{ content:""; position:absolute; top:6px; left:50%; width:4px; height:8px; background:#fff; border-radius:4px; transform:translateX(-50%); animation:wheelDrop 1.8s ease-in-out infinite; }
@keyframes wheelDrop{ 0%{ opacity:1; top:6px;} 70%{ opacity:0; top:20px;} 100%{ opacity:0; top:6px;} }

/* ================= ABOUT ================= */
.about{ background:var(--paper); }
.about-grid{ display:grid; grid-template-columns:.9fr 1.1fr; gap:70px; align-items:center; }
@media (max-width:900px){ .about-grid{ grid-template-columns:1fr; gap:44px; } }

.about-art{ position:relative; }
.about-art svg{ width:100%; height:auto; border-radius:var(--radius-lg); box-shadow:var(--shadow-soft); }
.about-badge-float{
  position:absolute; bottom:-26px; right:-16px; background:var(--coffee-900); color:var(--cream);
  padding:18px 22px; border-radius:var(--radius-md); box-shadow:var(--shadow-card); text-align:center;
  animation:floatY 5s ease-in-out infinite;
}
@keyframes floatY{ 0%,100%{ transform:translateY(0);} 50%{ transform:translateY(-12px);} }
.about-badge-float b{ display:block; font-family:var(--ff-display); font-size:1.5rem; color:var(--gold-soft); }
.about-badge-float span{ font-size:.72rem; letter-spacing:.08em; text-transform:uppercase; opacity:.8; }

.about-copy p{ color:var(--ink-soft); font-size:1.06rem; line-height:1.85; margin-bottom:20px; }
.about-stats{ display:grid; grid-template-columns:repeat(3,1fr); gap:18px; margin-top:38px; }
.about-stats .stat-card{ background:var(--cream); border-radius:var(--radius-md); padding:22px 16px; text-align:center; transition:transform .4s cubic-bezier(.34,1.56,.64,1), box-shadow .4s ease; }
.about-stats .stat-card:hover{ transform:translateY(-8px); box-shadow:var(--shadow-card); }
.about-stats .stat-card b{ display:block; font-family:var(--ff-display); font-size:2rem; color:var(--terracotta-d); }
.about-stats .stat-card span{ font-size:.78rem; color:var(--ink-soft); }

/* ================= MENU / SPECIALITES ================= */
.menu{ background:var(--cream-soft); position:relative; overflow:hidden; }
.menu::before{
  content:""; position:absolute; inset:0; opacity:.5;
  background-image:radial-gradient(circle, rgba(107,68,51,.13) 1.5px, transparent 1.5px);
  background-size:22px 22px; pointer-events:none;
}
.menu-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:26px; position:relative; z-index:1; }
@media (max-width:980px){ .menu-grid{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:560px){ .menu-grid{ grid-template-columns:1fr; } }

.menu-card{
  background:var(--paper); border-radius:var(--radius-md); padding:34px 26px; text-align:left;
  box-shadow:var(--shadow-card); transition:transform .5s cubic-bezier(.16,.84,.44,1), box-shadow .5s ease;
  transform-style:preserve-3d; perspective:800px; position:relative; overflow:hidden;
}
.menu-card::after{ content:""; position:absolute; left:0; right:0; bottom:0; height:4px; background:linear-gradient(90deg,var(--terracotta),var(--gold)); transform:scaleX(0); transform-origin:left; transition:transform .5s ease; }
.menu-card:hover{ transform:translateY(-10px) rotateX(4deg); box-shadow:0 26px 50px -20px rgba(43,24,16,.35); }
.menu-card:hover::after{ transform:scaleX(1); }
.menu-card .icon{ width:56px; height:56px; margin-bottom:20px; color:var(--terracotta); }
.menu-card h3{ font-size:1.25rem; margin-bottom:10px; }
.menu-card p{ color:var(--ink-soft); font-size:.94rem; line-height:1.6; }

/* ================= GALERIE ================= */
.gallery{ background:var(--paper); }
.gallery-grid{ display:grid; grid-template-columns:repeat(3,1fr); grid-auto-rows:220px; gap:18px; }
.gallery-grid .g-item:nth-child(1){ grid-column:span 2; grid-row:span 2; }
.gallery-grid .g-item:nth-child(4){ grid-row:span 2; }
@media (max-width:900px){
  .gallery-grid{ grid-template-columns:repeat(2,1fr); grid-auto-rows:180px; }
  .gallery-grid .g-item:nth-child(1){ grid-column:span 2; grid-row:span 1; }
  .gallery-grid .g-item:nth-child(4){ grid-row:span 1; }
}
@media (max-width:560px){
  .gallery-grid{ grid-template-columns:1fr; }
  .gallery-grid .g-item:nth-child(1){ grid-column:span 1; }
}
.g-item{ position:relative; border-radius:var(--radius-md); overflow:hidden; cursor:pointer; }
.g-item svg{ width:100%; height:100%; object-fit:cover; transition:transform .7s cubic-bezier(.16,.84,.44,1); }
.g-item:hover svg{ transform:scale(1.12) rotate(1deg); }
.g-item .g-caption{
  position:absolute; inset:auto 0 0 0; padding:22px 20px 16px;
  background:linear-gradient(0deg, rgba(20,10,6,.85), transparent);
  color:#fff; font-weight:700; letter-spacing:.02em; transform:translateY(60%); opacity:0;
  transition:transform .45s ease, opacity .45s ease;
}
.g-item:hover .g-caption{ transform:translateY(0); opacity:1; }
.g-item .g-zoom{ position:absolute; top:16px; right:16px; width:38px; height:38px; border-radius:50%; background:rgba(255,255,255,.9); display:flex; align-items:center; justify-content:center; transform:scale(0); transition:transform .35s cubic-bezier(.34,1.56,.64,1); }
.g-item:hover .g-zoom{ transform:scale(1); }
.g-item .g-zoom svg{ width:18px; height:18px; color:var(--coffee-900); }

.lightbox{ position:fixed; inset:0; z-index:2000; background:rgba(20,10,6,.92); display:flex; align-items:center; justify-content:center; opacity:0; pointer-events:none; transition:opacity .4s ease; padding:30px; }
.lightbox.open{ opacity:1; pointer-events:auto; }
.lightbox-inner{ max-width:640px; width:100%; background:var(--paper); border-radius:var(--radius-lg); overflow:hidden; transform:scale(.85); transition:transform .4s cubic-bezier(.34,1.56,.64,1); }
.lightbox.open .lightbox-inner{ transform:scale(1); }
.lightbox-inner .lb-media{ aspect-ratio:4/3; }
.lightbox-inner .lb-media svg{ width:100%; height:100%; }
.lightbox-inner .lb-text{ padding:22px 26px; }
.lightbox-close{ position:absolute; top:26px; right:26px; width:46px; height:46px; border-radius:50%; background:rgba(255,255,255,.12); border:1px solid rgba(255,255,255,.3); color:#fff; font-size:1.4rem; }

/* ================= HORAIRES / CONTACT ================= */
.contact{ background:var(--coffee-900); color:var(--cream); position:relative; overflow:hidden; }
.contact::before{ content:""; position:absolute; inset:0; background:radial-gradient(circle at 15% 15%, rgba(217,164,65,.14), transparent 45%); }
.contact .section-head h2{ color:#fff; }
.contact .section-head .lead{ color:rgba(251,243,231,.72); }
.contact-grid{ display:grid; grid-template-columns:1fr 1fr; gap:60px; position:relative; z-index:1; }
@media (max-width:900px){ .contact-grid{ grid-template-columns:1fr; gap:46px; } }

.status-pill{ display:inline-flex; align-items:center; gap:10px; padding:10px 18px; border-radius:100px; font-weight:700; font-size:.9rem; margin-bottom:30px; }
.status-pill.open{ background:rgba(124,217,124,.16); color:#a8f0a8; border:1px solid rgba(124,217,124,.4); }
.status-pill.closed{ background:rgba(255,255,255,.08); color:rgba(255,255,255,.75); border:1px solid rgba(255,255,255,.2); }
.status-pill .dot{ width:9px; height:9px; border-radius:50%; background:currentColor; }
.status-pill.open .dot{ animation:pulseDot 2s infinite; }

.hours-table{ width:100%; border-collapse:collapse; }
.hours-table tr{ border-bottom:1px solid rgba(255,255,255,.1); }
.hours-table td{ padding:14px 4px; font-size:.98rem; }
.hours-table td:first-child{ font-weight:700; color:#fff; }
.hours-table td:last-child{ text-align:right; color:rgba(251,243,231,.78); font-variant-numeric:tabular-nums; }
.hours-table tr.today td{ color:var(--gold-soft); }
.hours-table tr.today td:first-child{ color:var(--gold-soft); }

.contact-cards{ display:flex; flex-direction:column; gap:16px; }
.contact-card{
  display:flex; align-items:center; gap:16px; padding:20px; border-radius:var(--radius-md);
  background:rgba(255,255,255,.05); border:1px solid rgba(255,255,255,.1); transition:transform .4s ease, background .4s ease;
}
.contact-card:hover{ transform:translateX(8px); background:rgba(255,255,255,.09); }
.contact-card .ci{ width:46px; height:46px; border-radius:50%; background:rgba(217,164,65,.16); display:flex; align-items:center; justify-content:center; flex:none; }
.contact-card .ci svg{ width:22px; height:22px; color:var(--gold-soft); }
.contact-card .ct b{ display:block; font-size:.95rem; }
.contact-card .ct span{ font-size:.85rem; color:rgba(251,243,231,.65); }
.contact-card button.copy{ margin-left:auto; background:transparent; border:1px solid rgba(255,255,255,.25); color:#fff; padding:6px 12px; border-radius:100px; font-size:.72rem; flex:none; }
.contact-card button.copy:hover{ background:rgba(255,255,255,.14); }

.map-wrap{ margin-top:28px; border-radius:var(--radius-md); overflow:hidden; border:1px solid rgba(255,255,255,.14); filter:grayscale(.2) contrast(1.05); }
.map-wrap iframe{ width:100%; height:260px; border:0; display:block; }

/* ================= FOOTER ================= */
.site-footer{ background:var(--coffee-900); color:rgba(251,243,231,.6); border-top:1px solid rgba(255,255,255,.08); padding:36px 0; }
.footer-inner{ display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:16px; font-size:.85rem; }
.footer-social{ display:flex; gap:10px; }
.footer-social a{ width:38px; height:38px; border-radius:50%; background:rgba(255,255,255,.06); display:flex; align-items:center; justify-content:center; transition:background .3s ease, transform .3s ease; }
.footer-social a:hover{ background:var(--terracotta); transform:translateY(-4px); }
.footer-social svg{ width:17px; height:17px; color:#fff; }

.to-top{
  position:fixed; right:26px; bottom:26px; width:52px; height:52px; border-radius:50%;
  background:var(--terracotta); color:#fff; border:none; display:flex; align-items:center; justify-content:center;
  box-shadow:0 14px 26px -10px rgba(193,101,46,.6); opacity:0; pointer-events:none; transform:translateY(16px) scale(.8);
  transition:opacity .4s ease, transform .4s ease; z-index:500;
}
.to-top.show{ opacity:1; pointer-events:auto; transform:translateY(0) scale(1); }
.to-top svg{ width:20px; height:20px; }
.to-top:hover{ background:var(--terracotta-d); }
