/* ===== SAVIA EUROPA — hoja de estilos compartida ===== */
:root{
  --green:#073F32; --green-deep:#012E25; --gold:#B89445; --gold-soft:#cba968;
  --ivory:#F8F6F1; --sand:#E8DDC8; --ink:#012E25; --ink-soft:#5a6661;
  --line:#e0d6c2; --wa:#25d366; --sh:rgba(7,63,50,0.10); --sh-lg:rgba(7,63,50,0.18);
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{font-family:'Montserrat',sans-serif;color:var(--ink);background:var(--ivory);line-height:1.7;font-weight:300;overflow-x:hidden}
h1,h2,h3,h4{font-family:'Playfair Display',serif;font-weight:600;line-height:1.15;color:var(--green)}
.kicker,.btn,nav a,.tag,.eyebrow{font-family:'Cinzel',serif}
.wrap{max-width:1200px;margin:0 auto;padding:0 26px}
img{max-width:100%;display:block}
.gold{color:var(--gold)}
a{color:var(--green)}
.logo-svg{display:flex;align-items:center;flex-direction:column;line-height:1}
.logo-word{font-family:'Playfair Display',serif;font-weight:600;font-size:1.85rem;color:var(--green);letter-spacing:-0.01em;position:relative;display:inline-flex;align-items:flex-start}
.logo-word .plane{position:absolute;right:-8px;top:-13px;color:var(--gold);font-size:.9rem;transform:rotate(40deg)}
.logo-sub{font-family:'Cinzel',serif;font-size:.55rem;letter-spacing:.42em;color:var(--green);margin-top:3px;display:flex;align-items:center;gap:7px;padding-left:.42em}
.logo-sub::before,.logo-sub::after{content:"\2726";color:var(--gold);font-size:.5rem}
.topbar{background:var(--green-deep);color:var(--ivory);font-size:.76rem;padding:8px 0;font-family:'Cinzel',serif;letter-spacing:.04em}
.topbar .wrap{display:flex;justify-content:space-between;align-items:center;gap:14px;flex-wrap:wrap}
.topbar a{color:var(--gold-soft);text-decoration:none}
.topbar .l{display:flex;gap:20px;flex-wrap:wrap}
nav{position:sticky;top:0;z-index:100;background:rgba(248,246,241,.93);backdrop-filter:blur(14px);border-bottom:1px solid transparent;transition:.3s}
nav.scr{border-color:var(--line);box-shadow:0 6px 26px var(--sh)}
.nav-in{display:flex;align-items:center;justify-content:space-between;height:80px}
.nav-links{display:flex;gap:32px;align-items:center}
.nav-links>a,.nav-links .has-sub>a{text-decoration:none;color:var(--green);font-size:.8rem;font-weight:500;letter-spacing:.1em;transition:.2s;position:relative;text-transform:uppercase;font-family:'Cinzel',serif}
.nav-links>a::after,.nav-links .has-sub>a::after{content:"";position:absolute;left:0;right:0;bottom:-6px;height:2px;background:var(--gold);transform:scaleX(0);transition:.25s}
.nav-links>a:hover,.nav-links>a.active,.nav-links .has-sub:hover>a{color:var(--gold)}
.nav-links>a.active::after,.nav-links>a:hover::after,.nav-links .has-sub:hover>a::after{transform:scaleX(1)}
.has-sub{position:relative}
.submenu{position:absolute;top:135%;left:50%;transform:translateX(-50%) translateY(10px);background:#fff;border:1px solid var(--line);border-radius:14px;box-shadow:0 20px 50px var(--sh-lg);padding:10px;min-width:330px;opacity:0;visibility:hidden;transition:.25s;z-index:50}
.has-sub:hover .submenu{opacity:1;visibility:visible;transform:translateX(-50%) translateY(0)}
.submenu a{display:block;padding:12px 15px;border-radius:9px;text-decoration:none;color:var(--green);font-family:'Montserrat',sans-serif;font-size:.9rem;font-weight:400;letter-spacing:0;text-transform:none;transition:.18s}
.submenu a:hover{background:var(--ivory);color:var(--gold)}
.submenu a b{display:block;font-weight:500;font-size:.92rem;margin-bottom:2px;font-family:'Cinzel',serif;letter-spacing:.02em}
.submenu a small{color:var(--ink-soft);font-size:.8rem}
.nav-cta{background:var(--green)!important;color:var(--ivory)!important;padding:12px 22px;border-radius:50px;font-size:.72rem;letter-spacing:.1em;display:inline-flex;align-items:center;gap:8px;transition:.2s;text-transform:uppercase;text-decoration:none}
.nav-cta::after{display:none!important}
.nav-cta:hover{background:var(--gold)!important;transform:translateY(-2px)}
.menu-btn{display:none;background:none;border:none;font-size:1.6rem;color:var(--green);cursor:pointer}
.btn{display:inline-flex;align-items:center;gap:10px;padding:16px 32px;border-radius:50px;font-family:'Cinzel',serif;font-size:.8rem;font-weight:500;letter-spacing:.08em;text-decoration:none;cursor:pointer;border:none;transition:.22s;text-transform:uppercase}
.btn-green{background:var(--green);color:var(--ivory);box-shadow:0 10px 26px var(--sh)}
.btn-green:hover{background:var(--green-deep);transform:translateY(-3px)}
.btn-gold{background:var(--gold);color:#fff;box-shadow:0 10px 26px rgba(184,148,69,.32)}
.btn-gold:hover{transform:translateY(-3px);background:var(--gold-soft)}
.btn-ghost{background:transparent;color:var(--green);border:1.5px solid var(--green)}
.btn-ghost:hover{background:var(--green);color:var(--ivory)}
.btn-ivory{background:var(--ivory);color:var(--green)}
.btn-ivory:hover{background:#fff;transform:translateY(-3px)}
.sec{padding:96px 0}
.sec-head{max-width:700px;margin:0 auto 56px;text-align:center}
.kicker{display:inline-flex;align-items:center;gap:10px;font-size:.72rem;letter-spacing:.22em;text-transform:uppercase;color:var(--gold);margin-bottom:20px}
.kicker::before,.kicker::after{content:"";width:28px;height:1px;background:var(--gold)}
.sec-head h2{font-size:clamp(2rem,3.8vw,2.9rem);margin-bottom:16px}
.sec-head p{color:var(--ink-soft);font-size:1.1rem;font-weight:300}
.page-hero{background:radial-gradient(ellipse 60% 80% at 88% 30%,rgba(184,148,69,.10),transparent 62%),linear-gradient(180deg,var(--ivory),#fff 55%,var(--ivory));color:var(--green);padding:88px 0 96px;text-align:center;position:relative;overflow:hidden}
/* mapa de Europa en filigrana dorada, lado derecho */
.page-hero::before{content:"";position:absolute;top:50%;right:-2%;transform:translateY(-50%);width:42%;height:118%;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 320 360'%3E%3Cpath d='M205 18 C212 30 208 44 218 50 C228 56 236 48 240 58 C244 70 232 78 238 88 C244 98 258 96 256 110 C254 122 240 124 244 138 C247 150 262 152 258 166 L242 172 L250 188 L232 196 L240 210 C228 214 220 206 212 214 C206 222 214 232 204 238 L188 232 L182 248 L168 240 C160 252 168 264 156 268 L146 258 L138 272 L150 286 L132 292 L140 308 L120 304 L122 322 L104 314 L100 330 L86 318 C92 304 78 300 84 288 C90 278 102 282 100 270 L86 266 L96 252 L80 250 C86 238 74 232 82 222 L66 220 L74 206 C62 202 56 210 50 202 C45 194 54 186 46 180 L30 184 C36 170 22 166 30 154 C36 144 50 148 48 136 C46 124 32 126 36 112 C40 100 56 104 54 90 L70 86 L62 70 L80 66 C74 54 86 48 82 38 L100 42 L96 26 L116 32 C122 20 136 26 140 14 C146 4 160 10 166 4 C176 12 168 24 180 24 C190 24 196 12 205 18 Z' fill='none' stroke='%23B89445' stroke-width='1.3' opacity='0.5'/%3E%3Cpath d='M150 286 L156 304 L146 316 L154 330' fill='none' stroke='%23B89445' stroke-width='1.3' opacity='0.5'/%3E%3C/svg%3E");background-repeat:no-repeat;background-size:contain;background-position:center;opacity:.6;z-index:0;pointer-events:none}
/* estela de avión punteada, lado izquierdo */
.page-hero::after{content:"";position:absolute;bottom:18%;left:-3%;width:30%;height:42%;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 200 120'%3E%3Cpath d='M5 100 Q70 95 110 55 T185 18' fill='none' stroke='%23B89445' stroke-width='1.6' stroke-dasharray='2 7' stroke-linecap='round' opacity='0.6'/%3E%3Cg transform='translate(178 14) rotate(38)'%3E%3Cpath d='M0 4 L16 0 L13 5 L26 4 L13 7 L16 12 L0 8 Z' fill='%23B89445' opacity='0.85'/%3E%3C/g%3E%3C/svg%3E");background-repeat:no-repeat;background-size:contain;z-index:0;pointer-events:none}
.page-hero .wrap{position:relative;z-index:2}
.page-hero .eyebrow{color:var(--gold);font-size:.74rem;letter-spacing:.22em;text-transform:uppercase;display:inline-flex;align-items:center;gap:10px;margin-bottom:18px}
.page-hero .eyebrow::before,.page-hero .eyebrow::after{content:"\2726";color:var(--gold);font-size:.6rem}
.page-hero h1{color:var(--green);font-size:clamp(2.2rem,4.5vw,3.4rem);margin-bottom:18px;position:relative;display:inline-block}
.page-hero h1::after{content:"";display:block;width:70px;height:2px;background:var(--gold);margin:18px auto 0}
.page-hero p{color:var(--ink-soft);font-size:1.15rem;font-weight:300;max-width:620px;margin:0 auto}
.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:26px}
.card{background:#fff;border:1px solid var(--line);border-radius:18px;padding:38px 30px;transition:.3s}
.card:hover{transform:translateY(-8px);box-shadow:0 26px 54px var(--sh)}
.card .ic{width:62px;height:62px;border-radius:50%;background:var(--ivory);border:1px solid var(--gold);display:flex;align-items:center;justify-content:center;font-size:1.5rem;margin-bottom:22px;color:var(--green)}
.card h3{font-size:1.26rem;margin-bottom:12px}
.card p{color:var(--ink-soft);font-size:.97rem;font-weight:300}
.strip{background:var(--green);color:var(--ivory);padding:24px 0}
.strip .wrap{display:flex;justify-content:center;gap:46px;flex-wrap:wrap;font-family:'Cinzel',serif;font-size:.82rem;letter-spacing:.06em}
.strip span{display:inline-flex;align-items:center;gap:10px}
.strip .ic{color:var(--gold);font-size:1.1rem}
.strip .sep{color:var(--gold);opacity:.5}
footer{background:var(--green-deep);color:rgba(248,246,241,.65);padding:56px 0 30px}
.foot-top{display:grid;grid-template-columns:1.5fr 1fr 1fr 1fr;gap:36px;padding-bottom:36px;border-bottom:1px solid rgba(184,148,69,.2)}
.foot-top p{font-size:.92rem;font-weight:300;max-width:280px;margin-top:14px}
.foot-col h4{color:var(--gold-soft);font-size:.76rem;letter-spacing:.1em;margin-bottom:16px;font-family:'Cinzel',serif;text-transform:uppercase}
.foot-col a{display:block;color:rgba(248,246,241,.65);text-decoration:none;font-size:.9rem;margin-bottom:10px;font-weight:300;transition:.2s}
.foot-col a:hover{color:var(--gold-soft)}
.foot-bot{padding-top:24px;text-align:center;font-size:.82rem;opacity:.6;font-weight:300;letter-spacing:.04em}
.wa-fab{position:fixed;bottom:26px;right:26px;width:60px;height:60px;border-radius:50%;background:var(--wa);display:flex;align-items:center;justify-content:center;box-shadow:0 10px 30px rgba(37,211,102,.5);z-index:200;animation:bob 2.6s ease-in-out infinite}
@keyframes bob{0%,100%{transform:translateY(0)}50%{transform:translateY(-7px)}}
.rv{opacity:0;transform:translateY(28px);transition:opacity .7s,transform .7s}
.rv.in{opacity:1;transform:none}
.cta-band{background:linear-gradient(135deg,var(--green),var(--green-deep));color:var(--ivory);position:relative;overflow:hidden}
.cta-band::before{content:"";position:absolute;top:50%;right:3%;transform:translateY(-50%);width:30%;height:130%;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 320 360'%3E%3Cpath d='M205 18 C212 30 208 44 218 50 C228 56 236 48 240 58 C244 70 232 78 238 88 C244 98 258 96 256 110 C254 122 240 124 244 138 C247 150 262 152 258 166 L242 172 L250 188 L232 196 L240 210 C228 214 220 206 212 214 C206 222 214 232 204 238 L188 232 L182 248 L168 240 C160 252 168 264 156 268 L146 258 L138 272 L150 286 L132 292 L140 308 L120 304 L122 322 L104 314 L100 330 L86 318 C92 304 78 300 84 288 C90 278 102 282 100 270 L86 266 L96 252 L80 250 C86 238 74 232 82 222 L66 220 L74 206 C62 202 56 210 50 202 C45 194 54 186 46 180 L30 184 C36 170 22 166 30 154 C36 144 50 148 48 136 C46 124 32 126 36 112 C40 100 56 104 54 90 L70 86 L62 70 L80 66 C74 54 86 48 82 38 L100 42 L96 26 L116 32 C122 20 136 26 140 14 C146 4 160 10 166 4 C176 12 168 24 180 24 C190 24 196 12 205 18 Z' fill='none' stroke='%23B89445' stroke-width='1.3' opacity='0.5'/%3E%3Cpath d='M150 286 L156 304 L146 316 L154 330' fill='none' stroke='%23B89445' stroke-width='1.3' opacity='0.5'/%3E%3C/svg%3E");background-repeat:no-repeat;background-size:contain;background-position:center;opacity:.3;pointer-events:none}
.cta-band::after{content:"\2726";position:absolute;top:26px;left:6%;color:var(--gold);opacity:.3;font-size:1.8rem}
.cta-band .wrap{position:relative;z-index:2;text-align:center}
.cta-band h2{color:var(--ivory);font-size:clamp(1.9rem,3.6vw,2.7rem);margin-bottom:16px}
.cta-band p{color:rgba(248,246,241,.85);font-size:1.12rem;font-weight:300;max-width:560px;margin:0 auto 30px}
.faq-list{max-width:800px;margin:0 auto;display:flex;flex-direction:column;gap:13px}
.faq-item{background:#fff;border:1px solid var(--line);border-radius:14px;overflow:hidden;transition:.25s}
.faq-item[open]{box-shadow:0 16px 36px var(--sh);border-color:var(--gold)}
.faq-item summary{padding:22px 26px;font-family:'Playfair Display',serif;font-size:1.06rem;font-weight:500;color:var(--green);cursor:pointer;list-style:none;display:flex;justify-content:space-between;gap:18px;align-items:center}
.faq-item summary::-webkit-details-marker{display:none}
.faq-item .pl{flex-shrink:0;width:28px;height:28px;border-radius:50%;background:var(--ivory);color:var(--gold);display:flex;align-items:center;justify-content:center;font-size:1.2rem;transition:.3s;border:1px solid var(--gold)}
.faq-item[open] .pl{transform:rotate(45deg);background:var(--gold);color:#fff}
.faq-item .ans{padding:0 26px 24px;color:var(--ink-soft);font-size:.98rem;font-weight:300}
.btn-block{display:block}
@media(max-width:980px){
  .cards{grid-template-columns:1fr 1fr}
  .menu-btn{display:block}
  .foot-top{grid-template-columns:1fr 1fr}
  .sec{padding:68px 0}
}
@media(max-width:560px){.cards,.foot-top{grid-template-columns:1fr}}

/* ============================================================
   AÑADIDOS — componente ficha de servicio (antes en línea por página)
   ============================================================ */
.svc-detail{padding:90px 0}
.svc-detail-grid{display:grid;grid-template-columns:1.4fr .6fr;gap:50px;align-items:start}
.block{margin-bottom:46px}
.block h2{font-size:1.7rem;margin-bottom:16px;display:flex;align-items:center;gap:12px}
.block h2::before{content:"";width:26px;height:3px;background:var(--gold);border-radius:3px}
.block p{color:var(--ink-soft);font-size:1.04rem;margin-bottom:14px}
.proc-steps{counter-reset:p;list-style:none;margin-top:8px}
.proc-steps li{position:relative;padding:14px 0 14px 52px;color:var(--ink-soft);font-size:1rem;border-bottom:1px dashed var(--line)}
.proc-steps li::before{counter-increment:p;content:counter(p);position:absolute;left:0;top:12px;width:34px;height:34px;border-radius:50%;background:var(--green);color:var(--gold);font-family:'Playfair Display',serif;font-weight:700;display:flex;align-items:center;justify-content:center;font-size:.95rem}
.perfil{background:var(--sand);border-radius:16px;padding:30px 32px;margin-top:10px}
.perfil h3{font-size:1.2rem;margin-bottom:14px;color:var(--green)}
.perfil ul{list-style:none}
.perfil li{padding:8px 0 8px 26px;position:relative;color:var(--ink-soft);font-size:.98rem}
.perfil li::before{content:"\2726";position:absolute;left:0;color:var(--gold);font-size:.7rem;top:12px}
.perfil .sub-block{margin-top:18px;padding-top:18px;border-top:1px solid var(--line)}
.perfil .sub-block b{color:var(--green);font-family:'Cinzel',serif;font-size:.95rem;display:block;margin-bottom:6px}
.includes{background:#fff;border:1px solid var(--line);border-radius:18px;padding:30px;position:sticky;top:100px}
.includes h3{font-size:1.2rem;margin-bottom:8px}
.includes .lead-in{color:var(--ink-soft);font-size:.9rem;font-weight:300;margin-bottom:18px}
.includes ul{list-style:none}
.includes li{padding:9px 0 9px 26px;position:relative;font-size:.88rem;color:var(--green);border-bottom:1px solid var(--ivory);font-weight:400}
.includes li::before{content:"\2713";position:absolute;left:0;color:var(--gold);font-weight:700}
.includes .btn{width:100%;justify-content:center;margin-top:20px}
.page-hero.with-photo{padding:0;text-align:left;overflow:hidden}
.page-hero.with-photo::before,.page-hero.with-photo::after{display:none}
.ph-grid{display:grid;grid-template-columns:1.05fr .95fr;align-items:stretch;min-height:480px}
.ph-text{padding:70px 50px 70px 0;display:flex;flex-direction:column;justify-content:center;position:relative}
.ph-text .eyebrow{color:var(--gold);font-size:.74rem;letter-spacing:.22em;text-transform:uppercase;display:inline-flex;align-items:center;gap:10px;margin-bottom:16px}
.ph-text .eyebrow::before{content:"\2726";color:var(--gold);font-size:.6rem}
.ph-text h1{color:var(--green);font-size:clamp(2rem,3.6vw,3rem);margin-bottom:16px}
.ph-text h1::after{content:"";display:block;width:64px;height:2px;background:var(--gold);margin:16px 0 0}
.ph-text p{color:var(--ink-soft);font-size:1.12rem;font-weight:300;max-width:520px}
.ph-img{position:relative;min-height:480px;border-bottom-left-radius:0}
.ph-img img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 18%}
.ph-img::after{content:"";position:absolute;inset:0;background:linear-gradient(100deg,var(--ivory) 0%,rgba(248,246,241,.2) 22%,transparent 45%)}
@media(max-width:980px){.svc-detail-grid{grid-template-columns:1fr}.includes{position:static}}
@media(max-width:860px){.ph-grid{grid-template-columns:1fr}.ph-text{padding:56px 0 30px;text-align:center}.ph-text .eyebrow,.ph-text h1::after{margin-left:auto;margin-right:auto}.ph-text p{margin:0 auto}.ph-img{min-height:300px;border-radius:18px;margin-bottom:10px}.ph-img::after{background:linear-gradient(180deg,transparent 60%,rgba(7,63,50,.25))}}

/* ============================================================
   AÑADIDOS — redes sociales en el footer
   ============================================================ */
.foot-social{display:flex;gap:12px;margin-top:18px}
.foot-social a{width:38px;height:38px;border-radius:50%;border:1px solid rgba(184,148,69,.4);display:flex;align-items:center;justify-content:center;color:var(--gold-soft);transition:.2s}
.foot-social a:hover{background:var(--gold);border-color:var(--gold);color:var(--green-deep);transform:translateY(-2px)}
.foot-social svg{width:18px;height:18px;display:block;fill:currentColor}

/* ============================================================
   AÑADIDOS — menú móvil (drawer lateral + overlay + cierre táctil)
   Escritorio: el botón, el cierre y el overlay están ocultos.
   ============================================================ */
.nav-close{display:none}
.nav-overlay{position:fixed;inset:0;background:rgba(1,46,37,.55);opacity:0;pointer-events:none;transition:opacity .3s ease;z-index:1900;backdrop-filter:blur(2px)}
.nav-overlay.show{opacity:1;pointer-events:auto}
@media(max-width:980px){
  .nav-links{
    position:fixed;top:0;right:0;bottom:0;width:min(84%,360px);
    flex-direction:column;align-items:stretch;justify-content:flex-start;gap:2px;
    background:var(--ivory);box-shadow:-22px 0 60px rgba(1,46,37,.28);
    padding:80px 24px 40px;transform:translateX(100%);
    transition:transform .32s cubic-bezier(.4,0,.2,1);z-index:2000;overflow-y:auto;
  }
  .nav-links.open{transform:translateX(0)}
  .nav-links>a,.nav-links .has-sub>a{
    text-transform:none;letter-spacing:.01em;font-size:1.02rem;font-weight:500;
    color:var(--green);padding:15px 8px;width:100%;border-bottom:1px solid var(--line)
  }
  .nav-links>a::after,.nav-links .has-sub>a::after{display:none}
  .has-sub{position:static}
  .submenu{
    position:static;opacity:1;visibility:visible;transform:none;
    box-shadow:none;border:none;background:transparent;min-width:0;
    padding:6px 0 10px 12px;margin:2px 0 6px 8px;border-left:2px solid var(--gold)
  }
  .submenu a{padding:10px 10px}
  .nav-cta{margin-top:18px;justify-content:center;width:100%;padding:15px 22px}
  .nav-close{
    display:flex;align-items:center;justify-content:center;position:absolute;top:18px;right:18px;
    width:42px;height:42px;border-radius:50%;background:#fff;border:1px solid var(--line);
    color:var(--green);font-size:1.35rem;line-height:1;cursor:pointer;font-family:'Montserrat',sans-serif
  }
  body.nav-open{overflow:hidden}
}

/* Correctif menu mobile — garde le drawer au-dessus de l'overlay */
@media(max-width:980px){
  body.nav-open nav{z-index:3000}
  body.nav-open .nav-links{z-index:3100}
  body.nav-open .nav-overlay{z-index:2500}
}


/* Correctif renforcé menu mobile iOS/Safari
   Problème corrigé : le drawer ne doit pas être limité par le header sticky/backdrop-filter. */
@media(max-width:980px){
  .nav-overlay{
    position:fixed!important;
    inset:0!important;
    z-index:9998!important;
  }
  .nav-links{
    position:fixed!important;
    top:0!important;
    right:0!important;
    bottom:auto!important;
    width:min(86vw,380px)!important;
    height:100vh!important;
    height:100dvh!important;
    max-height:100vh!important;
    max-height:100dvh!important;
    z-index:9999!important;
    padding:78px 22px calc(34px + env(safe-area-inset-bottom,0px))!important;
    overflow-y:auto!important;
    -webkit-overflow-scrolling:touch;
    overscroll-behavior:contain;
    background:var(--ivory)!important;
  }
  .nav-links.open{transform:translateX(0)!important}
  .nav-links .has-sub{display:block!important;position:static!important;width:100%}
  .nav-links>a,.nav-links .has-sub>a{display:block!important;width:100%}
  .nav-links .submenu{display:block!important;position:static!important;opacity:1!important;visibility:visible!important;transform:none!important}
  body.nav-open{overflow:hidden!important;touch-action:none}
}

/* ===== Savia Europa — páginas legales y consentimiento cookies ===== */
.legal-hero{padding:58px 0 40px;background:linear-gradient(180deg,var(--ivory),#fff)}
.legal-hero h1{font-size:clamp(2.15rem,4vw,3.25rem);max-width:850px;margin-bottom:14px}
.legal-hero p{max-width:760px;color:var(--ink-soft);font-size:1.02rem}
.legal-page{padding:42px 0 76px;background:#fff}
.legal-layout{display:grid;grid-template-columns:minmax(0,1fr);gap:20px;max-width:920px}
.legal-card{background:var(--ivory);border:1px solid var(--line);border-radius:20px;padding:30px;box-shadow:0 18px 45px var(--sh)}
.legal-card h2{font-size:1.45rem;margin:22px 0 12px}
.legal-card h2:first-child{margin-top:0}
.legal-card h3{font-size:1.08rem;margin:18px 0 8px;font-family:'Cinzel',serif;letter-spacing:.04em;text-transform:uppercase}
.legal-card p,.legal-card li{color:var(--ink-soft);font-size:.96rem;line-height:1.75}
.legal-card ul,.legal-card ol{padding-left:22px;margin:8px 0 12px}
.legal-card strong{color:var(--green);font-weight:500}
.legal-note{background:#fff;border-left:4px solid var(--gold);border-radius:12px;padding:15px 18px;margin:18px 0;color:var(--green)}
.legal-meta{font-size:.86rem;color:var(--ink-soft);margin-top:20px;border-top:1px solid var(--line);padding-top:16px}
.foot-bot a{color:var(--gold-soft);text-decoration:none;white-space:nowrap}
.foot-bot a:hover{text-decoration:underline}
.cookie-banner{position:fixed;left:18px;right:18px;bottom:18px;z-index:9999;background:#fff;border:1px solid var(--line);border-radius:18px;box-shadow:0 24px 70px rgba(1,46,37,.22);padding:18px;display:none;max-width:760px;margin:0 auto;color:var(--ink)}
.cookie-banner.is-visible{display:block}
.cookie-banner p{font-size:.9rem;line-height:1.55;color:var(--ink-soft);margin:0 0 12px}
.cookie-banner strong{color:var(--green);font-weight:500}
.cookie-actions{display:flex;flex-wrap:wrap;gap:10px;align-items:center}
.cookie-actions .btn{padding:10px 15px;font-size:.68rem}
.cookie-link{font-family:'Cinzel',serif;font-size:.68rem;letter-spacing:.08em;text-transform:uppercase;color:var(--green);text-decoration:none}
.cookie-link:hover{text-decoration:underline}
@media(max-width:640px){
  .legal-card{padding:24px 20px;border-radius:16px}
  .cookie-banner{left:12px;right:12px;bottom:12px;padding:16px;border-radius:16px}
  .cookie-actions{align-items:stretch}
  .cookie-actions .btn{flex:1;justify-content:center;text-align:center}
  .cookie-link{width:100%;text-align:center;margin-top:2px}
}

