:root{
    --ink:#1b1621;
    --muted:#6f6577;
  
    /* palette (no bootstrap defaults) */
    --purple-950:#1a0628;
    --purple-900:#2a0b3f;
    --purple-800:#3b1357;
    --purple-700:#4c1d6b;
  
    --magenta:#d63a7c;
    --orange:#f2a248;
    --red:#b11a2a;
  
    --paper:#fbf6f2;
    --paper-2:#f5ece8;
  
    --stroke: rgba(20, 10, 30, .10);
    --shadow: 0 18px 55px rgba(10, 6, 20, .18);
  
    --r-xl:22px;
    --r-lg:18px;
    --r-md:14px;
  }
  
  *{ box-sizing:border-box; }
  body{
    font-family:"Source Sans 3", system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
    color:var(--ink);
    background: linear-gradient(180deg, #ffffff 0%, #f8f2ef 35%, #f6eeea 100%);
  }
  
  /* ============ TOP STRIP ============ */
  .topstrip{
    background:#fff;
    border-bottom:1px solid var(--stroke);
  }
  .brand-mark{
    width:44px; height:44px;
    border-radius:14px;
    overflow:hidden;
    box-shadow: 0 10px 22px rgba(0,0,0,.10);
    flex:0 0 auto;
  }
  .brand-mark-img{ width:100%; height:100%; object-fit:cover; }
  .brand-name{
    font-weight:900;
    line-height:1.05;
  }
  .brand-sub{
    color:var(--muted);
    font-weight:700;
    letter-spacing:.5px;
  }
  .topstrip-std{
    font-weight:1000;
    letter-spacing:1px;
    color:var(--red);
    font-size: 60px;
  }
  
  /* ============ HERO (single background) ============ */
  .hero{
    position:relative;
    min-height: 300px;
    overflow:hidden;
    border-bottom: 1px solid var(--stroke);
  }
  
  /* Background image: cells + city vibe (mock) */
  .hero-bg{
    position:absolute;
    inset:0;
    background-image:
      url("img/header.png");
    background-size: cover;
    background-position: left center;
    filter: saturate(1.15) contrast(1.05);
    transform: scale(1.03);
  }
  
  /* Purple overlay like the JPG banner */
  /* .hero-overlay{
    position:absolute;
    inset:0;
    background:
      radial-gradient(900px 320px at 18% 45%, rgba(255,255,255,.10), rgba(255,255,255,0) 60%),
      linear-gradient(90deg, rgba(42,11,63,.82) 0%, rgba(59,19,87,.78) 45%, rgba(59,19,87,.88) 100%);
  } */
  
  /* Content aligned to right like poster */
  .hero-inner{
    position:relative;
    padding: 34px 0;
    min-height: 300px;
    display:flex;
    justify-content: flex-end;
    align-items: center;
  }
  .hero-right{
    width: min(640px, 100%);
    padding-left: 10px;
  }
  .hero-title{
    color:#fff;
    font-weight:900;
    letter-spacing:.6px;
    line-height:1.12;
    font-size: clamp(1.55rem, 2.2vw, 2.45rem);
    margin:0 0 18px;
  }
  .hero-strong{ font-weight:1000; }
  
  .hero-sub{
    display:flex;
    align-items:flex-end;
    justify-content: space-between;
    gap: 18px;
    flex-wrap: wrap;
  }
  .hero-jornada{
    color: rgba(255,255,255,.95);
    font-weight:1000;
    letter-spacing:.6px;
    line-height:1.05;
    font-size: 1.25rem;
  }
  .hero-jornada span{
    font-weight:900;
    opacity:.95;
  }
  
  .hero-dates{
    display:flex;
    gap:12px;
    flex-wrap: wrap;
  }
  .date-chip{
    display:grid;
    grid-template-columns: 1fr auto;
    align-items:center;
    gap:10px;
    padding:10px 12px;
    border-radius:14px;
    border:1px solid rgba(255,255,255,.25);
    box-shadow: 0 12px 26px rgba(0,0,0,.18);
    backdrop-filter: blur(8px);
  }
  .chip-num{
    color:#fff;
    font-weight:1000;
    font-size:1.65rem;
    line-height:1;
  }
  .chip-num span{
    font-size:1.05rem;
    opacity:.95;
    padding:0 4px;
  }
  .chip-meta{
    color: rgba(255,255,255,.95);
    font-weight:1000;
    text-transform: uppercase;
    font-size:.92rem;
    line-height:1.05;
    text-align:right;
  }
  
  .chip-orange{ background: linear-gradient(135deg, rgba(242,162,72,.95), rgba(242,162,72,.62)); }
  .chip-pink{ background: linear-gradient(135deg, rgba(214,58,124,.95), rgba(214,58,124,.62)); }
  
  /* ============ RIBBON ============ */
  .ribbon-wrap{ margin-top: 14px; }
  .ribbon{
    background: linear-gradient(90deg, rgba(75,24,102,.10), rgba(75,24,102,.06));
    border: 1px solid var(--stroke);
    border-left: 6px solid var(--purple-700);
    color:#3a2247;
    padding: 12px 14px;
    border-radius: var(--r-md);
    box-shadow: 0 10px 24px rgba(10, 6, 20, .08);
    font-size: 20px;
  }
  
  /* ============ PAPER ============ */
  .paper{
    background: linear-gradient(180deg, var(--paper) 0%, var(--paper-2) 100%);
    border:1px solid var(--stroke);
    border-radius: var(--r-xl);
    box-shadow: 0 18px 50px rgba(10, 6, 20, .10);
  }
  .paper-top{
    border-bottom:1px solid rgba(20, 10, 30, .08);
    padding-bottom:14px;
    margin-bottom:18px;
  }
  .paper-date{
    color:var(--muted);
    font-weight:900;
    letter-spacing:.9px;
    text-transform: uppercase;
  }
  .paper-h2{
    margin:6px 0 0;
    font-weight:1000;
    letter-spacing:.2px;
  }
  .paper-std{
    color:var(--red);
    font-weight:1000;
    letter-spacing:1px;
    white-space: nowrap;
    padding:8px 12px;
    border-radius:999px;
    border:1px solid rgba(177,26,42,.22);
    background: rgba(177,26,42,.06);
    font-size: 30px;
  }
  .paper-h3{
    font-weight:1000;
    letter-spacing:.2px;
    margin: 0 0 10px;
    color:#2b1736;
  }
  .paper-p{
    color:#2a2230;
    font-weight:600;
    line-height:1.55;
  }
  .paper-list{
    margin:0;
    padding-left: 18px;
  }
  .paper-list li{
    margin-bottom: 10px;
    color:#3a2f44;
    font-weight:700;
  }
  .paper-list li::marker{ color: var(--purple-700); }
  
  .divider{
    height:1px;
    background: rgba(20, 10, 30, .10);
  }
  
  /* accreditation area */
  .accred-badge{
    width: 170px;
   
    border-radius: var(--r-lg);
    position:relative;
   
    flex: 0 0 auto;
  }
  .accred-img{
    width:100%; height:100%;
    object-fit: cover;
    filter: grayscale(.15) contrast(1.05);
  }
  .accred-overlay{
    position:absolute;
    inset:0;
    background:
      radial-gradient(600px 220px at 30% 35%, rgba(255,255,255,.75), rgba(255,255,255,.12)),
      linear-gradient(135deg, rgba(255,255,255,.55), rgba(255,255,255,0));
    display:flex;
    flex-direction:column;
    justify-content:center;
    align-items:center;
    text-align:center;
  }
  .accred-big{
    font-weight:1000;
    letter-spacing:2px;
    font-size: 1.7rem;
  }
  .accred-small{
    font-weight:1000;
    letter-spacing:1px;
    opacity:.75;
  }
  .accred-title{
    font-weight:1000;
    color:#2b1736;
  }
  .accred-p{
    color:#3a2f44;
    font-weight:650;
    line-height:1.4;
  }
  
  /* ============ SIDEBAR ============ */
  .side{
    position: sticky;
    top: 18px;
  }
  .sidecard{
    background:#fff;
    border:1px solid var(--stroke);
    border-radius: var(--r-xl);
    box-shadow: 0 16px 42px rgba(10, 6, 20, .10);
  }
  .meta-row{
    display:flex;
    align-items:center;
    justify-content: space-between;
    gap:12px;
  }
  .meta-label{
    font-weight:900;
    color:#3a2f44;
  }
  .meta-ico{ margin-right:6px; }
  .meta-pill{
    background: rgba(75,24,102,.08);
    border:1px solid rgba(75,24,102,.16);
    color:#2b1736;
    font-weight:1000;
    padding:8px 12px;
    border-radius:999px;
    font-size:.92rem;
    white-space: nowrap;
  }
  .meta-pill-dark{
    background: rgba(42,11,63,.92);
    border-color: rgba(42,11,63,.92);
    color:#fff;
  }
  
  .btn{
    border-radius: 999px;
    font-weight: 900;
    letter-spacing:.2px;
  }
  .btn-cta{
    background: linear-gradient(135deg, var(--purple-700), var(--purple-900));
    border:0;
    color:#fff;
    padding: 14px 16px;
    box-shadow: 0 16px 40px rgba(42, 11, 63, .25);
    text-align:center;
  }
  .btn-cta:hover{
    filter: brightness(1.03);
    color:#fff;
  }
  .btn-cta-sub{
    display:block;
    font-weight:700;
    opacity:.85;
    margin-top:4px;
    font-size:.9rem;
  }
  
  /* hotel */
  .hotel-media{
    position:relative;
  }
  .hotel-img{
    width:100%;
    height:190px;
    object-fit:cover;
  }
  .hotel-tag{
    position:absolute;
    left:14px;
    bottom:14px;
    background: rgba(42,11,63,.92);
    color:#fff;
    padding:8px 12px;
    border-radius:999px;
    font-weight:1000;
    letter-spacing:.6px;
    border:1px solid rgba(255,255,255,.22);
  }
  .hotel-title{
    font-weight:1000;
    color:#2b1736;
    margin-bottom:6px;
  }
  .hotel-text{
    color:var(--muted);
    font-weight:700;
    line-height:1.35;
  }
  
  /* Jornada (blood-like) */
  .jornada{
    border-radius: var(--r-xl);
    overflow:hidden;
    border:1px solid var(--stroke);
    box-shadow: 0 18px 50px rgba(10, 6, 20, .12);
    background:#fff;
  }
  .jornada-top{
    padding: 22px 18px;
    background:
      radial-gradient(900px 260px at 30% 40%, rgba(255,255,255,.10), rgba(255,255,255,0)),
      linear-gradient(135deg, #2b0011, #7a0f2a);
  }
  .j-std{
    color: rgba(255,255,255,.88);
    font-weight:900;
    letter-spacing:1px;
  }
  .j-title{
    margin-top: 10px;
    color:#fff;
    font-weight:1000;
    letter-spacing:.5px;
    font-size: 1.75rem;
    line-height:1.05;
  }
  .j-title span{ font-weight:900; opacity:.95; }
  
  .j-body{
    padding: 18px;
    background: linear-gradient(180deg, #ffffff 0%, #fbf3f2 100%);
  }
  .j-chip{
    display:flex;
    align-items: baseline;
    justify-content: space-between;
    gap:10px;
    padding: 12px 14px;
    border-radius: 18px;
    border: 1px solid rgba(214,58,124,.20);
    background: rgba(214,58,124,.08);
    margin-top: -26px;
    box-shadow: 0 14px 34px rgba(10, 6, 20, .10);
  }
  .j-chip-num{
    font-weight:1000;
    color:#5b0c25;
    font-size: 1.75rem;
    line-height:1;
  }
  .j-chip-num span{
    font-size:1.05rem;
    padding:0 4px;
    opacity:.9;
  }
  .j-chip-meta{
    font-weight:1000;
    color:#5b0c25;
    letter-spacing:.6px;
    text-transform: uppercase;
  }
  .j-text{
    margin: 12px 0 0;
    color:#3a2f44;
    font-weight:700;
    line-height:1.45;
  }
  .j-list{
    margin-top: 12px;
    padding: 14px;
    border-radius: 18px;
    border: 1px solid rgba(20, 10, 30, .08);
    background: rgba(255,255,255,.75);
  }
  .j-list-title{
    font-weight:1000;
    margin-bottom:8px;
    color:#2b1736;
  }
  .j-list ul{ margin:0; padding-left:18px; }
  .j-list li{
    font-weight:800;
    color:#4a3d57;
    margin-bottom:6px;
  }
  .j-list li::marker{ color: var(--magenta); }
  
  /* footer */
  .footer{
    border-top:1px solid var(--stroke);
    background: rgba(255,255,255,.75);
  }
  .footer-muted{
    color:#776b7d;
    font-weight:700;
  }
  
  /* ============ RESPONSIVE ============ */
  @media (max-width: 991.98px){
    .side{ position: static; }
    .hero-inner{ justify-content: flex-start; }
    .hero-right{ width: 100%; }
  }
  
  @media (max-width: 575.98px){
    .paper-std{ width: 100%; text-align:center; }
    .date-chip{ width: 100%; }
    .j-chip{ flex-direction: column; align-items: flex-start; }
  }