/* ===== Rifugio Dolada — tema "mappa del tesoro" · CSS condiviso ===== */
:root{
  --parch:#E7D5AC; --parch-2:#DDCB9E; --card:#F1E6C7; --ink:#2C2014; --ink-soft:#5A4632; --muted:#7A674E;
  --sea:#15323D; --sea-2:#1E424F; --sea-deep:#0E2630;
  --rum:#8E2B20; --rum-deep:#6C1D14; --gold:#B0853A; --gold-li:#D4A84C;
  --line:rgba(44,32,20,.26);
  --maxw:1180px; --shadow:0 20px 44px -24px rgba(14,38,48,.6);
  --map:"IM Fell English",Georgia,serif; --body:"Spectral",Georgia,serif; --hand:"Caveat",cursive;
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  font-family:var(--body); color:var(--ink); font-size:17.5px; line-height:1.62; overflow-x:hidden;
  -webkit-font-smoothing:antialiased;
  background:
    radial-gradient(circle at 12% 18%,rgba(142,43,32,.07),transparent 32%),
    radial-gradient(circle at 88% 72%,rgba(21,50,61,.08),transparent 34%),
    radial-gradient(circle at 50% 120%,rgba(176,133,58,.10),transparent 60%),
    var(--parch);
}
body::before{content:"";position:fixed;inset:0;z-index:1;pointer-events:none;opacity:.6;mix-blend-mode:multiply;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.06'/%3E%3C/svg%3E");}
body::after{content:"";position:fixed;inset:0;z-index:1;pointer-events:none;
  box-shadow:inset 0 0 180px rgba(60,40,20,.28),inset 0 0 40px rgba(60,40,20,.15);}
img{display:block;max-width:100%;height:auto}
a{color:inherit;text-decoration:none}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 22px;position:relative}

/* ---------- HEADER ---------- */
header{position:fixed;top:0;left:0;right:0;z-index:50;display:flex;align-items:center;justify-content:space-between;padding:13px 22px;transition:.4s ease}
header.solid{background:rgba(231,213,172,.94);backdrop-filter:blur(8px);box-shadow:0 2px 0 var(--gold),0 3px 0 var(--rum)}
.brand{display:flex;align-items:center;gap:11px;transition:.4s}
.logo{height:44px;width:auto;display:block;transition:filter .4s}
header:not(.solid) .logo{filter:invert(1) sepia(.3) drop-shadow(0 1px 6px rgba(0,0,0,.5))}
footer .logo{filter:invert(1) sepia(.25)}
@media(max-width:520px){.logo{height:36px}}
nav.top{display:none}
.nav-call{display:inline-flex;align-items:center;gap:7px;font-family:var(--body);font-weight:700;font-size:.84rem;
  padding:9px 17px;border-radius:3px;background:var(--rum);color:#F1E6C7;border:1.5px solid var(--gold-li);
  box-shadow:0 6px 14px -7px var(--rum-deep)}
