/*
 * ESMO 2026 registration landing (templates/page-esmo-2026.php)
 * Source: scss/esmo-2026.scss - keep both files in sync (styles ported 1:1 from the approved prototype).
 */

  :root{
    --blue-deep:#0A2E6E;
    --blue:#2456A1;
    --blue-bright:#005AB9;
    --red:#E41021;
    --red-bright:#EB1C2D;
    --grey:#706F73;
    --grey-light:#7C868C;
    --ink:#12213D;
    --bg-soft:#EDF1F7;
    --white:#FFFFFF;
    --radius:14px;
    --shadow:0 20px 45px rgba(10,46,110,0.12);
  }
  *{box-sizing:border-box;}
  /* Native smooth scrolling is disabled on purpose: the theme also animates anchor
     clicks with jQuery, and the two easings fought each other (slow start, sudden
     speed-up). Anchor scrolling is handled by a single animation in the template. */
  html{scroll-behavior:auto;}
  body{
    margin:0;
    font-family:"DM Sans",Arial,sans-serif;
    color:var(--ink);
    background:var(--white);
    -webkit-font-smoothing:antialiased;
  }
  a{text-decoration:none;color:inherit;}
  img{max-width:100%;display:block;}
  button,input,select,textarea{font-family:"DM Sans",Arial,sans-serif;}
  button{cursor:pointer;}

  .esmo-container{max-width:1180px;margin:0 auto;padding:0 32px;}

  /* ---------- Header ---------- */
  header.esmo-site-header{
    display:flex;align-items:center;justify-content:center;justify-content:space-between;
    padding:18px max(32px,calc((100vw - 1320px)/2 + 32px));
    min-height:88px;
    background:var(--white);
    position:sticky;top:0;z-index:50;
    box-shadow:0 1px 0 rgba(0,0,0,0.06);
  }
  .logo{display:flex;align-items:center;}
  .logo img{width:clamp(145px,8.85vw,170px);height:auto;display:block;max-width:none;}
  .esmo-btn{
    display:inline-block;
    font-weight:700;
    font-size:13px;
    letter-spacing:.03em;
    padding: 5px 15px;
    border-radius:10px;
    border:2px solid transparent;
    transition:all .18s ease;
    white-space:nowrap;
    text-transform:uppercase;
  }
  .esmo-btn-outline-blue{
    border-color:var(--blue);
    color:var(--blue);
    background:transparent;
  }
  .esmo-btn-outline-blue:hover{background:var(--blue);color:var(--white);}

  /* Light outlined treatment for the primary header CTA. */
  #navFormBtn{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-height:36px;
    padding:7px 25px;
    border:1.5px solid transparent;
    border-radius:20px;
    background:
      linear-gradient(#fff,#fff) padding-box,
      linear-gradient(100deg,#EE1B2F 0%,#C32655 68%,#833D78 100%) border-box;
    color:#D92745;
    box-shadow:none;
    font-size:16px;
    font-weight:500;
    line-height:1;
    letter-spacing:0;
    text-transform:uppercase;
    -webkit-backdrop-filter:none;
    backdrop-filter:none;
  }
  #navFormBtn:hover{
    color:#B7193A;
    background:
      linear-gradient(#FFF5F7,#FFF5F7) padding-box,
      linear-gradient(100deg,#EE1B2F 0%,#C32655 68%,#833D78 100%) border-box;
    box-shadow:none;
    transform:translateY(-1px);
  }
  .esmo-btn-white{
    background:var(--white);
    color:var(--blue-deep);
  }
  .esmo-btn-white:hover{transform:translateY(-2px);box-shadow:0 8px 20px rgba(0,0,0,0.18);}
  .esmo-btn-red{
    background:linear-gradient(135deg,var(--red-bright),#B8101F);
    color:var(--white);
  }
  .esmo-btn-red:hover{transform:translateY(-2px);box-shadow:0 10px 24px rgba(228,16,33,0.35);}
  .esmo-btn-navy{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    background:var(--blue-deep);
    color:var(--white);
    width:100%;
    min-height:50px;
    padding:13px 26px;
    font-size:14px;
    font-weight:600;
    line-height:1;
    letter-spacing:.02em;
    text-transform:uppercase;
    border-radius:20px;
    box-shadow:none;
  }
  .esmo-btn-navy:hover{background:var(--blue);transform:translateY(-1px);box-shadow:none;}
  .esmo-btn-navy:disabled{opacity:.55;cursor:not-allowed;}

  /* ---------- Hero ---------- */
  .esmo-hero{
    position:relative;
    min-height:640px;
    display:flex;align-items:center;justify-content:center;
    overflow:hidden;
    background:#0A1E4E;
  }
  .hero-bg{
    position:absolute;inset:0;
    background-size:cover;background-position:center;
    filter:saturate(1.05);

  }
  .hero-overlay{
    position:absolute;inset:0;
    background:linear-gradient(100deg, rgba(9,29,78,0.94) 0%, rgba(20,35,90,0.75) 32%, rgba(120,25,55,0.35) 62%, rgba(196,25,45,0.55) 100%);
  }
  .hero-content{
    position:relative;z-index:2;
    width:100%;
    max-width:1320px;
    flex:0 1 1320px;
    margin:0 auto;
    padding:100px 32px;
  }
  .eyebrow{
    display:inline-block;
    border:1.5px solid rgba(255,255,255,0.55);
    color:#fff;
    font-size:13px;
    letter-spacing:.14em;
    font-weight:700;
    padding:7px 18px;
    border-radius:30px;
    margin-bottom:26px;
  }
  .esmo-hero h1 .nowrap{white-space:nowrap;}
  .esmo-hero h1{
    color:#fff;
    font-size:clamp(36px,2.6vw,48px);
    line-height:1.1;
    max-width:720px;
    font-weight:800;
    margin:0 0 20px;
    letter-spacing:-0.01em;
  }
  .hero-title-main{
    display:block;
    font-size:clamp(36px,2.55vw,48px);
    line-height:1.04;
    font-weight:800;
    letter-spacing:-.025em;
    text-transform:uppercase;
  }
  .hero-title-main::after{
    content:"";
    display:block;
    width:58px;
    height:3px;
    margin-top:16px;
    border-radius:3px;
    background:linear-gradient(90deg,#E41021,#A53078);
  }
  .hero-title-sub{
    display:block;
    max-width:650px;
    margin-top:15px;
    color:rgba(255,255,255,.94);
    font-size:clamp(22px,1.7vw,30px);
    line-height:1.22;
    font-weight:600;
    letter-spacing:-.01em;
    text-transform:none;
  }
  .esmo-hero p{
    color:rgba(255,255,255,0.88);
    font-size:clamp(16.5px,1.05vw,18px);
    line-height:1.6;
    max-width:600px;
    margin:0 0 30px;
  }
  .hero-meta{
    display:flex;gap:28px;flex-wrap:wrap;
    color:#fff;font-size:15px;font-weight:600;
    margin-bottom:34px;
  }
  .hero-meta span{display:flex;align-items:center;gap:8px;}
  .hero-location-link{
    display:inline-flex;
    align-items:center;
    gap:8px;
    color:inherit;
    border-radius:4px;
    text-underline-offset:4px;
  }
  .hero-location-link:hover{text-decoration:underline;}
  .hero-location-link:focus-visible{
    outline:2px solid rgba(255,255,255,.9);
    outline-offset:4px;
  }
  .line-icon{
    width:16px;height:16px;flex:0 0 16px;
    fill:none;stroke:currentColor;stroke-width:1.8;
    stroke-linecap:round;stroke-linejoin:round;
  }
  .venue-card .line-icon{width:18px;height:18px;flex-basis:18px;color:var(--blue-deep);}
  .success-meta .line-icon{align-self:flex-start;margin-top:calc((1.45em - 16px) / 2);color:var(--blue-deep);}
  .hero-actions{display:flex;gap:12px;flex-wrap:wrap;}
  .hero-actions .esmo-btn{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-height:50px;
    padding:13px 24px;
    border-radius:20px;
    font-size:16px;
    font-weight:500;
    letter-spacing:.01em;
    line-height:1;
    text-transform:uppercase;
  }
  .hero-actions .esmo-btn-white{
    min-width:280px;
    color:var(--blue-deep);
    border:1px solid rgba(255,255,255,.92);
    box-shadow:none;
  }
  .hero-actions .esmo-btn-red{
    min-width:185px;
    color:#fff;
    background:linear-gradient(110deg,rgba(235,20,42,.96) 0%,rgba(174,24,67,.78) 72%,rgba(117,37,86,.58) 100%);
    border:1px solid rgba(255,255,255,.92);
    box-shadow:none;
    -webkit-backdrop-filter:blur(8px);
    backdrop-filter:blur(8px);
  }
  .hero-actions .esmo-btn-white:hover,
  .hero-actions .esmo-btn-red:hover{
    transform:translateY(-1px);
    box-shadow:none;
  }

  /* ---------- About ---------- */
  .about{
    padding:100px 0;
  }
  .about-grid{
    display:grid;grid-template-columns:1.05fr 0.95fr;gap:70px;align-items:center;
  }
  .about .section-eyebrow{
    color:var(--red);
    font-size:13px;font-weight:800;letter-spacing:.14em;
    margin:0 0 18px;
    text-decoration:underline;
    text-decoration-thickness:1.5px;
    text-underline-offset:6px;
  }
  .about h2{font-size:30px;margin:0 0 16px;line-height:1.2;color:var(--ink);}
  .about p{color:#3c4a63;line-height:1.7;font-size:15.5px;margin:0 0 16px;}
  .about p strong{color:var(--blue-deep);}
  .check-list{list-style:none;margin:26px 0 0;padding:0;}
  .check-list li{
    display:flex;align-items:flex-start;gap:12px;
    font-size:15px;color:#243352;font-weight:600;
    margin-bottom:16px;
  }
  .check-list .tick{
    flex:0 0 22px;height:22px;border-radius:50%;
    background:var(--blue-deep);color:#fff;
    display:flex;align-items:center;justify-content:center;justify-content:center;
    font-size:12px;
  }
  .about-image-wrap{position:relative;}
  .about-image-wrap .ring{
    position:absolute;width:220px;height:220px;border-radius:50%;
    border:26px solid rgba(228,16,33,0.14);
    top:-40px;left:-60px;z-index:0;
  }
  .about-image-wrap img{
    position:relative;z-index:1;
    border-radius:20px;
    box-shadow:none;
  }

  /* ---------- Venue ---------- */
  .venue{
    background-color:var(--bg-soft);
    background-image:url('../landings/esmo-2026/venue-texture.png');
    background-position:center center;
    background-size:cover;
    background-repeat:no-repeat;
    padding:90px 0;
    position:relative;overflow:hidden;
  }
  .venue-heading{text-align:center;margin-bottom:50px;}
  .venue-heading .eyebrow-link{
    color:var(--red);font-weight:800;font-size:14px;letter-spacing:.1em;
    text-decoration:underline;text-underline-offset:5px;
  }
  .venue-heading h2{font-size:26px;margin:10px 0 0;color:var(--ink);}
  .venue-grid{display:grid;grid-template-columns:1.2fr 1fr;gap:26px;align-items:stretch;}
  .venue-photo{
    position:relative;border-radius:18px;overflow:hidden;min-height:340px;
    background-size:cover;background-position:center;
    display:flex;align-items:flex-end;
    box-shadow:var(--shadow);
  }
  .venue-photo::after{
    content:"";position:absolute;inset:0;
    background:linear-gradient(0deg, rgba(6,10,25,0.85) 15%, rgba(6,10,25,0) 55%);
  }
  .venue-photo-text{position:relative;z-index:1;color:#fff;padding:30px;}
  .venue-photo-text h3{margin:0 0 8px;font-size:22px;}
  .venue-photo-text p{margin:0;font-size:14px;color:rgba(255,255,255,0.85);max-width:380px;line-height:1.55;}
  .venue-cards{display:flex;flex-direction:column;gap:22px;}
  .venue-card{
    background:#fff;border-radius:16px;padding:28px 30px;
    box-shadow:var(--shadow);
    flex:1;display:flex;flex-direction:column;justify-content:center;
  }
  .venue-card .esmo-icon{
    width:38px;height:38px;border-radius:10px;
    background:var(--bg-soft);
    display:flex;align-items:center;justify-content:center;justify-content:center;
    margin-bottom:14px;font-size:18px;
  }
  .venue-card h4{margin:0 0 8px;font-size:17px;color:var(--ink);}
  .venue-card p{margin:0;font-size:13.5px;color:#5a6785;line-height:1.6;}

  /* ---------- Agenda ---------- */
  .agenda{
    padding:100px 0;
    background-color:#FFFFFF;
    border-top:24px solid #FFFFFF;
    background-image:url('../landings/esmo-2026/agenda-texture.png');
    background-position:center bottom;
    background-size:cover;
    background-repeat:no-repeat;
  }
  .agenda-heading{text-align:center;margin-bottom:56px;}
  .agenda-heading h2{
    display:inline-block;
    font-size:15px;font-weight:800;letter-spacing:.14em;color:var(--red);
    text-decoration:underline;text-underline-offset:6px;
    margin:0;
  }
  .agenda-status{margin:16px auto 0;max-width:620px;color:#5a6785;font-size:13px;line-height:1.55;}
  .agenda-grid{display:grid;grid-template-columns:1.3fr 0.8fr 1fr;gap:40px;}
  .agenda-grid > div:nth-child(1),
  .agenda-grid > div:nth-child(2){display:grid;grid-template-rows:repeat(6,minmax(72px,auto));}
  .agenda-grid > div:nth-child(3){display:grid;grid-template-rows:1fr;}
  .agenda-col-label{
    display:flex;
    align-items:center;
    justify-content:center;
    min-height:34px;
    padding:8px 18px;
    background:var(--blue-bright);
    color:#fff;
    border-radius:20px;
    margin-bottom:34px;
    font-size:14px;
    font-weight:700;
    line-height:1;
    letter-spacing:.04em;
    text-transform:uppercase;
  }
  .agenda-item{
    display:flex;align-items:center;justify-content:center;
    min-height:72px;padding:14px 12px;
    border-bottom:1px solid rgba(255,255,255,.58);
    text-align:center;font-size:18.5px;color:#233047;line-height:1.45;
  }
  .agenda-item:first-child{padding-top:14px;}
  .speaker-item{
    display:flex;align-items:center;justify-content:center;
    min-height:72px;padding:14px 12px;
    border-bottom:1px solid rgba(255,255,255,.58);
    text-align:center;font-weight:700;color:var(--blue-deep);font-size:15px;
  }
  .partner-logos{display:grid;grid-template-rows:repeat(6,minmax(72px,1fr));gap:0;}
  .partner-logo{
    margin:8px 0;border:1px solid rgba(255,255,255,.72);border-radius:10px;
    padding:12px 18px;display:flex;align-items:center;justify-content:center;
    font-weight:800;color:var(--blue-deep);font-size:15px;letter-spacing:.02em;min-height:56px;
  }
  .partner-logo-empty{visibility:hidden;}
  .required-note{margin:12px 0 0;text-align:left;color:#71809D;font-size:11.5px;line-height:1.4;}
  .phone-hint{display:block!important;min-height:16px;margin-top:7px;color:#71809D;font-size:11.5px;line-height:1.35;letter-spacing:.01em;visibility:visible!important;opacity:1!important;}
  .agenda-event-overview{
    max-width:920px;
    margin:0 auto 48px;
    padding:28px 34px;
    text-align:center;
    background:rgba(255,255,255,.82);
    border:1px solid rgba(255,255,255,.95);
    border-radius:18px;
    box-shadow:0 12px 30px rgba(10,46,110,.08);
  }
  .agenda-overview-label{
    display:block;
    margin-bottom:10px;
    color:var(--red);
    font-size:12px;
    font-weight:800;
    letter-spacing:.14em;
  }
  .agenda-event-overview h3{
    max-width:760px;
    margin:0 auto;
    color:var(--blue-deep);
    font-size:clamp(20px,2vw,28px);
    line-height:1.3;
  }
  .agenda-chair{
    display:inline-flex;
    align-items:center;
    gap:10px;
    margin-top:20px;
    padding-top:18px;
    border-top:1px solid rgba(10,46,110,.14);
    color:var(--blue-deep);
  }
  .agenda-chair span{color:var(--red);font-size:11px;font-weight:800;letter-spacing:.14em;}
  .agenda-chair strong{font-size:16px;}
  .agenda-grid-single{grid-template-columns:minmax(0,1fr);max-width:920px;margin-left:auto;margin-right:auto;}
  .agenda-grid-single .agenda-col-label{
    width:fit-content;
    min-width:150px;
    margin-left:auto;
    margin-right:auto;
  }
  .agenda-grid-programme > div:nth-child(1),
  .agenda-grid-programme > div:nth-child(2),
  .agenda-grid-programme > div:nth-child(3){
    display:grid;
    grid-template-rows:repeat(3,minmax(116px,auto));
  }
  .agenda-grid-programme .agenda-item,
  .agenda-grid-programme .speaker-item{min-height:116px;}
  .agenda-grid-programme .agenda-item strong{color:var(--blue-deep);}
  .agenda-grid-programme .speaker-item small{font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--red);}
  .agenda-duration{font-weight:800;color:var(--blue-deep)!important;}
  .keynote-badge{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    margin-left:10px;
    padding:6px 13px;
    border:1px solid rgba(255,255,255,.75);
    border-radius:999px;
    background:linear-gradient(100deg,#E41021 0%,#B12665 100%);
    color:#fff;
    font-size:10.5px;
    font-weight:800;
    line-height:1;
    letter-spacing:.08em;
    text-transform:uppercase;
    box-shadow:0 6px 14px rgba(196,25,45,.18);
    vertical-align:middle;
  }
  .agenda-mobile-key-keynote{display:flex;align-items:center;flex-wrap:wrap;gap:8px;}
  .agenda-mobile-key-keynote .keynote-badge{margin-left:0;}
  .keynote-session-content{display:flex;flex-direction:column;align-items:center;gap:9px;}
  .agenda-item-keynote .keynote-badge{margin-left:0;}

  .agenda-mobile{display:none;}
  .agenda-mobile-card{
    background:rgba(255,255,255,.72);border:1px solid rgba(255,255,255,.92);
    border-radius:16px;padding:20px;box-shadow:0 10px 26px rgba(15,46,105,.08);
  }
  .agenda-mobile-field + .agenda-mobile-field{margin-top:15px;padding-top:15px;border-top:1px solid rgba(15,46,105,.12);}
  .agenda-mobile-key{display:block;margin-bottom:5px;color:var(--red);font-size:13px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;}
  .agenda-mobile-value{display:block;color:var(--blue-deep);font-size:19px;line-height:1.45;}
  .agenda-mobile-field:nth-child(2) .agenda-mobile-value,
  .agenda-mobile-field:nth-child(3) .agenda-mobile-value{font-weight:700;}

  /* ---------- Secure your place / Register ---------- */
  .secure-anchor{
    text-align:center;padding:60px 0 10px;
  }
  .secure-anchor a{
    color:var(--red);font-weight:800;font-size:15px;letter-spacing:.12em;
    text-decoration:underline;text-underline-offset:6px;
  }
  .secure-anchor .arrow{display:block;margin-top:10px;color:var(--red);font-size:18px;animation:bounce 2s infinite;}
  @keyframes bounce{0%,100%{transform:translateY(0);}50%{transform:translateY(6px);}}

  .register{
    position:relative;
    padding:70px 0 0;
    background-color:#14225A;
    background-image:url('../landings/esmo-2026/register-texture.png');
    background-position:center top;
    background-size:cover;
    background-repeat:no-repeat;
    background-attachment:scroll;
    overflow:hidden;
  }
  .register::after{content:"";display:block;height:60px;}
  .register-card{
    position:relative;z-index:2;
    max-width:620px;margin:0 auto;
    background:#fff;border-radius:20px;
    padding:44px 46px 40px;
    box-shadow:0 30px 60px rgba(0,0,0,0.35);
  }
  .register-card h3{
    text-align:center;font-size:22px;margin:0 0 10px;color:var(--ink);
  }
  .register-card .sub{
    text-align:center;font-size:13.5px;color:#5a6785;line-height:1.6;margin:0 0 30px;
  }
  .register-card .sub strong{color:var(--red);}
  .form-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:18px 20px;}
  .field{display:flex;flex-direction:column;min-width:0;gap:7px;margin-bottom:16px;}
  .field label{font-size:11px;font-weight:800;letter-spacing:.06em;color:#5a6785;text-transform:uppercase;}
  .field input, .field select{
    width:100%;
    min-width:0;
    border:1.5px solid #d8dfeb;border-radius:8px;
    padding:11px 13px;font-size:14px;color:var(--ink);
    background:#fbfcfe;
    outline:none;transition:border-color .15s ease;
  }
  .phone-group{
    display:flex;
    align-items:stretch;
  }
  .phone-group select{
    flex:0 0 42%;
    border-radius:8px 0 0 8px;
    border-right:0;
    padding-left:10px;
    background:#fbfcfe;
  }
  .phone-group input{
    flex:1 1 58%;
    min-width:0;
    border-radius:0 8px 8px 0;
  }
  .phone-group:focus-within select,
  .phone-group:focus-within input{border-color:var(--blue);}
  .field input:focus, .field select:focus{border-color:var(--blue);}
  .field.invalid input, .field.invalid select{border-color:var(--red);}
  .field .err{font-size:11.5px;color:var(--red);display:none;}
  .field.invalid .err{display:block;}
  .checks{margin:6px 0 26px;display:flex;flex-direction:column;gap:12px;}
  .check-row{display:flex;gap:12px;align-items:flex-start;font-size:12.5px;color:#4a5674;line-height:1.65;}
  .check-row input{margin:3px 0 0;flex:0 0 auto;}
  .check-copy{display:block;min-width:0;}
  .check-row a{color:var(--blue);text-decoration:underline;white-space:nowrap;text-underline-offset:2px;}
  .register-card .footnote{
    text-align:center;font-size:11px;color:#8a93a8;margin-top:14px;line-height:1.5;
  }

  /* success view */
  .success-view{display:none;}
  .success-view.esmo-active{display:grid;}
  .register-card.success-active .form-view{display:none;}
  .register-card.success-active{
    max-width:900px;padding:0;overflow:hidden;
  }
  .success-view{
    grid-template-columns:1fr 300px;
    align-items:stretch;
  }
  .esmo-success-content{
    padding:52px 54px;
  }
  .success-thumb{
    width:100%;max-height:150px;object-fit:cover;
    border-radius:12px;margin-bottom:26px;
    box-shadow:var(--shadow);
  }
  .success-check{
    width:56px;height:56px;border-radius:50%;
    background:#e6f6ec;color:#1c8a4b;
    display:flex;align-items:center;justify-content:center;justify-content:center;
    font-size:26px;margin-bottom:18px;
  }
  .esmo-success-content h3{font-size:26px;margin:0 0 18px;color:var(--blue-deep);text-transform:uppercase;font-weight:800;}
  .esmo-success-content p{color:var(--blue-deep);font-size:15px;line-height:1.7;margin:0 0 26px;}
  .success-meta{margin-bottom:30px;}
  /* The theme's body{line-height:1} makes the text line shorter than the 16px icon,
     which left the icons sitting low against the labels. Restore a normal line height
     and centre each icon on the first line of its row. */
  .success-meta div{display:flex;align-items:flex-start;gap:8px;font-size:14.5px;line-height:1.45;color:var(--blue-deep);margin-bottom:10px;}
  .success-meta strong{font-weight:800;}
  .success-actions{display:flex;gap:14px;flex-wrap:wrap;}
  .success-actions .esmo-btn{flex:1;text-align:center;min-width:190px;}
  /* Secondary route for people who do not use Google Calendar (Outlook, Apple, ...). */
  .calendar-alt{margin:14px 0 0;font-size:12.5px;line-height:1.5;color:#5a6785;}
  .calendar-alt a{color:var(--blue);text-decoration:underline;text-underline-offset:3px;white-space:nowrap;}
  .calendar-alt a:hover{color:var(--blue-deep);}
  .success-side{
    position:relative;
    background:linear-gradient(165deg,rgba(18,49,138,0.93) 0%,rgba(59,30,110,0.88) 45%,rgba(158,22,56,0.85) 75%,rgba(228,20,42,0.9) 100%), url('../landings/esmo-2026/hero-madrid-science.png');
    background-size:cover;background-position:70% center;
    color:#fff;
    padding:44px 32px;
    display:flex;flex-direction:column;justify-content:space-between;
  }
  .success-side .tagline{font-size:22px;font-weight:800;line-height:1.35;margin:0;}
  .success-side .tagline u{text-decoration-thickness:2px;text-underline-offset:4px;}
  .success-side .see-you{font-style:italic;font-size:clamp(26px,2.2vw,34px);line-height:1.22;font-weight:600;margin:30px 0 0;color:rgba(255,255,255,0.98);letter-spacing:.01em;}
  .success-side .see-you strong{font-style:normal;font-weight:800;}
  .success-side .side-logo{display:flex;align-items:center;margin-top:auto;padding-top:36px;}
  .success-side .side-logo img{width:150px;height:auto;max-width:none;filter:brightness(0) invert(1);display:block;}
  @media (max-width:760px){
    .register-card.success-active{max-width:520px;}
    .success-view{grid-template-columns:1fr;}
    /* Desktop side padding left only ~254px for the text on a phone, which broke
       "Teatro Real, Madrid, Spain" onto a second line. Narrower padding plus a
       slightly smaller meta font keep that line intact down to 360px wide screens. */
    .esmo-success-content{padding:40px 20px;}
    .success-meta div{font-size:13.5px;gap:7px;}
    .success-side{order:-1;flex-direction:row;flex-wrap:wrap;gap:16px;padding:26px 30px;}
    .success-side .see-you{margin:0;}
  }

  footer.esmo-site-footer{
    position:relative;
    z-index:20;
    isolation:isolate;
    display:flex;
    align-items:center;
    min-height:110px;
    background:#fff !important;
    padding:28px 0;
    overflow:visible;
  }
  footer.esmo-site-footer .esmo-container{position:relative;z-index:1;display:flex;align-items:center;justify-content:flex-start;width:100%;max-width:1320px;min-height:54px;margin:0 auto;padding-left:32px;padding-right:32px;gap:10px;color:var(--ink);font-weight:800;letter-spacing:.02em;}
  footer.esmo-site-footer svg{height:22px;width:22px;}
  footer.esmo-site-footer img{display:block !important;width:160px;height:auto;max-width:100%;filter:none !important;opacity:1 !important;visibility:visible !important;position:relative;z-index:2;}

  @media (min-width:1600px){
    .esmo-container{max-width:1320px;}
    .agenda-grid{gap:48px;}
    .register-card{transform:none;}
  }
  @media (max-width:980px){
    .about-grid, .venue-grid{grid-template-columns:1fr;}
    .agenda-grid{display:none;}
    .agenda-event-overview{margin-bottom:28px;padding:24px 20px;border-radius:16px;}
    .agenda-event-overview h3{font-size:20px;}
    .agenda-chair{display:flex;justify-content:center;flex-wrap:wrap;}

    .agenda-mobile{display:grid;gap:16px;}
    .agenda-grid > div:nth-child(1), .agenda-grid > div:nth-child(2), .agenda-grid > div:nth-child(3){display:block;}
    .partner-logos{display:flex;flex-direction:column;gap:18px;}
    .partner-logo-empty{display:none;}
    .about-image-wrap{order:-1;}
    .form-grid{grid-template-columns:1fr;}
    .esmo-hero h1 .nowrap{white-space:nowrap;}
  .esmo-hero h1{font-size:clamp(27px,4vw,34px);line-height:1.08;max-width:620px;}
    .hero-title-main{font-size:clamp(29px,4.3vw,36px);}
    .hero-title-sub{font-size:clamp(20px,3vw,25px);max-width:560px;}
    header.esmo-site-header{padding:14px 20px;min-height:72px;}
    .logo img{width:clamp(132px,18vw,145px);}
    .esmo-container{padding:0 20px;}
    .hero-content{padding-left:20px;padding-right:20px;}
    footer.esmo-site-footer .esmo-container{padding-left:20px;padding-right:20px;}
  }

  /* --- Final layout refinements --- */
  /* Use the approved 1336 × 663 artwork without stretching or artificial joins. */
  .esmo-hero{
    min-height:0;
    aspect-ratio:1336 / 663;
    background:#172E68;
  }
  .hero-bg{
    background-position:center;
    background-size:cover;
    background-repeat:no-repeat;
    -webkit-mask-image:none;
    mask-image:none;
  }
  .success-heading-row{display:flex;align-items:center;gap:18px;margin-bottom:22px;}
  .success-heading-row .success-check{flex:0 0 56px;margin:0;}
  .success-heading-row h3{margin:0;line-height:1.15;}
  .calendar-btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;}
  .calendar-btn svg{width:18px;height:18px;flex:0 0 18px;}
  @media(max-width:980px){
    .esmo-hero{min-height:620px;aspect-ratio:auto;}
    .hero-bg{background-position:70% center;background-size:cover;}
  }
  @media(min-width:701px){
    .agenda{
      background-size:max(1920px,100%) 100%;
      background-position:center bottom;
    }
    .agenda > .esmo-container{position:relative;z-index:1;}
  }
  @media(max-width:700px){
    .register{background-position:center center;background-size:cover;background-repeat:no-repeat;background-color:#781D4D;}
    .hero-actions{width:100%;}
    .phone-hint{display:block!important;min-height:18px;margin-top:8px;font-size:12px;color:#5E6F8E;}
    .agenda{background-image:linear-gradient(180deg,#E8EFF7 0%,#DCE7F4 100%);background-position:center;background-size:100% 100%;background-repeat:no-repeat;background-color:#DCE7F4;padding-bottom:76px;}
    .venue{background-image:linear-gradient(180deg,#F4F7FB 0%,#E8EFF7 100%);background-position:center;background-size:100% 100%;background-repeat:no-repeat;background-color:#E8EFF7;padding-bottom:76px;}
    .hero-actions .esmo-btn{min-width:0;min-height:46px;padding:12px 18px;font-size:13px;}
    .hero-actions .esmo-btn-white{flex:1 1 210px;}
    .hero-actions .esmo-btn-red{flex:1 1 130px;}
    .esmo-hero h1{font-size:clamp(25px,7vw,30px);line-height:1.08;max-width:100%;letter-spacing:-.025em;}
    .hero-title-main{font-size:clamp(26px,7.3vw,30px);}
    .hero-title-main::after{width:46px;margin-top:12px;}
    .hero-title-sub{font-size:clamp(18px,5.2vw,22px);line-height:1.25;margin-top:12px;}
    .esmo-hero{min-height:620px;}
    .hero-bg{background-position:70% center;}
    .success-heading-row{align-items:flex-start;gap:14px;}
    .success-heading-row .success-check{flex-basis:48px;width:48px;height:48px;}
  }

  /* Phones narrower than the common 360px: the logo and the header CTA do not fit
     side by side at their normal size and push the page into horizontal scrolling. */
  @media (max-width:359px){
    header.esmo-site-header{padding:12px 14px;gap:10px;}
    .logo img{width:108px;}
    #navFormBtn{min-height:32px;padding:6px 12px;font-size:13px;}
  }


/* ---------- Theme integration overrides ----------
   The theme's global stylesheet sets `html{text-align:center}` and visually hides all
   native checkboxes with !important ([type=checkbox]{clip:...}). Restore the prototype's
   defaults inside this landing, following the theme's own carve-out pattern
   (see .tnp-privacy-field / .tnp-profile overrides in the theme stylesheet). */
  header.esmo-site-header,
  .esmo-hero,
  .agenda,
  .register,
  footer.esmo-site-footer{
    text-align:left;
  }
  .check-row input[type=checkbox]{
    border:0 !important;
    clip:auto !important;
    -webkit-clip-path:none !important;
    clip-path:none !important;
    height:auto !important;
    overflow:visible !important;
    padding:0 !important;
    position:static !important;
    width:auto !important;
    white-space:normal !important;
    margin:3px 0 0 !important;
  }