/*
Theme Name: Gardenia
Theme URI: https://example.com/
Author: Gardenia
Description: One-page theme for Gardenia Maison Exotique. Every text and photo is editable from the dashboard menu "Gardenia Site" (no code needed).
Version: 1.0.0
Requires at least: 5.8
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: gardenia
*/

  :root{
    --banner-h: 0px;
    --bg:#150e0a;
    --bg-2:#1c130d;
    --surface:#211610;
    --surface-2:#2a1c13;
    --line: rgba(221,175,113,.16);
    --line-strong: rgba(221,175,113,.34);
    --gold-1:#e9c18b;
    --gold-2:#cd9451;
    --gold-3:#8f5c29;
    --ivory:#f6efe1;
    --ivory-dim:#cdc3ae;
    --sage:#9caa96;
    --sage-dim:#6d7a68;
    --shadow: 0 24px 70px -24px rgba(0,0,0,.65);
    --r-lg: 46px;
    --r-md: 26px;
    --r-sm: 14px;
    --maxw: 1180px;
    --serif: 'Cormorant Garamond', Georgia, 'Times New Roman', serif;
    --sans: 'Jost', 'Segoe UI', Helvetica, Arial, sans-serif;
  }

  *,*::before,*::after{ box-sizing: border-box; }
  html{ scroll-behavior: smooth; }
  @media (prefers-reduced-motion: reduce){ html{ scroll-behavior:auto; } }

  body{
    margin:0;
    background:
      radial-gradient(ellipse 70% 50% at 50% 32%, rgba(255,163,64,.16), transparent 62%),
      radial-gradient(ellipse 90% 55% at 50% 100%, rgba(255,110,40,.12), transparent 70%),
      var(--bg);
    background-attachment: fixed;
    color: var(--ivory);
    font-family: var(--sans);
    font-weight:300;
    line-height:1.6;
    -webkit-font-smoothing: antialiased;
    overflow-x: hidden;
  }

  h1,h2,h3,h4{
    font-family: var(--serif);
    font-weight:500;
    margin:0;
    text-wrap: balance;
    color: var(--ivory);
  }

  p{ margin:0; }
  a{ color:inherit; text-decoration:none; }
  img{ max-width:100%; display:block; }
  button{ font-family:inherit; cursor:pointer; }

  .eyebrow{
    font-family: var(--sans);
    font-size: .74rem;
    letter-spacing: .28em;
    text-transform: uppercase;
    color: var(--gold-1);
    font-weight:500;
    display:inline-flex; align-items:center; gap:.75rem;
  }
  .eyebrow::before{
    content:''; display:inline-block; width:26px; height:1px; background: var(--gold-1); flex:0 0 auto;
  }

  .wrap{ max-width: var(--maxw); margin:0 auto; padding: 0 clamp(1.25rem, 4vw, 3rem); }

  ::selection{ background: var(--gold-2); color:#1a1208; }

  a:focus-visible, button:focus-visible, [tabindex]:focus-visible{
    outline: 2px solid var(--gold-1);
    outline-offset: 3px;
    border-radius: 6px;
  }

  /* ---------- decorative petal motif (simple shapes, no long path data) ---------- */
  .petal-field{ position:absolute; inset:0; overflow:hidden; pointer-events:none; z-index:0; }
  .petal-field svg{ position:absolute; opacity:.5; }
  .glow{
    position:absolute; border-radius:50%; filter: blur(70px);
    background: radial-gradient(circle at 30% 30%, rgba(233,193,139,.22), transparent 70%);
    pointer-events:none;
  }

  /* ---------- loading screen ---------- */
  #loader{
    position:fixed; inset:0; z-index:999;
    display:flex; align-items:center; justify-content:center;
    background: var(--bg);
    transition: opacity .8s ease, visibility .8s ease;
  }
  #loader::before{
    content:''; position:absolute; inset:0;
    background: radial-gradient(ellipse at 50% 40%, rgba(233,193,139,.12), transparent 65%);
  }
  #loader.hide{ opacity:0; visibility:hidden; pointer-events:none; }
  .loader-inner{ position:relative; display:flex; flex-direction:column; align-items:center; gap:1.4rem; }
  .loader-ring{ position:relative; width:132px; height:132px; display:grid; place-items:center; }
  .loader-ring svg{ position:absolute; inset:0; width:100%; height:100%; transform:rotate(-90deg); }
  .loader-ring circle{
    fill:none; stroke: var(--gold-1); stroke-width:1.4; stroke-linecap:round;
    stroke-dasharray: 360; stroke-dashoffset: 360;
    animation: draw-ring 1.8s cubic-bezier(.65,0,.35,1) forwards .15s;
  }
  .loader-ring img{ width:64px; height:64px; opacity:0; animation: fade-in-scale .9s ease forwards .6s; filter: drop-shadow(0 0 18px rgba(233,193,139,.35)); }
  @keyframes draw-ring{ to{ stroke-dashoffset: 0; } }
  @keyframes fade-in-scale{ from{ opacity:0; transform: scale(.7);} to{ opacity:1; transform: scale(1);} }
  .loader-word{ font-family: var(--serif); font-size: 1.15rem; letter-spacing:.4em; text-transform:uppercase; color: var(--ivory-dim); opacity:0; animation: fade-up .8s ease forwards 1.1s; }
  @keyframes fade-up{ from{ opacity:0; transform: translateY(8px);} to{ opacity:1; transform: translateY(0);} }
  @media (prefers-reduced-motion: reduce){
    .loader-ring circle{ animation-duration:.01s; }
    .loader-ring img, .loader-word{ animation-duration:.01s; }
  }

  /* ---------- header ---------- */
  .top-banner{
    position: fixed; top:0; left:0; right:0; z-index: 600;
    display:flex; align-items:center; justify-content:center; gap:.7rem;
    background: linear-gradient(135deg, var(--gold-1), var(--gold-2));
    color:#241705; font-size:.82rem; letter-spacing:.02em; font-weight:500; line-height:1.4;
    padding: .65rem 2.6rem .65rem 1rem; text-align:center;
    box-shadow: 0 6px 20px -8px rgba(0,0,0,.4);
  }
  .top-banner.hidden{ display:none; }
  .top-banner a{ color:#241705; text-decoration:underline; font-weight:600; white-space:nowrap; }
  .top-banner-close{
    position:absolute; right:.55rem; top:50%; transform:translateY(-50%);
    width:26px; height:26px; border-radius:50%; display:grid; place-items:center; flex:0 0 auto;
    background: rgba(36,23,5,.14); color:#241705; border:none; cursor:pointer;
    transition: background .2s ease;
  }
  .top-banner-close:hover{ background: rgba(36,23,5,.26); }
  .top-banner-close svg{ width:13px; height:13px; }
  .rebrand-ticker{
  position:absolute; z-index:3;
  top: calc(var(--banner-h,0px) + 5.4rem);
  left: clamp(1rem,3vw,2rem); right: clamp(1rem,3vw,2rem);
  max-width:1300px; margin:0 auto; overflow:hidden;
  border:1px solid var(--line); border-radius:999px;
  background: rgba(15,19,17,.55); backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px);
  padding:.45rem 0;
}
.rebrand-ticker-track{
  display:flex; width:max-content; white-space:nowrap;
  animation: rebrand-scroll 20s linear infinite;
}
.rebrand-ticker-track span{
  font-family: var(--serif); font-style:italic; font-size:1.02rem; letter-spacing:.02em;
  color: var(--gold-1); padding:0 2.5rem;
}
@keyframes rebrand-scroll{ from{ transform:translateX(0); } to{ transform:translateX(-33.333%); } }
@media (prefers-reduced-motion: reduce){ .rebrand-ticker-track{ animation:none; } }
  @media (max-width:600px){ .top-banner{ font-size:.74rem; padding:.6rem 2.3rem .6rem .8rem; } }

  header{
    position: fixed; top: var(--banner-h,0px); left:0; right:0; z-index: 500;
    padding: .9rem clamp(1rem,3vw,2rem);
  }
  .nav-shell{
    max-width: 1300px; margin:0 auto;
    display:flex; align-items:center; justify-content:space-between; gap: 1rem;
    background: rgba(15,19,17,.62);
    backdrop-filter: blur(16px) saturate(140%);
    -webkit-backdrop-filter: blur(16px) saturate(140%);
    border: 1px solid var(--line);
    border-radius: 999px;
    padding: .5rem .6rem .5rem 1rem;
  }
  .brand{ display:flex; align-items:center; gap:.6rem; }
  .brand img{ width:34px; height:34px; }
  .brand-text{ display:flex; flex-direction:column; line-height:1.16; }
  .brand-word{ font-family: var(--serif); font-size:1.28rem; letter-spacing:.03em; color: var(--ivory); white-space:nowrap; }
  .brand-sub{ font-size:.58rem; letter-spacing:.13em; text-transform:uppercase; color: var(--gold-1); white-space:nowrap; }
  @media (max-width:420px){ .brand-sub{ display:none; } }

  nav.primary{ display:flex; align-items:center; gap: 1.65rem; }
  nav.primary a{
    font-size: .82rem; letter-spacing:.05em; color: var(--ivory-dim);
    position:relative; padding: .3rem 0; transition: color .25s ease;
    white-space:nowrap;
  }
  nav.primary a::after{
    content:''; position:absolute; left:0; right:0; bottom:-2px; height:1px;
    background: var(--gold-1); transform: scaleX(0); transform-origin:left; transition: transform .3s ease;
  }
  nav.primary a:hover, nav.primary a.active{ color: var(--ivory); }
  nav.primary a:hover::after, nav.primary a.active::after{ transform: scaleX(1); }

  .head-actions{ display:flex; align-items:center; gap: .5rem; }
  .icon-btn{
    width:38px; height:38px; border-radius:50%; display:grid; place-items:center;
    background: var(--surface); border: 1px solid var(--line); color: var(--gold-1);
    transition: background .25s ease, border-color .25s ease, transform .25s ease;
  }
  .icon-btn:hover{ background: var(--surface-2); border-color: var(--line-strong); transform: translateY(-1px); }
  .icon-btn svg{ width:17px; height:17px; }
  .translate-switch{ position:relative; }
