  :root{
    --red-1:#b01c1c;
    --red-2:#d93a1e;
    --red-3:#d1431a;
    --orange:#b8480c;
    --orange-light:#ffcb8f;
    --cream:#fdf1e6;
    --ink:#1e2430;
    --ink-soft:#4b5563;
    --line:#f0e2d6;
    --bg:#fffaf5;
    --surface:#fff;
    /* texto vermelho/laranja sobre fundo claro ou escuro; --red-1/--orange ficam para as superfícies */
    --red-text:var(--red-1);
    --orange-text:var(--orange);
    --font:"Montserrat",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  }
  /* Modo escuro: data-theme é sempre resolvido pelo script no <head> (escolha guardada ou a do sistema).
     As superfícies vermelhas (hero, menu, rodapé) não mudam; só as zonas claras escurecem. */
  :root[data-theme="dark"]{
    color-scheme:dark;
    --cream:#211915;
    --ink:#f3ebe4;
    --ink-soft:#b9ada3;
    --line:#3a2d26;
    --bg:#16110f;
    --surface:#1d1613;
    --red-text:#ff8f7a;
    --orange-text:#ffa45e;
  }
  /* pares de elementos por tema: o selo a cores / o selo branco do PDF a preto e branco, os ícones do botão */
  .only-dark{display:none;}
  [data-theme="dark"] .only-light{display:none;}
  [data-theme="dark"] .only-dark{display:block;}
  *{box-sizing:border-box;}
  html{scroll-behavior:smooth;background:var(--red-1);}
  body{
    margin:0;
    font-family:var(--font);
    color:var(--ink);
    background:var(--bg);
    line-height:1.55;
  }
  h1,h2,h3,.brand{
    font-family:var(--font);
    font-weight:800;
    letter-spacing:-.01em;
  }
  /* como no cartaz: Black nos títulos grandes, ExtraBold nos restantes */
  h1{font-weight:900;}
  a{color:inherit;}
  img{max-width:100%;height:auto;display:block;}
  .container{max-width:1120px;margin:0 auto;padding:0 24px;}

  a:focus-visible,button:focus-visible{outline:2px solid var(--orange);outline-offset:2px;}

  /* Film-grain texture overlay — adds editorial depth site-wide, purely decorative */
  .grain{
    position:fixed;inset:0;z-index:300;pointer-events:none;opacity:.045;mix-blend-mode:overlay;
    background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  }

  /* Back-to-top, with an SVG ring tracking scroll progress — replaces a flat top bar */
  .back-to-top{
    position:fixed;right:24px;bottom:24px;z-index:150;
    width:52px;height:52px;border-radius:50%;
    background:var(--red-1);color:var(--orange-light);border:none;
    display:flex;align-items:center;justify-content:center;font-size:1.15rem;line-height:1;
    cursor:pointer;opacity:0;transform:translateY(12px) scale(.9);pointer-events:none;
    transition:opacity .3s,transform .3s,background .2s,color .2s;
  }
  .back-to-top.visible{opacity:1;transform:translateY(0) scale(1);pointer-events:auto;}
  .back-to-top:hover{background:var(--orange);color:#fff;}
  .back-to-top span{position:relative;z-index:1;}
  .back-to-top-ring{position:absolute;inset:0;width:100%;height:100%;transform:rotate(-90deg);pointer-events:none;}
  .back-to-top-ring circle{fill:none;stroke-width:2;}
  .back-to-top-ring .ring-track{stroke:rgba(255,203,143,.28);}
  .back-to-top-ring .ring-progress{
    stroke:var(--orange-light);stroke-linecap:round;
    stroke-dasharray:132;stroke-dashoffset:132;
  }
  @media (prefers-reduced-motion: reduce){.back-to-top{transition:opacity .2s;}}

  .app-fab{
    position:fixed;left:24px;bottom:24px;z-index:150;
    display:flex;align-items:center;gap:8px;
    background:var(--orange);color:#fff;
    padding:12px 20px;border-radius:100px;font-weight:700;font-size:.9rem;
    text-decoration:none;box-shadow:0 4px 14px rgba(0,0,0,.12);
    transition:transform .15s,background .2s;
  }
  .app-fab:hover{background:var(--orange-light);transform:translateY(-2px);}
  @media (max-width:640px){.app-fab span:first-child{font-size:1.1rem;}}

  .sr-only{
    position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;
    clip:rect(0,0,0,0);white-space:nowrap;border:0;
  }
  .skip-link{
    position:absolute;top:0;left:0;z-index:1000;
    background:var(--red-1);color:#fff;padding:12px 20px;
    font-weight:700;text-decoration:none;border-radius:0 0 8px 0;
    transform:translateY(-100%);transition:transform .2s;
  }
  .skip-link:focus{transform:translateY(0);}

  /* Header bar — logo + single menu toggle, no inline links */
  .site-header{
    position:fixed;top:0;left:0;right:0;z-index:200;
    background:transparent;
  }
  .site-header.solid{background:color-mix(in srgb,var(--bg) 94%,transparent);backdrop-filter:blur(6px);border-bottom:1px solid var(--line);}
  body.menu-open .site-header.solid{background:transparent;backdrop-filter:none;border-bottom-color:transparent;}
  .header-bar{display:flex;align-items:center;justify-content:space-between;height:84px;}
  .brand{
    display:flex;align-items:center;gap:10px;flex-shrink:0;white-space:nowrap;
    font-weight:700;font-size:1.05rem;color:var(--red-text);
    text-decoration:none;
  }
  .site-header:not(.solid) .brand{color:#fff;}
  .brand-text{display:block;}
  .seal{
    width:38px;height:38px;object-fit:contain;flex-shrink:0;
  }
  .menu-toggle{
    display:flex;align-items:center;gap:12px;background:none;border:0;cursor:pointer;
    font-family:inherit;font-weight:700;font-size:.85rem;letter-spacing:.08em;text-transform:uppercase;
    color:var(--red-text);padding:8px 4px;
  }
  .site-header:not(.solid) .menu-toggle{color:#fff;}
  .header-actions{display:flex;align-items:center;gap:6px;}
  .theme-toggle{
    display:flex;align-items:center;justify-content:center;width:40px;height:40px;
    background:none;border:0;border-radius:8px;cursor:pointer;color:var(--red-text);padding:0;
  }
  .theme-toggle svg{width:20px;height:20px;}
  .site-header:not(.solid) .theme-toggle,body.menu-open .theme-toggle{color:#fff;}
  .menu-toggle-icon{width:26px;height:16px;position:relative;flex-shrink:0;}
  .menu-toggle-icon span{
    position:absolute;left:0;right:0;height:2px;background:currentColor;
    transition:transform .3s, opacity .3s, top .3s;
  }
  .menu-toggle-icon span:nth-child(1){top:0;}
  .menu-toggle-icon span:nth-child(2){top:7px;}
  .menu-toggle-icon span:nth-child(3){top:14px;}
  .menu-toggle.open .menu-toggle-icon span:nth-child(1){top:7px;transform:rotate(45deg);}
  .menu-toggle.open .menu-toggle-icon span:nth-child(2){opacity:0;}
  .menu-toggle.open .menu-toggle-icon span:nth-child(3){top:7px;transform:rotate(-45deg);}
  .menu-toggle.open{color:#fff;}

  /* Full-screen overlay menu */
  .menu-overlay{
    position:fixed;inset:0;z-index:190;background:var(--red-1);color:#fff;
    transform:translateY(-100%);transition:transform .5s cubic-bezier(.65,0,.35,1);
    overflow-y:auto;
  }
  .menu-overlay.open{transform:translateY(0);}
  .menu-overlay-inner{
    min-height:100vh;padding-top:120px;padding-bottom:60px;
    display:grid;grid-template-columns:1.5fr 1fr;gap:40px;align-items:start;
  }
  .menu-overlay-links{display:flex;flex-direction:column;}
  .menu-overlay-links a{
    display:flex;align-items:baseline;gap:18px;padding:16px 0;
    border-top:1px solid rgba(255,255,255,.22);
    text-decoration:none;color:#fff;font-family:var(--font);
    font-size:clamp(1.6rem,3.6vw,2.6rem);transition:color .2s,padding-left .2s;
  }
  .menu-overlay-links a:last-child{border-bottom:1px solid rgba(255,255,255,.22);}
  .menu-overlay-links a:hover{color:var(--orange-light);padding-left:10px;}
  .menu-overlay-links a span{
    font-family:-apple-system,sans-serif;font-size:.9rem;font-weight:700;color:var(--orange-light);
    flex-shrink:0;
  }
  .menu-overlay-side{display:flex;flex-direction:column;gap:28px;padding-top:8px;}
  .menu-overlay-side .btn{text-align:center;}
  .menu-overlay-meta p{margin:0 0 16px;font-size:.92rem;color:#ffe7d6;line-height:1.6;}
  .menu-overlay-meta a{color:var(--orange-light);text-decoration:none;}
  .menu-overlay-meta a:hover{text-decoration:underline;}

  body.menu-open{overflow:hidden;}

  /* Hero — asymmetric split, animated on load + scroll */
  .hero{
    position:relative;overflow:hidden;color:#fff;
    min-height:100vh;box-sizing:border-box;display:flex;align-items:center;
    background:linear-gradient(120deg,var(--red-1),var(--red-2) 45%,var(--red-3) 70%,var(--red-2));
    background-size:220% 220%;animation:heroGradient 16s ease infinite;
    padding:120px 0 90px;
  }
  @keyframes heroGradient{
    0%{background-position:0% 50%;}
    50%{background-position:100% 50%;}
    100%{background-position:0% 50%;}
  }
  .hero::before{
    content:"";position:absolute;inset:0;opacity:.14;
    /* triângulos soltos com o bico para a direita, como o fundo do cartaz de 2027 */
    background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cg fill='none' stroke='%23fff' stroke-opacity='.5'%3E%3Cpath d='M51 54 L28.5 67 L28.5 41 Z'/%3E%3Cpath d='M123 126 L100.5 139 L100.5 113 Z'/%3E%3Cpath d='M165 36 L142.5 49 L142.5 23 Z'/%3E%3C/g%3E%3C/svg%3E");
    background-size:180px 180px;
  }
  .hero-ghost{
    position:absolute;right:-30px;bottom:-30px;z-index:0;pointer-events:none;
    width:clamp(260px,32vw,520px);height:auto;opacity:.06;
    transition:transform .35s cubic-bezier(.2,.8,.2,1);
    will-change:transform;
  }
  .hero-kicker{
    display:inline-flex;align-items:center;gap:10px;
    color:#fff;font-weight:700;font-size:.8rem;letter-spacing:.16em;
    text-transform:uppercase;margin:0 0 18px;font-family:inherit;
    animation:heroFadeUp .7s ease both;
  }
  .hero-kicker::before{content:"";width:26px;height:1.5px;background:#fff;}
  .hero-grid{position:relative;z-index:1;width:100%;display:grid;grid-template-columns:1.4fr 1fr;gap:56px;align-items:end;}
  .scroll-cue{
    position:absolute;left:50%;bottom:28px;transform:translateX(-50%);z-index:1;
    color:rgba(255,255,255,.7);text-decoration:none;font-size:1.5rem;line-height:1;
    animation:scrollCue 2.2s ease-in-out infinite;
  }
  @keyframes scrollCue{
    0%,100%{transform:translate(-50%,0);opacity:.55;}
    50%{transform:translate(-50%,8px);opacity:1;}
  }

  @keyframes heroFadeUp{
    from{opacity:0;transform:translateY(26px);}
    to{opacity:1;transform:translateY(0);}
  }
  .hero-main .lede{animation:heroFadeUp .7s ease .5s both;}
  .hero-main .btn-row{animation:heroFadeUp .7s ease .62s both;}
  .hero-meta-block{animation:heroFadeUp .7s ease .74s both;}

  .hero h1{font-size:clamp(2.6rem,6.4vw,5.2rem);margin:0 0 8px;line-height:1.06;}
  .hero .accent{color:var(--orange-light);}
  .hero-main h1 .word-mask{display:inline-block;overflow:hidden;padding-bottom:.14em;margin-bottom:-.14em;vertical-align:top;}
  .hero-main h1 .word{display:inline-block;animation:wordUp .9s cubic-bezier(.22,1,.36,1) both;}
  @keyframes wordUp{from{transform:translateY(112%);opacity:0;}to{transform:translateY(0);opacity:1;}}
  .hero-main h1 .word-mask:nth-child(1) .word{animation-delay:.08s;}
  .hero-main h1 .word-mask:nth-child(2) .word{animation-delay:.15s;}
  .hero-main h1 .word-mask:nth-child(3) .word{animation-delay:.22s;}
  .hero-main h1 .word-mask:nth-child(4) .word{animation-delay:.29s;}
  .hero-main h1 .word-mask:nth-child(5) .word{animation-delay:.36s;}
  .hero-main h1 .word-mask:nth-child(6) .word{animation-delay:.43s;}
  .hero p.lede{font-size:1.15rem;color:#ffe7d6;max-width:560px;margin:18px 0 34px;}
  .btn-row{display:flex;gap:14px;flex-wrap:wrap;}
  .btn{
    display:inline-block;padding:14px 28px;border-radius:8px;font-weight:700;
    text-decoration:none;font-size:.95rem;transition:transform .15s;
  }
  .btn:hover{transform:translateY(-2px);}
  .btn-gold{background:var(--orange);color:#fff;}
  /* sobre superfícies vermelhas o laranja escuro perde-se: CTA branco, como as caixas do cartaz */
  .hero .btn-gold,.page-hero .btn-gold,.menu-overlay .btn-gold,.contact-panel .btn-gold{
    background:#fff;color:var(--red-1);
  }
  .hero .btn-gold:hover,.page-hero .btn-gold:hover,
  .menu-overlay .btn-gold:hover,.contact-panel .btn-gold:hover{background:var(--orange-light);}
  .btn-ghost{background:transparent;color:#fff;border:1.5px solid rgba(255,255,255,.55);}
  .btn-ghost-light{background:transparent;color:var(--red-text);border:1.5px solid var(--line);}

  .hero-meta-block{border-left:2px solid rgba(255,203,143,.5);padding-left:28px;}
  .hero-days{font-family:var(--font);font-size:clamp(3rem,6vw,4.5rem);color:#fff;line-height:1;}
  .hero-days .sep{color:var(--orange-light);padding:0 10px;font-weight:300;}
  .hero-month{font-weight:700;letter-spacing:.1em;text-transform:uppercase;font-size:.85rem;color:#fff;margin-top:10px;}
  .hero-meta-list{margin-top:26px;display:flex;flex-direction:column;gap:14px;}
  .hero-meta-list div{font-size:.92rem;color:#ffe7d6;}
  .hero-meta-list b{display:block;font-size:.72rem;text-transform:uppercase;letter-spacing:.06em;color:#fff;margin-bottom:2px;font-weight:700;}

  .countdown{display:flex;gap:18px;margin-top:28px;padding-top:24px;border-top:1px solid rgba(255,203,143,.3);}
  .countdown-unit{text-align:left;min-width:44px;}
  .countdown-unit b{display:block;font-family:var(--font);font-size:1.7rem;color:#fff;line-height:1;font-variant-numeric:tabular-nums;}
  .countdown-unit span{display:block;font-size:.65rem;text-transform:uppercase;letter-spacing:.07em;color:#fff;margin-top:5px;font-weight:700;}
  .hero-ics{
    display:inline-flex;align-items:center;gap:8px;margin-top:20px;
    font-size:.86rem;font-weight:600;color:#fff;text-decoration:none;
    border-bottom:1px solid rgba(255,255,255,.45);padding-bottom:3px;
  }
  .hero-ics:hover{color:var(--orange-light);border-bottom-color:var(--orange-light);}

  /* Sections */
  section{padding:88px 0;}
  .section-head{max-width:640px;margin:0 auto 48px;text-align:center;}
  .section-head.left{margin-left:0;text-align:left;}
  .kicker{
    display:flex;align-items:center;justify-content:center;gap:10px;
    color:var(--orange-text);font-weight:700;font-size:.8rem;letter-spacing:.12em;
    text-transform:uppercase;margin-bottom:14px;font-family:inherit;
  }
  .section-head.left .kicker{justify-content:flex-start;}
  .section-head h2{font-size:clamp(1.6rem,3vw,2.2rem);margin:0 0 14px;color:var(--red-text);}
  .section-head p{color:var(--ink-soft);margin:0;}

  /* About / intro cards */
  .intro-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;}
  .intro-card{
    background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:30px 26px;
  }
  .intro-card .ico{
    width:46px;height:46px;border-radius:10px;background:var(--red-1);color:var(--orange-light);
    display:flex;align-items:center;justify-content:center;font-size:1.3rem;margin-bottom:16px;
  }
  .intro-card h3{margin:0 0 8px;font-size:1.1rem;color:var(--ink);}
  .intro-card p{margin:0;color:var(--ink-soft);font-size:.94rem;}

  .alt{background:var(--cream);}

  /* Pricing */
  .pricing-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:26px;align-items:stretch;max-width:760px;margin:0 auto;}
  .price-card{
    background:var(--surface);border:1px solid var(--line);border-radius:16px;
    padding:34px 30px;display:flex;flex-direction:column;position:relative;
  }
  .price-card.featured{
    border:2px solid var(--orange);box-shadow:0 20px 40px -18px rgba(120,24,24,.35);
    transform:translateY(-8px);
  }
  .price-tag{
    position:absolute;top:-13px;left:50%;transform:translateX(-50%);
    background:var(--orange);color:#fff;font-size:.72rem;font-weight:800;
    padding:5px 14px;border-radius:999px;letter-spacing:.06em;text-transform:uppercase;
  }
  .price-card h3{margin:0 0 4px;font-size:1.2rem;color:var(--red-text);}
  .price-card .sub{color:var(--ink-soft);font-size:.85rem;margin-bottom:20px;}
  .price{font-family:var(--font);font-size:2.6rem;color:var(--ink);margin:0 0 6px;}
  .price-early{color:var(--orange-text);font-size:.8rem;font-weight:700;margin:0 0 22px;}
  .price small{font-size:1rem;color:var(--ink-soft);font-weight:400;}
  .price-card ul{list-style:none;padding:0;margin:0 0 28px;flex:1;}
  .price-card li{
    padding:9px 0;border-top:1px solid var(--line);font-size:.92rem;color:var(--ink-soft);
    display:flex;gap:10px;
  }
  .price-card li:first-child{border-top:none;}
  .price-card li::before{content:"✓";color:var(--orange-text);font-weight:800;}
  .price-card .btn{text-align:center;}
  .price-note{text-align:center;color:var(--ink-soft);font-size:.85rem;margin-top:36px;}

  /* Editions map — the fun, differentiating centerpiece of this section */
  .map-layout{display:grid;grid-template-columns:1.15fr .85fr;gap:56px;align-items:center;}
  .map-wrap{
    position:relative;display:flex;justify-content:center;align-items:center;padding:32px;
  }
  .map-wrap::before{
    content:"";position:absolute;inset:0;z-index:0;
    background:radial-gradient(circle at center, rgba(184,72,12,.22), rgba(184,72,12,0) 68%);
  }
  .map-wrap svg{
    position:relative;z-index:1;width:100%;max-width:340px;height:auto;
    filter:drop-shadow(0 22px 34px rgba(120,24,24,.22));
  }
  .map-outline{
    fill:var(--cream);fill-opacity:0;stroke:var(--orange);stroke-width:2;
    stroke-dasharray:4000;stroke-dashoffset:4000;
  }
  .map-wrap.visible .map-outline{
    animation:
      mapDraw 2.2s ease-out forwards,
      mapFill .7s ease-out 1.1s forwards,
      mapStrokeSettle .6s ease-out 1.9s forwards;
  }
  @keyframes mapDraw{to{stroke-dashoffset:0;}}
  @keyframes mapFill{to{fill-opacity:1;}}
  @keyframes mapStrokeSettle{to{stroke:var(--line);stroke-width:1.5;}}
  .map-dot-past{fill:var(--cream);stroke:var(--orange);stroke-width:2;opacity:0;animation:mapDotIn .5s ease 1.9s forwards;}
  .map-dot-current{fill:var(--orange);stroke:#fff;stroke-width:2.5;opacity:0;animation:mapDotIn .5s ease 1.9s forwards;}
  .map-dot-pulse{
    fill:var(--orange);opacity:0;transform-box:fill-box;transform-origin:center;
    animation:mapPulse 2.4s ease-out 1.9s infinite;
  }
  .map-label{
    font-family:var(--font);font-weight:700;font-size:11px;
    fill:var(--red-1);opacity:0;animation:mapDotIn .5s ease 1.9s forwards;
  }
  @keyframes mapDotIn{to{opacity:1;}}
  @keyframes mapPulse{
    0%{transform:scale(1);opacity:.55;}
    100%{transform:scale(3.6);opacity:0;}
  }
  @media (prefers-reduced-motion: reduce){
    .map-outline{fill-opacity:1;stroke-dashoffset:0;stroke:var(--line);stroke-width:1.5;animation:none;}
    .map-dot-past,.map-dot-current,.map-label{opacity:1;animation:none;}
    .map-dot-pulse{animation:none;opacity:0;}
  }
  .map-legend{display:flex;flex-direction:column;gap:24px;}
  .map-legend-item{display:flex;align-items:flex-start;gap:14px;}
  .map-dot{width:14px;height:14px;border-radius:50%;flex-shrink:0;margin-top:5px;}
  .map-dot.past{background:var(--cream);border:2px solid var(--orange);}
  .map-dot.current{background:var(--orange);border:2px solid var(--orange);}
  .map-legend-item b{display:block;font-family:var(--font);font-size:1.1rem;color:var(--red-text);}
  .map-legend-item span{display:block;font-size:.88rem;color:var(--ink-soft);margin-top:2px;}
  .map-legend-item a{display:inline-block;margin-top:6px;font-size:.85rem;font-weight:700;color:var(--red-text);text-decoration:none;}
  .map-legend-item a:hover{text-decoration:underline;}
  .edition-gallery{
    display:flex;gap:16px;margin-top:40px;padding-bottom:10px;
    overflow-x:auto;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;
    scrollbar-width:thin;scrollbar-color:var(--orange) transparent;
  }
  .edition-gallery img{
    flex:0 0 auto;width:min(74vw,300px);height:230px;object-fit:cover;border-radius:14px;
    scroll-snap-align:center;
  }
  .edition-gallery-caption{text-align:center;color:var(--ink-soft);font-size:.85rem;margin-top:14px;}

  /* Committees (Comissões) */
  .committee-groups{display:flex;flex-direction:column;gap:26px;}
  .committee-group{text-align:center;}

  /* Person cards */
  .people-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:28px;margin-top:24px;}
  .person-card{text-align:center;}
  .person-card img{
    width:96px;height:96px;border-radius:50%;object-fit:cover;margin:0 auto 14px;
    border:3px solid var(--cream);box-shadow:0 4px 14px rgba(0,0,0,.08);
  }
  .person-card .pending{margin-top:6px;font-size:.7rem;letter-spacing:.1em;text-transform:uppercase;font-weight:600;color:var(--orange-text);}
  .person-card h3,.person-card h4{margin:0 0 4px;font-size:.98rem;font-weight:600;color:var(--ink);font-family:var(--font);}
  .person-card span{display:block;font-size:.82rem;color:var(--ink-soft);}

  /* Sponsors */
  .sponsor-tiers{display:flex;flex-direction:column;gap:26px;}
  .sponsor-row{text-align:center;}
  .sponsor-row .label,.committee-group .label{
    display:block;font-size:.78rem;letter-spacing:.1em;text-transform:uppercase;
    color:var(--orange-text);font-weight:800;margin-bottom:14px;font-family:inherit;margin-top:0;
  }
  .sponsor-slots{display:flex;justify-content:center;gap:18px;flex-wrap:wrap;}
  .sponsor-slot{
    width:150px;height:74px;border:1.5px dashed var(--line);border-radius:10px;
    display:flex;align-items:center;justify-content:center;color:#b7b0a4;font-size:.78rem;
    background:#fff; /* placa branca também no modo escuro: os logótipos de terceiros são escuros */
  }
  .sponsor-slot.filled{
    width:auto;max-width:280px;height:auto;min-height:90px;padding:16px 24px;
    border:1.5px solid var(--line);
  }
  .sponsor-slot.filled img{max-width:100%;max-height:64px;object-fit:contain;}

  /* Contact */
  .contact-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:48px;align-items:start;}
  .contact-list{list-style:none;margin:0;padding:0;}
  .contact-list li{display:flex;gap:14px;padding:16px 0;border-top:1px solid var(--line);}
  .contact-list li:first-child{border-top:none;}
  .contact-list .ico{
    width:40px;height:40px;border-radius:50%;background:var(--cream);border:1.5px solid var(--orange);
    display:flex;align-items:center;justify-content:center;flex-shrink:0;font-size:1rem;
  }
  .contact-list b{display:block;font-size:.8rem;color:var(--ink-soft);font-weight:600;text-transform:uppercase;letter-spacing:.05em;}
  .contact-list a{color:var(--red-text);text-decoration:none;font-weight:600;}
  .contact-list a:hover{text-decoration:underline;text-underline-offset:3px;}
  .contact-list .ico{background:var(--surface);}
  .contact-panel{
    background:linear-gradient(135deg,var(--red-1),#c22c1c);color:#fff;
    border-radius:16px;padding:36px;
  }
  .contact-panel h3{margin:0 0 10px;font-family:var(--font);font-size:1.4rem;}
  .contact-panel p{color:#ffe7d6;font-size:.94rem;margin:0 0 24px;}

  .logo-panel{
    display:flex;align-items:center;justify-content:center;
    background:#fff;border:1px solid var(--line);border-radius:16px;padding:36px;
  }
  .logo-panel img{max-width:330px;}

  /* Marquee ticker */
  .marquee{
    background:var(--red-1);color:var(--orange-light);overflow:hidden;padding:15px 0;
    border-top:1px solid rgba(255,255,255,.08);border-bottom:1px solid rgba(255,255,255,.08);
  }
  .marquee-track{display:flex;align-items:center;gap:28px;width:max-content;animation:marqueeScroll 26s linear infinite;}
  .marquee-track span{
    display:flex;align-items:center;gap:28px;
    font-weight:700;letter-spacing:.07em;text-transform:uppercase;font-size:.82rem;white-space:nowrap;
  }
  .marquee-track span::after{content:"✦";color:var(--orange-text);font-size:.7rem;}
  @keyframes marqueeScroll{from{transform:translateX(0);}to{transform:translateX(-50%);}}
  .marquee:hover .marquee-track{animation-play-state:paused;}
  @media (prefers-reduced-motion: reduce){.marquee-track{animation:none;}}

  /* Full-bleed statement / pull-quote break */
  .statement{background:var(--red-1);color:#fff;padding:120px 0;position:relative;overflow:hidden;text-align:center;}
  .statement::before{
    content:"\201C";position:absolute;top:-.12em;left:50%;transform:translateX(-50%);
    font-family:var(--font);font-size:16rem;color:rgba(255,255,255,.06);line-height:1;pointer-events:none;
  }
  .statement-inner{position:relative;max-width:860px;margin:0 auto;}
  .statement blockquote{
    margin:0;font-family:var(--font);font-size:clamp(1.6rem,3.6vw,2.7rem);line-height:1.35;font-style:normal;
  }
  .statement blockquote .accent{color:var(--orange-light);}
  .statement cite{
    display:block;margin-top:28px;font-style:normal;font-size:.82rem;
    letter-spacing:.1em;text-transform:uppercase;color:var(--orange-light);font-weight:700;
  }

  /* Section ghost numerals — pure CSS counter, no markup changes needed */
  main{counter-reset:section;}
  main section:has(.section-head){counter-increment:section;}
  .section-head{position:relative;}
  .section-head::before{
    content:counter(section,decimal-leading-zero);
    position:absolute;top:-42px;left:50%;transform:translateX(-50%);
    font-family:var(--font);font-size:4.6rem;font-weight:700;line-height:1;
    color:var(--line);opacity:.7;z-index:-1;
  }
  .section-head.left::before{left:0;transform:none;}
  @supports not (selector(:has(a))){.section-head::before{content:none;}}

  /* Card hover-lift */
  .intro-card,.extra-card,.hotel-card{transition:transform .25s ease,border-color .25s ease,box-shadow .25s ease;}
  .intro-card:hover,.extra-card:hover,.hotel-card:hover{
    transform:translateY(-6px);border-color:var(--orange-text);box-shadow:0 16px 30px -20px rgba(120,24,24,.35);
  }
  .price-card{transition:box-shadow .25s ease,border-color .25s ease;}
  .price-card:hover{box-shadow:0 16px 30px -20px rgba(120,24,24,.3);}
  .person-card img{transition:transform .3s ease,box-shadow .3s ease;}
  .person-card:hover img{transform:scale(1.06);box-shadow:0 10px 22px -8px rgba(120,24,24,.35);}
  .sponsor-slot.filled{transition:border-color .25s ease,transform .25s ease;}
  .sponsor-slot.filled:hover{border-color:var(--orange-text);transform:translateY(-4px);}

  footer{background:var(--red-1);color:#f7ded0;padding:50px 0 26px;position:relative;overflow:hidden;}
  footer::before{
    content:"";position:absolute;top:50%;right:-70px;transform:translateY(-50%);
    width:320px;height:320px;z-index:0;pointer-events:none;
    background:url("/images/spmc-logo.png") center/contain no-repeat;
    opacity:.07;
  }
  [data-theme="dark"] footer::before{background-image:url("/images/spmc-logo-white.png");}
  footer .container{position:relative;z-index:1;}
  .footer-grid{display:flex;justify-content:space-between;flex-wrap:wrap;gap:24px;margin-bottom:30px;}
  .footer-brand{font-family:var(--font);font-size:1.2rem;color:#fff;}
  .footer-links{display:flex;gap:22px;flex-wrap:wrap;list-style:none;padding:0;margin:0;font-size:.85rem;}
  .footer-links a{text-decoration:none;color:#f7ded0;}
  .footer-bottom{
    border-top:1px solid rgba(255,255,255,.15);padding-top:22px;
    font-size:.82rem;color:#f7ded0;display:flex;justify-content:space-between;flex-wrap:wrap;gap:10px;
  }

  /* Workshops / extras */
  .extras-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:26px;}
  .extra-card{
    background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:28px;
    display:flex;flex-direction:column;
  }
  .extra-card h3{margin:0 0 6px;font-size:1.1rem;color:var(--red-text);}
  .extra-card p{margin:0 0 20px;color:var(--ink-soft);font-size:.92rem;flex:1;}
  .extra-card .btn{align-self:flex-start;}
  /* Lista de factos (rótulo + valor), sem caixa */
  .facts{list-style:none;margin:0 0 4px;padding:0;}
  .facts li{padding:14px 0;border-top:1px solid var(--line);font-size:.95rem;color:var(--ink-soft);}
  .facts li:first-child{border-top:none;}
  .facts strong{display:block;font-size:.72rem;text-transform:uppercase;letter-spacing:.08em;color:var(--ink);margin-bottom:2px;}

  /* Aviso em destaque (regras de compra) — filete, não caixa */
  .notice{
    border-left:3px solid var(--orange);padding:4px 0 4px 18px;margin:26px 0;
    color:var(--ink);font-size:.95rem;
  }

  /* Mapa embebido */
  .map-embed{
    position:relative;aspect-ratio:4/3;margin:20px 0 14px;
    border-radius:16px;overflow:hidden;border:1px solid var(--line);max-width:100%;
  }
  .map-embed iframe{position:absolute;inset:0;width:100%;height:100%;border:0;}

  /* Ementa do jantar — cartão de menu, centrado e sem caixas */
  .menu-card{max-width:680px;margin:0 auto;text-align:center;}
  .menu-course + .menu-course{margin-top:34px;padding-top:34px;border-top:1px solid var(--line);}
  .menu-course h3{
    margin:0 0 16px;font-size:.78rem;letter-spacing:.18em;text-transform:uppercase;
    color:var(--orange-text);font-weight:800;
  }
  .menu-course ul{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:12px;}
  .menu-course li{font-size:1.02rem;color:var(--ink);line-height:1.45;}
  .menu-foot{
    margin:40px 0 0;padding-top:26px;border-top:2px solid rgba(184,72,12,.35);
    color:var(--ink-soft);font-size:.85rem;
  }
  @media (max-width:620px){.menu-course li{font-size:.95rem;}}

  .workshop-video{margin:0 0 40px;text-align:center;}
  .workshop-video video{width:100%;max-width:640px;display:block;margin:0 auto;border-radius:16px;}

  /* Sponsor rows without confirmed sponsors yet */
  .sponsor-row.empty .label{margin-bottom:4px;}
  .sponsor-row.empty .tbd{color:#b7b0a4;font-size:.85rem;}

  /* Subpage hero (Comunicações, Informações) */
  .page-hero{
    position:relative;overflow:hidden;color:#fff;
    background:linear-gradient(120deg,var(--red-1),var(--red-2) 45%,var(--red-3) 70%,var(--red-2));
    background-size:220% 220%;animation:heroGradient 16s ease infinite;
    padding:168px 0 64px;
  }
  .page-hero .container{position:relative;z-index:1;}
  .page-hero h1{font-size:clamp(2.2rem,4.6vw,3.6rem);margin:0 0 10px;line-height:1.1;animation:heroFadeUp .7s ease .1s both;}
  .page-hero p{color:#ffe7d6;margin:0;max-width:620px;animation:heroFadeUp .7s ease .2s both;}
  .breadcrumb{font-size:.85rem;margin-bottom:14px;animation:heroFadeUp .7s ease both;}
  .breadcrumb a{color:#fff;text-decoration:underline;text-underline-offset:3px;}
  .breadcrumb a:hover{text-decoration:underline;}

  /* Scroll-reveal: fade up once when a section enters the viewport */
  .reveal{opacity:0;transform:translateY(24px);transition:opacity .6s ease,transform .6s ease;}
  .reveal.visible{opacity:1;transform:translateY(0);}
  .reveal-group > *{opacity:0;transform:translateY(24px);transition:opacity .6s ease,transform .6s ease;}
  .reveal-group > *.visible{opacity:1;transform:translateY(0);}
  .reveal-group > *:nth-child(2){transition-delay:.08s;}
  .reveal-group > *:nth-child(3){transition-delay:.16s;}
  .reveal-group > *:nth-child(4){transition-delay:.24s;}
  .reveal-group > *:nth-child(5){transition-delay:.32s;}
  .reveal-group > *:nth-child(6){transition-delay:.4s;}
  .pricing-grid.reveal-group > .price-card.featured.visible{transform:translateY(-8px);}
  @media (prefers-reduced-motion: reduce){
    .reveal,.reveal-group > *{opacity:1;transform:none;transition:none;}
    .hero-main .lede,.hero-main .btn-row,.hero-meta-block,
    .page-hero h1,.page-hero p,.breadcrumb{animation:none;}
    .hero-main h1 .word{animation:none;opacity:1;transform:none;}
  }

  /* Long-form content (Comunicações) */
  .prose{max-width:760px;margin:0 auto;}
  .prose h2{color:var(--red-text);font-size:1.4rem;margin:40px 0 14px;}
  .prose h2:first-child{margin-top:0;}
  .prose h3{color:var(--ink);font-size:1.05rem;margin:24px 0 8px;}
  .prose p{color:var(--ink-soft);margin:0 0 14px;}
  .prose ul,.prose ol{margin:0 0 14px;padding-left:22px;color:var(--ink-soft);}
  .prose li{margin-bottom:6px;}
  .prose strong{color:var(--ink);}
  .deadline-table{width:100%;border-collapse:collapse;margin:0 0 24px;}
  .deadline-table td{padding:10px 0;border-top:1px solid var(--line);font-size:.94rem;color:var(--ink-soft);}
  .deadline-table td:first-child{color:var(--ink);font-weight:600;}
  .deadline-table td:last-child{text-align:right;color:var(--red-text);font-weight:700;}
  .deadline-table tr:first-child td{border-top:none;}

  /* Info page (Informações) */
  .info-split{display:grid;grid-template-columns:1fr 1fr;gap:56px;}
  .info-col h3{margin:0 0 16px;font-size:1.1rem;color:var(--red-text);}
  .info-col.divider{border-left:2px solid rgba(184,72,12,.35);padding-left:40px;}
  .info-col .contact-list li{padding:12px 0;}


  /* Image slider (Informações) */
  .slider{position:relative;border-radius:16px;overflow:hidden;background:var(--ink);}
  .slider-track{display:flex;transition:transform .5s ease;}
  .slider-slide{min-width:100%;position:relative;}
  .slider-slide img{width:100%;height:420px;object-fit:cover;display:block;}
  .slider-caption{
    position:absolute;left:0;right:0;bottom:0;padding:20px 26px;
    background:linear-gradient(0deg,rgba(60,12,8,.75),transparent);
    color:#fff;font-size:.95rem;font-weight:600;
  }
  .slider-nav{
    position:absolute;top:50%;transform:translateY(-50%);
    width:40px;height:40px;border-radius:50%;border:none;cursor:pointer;
    background:rgba(255,255,255,.85);color:var(--red-1);font-size:1.1rem;font-weight:800;
  }
  .slider-nav.prev{left:14px;}
  .slider-nav.next{right:14px;}
  .slider-dots{position:absolute;bottom:16px;right:20px;display:flex;gap:6px;}
  .slider-dots button{
    width:8px;height:8px;border-radius:50%;border:none;background:rgba(255,255,255,.5);cursor:pointer;padding:0;
  }
  .slider-dots button.active{background:var(--orange);}

  /* Hotels (Informações) */
  .hotel-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:26px;}
  .hotel-card{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:26px;}
  .hotel-card .badge{
    display:inline-block;background:var(--cream);color:var(--red-text);font-size:.72rem;font-weight:800;
    letter-spacing:.06em;text-transform:uppercase;padding:4px 10px;border-radius:999px;margin-bottom:12px;
  }
  .hotel-card h3{margin:0 0 8px;font-size:1.05rem;color:var(--red-text);}
  .hotel-card p{margin:0;color:var(--ink-soft);font-size:.9rem;}

  /* Sticky section dot-nav (homepage only, desktop) */
  .dot-nav{
    position:fixed;top:50%;right:26px;transform:translateY(-50%);z-index:150;
    display:flex;flex-direction:column;gap:14px;
  }
  .dot-nav a{
    width:9px;height:9px;border-radius:50%;background:var(--line);display:block;
    transition:background .2s,transform .2s;position:relative;
  }
  .dot-nav a:hover,.dot-nav a.active{background:var(--orange);transform:scale(1.35);}
  .dot-nav a .dot-label{
    position:absolute;right:20px;top:50%;transform:translateY(-50%);
    background:var(--red-1);color:#fff;font-size:.72rem;font-weight:700;white-space:nowrap;
    padding:5px 10px;border-radius:6px;opacity:0;pointer-events:none;transition:opacity .2s;
  }
  .dot-nav a:hover .dot-label{opacity:1;}
  @media (max-width:1180px){.dot-nav{display:none;}}

  @media (max-width:960px){
    .hero-grid{grid-template-columns:1fr;}
    .menu-overlay-inner{grid-template-columns:1fr;padding-top:100px;}
    .menu-overlay-links a{font-size:1.7rem;padding:12px 0;}
    .hero-ghost{display:none;}
    .section-head::before{font-size:3.2rem;top:-30px;}
  }

  @media (max-width:860px){
    .intro-grid,.pricing-grid,.extras-grid,.info-split,.hotel-grid,.map-layout{grid-template-columns:1fr;}
    .info-col.divider{border-left:none;padding-left:0;border-top:2px solid rgba(184,72,12,.35);padding-top:32px;margin-top:8px;}
    .price-card.featured{transform:none;}
    .contact-grid{grid-template-columns:1fr;}
    .slider-slide img{height:280px;}
    .edition-gallery{
      display:grid;grid-template-columns:1fr 1fr;gap:12px;
      overflow:visible;scroll-snap-type:none;padding-bottom:0;
    }
    .edition-gallery img{width:100%;height:150px;scroll-snap-align:none;}
    .countdown{gap:12px;}
    .countdown-unit{min-width:38px;}
    .countdown-unit b{font-size:1.4rem;}
  }

  /* Telemóvel: menos densidade, menos repetição — o hero vive num ecrã só */
  @media (max-width:640px){
    .container{padding:0 20px;}
    section{padding:56px 0;}
    .section-head{margin-bottom:32px;}
    .section-head h2{font-size:1.55rem;}
    .section-head p{font-size:.95rem;}
    .section-head::before{font-size:2.6rem;top:-24px;}

    /* o nome completo continua legível: parte em duas linhas em vez de ser cortado */
    .brand{font-size:.74rem;gap:8px;white-space:normal;letter-spacing:0;}
    .brand-text{line-height:1.25;}
    .brand-long{display:block;}
    .seal{width:32px;height:32px;}
    .menu-toggle-label{display:none;}

    .hero{min-height:auto;padding:110px 0 56px;}
    .hero-grid{gap:6px;}
    .hero h1{font-size:clamp(2.1rem,9vw,2.9rem);}
    .hero p.lede{font-size:1rem;margin:14px 0 26px;}
    /* lado a lado não cabem: "Ver preços e inscrever-me" partia em duas linhas
       e arrastava o botão vizinho para a mesma altura. Empilhados e sem quebra. */
    .btn-row{flex-direction:column;align-items:stretch;gap:10px;}
    .btn-row .btn{flex:none;text-align:center;white-space:nowrap;padding:15px 18px;}
    .scroll-cue{display:none;}
    /* a data e o local já estão no kicker — no telemóvel fica só a contagem */
    .hero-days,.hero-month,.hero-meta-list{display:none;}
    .hero-meta-block{
      border-left:none;padding-left:0;margin-top:30px;
      border-top:1px solid rgba(255,203,143,.45);padding-top:22px;
    }
    .countdown{margin-top:0;padding-top:0;border-top:none;justify-content:space-between;gap:8px;}
    .countdown-unit{min-width:0;}
    .hero-ics{margin-top:18px;}

    .marquee{padding:11px 0;}
    .marquee span{font-size:.78rem;}

    .info-split,.map-layout,.contact-grid{gap:32px;}
    .info-col.divider{padding-top:26px;}
    .price-card{padding:28px 22px;}
    .price{font-size:2.2rem;}
    .contact-panel,.logo-panel{padding:26px;}
    .people-grid{gap:20px;}
    .prose h2{font-size:1.25rem;margin:32px 0 12px;}
    .footer-grid{flex-direction:column;gap:18px;}

    .menu-overlay-inner{padding-top:88px;padding-bottom:40px;gap:28px;}
    .menu-overlay-links a{font-size:1.35rem;padding:13px 0;gap:14px;}
    .menu-overlay-links a span{font-size:.75rem;}
    .menu-overlay-side{gap:20px;}
    .menu-overlay-meta p{font-size:.88rem;margin-bottom:12px;}
  }