@media(min-width:980px){
  nav.top{display:flex;gap:24px;align-items:center}
  nav.top a{font-family:var(--map);font-size:1.04rem;letter-spacing:.02em;color:#F1E6C7;transition:.3s;position:relative;text-shadow:0 1px 3px rgba(0,0,0,.5)}
  header.solid nav.top a{color:var(--ink);text-shadow:none}
  nav.top a::after{content:"";position:absolute;left:0;bottom:-4px;height:2px;width:0;background:var(--rum);transition:.3s}
  nav.top a:hover::after,nav.top a.on::after{width:100%}
  nav.top a.on{color:var(--gold-li)}
  header.solid nav.top a.on{color:var(--rum)}
}

/* ---------- HERO (home) ---------- */
.hero{position:relative;min-height:100svh;display:flex;align-items:flex-end;color:#F4EAD0;overflow:hidden}
.hero-img{position:absolute;inset:0;z-index:-3}
.hero-img img{width:100%;height:100%;object-fit:cover;filter:sepia(.32) saturate(.85) contrast(1.02)}
.hero::after{content:"";position:absolute;inset:0;z-index:-2;
  background:linear-gradient(180deg,rgba(14,30,38,.55) 0%,rgba(14,30,38,.12) 32%,rgba(12,26,33,.5) 62%,rgba(10,22,28,.92) 100%)}
.hero::before{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;mix-blend-mode:soft-light;opacity:.5;
  background:radial-gradient(circle at 50% 40%,rgba(176,133,58,.25),transparent 60%)}
.hero-inner{padding:0 22px 54px;max-width:var(--maxw);margin:0 auto;width:100%}
.coord{font-family:var(--hand);font-size:1.5rem;color:var(--gold-li);display:flex;align-items:center;gap:9px;margin-bottom:6px;text-shadow:0 1px 4px rgba(0,0,0,.5)}
.coord::before{content:"✣";font-size:1.1rem}
.hero h1{font-family:var(--map);font-weight:400;line-height:1.02;letter-spacing:.005em;font-size:clamp(2.6rem,9vw,5.4rem);text-shadow:0 2px 26px rgba(0,0,0,.45)}
.hero h1 em{font-style:italic;color:var(--gold-li)}
.hero p.lead{font-family:var(--body);font-size:clamp(1.02rem,4.4vw,1.3rem);max-width:36ch;margin:18px 0 26px;color:rgba(244,234,208,.94)}
.hero-cta{display:flex;flex-wrap:wrap;gap:12px}
.btn{display:inline-flex;align-items:center;gap:9px;font-family:var(--body);font-weight:700;font-size:.96rem;padding:14px 24px;border-radius:3px;transition:.25s;cursor:pointer;border:1.5px solid transparent}
.btn-pri{background:var(--rum);color:#F4EAD0;border-color:var(--gold-li);box-shadow:0 12px 24px -12px var(--rum-deep)}
.btn-pri:hover{transform:translateY(-2px);background:var(--rum-deep)}
.btn-ghost{background:rgba(244,234,208,.08);color:#F4EAD0;border-color:rgba(244,234,208,.55);backdrop-filter:blur(3px)}
.btn-ghost:hover{background:rgba(244,234,208,.18)}
.scroll-dot{position:absolute;left:50%;bottom:14px;transform:translateX(-50%);font-family:var(--hand);font-size:1.1rem;color:var(--gold-li);writing-mode:vertical-rl;animation:bob 2.4s ease-in-out infinite}
@keyframes bob{0%,100%{transform:translateX(-50%) translateY(0)}50%{transform:translateX(-50%) translateY(7px)}}

/* ---------- PAGE BANNER (pagine interne) ---------- */
.pagebanner{position:relative;min-height:46vh;display:flex;align-items:flex-end;color:#F4EAD0;overflow:hidden;padding-top:70px}
.pagebanner img.bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-3;filter:sepia(.34) saturate(.82) contrast(1.02)}
.pagebanner::after{content:"";position:absolute;inset:0;z-index:-2;background:linear-gradient(180deg,rgba(14,30,38,.5),rgba(10,22,28,.9))}
.pagebanner .pb-in{max-width:var(--maxw);margin:0 auto;width:100%;padding:0 22px 38px}
.pagebanner .crumb{font-family:var(--hand);font-size:1.4rem;color:var(--gold-li);margin-bottom:2px}
.pagebanner h1{font-family:var(--map);font-weight:400;font-size:clamp(2.4rem,8vw,4.2rem);line-height:1;text-shadow:0 2px 22px rgba(0,0,0,.5)}

/* ---------- SECTION SHELL ---------- */
section{position:relative;z-index:2}
.band{padding:74px 0}
.kicker{display:flex;align-items:center;gap:14px;font-family:var(--hand);font-size:1.75rem;line-height:1;color:var(--rum);margin-bottom:8px}
.kicker .no{flex:0 0 auto;width:38px;height:38px;display:grid;place-items:center;border:2px dashed var(--gold);border-radius:50%;
  font-family:var(--map);font-size:1.05rem;color:var(--ink);transform:rotate(-4deg);background:rgba(241,230,199,.5)}
h2{font-family:var(--map);font-weight:400;line-height:1.06;letter-spacing:.005em;font-size:clamp(1.9rem,6vw,3.2rem);color:var(--ink)}
h2 em{font-style:italic;color:var(--rum);position:relative}
h2 em::after{content:"";position:absolute;left:0;right:0;bottom:-.06em;height:.38em;pointer-events:none;opacity:.9;
  background:no-repeat center/100% 100% url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 200 14' preserveAspectRatio='none'%3E%3Cpath d='M2 9 C40 3 80 4 118 7 C150 9 178 7 198 4' fill='none' stroke='%23B0853A' stroke-width='3' stroke-linecap='round'/%3E%3C/svg%3E")}
.band p.body{font-size:1.08rem;color:var(--ink-soft);max-width:64ch;margin-top:16px}
.band p.body b{color:var(--ink)}

/* prose (corpo pagine interne) */
.prose{max-width:760px}
.prose h2{margin:8px 0 6px}
.prose h3{font-family:var(--map);font-weight:400;font-size:1.6rem;color:var(--rum);margin:34px 0 6px}
.prose p{font-size:1.08rem;color:var(--ink-soft);margin:14px 0;max-width:66ch}
.prose p b,.prose strong{color:var(--ink);font-weight:600}
.prose a{color:var(--rum);text-decoration:underline;text-decoration-color:var(--gold);text-underline-offset:3px}
.prose ul{list-style:none;margin:16px 0;padding:0}
.prose ul li{padding:9px 0 9px 0;border-bottom:1px dashed var(--line);display:flex;gap:11px;align-items:baseline;color:var(--ink-soft)}
.prose ul li::before{content:"❧";color:var(--rum);flex:0 0 auto}
.prose img{border:2px solid var(--gold);border-radius:5px;margin:22px 0;box-shadow:var(--shadow);filter:sepia(.16)}
/* elenco vie d'arrampicata (topo) */
.prose ul.routes{list-style:none;margin:16px 0;padding:0;columns:2;column-gap:36px}
.prose ul.routes li{break-inside:avoid;padding:8px 0;border-bottom:1px dashed var(--line);display:flex;justify-content:space-between;gap:12px;align-items:baseline}
.prose ul.routes li::before{content:none}
.prose ul.routes .rn{font-family:var(--map);color:var(--ink);font-size:1rem}
.prose ul.routes .rg{font-family:var(--hand);font-size:1.1rem;color:var(--rum);white-space:nowrap;flex:0 0 auto}
@media(max-width:560px){.prose ul.routes{columns:1}}

/* divisore ornamentale */
.flourish{display:flex;align-items:center;justify-content:center;gap:16px;color:var(--gold);font-size:1.3rem;padding:6px 0}
.flourish::before,.flourish::after{content:"";height:1.5px;width:min(140px,30vw);background:linear-gradient(90deg,transparent,var(--gold))}
.flourish::after{transform:scaleX(-1)}

/* compass watermark */
.compass{position:absolute;width:210px;height:210px;opacity:.12;pointer-events:none;z-index:0;
  background:no-repeat center/contain url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100'%3E%3Cg fill='none' stroke='%232C2014' stroke-width='1'%3E%3Ccircle cx='50' cy='50' r='46'/%3E%3Ccircle cx='50' cy='50' r='38'/%3E%3C/g%3E%3Cg fill='%232C2014'%3E%3Cpolygon points='50,6 56,50 50,46 44,50'/%3E%3Cpolygon points='50,94 44,50 50,54 56,50'/%3E%3Cpolygon points='6,50 50,44 46,50 50,56'/%3E%3Cpolygon points='94,50 50,56 54,50 50,44'/%3E%3C/g%3E%3Cg fill='%238E2B20'%3E%3Cpolygon points='50,14 53,50 50,48 47,50'/%3E%3C/g%3E%3Ctext x='50' y='4' text-anchor='middle' font-size='8' font-family='serif' fill='%232C2014'%3EN%3C/text%3E%3C/svg%3E")}

/* intro / fatti */
.facts{display:flex;gap:12px;flex-wrap:wrap;margin-top:28px}
.fact{background:var(--sea);color:#F1E6C7;border:1.5px solid var(--gold);border-radius:4px;padding:14px 18px;flex:1 1 130px}
.fact b{font-family:var(--map);font-size:1.8rem;display:block;line-height:1;color:#F4EAD0}
.fact span{font-family:var(--hand);font-size:1.15rem;color:var(--gold-li)}
.safe-badge{display:flex;gap:16px;align-items:center;background:var(--card);border:1.5px solid var(--line);border-radius:6px;padding:16px 18px;box-shadow:var(--shadow);max-width:520px;margin-top:26px}
.safe-badge img{width:74px;height:74px;object-fit:contain;flex:0 0 auto;border:none;box-shadow:none;margin:0;filter:none}
.safe-badge b{font-family:var(--map);font-size:1.18rem;color:var(--ink)}
.safe-badge span{font-size:.9rem;color:var(--ink-soft);display:block;margin-top:2px}

/* card attività (home) */
.activities{background:var(--sea);color:#F1E6C7}
.activities h2,.dark h2{color:#F4EAD0}
.activities .kicker,.dark .kicker{color:var(--gold-li)}
.activities .kicker .no,.dark .kicker .no{color:#F4EAD0;border-color:var(--gold-li);background:rgba(244,234,208,.06)}
.activities h2 em,.dark h2 em{color:var(--gold-li)}
.act-grid{display:grid;gap:18px;margin-top:36px}
.act{position:relative;border-radius:6px;overflow:hidden;min-height:330px;display:flex;align-items:flex-end;isolation:isolate;border:2px solid var(--gold);box-shadow:var(--shadow)}
.act img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2;transition:transform .9s ease;filter:sepia(.25) saturate(.9)}
.act::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(14,30,38,.05),rgba(14,30,38,.9))}
.act:hover img{transform:scale(1.06)}
.act-body{padding:24px}
.act-body .tag{font-family:var(--hand);font-size:1.3rem;color:var(--gold-li)}
.act-body h3{font-family:var(--map);font-size:1.7rem;color:#F4EAD0;margin:2px 0 8px;line-height:1.08}
.act-body p{font-size:.96rem;color:rgba(244,234,208,.86);max-width:42ch}
.act-body .more{font-family:var(--hand);font-size:1.2rem;color:var(--gold-li);margin-top:10px;display:inline-block}
@media(min-width:760px){.act-grid{grid-template-columns:repeat(2,1fr)}.act.wide{grid-column:1/-1;min-height:300px}}

/* gallery */
.gallery{display:grid;grid-template-columns:repeat(2,1fr);gap:11px;margin-top:30px}
.gallery img{border-radius:5px;aspect-ratio:1/1;object-fit:cover;width:100%;box-shadow:var(--shadow);border:1.5px solid var(--gold);filter:sepia(.18);margin:0}
.gallery img.lead{grid-column:1/-1;aspect-ratio:16/10}
@media(min-width:760px){.gallery{grid-template-columns:repeat(4,1fr)}.gallery img.lead{grid-column:span 2;grid-row:span 2;aspect-ratio:auto}}

/* sezioni scure */
.dark{background:var(--sea);color:#F1E6C7}
.dark.deep{background:var(--sea-deep)}
.dark .prose p{color:rgba(244,234,208,.9)}
.dark .prose p b{color:var(--gold-li)}
.dark .prose h3{color:var(--gold-li)}
.dark .prose a{color:var(--gold-li)}
.dark .prose ul li{color:rgba(244,234,208,.9);border-color:rgba(244,234,208,.18)}
.dark .prose ul li::before{color:var(--gold-li)}

/* treasure map + sigilli */
.pasta-grid{display:grid;gap:32px;align-items:center;margin-top:20px}
.treasure-map{border:2px solid var(--gold);border-radius:6px;background:var(--card);padding:8px;box-shadow:var(--shadow)}
.treasure-map svg{display:block;width:100%;height:auto;border-radius:3px}
.fsm{width:100%;max-width:560px;margin:0 auto;display:block;border:2px solid var(--gold);border-radius:6px;box-shadow:var(--shadow);filter:sepia(.16)}
.chart-fig{max-width:700px;margin:26px 0;background:var(--card);border:2px solid var(--gold);border-radius:6px;padding:16px 16px 10px;box-shadow:var(--shadow)}
.chart-fig svg{display:block;width:100%;height:auto}
.chart-fig figcaption{font-family:var(--hand);font-size:1.25rem;color:var(--rum);margin-top:6px;text-align:center;line-height:1.2}
.seals{display:flex;gap:18px;margin-top:26px;flex-wrap:wrap}
.seal{text-align:center;width:100px}
.seal .wax{width:62px;height:62px;margin:0 auto 8px;border-radius:50%;display:grid;place-items:center;
  font-family:var(--map);font-size:1.4rem;color:#F4EAD0;background:radial-gradient(circle at 35% 30%,#B7392B,var(--rum-deep));
  box-shadow:0 6px 12px -4px rgba(0,0,0,.5),inset 0 0 0 3px rgba(255,255,255,.12);transform:rotate(-5deg)}
.seal:nth-child(2) .wax{transform:rotate(4deg)}.seal:nth-child(3) .wax{transform:rotate(-2deg)}
.seal small{font-family:var(--hand);font-size:1.15rem;color:var(--gold-li);display:block;line-height:1.1}
@media(min-width:860px){.pasta-grid{grid-template-columns:1.2fr 1fr}.fsm{margin-top:0}}

/* contatti */
.contact-grid{display:grid;gap:14px;margin-top:32px}
.ccard{background:rgba(244,234,208,.05);border:1.5px solid var(--gold);border-radius:5px;padding:22px;transition:.3s}
.ccard:hover{background:rgba(244,234,208,.12);transform:translateY(-3px)}
.ccard .ic{font-size:1.5rem;margin-bottom:8px}
.ccard b{display:block;font-family:var(--map);font-size:1.3rem;color:#F4EAD0}
.ccard span{font-family:var(--hand);font-size:1.15rem;color:var(--gold-li)}
.hours{margin-top:28px;display:flex;flex-wrap:wrap;gap:12px 28px;font-size:1rem;color:rgba(244,234,208,.9)}
.hours div b{font-family:var(--hand);font-size:1.25rem;color:var(--gold-li);margin-right:6px}
@media(min-width:680px){.contact-grid{grid-template-columns:repeat(3,1fr)}}

/* ---------- FOOTER ---------- */
footer{background:var(--sea-deep);color:rgba(241,230,199,.72);padding:46px 0 110px;font-size:.9rem;font-family:var(--body)}
footer .frow{display:flex;flex-direction:column;gap:24px}
footer a:hover{color:var(--gold-li)}
.fnav{display:flex;flex-direction:column;gap:9px;font-family:var(--map);font-size:1.02rem}
.fcontact p{margin:0 0 4px}
.fcontact a{color:rgba(241,230,199,.82)}
.fsocial{display:flex;gap:12px;margin:12px 0}
.fsocial a{display:inline-grid;place-items:center;width:40px;height:40px;border-radius:50%;border:1.5px solid var(--gold);color:#F4EAD0;font-family:var(--map);font-size:1rem;transition:.3s}
.fsocial a:hover{background:var(--rum)}
.fbar{margin-top:8px;font-size:.82rem;color:rgba(241,230,199,.5)}
@media(min-width:760px){footer .frow{flex-direction:row;justify-content:space-between;align-items:flex-start;gap:40px}}

/* ---------- STICKY DOCK ---------- */
.dock{position:fixed;left:0;right:0;bottom:0;z-index:60;display:flex;gap:8px;padding:8px;
  background:var(--sea-deep);box-shadow:0 -8px 24px -10px rgba(0,0,0,.6);border-top:2px solid var(--gold)}
.dock a{flex:1;display:flex;align-items:center;justify-content:center;gap:8px;font-family:var(--body);font-weight:700;font-size:.96rem;padding:13px;border-radius:4px}
.dock .d-call{background:var(--rum);color:#F4EAD0;border:1.5px solid var(--gold-li)}
.dock .d-wa{background:#1f7a44;color:#F4EAD0;border:1.5px solid var(--gold-li)}
@media(min-width:980px){.dock{display:none}}

/* reveal */
.ha{animation:heroIn .9s both cubic-bezier(.2,.7,.2,1)}
.hero h1.ha{animation-delay:.08s}.hero p.lead.ha{animation-delay:.18s}.hero .hero-cta.ha{animation-delay:.28s}
@keyframes heroIn{from{opacity:0;transform:translateY(26px)}to{opacity:1;transform:none}}
.js .rv{opacity:0;transform:translateY(28px);transition:opacity .8s ease,transform .8s cubic-bezier(.2,.7,.2,1)}
.js .rv.in{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){.ha,.js .rv{opacity:1;transform:none;transition:none;animation:none}.scroll-dot{animation:none}}