.translate-menu{
  position:absolute; top:calc(100% + .6rem); left:50%; transform:translateX(-50%) translateY(-6px);
  background: var(--surface); border:1px solid var(--line-strong); border-radius: 12px; padding:.4rem;
  display:flex; flex-direction:column; min-width:150px; box-shadow: var(--shadow);
  opacity:0; visibility:hidden; pointer-events:none;
  transition: opacity .2s ease, transform .2s ease, visibility .2s;
  z-index: 500;
}
.translate-switch.open .translate-menu{ opacity:1; visibility:visible; pointer-events:auto; transform:translateX(-50%) translateY(0); }
.translate-menu a{
  display:block; text-align:left; padding:.55rem .75rem; border-radius:8px; font-size:.86rem;
  color: var(--ivory-dim);
}
.translate-menu a:hover{ background: var(--surface-2); color: var(--ivory); }
.translate-menu .translate-note{
  padding:.3rem .75rem .1rem; font-size:.66rem; color: var(--ivory-dim); opacity:.7; letter-spacing:.02em;
}
@media (max-width: 980px){ .translate-menu{ left:auto; right:0; transform:translateY(-6px); } .translate-switch.open .translate-menu{ transform:translateY(0); } }

  .lang-switch{
    display:flex; align-items:center; background: var(--surface); border:1px solid var(--line);
    border-radius: 999px; padding: .18rem; font-size:.72rem; letter-spacing:.06em; font-weight:500;
  }
  .lang-switch button{
    border:none; background:transparent; color: var(--ivory-dim); padding:.32rem .62rem; border-radius:999px;
    transition: background .25s ease, color .25s ease;
  }
  .lang-switch button.active{ background: linear-gradient(135deg, var(--gold-1), var(--gold-2)); color:#241705; }

  /* ---------- header hamburger + mobile nav drawer ---------- */
  .menu-toggle{ display:none; }
  .mobile-nav{
    display:none; flex-direction:column; gap:.15rem;
    max-width: 1300px; margin: .6rem auto 0;
    background: rgba(15,19,17,.92);
    backdrop-filter: blur(18px) saturate(140%); -webkit-backdrop-filter: blur(18px) saturate(140%);
    border: 1px solid var(--line); border-radius: 22px; padding: .7rem;
    box-shadow: var(--shadow);
  }
  .mobile-nav.open{ display:flex; }
  .mobile-nav a{
    padding: .85rem 1rem; border-radius:14px; font-size:.92rem; letter-spacing:.03em; color: var(--ivory-dim);
    transition: background .2s ease, color .2s ease;
  }
  .mobile-nav a:hover, .mobile-nav a:active{ background: var(--surface-2); color: var(--ivory); }
  .mobile-nav .lang-switch{ margin: .5rem .2rem 0; align-self:flex-start; }

  /* ---------- Terapeutas dropdown (desktop nav) ---------- */
  .nav-drop{ position:relative; }
  .nav-drop-btn{
    background:none; border:none; font: inherit; font-size:.82rem; letter-spacing:.05em; color: var(--ivory-dim);
    display:flex; align-items:center; gap:.32rem; padding:.3rem 0; transition: color .25s ease;
  }
  .nav-drop-btn svg{ width:11px; height:11px; transition: transform .25s ease; }
  .nav-drop:hover .nav-drop-btn, .nav-drop:focus-within .nav-drop-btn{ color: var(--ivory); }
  .nav-drop:hover .nav-drop-btn svg, .nav-drop:focus-within .nav-drop-btn svg{ transform: rotate(180deg); }
  .nav-drop-menu{
    position:absolute; top:100%; left:50%; transform:translateX(-50%) translateY(4px);
    background: var(--surface); border:1px solid var(--line); border-radius: 14px; padding:.4rem;
    min-width:150px; box-shadow: var(--shadow);
    opacity:0; visibility:hidden; transition: opacity .25s ease, transform .25s ease;
  }
  .nav-drop:hover .nav-drop-menu, .nav-drop:focus-within .nav-drop-menu{ opacity:1; visibility:visible; transform:translateX(-50%) translateY(0); }
  .nav-drop-menu a{ display:block; padding:.55rem .75rem; border-radius:9px; font-size:.82rem; color: var(--ivory-dim); }
  .nav-drop-menu a:hover{ background: var(--surface-2); color: var(--ivory); }

  /* ---------- mobile: app-style bottom tab bar ---------- */
  .bottom-tabs{ display:none; }
  @media (max-width: 980px){
    nav.primary{ display:none; }
    .head-actions .lang-switch{ display:none; }
    .menu-toggle{ display:grid; }
    body{ padding-bottom: 84px; }
    .bottom-tabs{
      display:flex; align-items:stretch; justify-content:space-between; gap:.1rem;
      position: fixed; left: .6rem; right: .6rem; bottom: .6rem; z-index: 490;
      background: rgba(15,19,17,.9);
      backdrop-filter: blur(18px) saturate(140%); -webkit-backdrop-filter: blur(18px) saturate(140%);
      border: 1px solid var(--line); border-radius: 24px; padding: .45rem .2rem;
      box-shadow: var(--shadow);
    }
    .bt-item{
      display:flex; flex-direction:column; align-items:center; justify-content:center; gap:.2rem;
      flex:1; padding:.4rem .1rem; border-radius:14px; color: var(--ivory-dim);
      font-size:.56rem; letter-spacing:.01em; text-align:center; transition: color .25s ease, background .25s ease;
    }
    .bt-item svg{ width:18px; height:18px; }
    .bt-item .bt-logo-icon{ width:19px; height:19px; object-fit:contain; }
    .bt-item.active{ color: var(--gold-1); background: rgba(233,193,139,.1); }
    .bt-item.bt-wa{ color: var(--gold-1); }
  }

  /* ---------- views ---------- */
  .view{ display:none; }
  .view.active{ display:block; }

  /* ---------- hero (full-bleed background, ken-burns zoom) ---------- */
  .hero{
    position:relative; min-height: 94vh; display:flex; align-items:center;
    padding: calc(clamp(7rem,14vw,8rem) + var(--banner-h,0px)) 0 clamp(3rem,6vw,4rem);
    overflow:hidden;
  }
  .hero-bg{
    position:absolute; inset:-6%; z-index:0;
    background:
      radial-gradient(ellipse 60% 50% at 78% 22%, rgba(255,180,90,.4), transparent 60%),
      radial-gradient(ellipse 55% 60% at 15% 80%, rgba(255,110,40,.3), transparent 65%),
      radial-gradient(ellipse 70% 70% at 50% 50%, rgba(120,58,20,.4), transparent 70%),
      linear-gradient(160deg, #221610, #0d0704 65%);
    animation: kenburns 24s ease-in-out infinite alternate;
  }
  @keyframes kenburns{ from{ transform: scale(1) translate(0,0); } to{ transform: scale(1.09) translate(-1%,-1%); } }
  @media (prefers-reduced-motion: reduce){ .hero-bg{ animation:none; } }
  .hero-photo{
    position:absolute; inset:0; z-index:1; width:100%; height:100%; object-fit:cover;
    animation: kenburns 24s ease-in-out infinite alternate;
  }
  .hero-photo[src^="PHOTO_"]{ display:none; }
  @media (prefers-reduced-motion: reduce){ .hero-photo{ animation:none; } }
  .hero-scrim{
    position:absolute; inset:0; z-index:2;
    background: linear-gradient(180deg, rgba(10,13,11,.35) 0%, rgba(10,13,11,.62) 55%, var(--bg) 100%);
  }
  .hero-content{ position:relative; z-index:3; max-width: 700px; }
  .hero h1{ font-family:'Playfair Display', var(--serif); font-weight:500; font-size: clamp(2.6rem, 5.4vw, 4.6rem); line-height:1.06; margin: .9rem 0 1.3rem; }
  .hero h1 em{ font-style:italic; color: var(--gold-1); font-weight:500; }
  .hero p.lead{ font-size:1.06rem; color: var(--ivory-dim); max-width:46ch; margin-bottom: 2rem; }
  .btn{
    display:inline-flex; align-items:center; gap:.55rem;
    padding: .95rem 1.7rem; border-radius:999px; font-size:.82rem; letter-spacing:.07em; text-transform:uppercase;
    font-weight:500; border:1px solid transparent; transition: transform .3s ease, box-shadow .3s ease, background .3s ease;
  }
  .btn-gold{ background: linear-gradient(135deg, var(--gold-1), var(--gold-2)); color:#241705; box-shadow: 0 14px 34px -14px rgba(205,148,81,.55); }
  .btn-gold:hover{ transform: translateY(-2px); box-shadow: 0 18px 40px -14px rgba(205,148,81,.7); }
  .btn-ghost{ border-color: var(--line-strong); color: var(--ivory); }
  .btn-ghost:hover{ background: var(--surface); border-color: var(--gold-1); }
  .btn svg{ width:15px; height:15px; }

  .hero-stat-card{
    position:absolute; z-index:3; right: clamp(1rem,4vw,3rem); bottom: clamp(1.4rem,4vw,2.4rem);
    background: rgba(23,31,26,.72); backdrop-filter: blur(14px);
    border:1px solid var(--line); border-radius: var(--r-md); padding: 1.1rem 1.4rem;
    box-shadow: var(--shadow); display:flex; align-items:center; gap:.8rem;
  }
  .hero-stat-card .num{ font-family: var(--serif); font-size:1.9rem; color: var(--gold-1); }
  .hero-stat-card .cap{ font-size:.72rem; color: var(--ivory-dim); max-width:11ch; line-height:1.3; }
  @media (max-width: 980px){
    .hero-stat-card{ display:none; }
    .hero-content{ text-align:center; }
    .hero-content .eyebrow{ justify-content:center; }
    .hero-content .lead{ margin-left:auto; margin-right:auto; }
    .hero-actions{ justify-content:center; }
  }

  /* ---------- section basics ---------- */
  section{ position:relative; padding: clamp(4.5rem,8vw,7rem) 0; scroll-margin-top: calc(100px + var(--banner-h,0px)); }
  .section-head{ max-width: 640px; margin: 0 auto clamp(2.4rem,5vw,3.4rem); text-align:center; }
  .section-head h2{ font-size: clamp(2rem, 4vw, 2.8rem); margin-top:.6rem; }
  .section-head p{ color: var(--ivory-dim); margin: 1rem auto 0; font-size:1rem; max-width:52ch; }
  .divider{ height:1px; background: linear-gradient(90deg, transparent, var(--line-strong), transparent); max-width: var(--maxw); margin:0 auto; }

  .reveal{ opacity:0; transform: translateY(26px); transition: opacity .8s ease, transform .8s ease; }
  .reveal.in{ opacity:1; transform:none; }
  @media (prefers-reduced-motion: reduce){ .reveal{ opacity:1; transform:none; transition:none; } }

  /* ---------- services ---------- */
  .svc-grid{ display:grid; grid-template-columns: repeat(auto-fit, minmax(250px,1fr)); gap: 1.4rem; align-items:stretch; }
  .svc-card{
    background: var(--surface); border:1px solid var(--line); border-radius: var(--r-md);
    padding: 2rem 1.7rem; transition: transform .35s ease, border-color .35s ease, background .35s ease;
    display:flex; flex-direction:column;
  }
  .svc-card:hover{ transform: translateY(-6px); border-color: var(--line-strong); background: var(--surface-2); }
  .svc-card h3{ font-size:1.32rem; margin-bottom:.3rem; }
  .svc-desc{ color: var(--ivory-dim); font-size:.9rem; margin-bottom:.2rem; }
  .svc-tiers{ margin: 1.15rem 0 1.5rem; display:flex; flex-direction:column; gap:.6rem; }
  .svc-tier{ display:flex; align-items:baseline; gap:.6rem; }
  .svc-tier .dur{ font-size:.86rem; color: var(--ivory-dim); white-space:nowrap; }
  .svc-tier .dots{ flex:1; border-bottom:1px dotted var(--line-strong); transform: translateY(-4px); }
  .svc-tier .price{ font-family: var(--serif); color: var(--gold-1); font-size:1.08rem; white-space:nowrap; }
  .svc-card .svc-book{ margin-top:auto; width:100%; justify-content:center; }

  /* ---------- Terapias de casal (hair) ---------- */
  .hair-section{
    background:
      radial-gradient(ellipse 60% 60% at 15% 15%, rgba(255,150,70,.1), transparent 65%),
      radial-gradient(ellipse 60% 60% at 85% 85%, rgba(255,110,40,.08), transparent 65%),
      var(--bg-2);
  }
  .hair-head{ max-width: 640px; margin: 0 auto; text-align:center; }
  .hair-feats{ display:grid; grid-template-columns: repeat(2,1fr); gap:1.1rem; margin-top: 2.2rem; max-width: 920px; margin-left:auto; margin-right:auto; }
  @media (max-width: 700px){ .hair-feats{ grid-template-columns: 1fr; } }
  .hair-feat{ display:flex; gap:1rem; align-items:flex-start; padding: 1.4rem; border-radius: var(--r-sm); border:1px solid var(--line); background: var(--surface); text-align:left; }
  .hair-feat .n{ font-family: var(--serif); font-size:1.3rem; color: var(--gold-1); min-width:2ch; }
  .hair-feat h4{ font-size:1.08rem; margin-bottom:.3rem; }
  .hair-feat p{ color: var(--ivory-dim); font-size:.88rem; }

  /* ---------- team preview (home) ---------- */
  .team-toggle{
    display:inline-flex; padding:.28rem; border-radius:999px; background: var(--surface);
    border:1px solid var(--line); gap:.2rem; margin-bottom: 2.2rem;
  }
  .team-toggle button{
    border:none; background:transparent; padding:.62rem 1.4rem; border-radius:999px; color: var(--ivory-dim);
    font-size:.82rem; letter-spacing:.05em; text-transform:uppercase; transition: background .3s ease, color .3s ease;
  }
  .team-toggle button.active{ background: linear-gradient(135deg, var(--gold-1), var(--gold-2)); color:#241705; }

  .team-marquee{
    position:relative; overflow:hidden; padding: .3rem 0 1rem;
    -webkit-mask-image: linear-gradient(90deg, transparent, #000 6%, #000 94%, transparent);
    mask-image: linear-gradient(90deg, transparent, #000 6%, #000 94%, transparent);
  }
  .team-marquee-track{
    display:flex; gap:1.1rem; width:max-content;
    animation: team-marquee-scroll 34s linear infinite;
  }
  .team-marquee:hover .team-marquee-track, .team-marquee:focus-within .team-marquee-track{
    animation-play-state: paused;
  }
  @keyframes team-marquee-scroll{ from{ transform: translateX(0); } to{ transform: translateX(-50%); } }
  @media (prefers-reduced-motion: reduce){
    .team-marquee-track{ animation:none; overflow-x:auto; -webkit-overflow-scrolling:touch; }
    .team-marquee{ -webkit-mask-image:none; mask-image:none; }
  }
  .team-set{ display:none; }
  .team-set.active{ display:block; }

  .team-card, .marquee-card{
    flex: 0 0 150px;
    background: var(--surface); border:1px solid var(--line); border-radius: var(--r-md);
    padding: .9rem; text-align:center; transition: transform .35s ease, border-color .35s ease;
    display:flex; flex-direction:column; gap:.65rem;
  }
  .team-card:hover, .marquee-card:hover{ transform: translateY(-6px); border-color: var(--line-strong); }
  .team-card .name, .marquee-card .name{ font-family: var(--serif); font-size:1.12rem; }
  .team-card .role{ font-size:.68rem; letter-spacing:.08em; text-transform:uppercase; color: var(--gold-1); }

  .see-all{ margin-top: 2.4rem; display:flex; justify-content:center; }

  /* photo-grid: adaptive 1-4 slots, shared by preview + team pages */
  .photo-grid{ display:grid; gap:.4rem; width:100%; aspect-ratio: 9/16; border-radius: var(--r-sm); overflow:hidden; }
  .photo-grid[data-count="1"]{ grid-template-columns: 1fr; }
  .photo-grid[data-count="2"]{ grid-template-columns: repeat(2,1fr); max-width:86%; margin:0 auto; aspect-ratio: 2/1.1; }
  .photo-grid[data-count="3"]{ grid-template-columns: 1.3fr 1fr; grid-template-rows: 1fr 1fr; }
  .photo-grid[data-count="3"] .ph-slot:first-child{ grid-row: 1 / 3; }
  .photo-grid[data-count="4"]{ grid-template-columns: repeat(2,1fr); grid-template-rows: repeat(2,1fr); }

  .ph-slot{
    position:relative; border-radius: var(--r-sm); overflow:hidden; display:grid; place-items:center;
    background: linear-gradient(var(--ang,135deg), hsl(var(--hue,34) 46% 30%), hsl(calc(var(--hue,34) + 14) 40% 14%));
    border: 1px solid rgba(255,255,255,.05);
  }
  .photo-grid[data-count="2"] .ph-slot, .photo-grid[data-count="1"] .ph-slot{ border-radius: var(--r-sm); }
  .ph-slot img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
  .ph-slot .initial{ font-family: var(--serif); font-style:italic; color: rgba(246,239,225,.85); font-size: clamp(1.4rem, 4vw, 2.6rem); }
  .ph-slot .cam{ position:absolute; bottom:.5rem; right:.5rem; width:16px; height:16px; opacity:.45; }
  .ph-slot::after{ content:''; position:absolute; inset:0; background: radial-gradient(circle at 25% 20%, rgba(255,255,255,.16), transparent 55%); }

  /* ---------- join us ---------- */
  .join-section{ position:relative; overflow:hidden; background: var(--bg-2); }
  .join-bg{
    position:absolute; inset:-6%; z-index:0;
    background:
      radial-gradient(ellipse 60% 55% at 20% 25%, rgba(255,180,90,.32), transparent 60%),
      radial-gradient(ellipse 55% 60% at 85% 78%, rgba(255,110,40,.26), transparent 65%),
      radial-gradient(ellipse 70% 70% at 50% 50%, rgba(120,58,20,.36), transparent 70%),
      linear-gradient(160deg, #221610, #0d0704 65%);
    animation: kenburns 26s ease-in-out infinite alternate;
  }
  @media (prefers-reduced-motion: reduce){ .join-bg{ animation:none; } }
  .join-bg-photo{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
  .join-bg-photo[src^="PHOTO_"]{ display:none; }
  .join-scrim{
    position:absolute; inset:0; z-index:1;
    background: linear-gradient(180deg, rgba(10,13,11,.5) 0%, rgba(10,13,11,.7) 100%);
  }
  .join-wrap{ position:relative; z-index:2; display:flex; flex-direction:column; align-items:center; }
  .join-wrap .section-head{ max-width: 760px; }
  .join-wrap .section-head p{ max-width: 68ch; }

  /* ---------- extra ---------- */
  .extra-section{
    background:
      radial-gradient(ellipse 60% 60% at 85% 10%, rgba(255,150,70,.1), transparent 65%),
      radial-gradient(ellipse 60% 60% at 15% 90%, rgba(255,110,40,.08), transparent 65%),
      var(--bg-2);
  }
  .extra-featured{
    display:grid; grid-template-columns: repeat(2, 1fr); gap: 1.4rem;
    margin: clamp(2rem,4vw,2.6rem) 0 clamp(2.4rem,4.5vw,3.2rem);
  }
  @media (max-width:700px){ .extra-featured{ grid-template-columns: 1fr; } }
  .extra-featured-card{
    position:relative; overflow:hidden;
    background: var(--surface); border:1px solid var(--line-strong); border-radius: var(--r-md);
    padding: 1.7rem 1.6rem 1.6rem;
  }
  .extra-featured-card::before{
    content:""; position:absolute; inset:0; z-index:0;
    background: linear-gradient(160deg, rgba(233,193,139,.1), transparent 60%);
  }
  .extra-featured-top{ position:relative; z-index:1; display:flex; align-items:flex-start; justify-content:space-between; gap:1rem; }
  .extra-featured-card .n{ font-family: var(--serif); font-size:1.4rem; color: var(--gold-1); }
  .extra-featured-badge{
    display:inline-block; font-size:.62rem; font-weight:600; letter-spacing:.08em; text-transform:uppercase;
    color:#171310; background: linear-gradient(135deg, var(--gold-1), var(--gold-2));
    padding:.32rem .7rem; border-radius:999px;
  }
  .extra-featured-card h4{ position:relative; z-index:1; font-size:1.14rem; margin: .7rem 0 .4rem; }
  .extra-featured-card p{ position:relative; z-index:1; font-size:.88rem; color: var(--ivory-dim); margin-bottom:1rem; }
  .extra-featured-card .price{ position:relative; z-index:1; display:block; font-family: var(--serif); color: var(--gold-1); font-size:1.4rem; }
  .extra-grid{ display:grid; grid-template-columns: 1fr 1fr; gap: 0 3rem; }
  @media (max-width:700px){ .extra-grid{ grid-template-columns: 1fr; } }
  .extra-col{ display:flex; flex-direction:column; }
  .extra-num-item{ display:flex; align-items:flex-start; gap:1.1rem; padding: 1.15rem 0; border-bottom:1px solid var(--line); }
  .extra-col .extra-num-item:last-child{ border-bottom:none; }
  .extra-num-item .n{ font-family: var(--serif); font-size:1.15rem; color: var(--gold-1); min-width:2.6ch; }
  .extra-num-body{ flex:1; }
  .extra-num-item h4{ font-size:1rem; margin-bottom:.28rem; }
  .extra-num-item p{ font-size:.84rem; color: var(--ivory-dim); }
  .extra-num-price{
    font-family: var(--serif); color: var(--gold-1); font-size:.96rem; white-space:nowrap; margin-left:.6rem;
  }

  /* ---------- Sugestões Seduction (routed page, 5 cards) ---------- */
  .salao-grid{
    display:grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 1.5rem;
    margin: 0 0 clamp(3rem,6vw,4.5rem);
  }
  .salao-card{
    background: var(--surface); border:1px solid var(--line); border-radius: var(--r-md);
    padding: 1.8rem 1.6rem; display:flex; flex-direction:column; gap:.5rem;
  }
  .salao-card h3{ font-size:1.22rem; }
  .salao-card p{ color: var(--ivory-dim); font-size:.9rem; flex:1; }
  .salao-price{ font-family: var(--serif); color: var(--gold-1); font-size:1.3rem; margin-top:.4rem; }

  /* ---------- about ---------- */
  .about-grid{ display:grid; grid-template-columns: 1fr 1fr; gap: clamp(2rem,5vw,4rem); align-items:center; }
  @media (max-width:900px){ .about-grid{ grid-template-columns:1fr; } }
  .about-copy p{ color: var(--ivory-dim); margin-top:1.1rem; font-size:1rem; }
  .stat-row{ display:flex; gap: clamp(1.4rem,4vw,3rem); margin-top: 2.2rem; flex-wrap:wrap; }
  .stat .num{ font-family: var(--serif); font-size: 2.4rem; color: var(--gold-1); }
  .stat .cap{ font-size:.76rem; letter-spacing:.04em; color: var(--ivory-dim); margin-top:.2rem; }
  .about-visual{ position:relative; }
  .about-visual .panel{
    border-radius: var(--r-lg); border:1px solid var(--line); aspect-ratio: 4/5;
    background: linear-gradient(165deg, var(--surface-2), var(--surface)); position:relative; overflow:hidden;
  }
  .about-visual .panel::after{ content:''; position:absolute; inset:0; background: radial-gradient(circle at 70% 20%, rgba(233,193,139,.2), transparent 60%); }
  .about-photo{
    position:absolute; inset:0; z-index:1; width:100%; height:100%; object-fit:cover;
    border-radius: var(--r-lg); border:1px solid var(--line);
  }
  .about-photo[src^="PHOTO_"]{ display:none; }
  .about-visual .ring-badge{
    position:absolute; right:-1.2rem; top:1.6rem; z-index:2; width:118px; height:118px; border-radius:50%;
    background: var(--bg); border:1px solid var(--line-strong); display:grid; place-items:center; text-align:center;
    box-shadow: var(--shadow); padding:.6rem;
  }
  .about-visual .ring-badge span{ font-family: var(--serif); font-style:italic; font-size:.86rem; color: var(--gold-1); line-height:1.25; }

  /* ---------- contact ---------- */
  .contact-grid{ display:grid; grid-template-columns: 1fr 1fr; gap: clamp(2rem,5vw,3.5rem); }
  @media (max-width:900px){ .contact-grid{ grid-template-columns:1fr; } }
  .contact-list{ display:flex; flex-direction:column; gap:1rem; margin-top:1.6rem; }
  .contact-row{
    display:flex; align-items:center; gap:1rem; padding:1.1rem 1.3rem; border:1px solid var(--line);
    border-radius: var(--r-sm); background: var(--surface); transition: border-color .3s ease, transform .3s ease;
  }
  .contact-row:hover{ border-color: var(--line-strong); transform: translateX(4px); }
  .contact-row .ic{ width:40px; height:40px; border-radius:50%; display:grid; place-items:center; background: rgba(233,193,139,.1); color: var(--gold-1); flex:none; }
  .contact-row .ic svg{ width:17px; height:17px; }
  .contact-row .t{ font-size:.68rem; letter-spacing:.06em; text-transform:uppercase; color: var(--ivory-dim); }
  .contact-row .v{ font-size:.98rem; margin-top:.1rem; }

  .hours-card{ border:1px solid var(--line); border-radius: var(--r-md); background: var(--surface); padding: 1.8rem; }
  .hours-card h3{ font-size:1.2rem; margin-bottom:1rem; }
  .hours-row{ display:flex; justify-content:space-between; padding:.55rem 0; border-bottom:1px solid var(--line); font-size:.88rem; }
  .hours-row:last-child{ border-bottom:none; }
  .hours-row .d{ color: var(--ivory-dim); }
  .hours-row .h{ font-variant-numeric: tabular-nums; }
  .hours-note{ list-style:none; margin: 1rem 0 0; padding:0; display:flex; flex-direction:column; gap:.5rem; }
  .hours-note li{ font-size:.78rem; color: var(--ivory-dim); padding-left:1rem; position:relative; line-height:1.5; }
  .hours-note li::before{ content:''; position:absolute; left:0; top:.5em; width:5px; height:5px; border-radius:50%; background: var(--gold-1); }

  .map-card{
    position:relative; display:block; margin-top:1.4rem; aspect-ratio: 16/8; border-radius: var(--r-md);
    border:1px solid var(--line); overflow:hidden; background: linear-gradient(160deg, var(--surface-2), var(--surface));
    transition: border-color .3s ease, transform .3s ease;
  }
  .map-card:hover{ border-color: var(--line-strong); transform: translateY(-2px); }
  .map-card svg.map-lines{ position:absolute; inset:0; width:100%; height:100%; opacity:.5; }
  .map-pin{ position:absolute; left:50%; top:50%; transform:translate(-50%,-60%); }
  .map-pin .dot{ width:14px; height:14px; border-radius:50%; background: var(--gold-1); box-shadow: 0 0 0 6px rgba(233,193,139,.18); }
  .map-pin .ring{ position:absolute; inset:-14px; border-radius:50%; border:1px solid var(--gold-1); opacity:0; animation: pin-pulse 2.6s ease-out infinite; }
  @keyframes pin-pulse{ 0%{ opacity:.55; transform:scale(.4);} 100%{ opacity:0; transform:scale(2.2);} }
  @media (prefers-reduced-motion: reduce){ .map-pin .ring{ animation:none; display:none; } }
  .map-label{
    position:absolute; left:1rem; right:1rem; bottom:1rem; display:flex; align-items:center; justify-content:space-between; gap:.6rem;
    background: rgba(15,19,17,.72); backdrop-filter: blur(10px); border:1px solid var(--line); border-radius: var(--r-sm);
    padding: .7rem .9rem; font-size:.78rem; color: var(--ivory-dim);
  }
  .map-label .open{ color: var(--gold-1); font-size:.72rem; letter-spacing:.05em; text-transform:uppercase; white-space:nowrap; }

  /* ---------- footer ---------- */
  footer{
    border-top:1px solid var(--line); padding: 3rem 0 2rem;
    background:
      radial-gradient(ellipse 70% 60% at 50% 0%, rgba(255,140,60,.08), transparent 65%),
      var(--bg-2);
  }
  .foot-grid{ display:grid; grid-template-columns: 1.3fr 1fr 1fr; gap: 2.4rem; }
  @media (max-width:760px){ .foot-grid{ grid-template-columns:1fr; } }
  .foot-brand{ display:flex; align-items:center; gap:.6rem; margin-bottom:.9rem; }
  .foot-brand img{ width:30px; height:30px; }
  .foot-brand span{ font-family: var(--serif); font-size:1.2rem; }
  footer p{ color: var(--ivory-dim); font-size:.88rem; max-width:34ch; }
  .foot-col h5{ font-size:.72rem; letter-spacing:.08em; text-transform:uppercase; color: var(--gold-1); margin-bottom:1rem; font-weight:500; }
  .foot-col a{ display:block; color: var(--ivory-dim); font-size:.88rem; padding:.28rem 0; transition: color .25s ease; }
  .foot-col a:hover{ color: var(--ivory); }
  .foot-bottom{ margin-top:2.6rem; padding-top:1.6rem; border-top:1px solid var(--line); display:flex; justify-content:space-between; flex-wrap:wrap; gap:.8rem; font-size:.78rem; color: var(--sage-dim); }
  .foot-social{ display:flex; gap:.6rem; }

  /* ---------- team pages (Terapeutas · Masculinos / Mulheres) ---------- */
  .team-hero{ padding: clamp(8.5rem,15vw,10.5rem) 0 3rem; text-align:center; position:relative; }
  .team-hero h1{ font-size: clamp(2.4rem,5vw,3.6rem); margin-top:.7rem; }
  .team-hero p{ color: var(--ivory-dim); max-width:56ch; margin: 1rem auto 0; }
  .team-switch{ display:flex; justify-content:center; gap:.6rem; margin-top:2rem; }
  .team-switch a{
    padding:.7rem 1.4rem; border-radius:999px; border:1px solid var(--line); font-size:.78rem; letter-spacing:.06em;
    text-transform:uppercase; color: var(--ivory-dim); transition: all .3s ease;
  }
  .team-switch a.active{ background: linear-gradient(135deg, var(--gold-1), var(--gold-2)); color:#241705; border-color:transparent; }
  .team-switch a:not(.active):hover{ border-color: var(--gold-1); color: var(--ivory); }

  .team-full-grid{ display:grid; grid-template-columns: repeat(3,1fr); gap: 1.6rem; padding-bottom: 4rem; }
  @media (max-width:980px){ .team-full-grid{ grid-template-columns: repeat(2,1fr); } }
  @media (max-width:620px){ .team-full-grid{ grid-template-columns: 1fr; } }
  .team-full-card{
    background: var(--surface); border:1px solid var(--line); border-radius: var(--r-md);
    padding: 1.2rem; display:flex; flex-direction:column; gap:1rem; transition: transform .35s ease, border-color .35s ease;
  }
  .team-full-card:hover{ transform: translateY(-6px); border-color: var(--line-strong); }
  .team-full-card .name{ font-family: var(--serif); font-size:1.5rem; }
  .team-full-card .role{ font-size:.7rem; letter-spacing:.08em; text-transform:uppercase; color: var(--gold-1); margin-top:.2rem; }
  .team-full-card .bio{ font-size:.88rem; color: var(--ivory-dim); margin-top:.3rem; }

  .back-home{ display:inline-flex; align-items:center; gap:.5rem; color: var(--ivory-dim); font-size:.84rem; margin-bottom: 1.6rem; }
  .back-home:hover{ color: var(--ivory); }
  .back-home svg{ width:15px; height:15px; }

  /* ---------- persistent floating action buttons ---------- */
  .fab-stack{
    position:fixed; right: 1.3rem; bottom: 1.3rem; z-index: 550;
    display:flex; flex-direction:column; align-items:center; gap:.85rem;
  }
  .fab{
    position:relative; width:56px; height:56px; border-radius:50%;
    display:grid; place-items:center; box-shadow: var(--shadow);
    transition: transform .3s ease, box-shadow .3s ease;
  }
  .fab:hover{ transform: translateY(-3px) scale(1.05); }
  .fab svg{ width:24px; height:24px; }
  .fab-wa{ background:#25D366; color:#fff; }
  .fab-wa::before{
    content:''; position:absolute; inset:-7px; border-radius:50%; border:1.5px solid #25D366; opacity:0;
    animation: fab-pulse 2.6s ease-out infinite;
  }
  @keyframes fab-pulse{ 0%{ opacity:.55; transform:scale(.72); } 100%{ opacity:0; transform:scale(1.35); } }
  @media (prefers-reduced-motion: reduce){ .fab-wa::before{ animation:none; display:none; } }
  .fab-call{ background: linear-gradient(135deg, var(--gold-1), var(--gold-2)); color:#241705; }
  .fab-badge{
    position:absolute; left:-5px; top:-5px; width:22px; height:22px; border-radius:50%;
    overflow:hidden; border:2px solid var(--bg); background: var(--bg); display:grid; place-items:center;
  }
  .fab-badge img{ width:100%; height:100%; object-fit:cover; display:block; }
  @media (max-width: 980px){
    .fab-stack{ display:none; } /* WhatsApp + call already available as header icons on mobile */
  }

  /* ---------- relax / CTA parallax banner ---------- */
  .relax-section{
    position:relative; overflow:hidden; min-height:56vh;
    display:flex; align-items:center; justify-content:center; text-align:center;
    padding: clamp(4rem,9vw,7rem) 0;
  }
  .relax-bg-wrap{ position:absolute; inset:0; z-index:0; overflow:hidden; }
  .relax-bg-wrap::before{
    content:""; position:absolute; inset:0;
    background:
      radial-gradient(ellipse 60% 55% at 25% 20%, rgba(255,180,90,.28), transparent 60%),
      radial-gradient(ellipse 55% 60% at 80% 80%, rgba(255,110,40,.24), transparent 65%),
      linear-gradient(160deg, #221610, #0d0704 65%);
  }
  .relax-bg{
    position:absolute; left:0; top:-20%; width:100%; height:140%; object-fit:cover;
    will-change: transform;
  }
  .relax-bg[src^="PHOTO_"]{ display:none; }
  .relax-scrim{
    position:absolute; inset:0; z-index:1;
    background: linear-gradient(180deg, rgba(10,8,6,.5) 0%, rgba(10,8,6,.72) 100%);
  }
  .relax-content{ position:relative; z-index:2; max-width:640px; margin:0 auto; }
  .relax-content h2{ font-size: clamp(2rem,4.4vw,3.2rem); color: var(--ivory); margin-bottom:1rem; }
  .relax-content p{ color: var(--ivory-dim); font-size:1.05rem; margin-bottom:2rem; }
  @media (prefers-reduced-motion: reduce){ .relax-bg{ transform:none !important; } }

  /* ---------- journey / aromatherapy & baths (cards: photo + full text + time & price) ---------- */
  .journey-grid{
    display:grid; grid-template-columns: repeat(auto-fit, minmax(270px, 1fr)); gap: 1.5rem; align-items:stretch;
    max-width: 1080px; margin: 0 auto;
  }
  .journey-card{
    display:flex; flex-direction:column; overflow:hidden;
    background: var(--surface); border:1px solid var(--line); border-radius: var(--r-md);
    transition: transform .35s ease, border-color .35s ease, background .35s ease;
  }
  .journey-card:hover{ transform: translateY(-6px); border-color: var(--line-strong); background: var(--surface-2); }
  .journey-photo-wrap{
    position:relative; aspect-ratio: 4 / 3; overflow:hidden; border-bottom:1px solid var(--line-strong);
    background:
      radial-gradient(ellipse 70% 60% at 30% 20%, rgba(255,180,90,.3), transparent 60%),
      radial-gradient(ellipse 60% 60% at 80% 85%, rgba(255,110,40,.24), transparent 65%),
      var(--surface);
  }
  .journey-photo{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; transition: transform .8s ease; }
  .journey-card:hover .journey-photo{ transform: scale(1.05); }
  .journey-body{ display:flex; flex-direction:column; flex:1; padding: 1.6rem 1.6rem 1.7rem; }
  .journey-card h3{ font-size:1.32rem; margin-bottom:.6rem; }
  .journey-desc{ color: var(--ivory-dim); font-size:.92rem; line-height:1.65; }
  .journey-card .svc-tiers{ margin:auto 0 1.4rem; padding-top:1.3rem; }
  .journey-card .svc-book{ width:100%; justify-content:center; }

  /* ---------- space (2 large photos, each with its own title + text) ---------- */
  .space-grid{
    display:grid; grid-template-columns: repeat(2, 1fr); gap: 2rem;
    margin-top: clamp(2.4rem,5vw,3.4rem);
  }
  .space-photo-wrap{
    position:relative; width:100%; aspect-ratio: 5 / 4; border-radius: var(--r-lg); overflow:hidden;
    background:
      radial-gradient(ellipse 65% 55% at 25% 20%, rgba(255,180,90,.26), transparent 60%),
      radial-gradient(ellipse 60% 60% at 80% 85%, rgba(255,110,40,.2), transparent 65%),
      var(--surface);
    border:1px solid var(--line);
    margin-bottom: 1.3rem;
  }
  .space-photo{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
  .space-photo[src^="PHOTO_"]{ display:none; }
  .space-card h3{ font-size:1.28rem; margin-bottom:.5rem; }
  .space-card p{ color: var(--ivory-dim); font-size:.95rem; max-width:42ch; }
  @media (max-width: 780px){ .space-grid{ grid-template-columns: 1fr; gap: 2.4rem; } }


/* =====================================================================
   WordPress additions
   ===================================================================== */
.screen-reader-text{ position:absolute!important; width:1px; height:1px; margin:-1px; padding:0; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }

/* logged-in admin toolbar pushes the fixed bars down */
body.admin-bar{ --wp-bar:32px; }
@media (max-width:782px){ body.admin-bar{ --wp-bar:46px; } }
@media (max-width:600px){ body.admin-bar{ --wp-bar:0px; } }
body.admin-bar .top-banner{ top: var(--wp-bar); }
body.admin-bar header{ top: calc(var(--banner-h,0px) + var(--wp-bar)); }
body.admin-bar .rebrand-ticker{ top: calc(var(--banner-h,0px) + 5.4rem); }

/* the top notice can be removed from the dashboard */
.top-banner[hidden]{ display:none; }

/* simple pages / posts / 404 */
.gd-page{ padding: clamp(8.5rem,15vw,10.5rem) 0 5rem; min-height: 70vh; }
.gd-page .wrap{ max-width: 820px; }
.gd-page h1{ font-size: clamp(2.2rem,4.6vw,3.2rem); margin-bottom: 1.6rem; }
.gd-page .entry-content{ color: var(--ivory-dim); font-size: 1.02rem; }
.gd-page .entry-content > * + *{ margin-top: 1.1em; }
.gd-page .entry-content h2, .gd-page .entry-content h3{ margin-top: 1.8em; color: var(--ivory); }
.gd-page .entry-content a{ color: var(--gold-1); text-decoration: underline; }
.gd-page .entry-content ul, .gd-page .entry-content ol{ padding-left: 1.3rem; }
.gd-page .entry-content img{ border-radius: var(--r-sm); height:auto; }
.gd-page .post-list article + article{ margin-top: 2rem; padding-top: 2rem; border-top: 1px solid var(--line); }
.gd-page .post-list h2{ font-size: 1.6rem; }
.gd-page .post-list h2 a:hover{ color: var(--gold-1); }

/* WordPress emoji images (flags on Windows) */
img.emoji{ display:inline!important; width:1em!important; height:1em!important; margin:0 .07em!important; vertical-align:-.1em!important; background:none!important; box-shadow:none!important; }

  /* ---------- photo pop-up (enlarged photo + close X) ---------- */
  .ph-slot:has(img){ cursor: zoom-in; }
  .photo-box{
    position:fixed; inset:0; z-index:2000; display:none; align-items:center; justify-content:center;
    padding: 3.2rem 1rem 1.5rem; background: rgba(6,8,7,.92);
    backdrop-filter: blur(6px); -webkit-backdrop-filter: blur(6px);
  }
  .photo-box.open{ display:flex; animation: photo-in .25s ease; }
  @keyframes photo-in{ from{ opacity:0; } to{ opacity:1; } }
  .photo-box img{ max-width:100%; max-height:100%; object-fit:contain; border-radius: 10px; box-shadow: 0 20px 60px rgba(0,0,0,.6); }
  .photo-box-close{
    position:absolute; top: max(.8rem, env(safe-area-inset-top)); right: .9rem; width:44px; height:44px; border-radius:50%;
    display:grid; place-items:center; color:#fff; background: rgba(255,255,255,.14); border:1px solid rgba(255,255,255,.3); cursor:pointer;
  }
  .photo-box-close svg{ width:22px; height:22px; }
  .photo-box-close:hover{ background: rgba(255,255,255,.26); }
  html.photo-open, html.photo-open body{ overflow:hidden; }
