/* Paginas estaticas de praia v2 — praias/<slug>/ e en/praias/<slug>/ — Portal Turismo Portugal — 2026-10-11
 * Gerado por _scripts/gen_praias_v2.py. Tema escuro (navy + dourado), igual ao cartao .bpc.
 * ATENCAO style.css ate 768px: main/section com padding 16px !important, [class*="-grid"] e [class*="-card"] com regras !important.
 * Por isso: nenhuma classe aqui contem "-grid" nem "-card"; main.pv2 e as seccoes anulam o padding com !important.
 */
.pv2-page{background:#07152A;}
main.pv2{
  --ink:#07152A; --ink2:#0B1B2B; --ink3:#10304F; --gold:#c9a84c; --gold-l:#e8c97a;
  --txt:rgba(255,255,255,.92); --mut:rgba(255,255,255,.62); --line:rgba(255,255,255,.09);
  display:block; background:var(--ink); color:var(--txt); font-family:'Inter',system-ui,sans-serif;
  padding:0 0 clamp(40px,6vw,72px) !important; margin:0; max-width:none !important; overflow:hidden;
}
main.pv2 > header, main.pv2 > section, main.pv2 > div, main.pv2 > p{padding-left:clamp(16px,5vw,64px) !important; padding-right:clamp(16px,5vw,64px) !important; max-width:none !important;}
.pv2 a{color:inherit;}
.pv2 h2{font-family:'Bodoni Moda',Georgia,serif; font-weight:600; letter-spacing:-.01em; color:#fff; font-size:clamp(1.6rem,3vw,2.2rem); line-height:1.1; margin:0 0 18px;}
.pv2 h2 em{font-style:italic; font-weight:400; color:var(--gold-l);}
.pv2-wrap{max-width:1120px; margin:0 auto;}

/* ── Hero ───────────────────────────────────────────────────────────────
 * Telemovel: foto em ecra inteiro por tras do texto. Computador (>900px): texto a esquerda + foto emoldurada
 * (cantos assimetricos 4/64 + moldura dourada desfasada, assinatura do site) — as miniaturas tem 800 px.
 */
main.pv2 > .pv2-hero{position:relative; isolation:isolate; padding-top:clamp(104px,14vh,150px) !important; padding-bottom:clamp(36px,6vw,72px) !important;
  background:radial-gradient(90% 120% at 100% 0%,rgba(201,168,76,.16) 0%,rgba(201,168,76,0) 50%),radial-gradient(80% 100% at 0% 100%,rgba(41,128,212,.18) 0%,rgba(41,128,212,0) 55%),linear-gradient(150deg,#07152A 0%,#0B1B2B 55%,#0F2a47 100%);}
.pv2-hero__in{position:relative; max-width:1120px; margin:0 auto; display:grid; grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr); gap:clamp(28px,5vw,72px); align-items:center;}
.pv2-hero--noimg .pv2-hero__in{grid-template-columns:1fr;}
.pv2-hero--noimg::after{content:''; position:absolute; inset:auto 0 0 0; height:60%; z-index:-1; pointer-events:none;
  background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1200 300' preserveAspectRatio='none'%3E%3Cg fill='none' stroke='%23e8c97a' stroke-width='1.2' opacity='.2'%3E%3Cpath d='M0 200 C150 170 300 230 450 200 S750 170 900 200 S1100 230 1200 200'/%3E%3Cpath d='M0 235 C150 205 300 265 450 235 S750 205 900 235 S1100 265 1200 235'/%3E%3Cpath d='M0 270 C150 240 300 300 450 270 S750 240 900 270 S1100 300 1200 270'/%3E%3C/g%3E%3C/svg%3E") bottom/100% 100% no-repeat;}
.pv2-hero__fig{position:relative; margin:0 14px 14px 0; animation:pv2-rise .9s cubic-bezier(.22,1,.36,1) both;}
.pv2-hero__fig::before{content:''; position:absolute; inset:0; transform:translate(14px,14px); border:1px solid rgba(232,201,122,.55); border-radius:4px 64px 4px 64px; pointer-events:none;}
.pv2-hero__ph{position:relative; aspect-ratio:4/5; max-height:72vh; border-radius:4px 64px 4px 64px; overflow:hidden; background:#0F2235; box-shadow:0 40px 80px -30px rgba(0,0,0,.8);}
.pv2-hero__img{width:100%; height:100% !important; object-fit:cover; display:block; animation:pv2-zoom 14s ease-out both;}
.pv2-hero__ph::after{content:''; position:absolute; inset:0; background:linear-gradient(to top,rgba(7,21,42,.35) 0%,rgba(7,21,42,0) 25%); pointer-events:none;}
.pv2-hero__text{min-width:0; animation:pv2-rise .7s cubic-bezier(.22,1,.36,1) both;}
.pv2-crumbs{display:flex; flex-wrap:wrap; align-items:center; line-height:1.4; gap:6px; margin:0 0 22px; font-size:.78rem; color:var(--mut);}
.pv2-crumbs a{text-decoration:none; color:var(--mut);} .pv2-crumbs a:hover{color:#fff;}
.pv2-crumbs span[aria-hidden]{opacity:.5;}
.pv2-kicker{display:flex; align-items:center; gap:12px; margin:0 0 14px; font-size:.72rem; font-weight:600; letter-spacing:.2em; text-transform:uppercase; color:var(--gold-l);}
.pv2-kicker::before{content:''; flex:0 0 32px; height:1px; background:linear-gradient(90deg,var(--gold-l),rgba(232,201,122,0));}
.pv2-hero h1{margin:0 0 16px; font-family:'Bodoni Moda',Georgia,serif; font-weight:600; color:#fff; font-size:clamp(2.5rem,5.6vw,4.6rem); line-height:1; letter-spacing:-.02em;}
.pv2-lead{margin:0 0 22px; max-width:46ch; font-size:1.02rem; line-height:1.65; color:rgba(255,255,255,.74);}
.pv2-chips{display:flex; flex-wrap:wrap; gap:8px; list-style:none; margin:0 0 26px; padding:0;}
.pv2-chip{display:inline-flex; align-items:center; gap:7px; padding:7px 13px; border-radius:999px; font-size:.8rem; font-weight:500; color:#fff; background:rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.14);}
.pv2-chip i{width:7px; height:7px; border-radius:50%; background:var(--gold-l);}
.pv2-chip--ok i{background:#4ade80;} .pv2-chip--ba{border-color:rgba(96,165,250,.5); background:rgba(37,99,235,.2);} .pv2-chip--ba i{background:#60a5fa;} .pv2-chip--warn i{background:#fbbf24;} .pv2-chip--bad i{background:#f87171;}
.pv2-chip--live{text-decoration:none;} .pv2-chip--live i{background:#ff4d6d; animation:pv2-pulse 2s infinite;}
.pv2-actions{display:flex; flex-wrap:wrap; gap:12px;}
.pv2-btn{display:inline-flex; align-items:center; justify-content:center; gap:10px; min-height:48px; padding:13px 24px; border-radius:999px; font-weight:600; font-size:.95rem; text-decoration:none; color:#fff; background:rgba(255,255,255,.07); border:1px solid rgba(255,255,255,.22); transition:transform .2s ease, background .2s ease, box-shadow .2s ease;}
.pv2-btn:hover{transform:translateY(-2px); background:rgba(255,255,255,.13);}
.pv2-btn svg{width:18px; height:18px; stroke:currentColor; fill:none; stroke-width:2.2; stroke-linecap:round; stroke-linejoin:round;}
.pv2-btn--gold{color:#07152A !important; border:0; background:linear-gradient(135deg,var(--gold) 0%,var(--gold-l) 100%); box-shadow:0 14px 34px -12px rgba(201,168,76,.9), inset 0 1px 0 rgba(255,255,255,.45);}
.pv2-btn--gold:hover{background:linear-gradient(135deg,var(--gold) 0%,var(--gold-l) 100%); box-shadow:0 18px 40px -12px rgba(201,168,76,1), inset 0 1px 0 rgba(255,255,255,.5);}
.pv2-btn:focus-visible{outline:2px solid var(--gold-l); outline-offset:3px;}
.pv2-credit{position:absolute; z-index:2; right:12px; bottom:9px; margin:0; font-size:9px; line-height:1.2; color:#fff; opacity:.28; max-width:calc(100% - 24px); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; transition:opacity .2s;}
.pv2-credit:hover,.pv2-credit:focus-within{opacity:.75;}
.pv2-credit a{text-decoration:none;}

/* ── Agora (condicoes) ────────────────────────────────────────────────── */
main.pv2 > .pv2-now{padding-top:clamp(8px,2vw,24px) !important;}
.pv2-panel{max-width:1120px; margin:0 auto; padding:clamp(20px,3vw,34px); border-radius:24px; border:1px solid var(--line);
  background:radial-gradient(120% 140% at 100% 0%,rgba(41,128,212,.16) 0%,rgba(41,128,212,0) 50%),linear-gradient(160deg,#0B1B2B 0%,#0D2540 100%);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.06),0 30px 60px -30px rgba(0,0,0,.7);}
.pv2-now__head{display:flex; align-items:baseline; justify-content:space-between; flex-wrap:wrap; gap:8px 18px;}
.pv2-now__head h2{margin:0 0 6px;}
.pv2-live{display:inline-flex; align-items:center; gap:8px; font-size:.78rem; color:var(--mut);}
.pv2-live i{width:8px; height:8px; border-radius:50%; background:#ff4d6d; animation:pv2-pulse 2s infinite;}
.pv2-verdict{margin:6px 0 20px; font-size:1.02rem; line-height:1.5; color:#fff; min-height:1.5em;}
.pv2-now[data-level="calm"] .pv2-verdict{color:#86efac;} .pv2-now[data-level="moderate"] .pv2-verdict{color:#fcd34d;} .pv2-now[data-level="rough"] .pv2-verdict{color:#fca5a5;}
.pv2-tiles{display:grid; grid-template-columns:repeat(6,minmax(0,1fr)); gap:10px;}
.pv2-tile{padding:14px 14px 13px; border-radius:16px; background:rgba(255,255,255,.04); border:1px solid var(--line); min-width:0;}
.pv2-tile b{display:block; font-size:.68rem; font-weight:600; letter-spacing:.12em; text-transform:uppercase; color:var(--mut);}
.pv2-tile strong{display:block; margin:6px 0 2px; font-family:'Fraunces',Georgia,serif; font-weight:400; font-size:clamp(1.4rem,2.4vw,1.9rem); line-height:1.1; color:#fff; font-variant-numeric:tabular-nums;}
.pv2-tile small{display:block; font-size:.74rem; color:var(--mut); white-space:nowrap; overflow:hidden; text-overflow:ellipsis;}
.pv2-tile--sea strong{color:#7dd3fc;}
.pv2-now.is-loading .pv2-tile strong{color:transparent; background:linear-gradient(90deg,rgba(255,255,255,.06),rgba(255,255,255,.14),rgba(255,255,255,.06)); background-size:200% 100%; border-radius:6px; animation:pv2-shim 1.4s infinite;}
.pv2-now.is-unavailable .pv2-tiles{display:none;}
.pv2-now__foot{display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:12px 20px; margin-top:18px;}
.pv2-src{margin:0; font-size:.72rem; color:rgba(255,255,255,.42);}
.pv2-src a{text-decoration:underline;}
.pv2-cam{display:inline-flex; align-items:center; gap:10px; padding:11px 18px; border-radius:999px; text-decoration:none; font-size:.9rem; font-weight:600; color:#fff; background:rgba(255,77,109,.14); border:1px solid rgba(255,77,109,.35); transition:background .2s;}
.pv2-cam:hover{background:rgba(255,77,109,.24);}
.pv2-cam i{width:8px; height:8px; border-radius:50%; background:#ff4d6d; animation:pv2-pulse 2s infinite;}

/* ── Sobre ────────────────────────────────────────────────────────────── */
main.pv2 > .pv2-about{padding-top:clamp(40px,6vw,72px) !important;}
.pv2-about__in{max-width:1120px; margin:0 auto; display:grid; grid-template-columns:minmax(0,1.25fr) minmax(0,.75fr); gap:clamp(24px,5vw,64px); align-items:start;}
.pv2-desc{margin:0 0 22px; font-size:clamp(1.02rem,1.4vw,1.14rem); line-height:1.75; color:var(--txt); max-width:62ch;}
.pv2-links{display:flex; flex-wrap:wrap; gap:10px;}
.pv2-facts{margin:0; padding:6px 22px; border-radius:20px; background:rgba(255,255,255,.035); border:1px solid var(--line);}
.pv2-facts div{display:flex; justify-content:space-between; gap:16px; padding:13px 0; border-bottom:1px solid var(--line);}
.pv2-facts div:last-child{border-bottom:0;}
.pv2-facts dt{font-size:.82rem; color:var(--mut);}
.pv2-facts dd{margin:0; font-size:.88rem; font-weight:600; color:#fff; text-align:right;}

/* ── Ficar / planear (reutiliza .bpc) ─────────────────────────────────── */
main.pv2 > .pv2-stay{padding-top:clamp(40px,6vw,72px) !important;}
.pv2-stay .bpc{max-width:1120px; margin:0 auto;}
.pv2-stay .bpc__cta{color:#07152A !important;}
.pv2-more{display:flex; flex-wrap:wrap; gap:10px 22px; margin:20px 0 0; padding:0; list-style:none;}
.pv2-more a{font-size:.88rem; color:rgba(255,255,255,.8); text-decoration:none; border-bottom:1px solid rgba(232,201,122,.4); padding-bottom:2px;}
.pv2-more a:hover{color:#fff; border-color:var(--gold-l);}

/* ── Praias perto ─────────────────────────────────────────────────────── */
main.pv2 > .pv2-near{padding-top:clamp(40px,6vw,72px) !important;}
.pv2-near__in{max-width:1120px; margin:0 auto;}
.pv2-near__list{display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; list-style:none; margin:0; padding:0;}
.pv2-near__item a{display:block; text-decoration:none; border-radius:18px; overflow:hidden; background:#0B1B2B; border:1px solid var(--line); transition:transform .25s ease, border-color .25s ease;}
.pv2-near__item a:hover{transform:translateY(-3px); border-color:rgba(232,201,122,.45);}
.pv2-near__ph{position:relative; aspect-ratio:16/10; background:linear-gradient(150deg,#0B1B2B,#10304F);}
.pv2-near__ph img{width:100%; height:100% !important; object-fit:cover;}
.pv2-near__km{position:absolute; left:10px; top:10px; padding:4px 10px; border-radius:999px; font-size:.72rem; font-weight:600; color:#07152A; background:var(--gold-l);}
.pv2-near__tx{padding:12px 14px 14px;}
.pv2-near__tx strong{display:block; font-size:.98rem; color:#fff; line-height:1.3;}
.pv2-near__tx small{display:block; margin-top:3px; font-size:.78rem; color:var(--mut);}
.pv2-near__all{display:inline-block; margin-top:18px; font-size:.9rem; color:var(--gold-l) !important; text-decoration:none;}

/* ── Nota ─────────────────────────────────────────────────────────────── */
main.pv2 > .pv2-note{max-width:1120px !important; margin:clamp(40px,6vw,64px) auto 0; font-size:.76rem; line-height:1.6; color:rgba(255,255,255,.45);}
.pv2-note a{text-decoration:underline;}

@keyframes pv2-rise{from{transform:translateY(18px);}to{transform:none;}} /* so transform: nunca animar opacity do LCP (watchlist) */
@keyframes pv2-zoom{from{transform:scale(1.06);}to{transform:scale(1);}}
@keyframes pv2-pulse{0%{box-shadow:0 0 0 0 rgba(255,77,109,.55);}70%{box-shadow:0 0 0 8px rgba(255,77,109,0);}100%{box-shadow:0 0 0 0 rgba(255,77,109,0);}}
@keyframes pv2-shim{from{background-position:200% 0;}to{background-position:-200% 0;}}

@media (max-width:980px){
  .pv2-tiles{grid-template-columns:repeat(3,minmax(0,1fr));}
  .pv2-about__in{grid-template-columns:1fr;}
}
@media (max-width:768px){
  main.pv2 > header, main.pv2 > section, main.pv2 > div, main.pv2 > p{padding-left:16px !important; padding-right:16px !important;}
  main.pv2 > .pv2-hero{min-height:82svh; display:flex; align-items:flex-end; padding-top:110px !important; padding-bottom:28px !important;}
  .pv2-hero__in{grid-template-columns:1fr; width:100%; position:static;} /* a foto (absoluta) cobre o header inteiro, nao so o bloco de texto */
  .pv2-hero__fig{position:absolute; inset:0; z-index:-2; margin:0; animation:none;}
  .pv2-hero__fig::before{display:none;}
  .pv2-hero__ph{position:absolute; inset:0; aspect-ratio:auto; max-height:none; border-radius:0; box-shadow:none;}
  .pv2-hero__ph::after{background:linear-gradient(180deg,rgba(7,21,42,.55) 0%,rgba(7,21,42,0) 22%,rgba(7,21,42,.35) 45%,rgba(7,21,42,.88) 72%,#07152A 100%);}
  main.pv2 > .pv2-hero.pv2-hero--noimg{min-height:0; padding-top:104px !important;}
  .pv2-hero h1{font-size:clamp(2.3rem,11vw,3.2rem); text-shadow:0 2px 24px rgba(7,21,42,.5);}
  .pv2-lead{color:rgba(255,255,255,.86);}
  .pv2-chip{background:rgba(7,21,42,.5); backdrop-filter:blur(8px); -webkit-backdrop-filter:blur(8px);}
  .pv2-actions .pv2-btn{flex:1 1 100%;}
  .pv2-tiles{grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px;}
  .pv2-panel{padding:18px 16px; border-radius:20px;}
  .pv2-near__list{grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px;}
  .pv2-near__tx{padding:10px 11px 12px;}
  .pv2-near__tx strong{font-size:.88rem;}
  .pv2-cam{width:100%; justify-content:center;}
}
@media (max-width:380px){ .pv2-near__list{grid-template-columns:1fr;} }
@media (prefers-reduced-motion:reduce){
  .pv2-hero__img,.pv2-hero__fig,.pv2-hero__text,.pv2-live i,.pv2-cam i,.pv2-chip--live i,.pv2-now.is-loading .pv2-tile strong{animation:none;}
  .pv2-btn,.pv2-near__item a{transition:none;}
}

/* ── Barra de baixo no telemovel (.mobile-bottom-nav) — copiada de beach-page.css (as paginas v2 nao carregam esse ficheiro) ── */
.mobile-bottom-nav{display:none; position:fixed; bottom:0; left:0; right:0; z-index:90; background:rgba(10,61,107,.97); backdrop-filter:blur(20px) saturate(1.5); -webkit-backdrop-filter:blur(20px) saturate(1.5); border-top:1px solid rgba(255,255,255,.2);}
.mobile-bottom-nav-inner{display:flex; height:60px; align-items:stretch; padding-bottom:env(safe-area-inset-bottom,0px);}
.mobile-nav-item{flex:1; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:3px; color:rgba(255,255,255,.6); font-size:.58rem; font-weight:500; letter-spacing:.05em; text-transform:uppercase; text-decoration:none;}
.mobile-nav-item svg{width:22px; height:22px; stroke:currentColor; fill:none; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; max-width:none;}
.mobile-nav-item.active,.mobile-nav-item:hover{color:#c9a84c;}
@media (max-width:768px){
  .mobile-bottom-nav{display:block;}
  body.pv2-page{padding-bottom:calc(80px + env(safe-area-inset-bottom,0px));}
}
