:root{
    --bg-0:#171310;
    --bg-1:#211b16;
    --bg-2:#2c2419;
    --panel:#2a231c;
    --cream:#f4ecda;
    --cream-dim:#cabfa9;
    --muted:#a89a86;
    --gold:#c9a24a;
    --gold-soft:#8c754f;
    --gold-line: rgba(201,162,74,0.35);
    --line: rgba(244,236,218,0.14);
    --stamp:#e6392f;
    --serif: 'Playfair Display', 'Iowan Old Style', serif;
    --sans: 'Jost', sans-serif;
    --body: 'Lora', serif;
    --maxw: 1120px;
  }
  *{box-sizing:border-box;}
  html{scroll-behavior:smooth;}
  body{
    margin:0;
    background:var(--bg-0);
    color:var(--cream);
    font-family:var(--body);
    line-height:1.6;
    -webkit-font-smoothing:antialiased;
  }
  img{max-width:100%; display:block;}
  a{color:inherit;}
  .wrap{max-width:var(--maxw); margin:0 auto; padding:0 28px;}
  .eyebrow{
    font-family:var(--sans);
    text-transform:uppercase;
    letter-spacing:.24em;
    font-size:13px;
    color:var(--gold);
    font-weight:500;
  }
  h1,h2,h3{font-family:var(--serif); font-weight:600; margin:0; color:var(--cream);}
  .btn{
    font-family:var(--sans);
    text-transform:uppercase;
    letter-spacing:.12em;
    font-size:14px;
    font-weight:600;
    padding:18px 40px;
    border-radius:999px;
    border:1px solid rgba(244,236,218,0.35);
    background:
      linear-gradient(180deg, rgba(255,255,255,0.55), rgba(255,255,255,0) 45%),
      linear-gradient(135deg, #e7cb8d, var(--gold) 55%, #a9803f);
    box-shadow:
      inset 0 1px 1px rgba(255,255,255,0.65),
      inset 0 -6px 10px rgba(0,0,0,0.18),
      0 10px 24px rgba(0,0,0,0.35);
    color:#241c10;
    cursor:pointer;
    display:inline-block;
    text-decoration:none;
    transition:transform .2s ease, box-shadow .2s ease;
  }
  .btn:hover{
    transform:translateY(-2px);
    box-shadow:
      inset 0 1px 1px rgba(255,255,255,0.75),
      inset 0 -6px 10px rgba(0,0,0,0.22),
      0 16px 32px rgba(0,0,0,0.45);
  }
  .btn.ghost{
    background:
      linear-gradient(180deg, rgba(244,236,218,0.20), rgba(244,236,218,0.02));
    color:var(--cream);
    box-shadow:
      inset 0 1px 1px rgba(255,255,255,0.15),
      0 8px 20px rgba(0,0,0,0.25);
  }
  .btn.ghost:hover{
    background:linear-gradient(180deg, rgba(244,236,218,0.30), rgba(244,236,218,0.06));
    color:var(--cream);
  }
  .btn:focus-visible, a:focus-visible, input:focus-visible, select:focus-visible, button:focus-visible, summary:focus-visible{
    outline:2px solid var(--gold); outline-offset:3px;
  }

  .brand{ font-family:var(--serif); font-size:20px; letter-spacing:.03em; color:var(--cream); display:inline-block; }
  .brand img{ display:block; height:36px; width:auto; }
  .brand em{ color:var(--gold); font-style:normal; }

  /* ---------- HERO ---------- */
  .hero{ position:relative; overflow:hidden; }
  .hero picture{ display:block; width:100%; }
  .hero img{ width:100%; height:auto; }
  .hero-fade{
    position:absolute; left:0; right:0; bottom:0; height:42%;
    background:linear-gradient(to bottom, rgba(23,19,16,0) 0%, var(--bg-0) 92%);
    pointer-events:none;
  }
  .hero-cta{
    position:relative;
    margin-top:-64px;
    display:flex; flex-direction:column; align-items:center; gap:18px;
    padding-bottom:56px;
    text-align:center;
  }
  .hero-meta{
    font-family:var(--sans); text-transform:uppercase; letter-spacing:.2em;
    font-size:14px; color:var(--cream-dim);
  }
  .hero-meta b{ color:var(--gold); font-weight:600; }
  @media (max-width:600px){ .hero-cta{ margin-top:-40px; } }

  /* ---------- SECTION shells ---------- */
  section{ padding:96px 0; }
  section.tight{ padding:64px 0; }
  .section-head{ max-width:640px; margin:0 auto 52px; text-align:center; }
  .section-head h2{ font-size:clamp(28px, 4vw, 44px); margin-top:10px; }
  .section-head p{ color:var(--cream-dim); margin-top:16px; font-size:18px; }
  .divider{
    width:64px; height:1px; background:var(--gold-line); margin:0 auto;
  }
  .alt{ background:var(--bg-1); }

  /* ---------- INTRO STRIP ---------- */
  .intro{
    display:grid; grid-template-columns:1.1fr .9fr; gap:64px; align-items:start;
  }
  .intro .quote{
    font-family:var(--serif); font-style:italic; font-size:clamp(30px, 4vw, 42px); line-height:1.35;
    color:var(--cream);
  }
  .intro .quote span{ color:var(--gold); }
  .intro-copy p{ color:var(--cream-dim); font-size:18px; }
  .stat-row{ display:flex; gap:36px; margin-top:28px; flex-wrap:wrap; }
  .stat{ font-family:var(--sans); }
  .stat b{ display:block; font-family:var(--serif); font-size:44px; color:var(--gold); font-weight:600; }
  .stat span{ font-size:13px; text-transform:uppercase; letter-spacing:.14em; color:var(--muted); }
  @media (max-width:820px){ .intro{ grid-template-columns:1fr; gap:32px; } }

  /* ---------- PROGRAMM ---------- */
  .day-tabs{
    display:flex; justify-content:center; gap:0; margin-bottom:48px;
    border:1px solid var(--gold-line); border-radius:3px; overflow:hidden;
    max-width:460px; margin-left:auto; margin-right:auto;
  }
  .day-tab{
    flex:1; text-align:center; padding:14px 10px; cursor:pointer;
    font-family:var(--sans); text-transform:uppercase; letter-spacing:.1em; font-size:14px;
    background:transparent; color:var(--cream-dim); border:none;
    transition:background .2s, color .2s;
  }
  .day-tab.active{ background:var(--gold); color:#211b16; font-weight:600; }
  .day-tab:not(:last-child){ border-right:1px solid var(--gold-line); }

  .agenda{ display:none; max-width:820px; margin:0 auto; }
  .agenda.active{ display:block; }
  .agenda-item{
    display:grid; grid-template-columns:96px 1fr; gap:26px;
    padding:26px 0; border-bottom:1px solid var(--line);
  }
  .agenda-item:first-child{ padding-top:0; }
  .agenda-time{ font-family:var(--serif); color:var(--gold); font-size:22px; padding-top:2px; }
  .agenda-name{
    font-family:var(--sans); font-weight:600; letter-spacing:.02em; font-size:18px; color:var(--cream);
    position:relative; display:inline-block;
  }
  .agenda-name-text{ cursor:pointer; border-bottom:1px dotted var(--gold-line); }
  .speaker-peek{
    position:absolute; left:0; top:calc(100% + 12px); z-index:30;
    opacity:0; pointer-events:none; transform:translateY(-8px) scale(.95);
    transition:opacity .2s ease, transform .2s ease;
  }
  .agenda-name:hover .speaker-peek,
  .speaker-peek.show{
    opacity:1; pointer-events:auto; transform:translateY(0) scale(1);
  }
  .speaker-peek img{
    display:block; width:130px; height:164px; object-fit:cover; border-radius:6px;
    border:1px solid var(--gold-line); background:var(--bg-1);
    box-shadow:0 18px 34px rgba(0,0,0,0.5);
  }
  @media (max-width:520px){
    .speaker-peek img{ width:104px; height:132px; }
  }
  .agenda-role{ font-family:var(--sans); font-size:14px; color:var(--muted); margin-top:2px; }
  .agenda-title{ font-family:var(--body); font-style:italic; color:var(--cream-dim); margin-top:8px; font-size:18px; }
  .agenda-format{ font-family:var(--sans); font-size:13px; letter-spacing:.05em; color:var(--gold-soft); margin-top:8px; text-transform:uppercase; }
  .tag-rec{
    display:inline-block; margin-left:10px; font-family:var(--sans); font-size:11px;
    letter-spacing:.08em; text-transform:uppercase; color:var(--bg-0); background:var(--gold);
    padding:2px 8px; border-radius:2px; vertical-align:middle;
  }

  /* ---------- SPEAKER STAGE ---------- */
  #speaker .section-head p{ margin-top:14px; }

  .stage{
    position:relative; width:100%; max-width:960px; margin:52px auto 0; overflow:hidden;
    min-height:620px; border-radius:4px;
    background:
      radial-gradient(ellipse 60% 50% at 50% 0%, rgba(255,214,140,0.16), transparent 65%),
      linear-gradient(180deg, #14100c 0%, #1c1712 55%, #0f0c09 100%);
  }
  .stage-wings{ position:absolute; inset:0; pointer-events:none; z-index:2; }
  .stage-wings::before, .stage-wings::after{
    content:""; position:absolute; top:0; bottom:0; width:16%;
    background:linear-gradient(90deg, #050403, rgba(5,4,3,0));
  }
  .stage-wings::before{ left:0; clip-path:polygon(0 0, 100% 0, 55% 100%, 0 100%); }
  .stage-wings::after{
    right:0; clip-path:polygon(0 0, 100% 0, 100% 100%, 45% 100%);
    background:linear-gradient(270deg, #050403, rgba(5,4,3,0));
  }

  .stage-content{
    position:relative; z-index:3; width:100%;
    padding:56px 20px 40px; min-height:620px;
    display:flex; flex-direction:column; align-items:center; justify-content:flex-start;
  }

  /* --- 3D-Karussell --- */
  .carousel-viewport{
    width:100%; height:420px; perspective:1500px; position:relative;
    display:flex; align-items:center; justify-content:center;
  }
  .carousel-ring{
    position:relative; width:230px; height:290px;
    transform-style:preserve-3d;
  }
  .carousel-card{
    position:absolute; top:0; left:0; width:230px; height:290px;
    border-radius:6px 6px 60px 60px; overflow:hidden; cursor:pointer;
    box-shadow:0 24px 40px rgba(0,0,0,0.55), 0 0 0 1px rgba(244,236,218,0.08);
    transition:filter .3s ease, box-shadow .3s ease;
    backface-visibility:hidden;
  }
  .carousel-card img{ width:100%; height:100%; object-fit:cover; display:block; }
  .carousel-card{ filter:brightness(.55) saturate(.7); }
  .carousel-card.is-front{
    filter:brightness(1) saturate(1);
    box-shadow:0 30px 55px rgba(0,0,0,0.6), 0 0 0 2px var(--gold);
  }

  .stage-caption{
    text-align:center; pointer-events:none; max-width:640px;
  }
  .stage-caption .caption-name{
    font-family:var(--serif); font-size:22px; color:var(--cream); font-weight:600;
  }
  .stage-caption .caption-role{
    font-family:var(--sans); font-size:12px; text-transform:uppercase; letter-spacing:.1em;
    color:var(--gold-soft); margin-top:6px;
  }
  .stage-caption .caption-title{
    font-family:var(--body); font-style:italic; font-size:15px; color:var(--cream-dim);
    margin-top:10px; line-height:1.5;
  }
  .stage-caption .caption-format{
    font-family:var(--sans); font-size:12px; letter-spacing:.05em; color:var(--gold);
    text-transform:uppercase; margin-top:12px;
  }
  .stage-caption-row{
    position:relative; z-index:5; margin-top:32px; width:100%;
    display:flex; align-items:flex-start; justify-content:center; gap:18px;
  }
  .stage-step{
    flex:0 0 auto; width:38px; height:38px; border-radius:50%; pointer-events:auto;
    background:rgba(244,236,218,0.08); border:1px solid var(--gold-line); color:var(--cream);
    font-size:13px; cursor:pointer; transition:background .2s, border-color .2s;
    margin-top:4px;
  }
  .stage-step:hover{ background:rgba(244,236,218,0.16); border-color:var(--gold); }

  .curtain{
    position:absolute; top:0; bottom:0; width:52%; z-index:6;
    background:
      repeating-linear-gradient(100deg,
        #6b1626 0, #6b1626 34px,
        #4a0f1c 34px, #4a0f1c 40px,
        #85233a 40px, #85233a 44px);
    box-shadow:inset 0 0 70px rgba(0,0,0,0.65), inset 0 -20px 50px rgba(0,0,0,0.4);
    transition:transform .9s cubic-bezier(.65,0,.35,1);
  }
  .curtain::after{
    content:""; position:absolute; inset:0;
    background:linear-gradient(180deg, rgba(255,255,255,0.10), transparent 30%);
  }
  .curtain-left{ left:0; transform:translateX(0); }
  .curtain-right{ right:0; transform:translateX(0); }
  .stage.open .curtain-left{ transform:translateX(-100%); }
  .stage.open .curtain-right{ transform:translateX(100%); }

  .stage-hint{
    position:absolute; bottom:18px; left:50%; transform:translateX(-50%); z-index:7;
    font-family:var(--sans); font-size:12px; letter-spacing:.16em; text-transform:uppercase;
    color:var(--cream-dim); opacity:.85; pointer-events:none; transition:opacity .3s;
  }
  .stage.open .stage-hint{ opacity:0; }

  @media (max-width:700px){
    .stage{ min-height:auto; }
    .stage-wings{ display:none; }
    .stage-content{ padding:44px 16px 32px; min-height:auto; }
    .carousel-viewport{ height:320px; }
    .carousel-ring{ width:170px; height:220px; }
    .carousel-card{ width:170px; height:220px; }
    .stage-caption-row{ margin-top:24px; gap:12px; }
    .stage-caption{ max-width:260px; }
    .stage-caption .caption-name{ font-size:18px; }
    .stage-caption .caption-role{ font-size:10.5px; }
    .stage-caption .caption-title{ font-size:12.5px; }
    .stage-caption .caption-format{ font-size:10.5px; }
    .stage-step{ width:32px; height:32px; font-size:11px; }
  }

  /* ---------- VIDEO MODAL ---------- */
  .video-modal{
    position:fixed; inset:0; z-index:200; display:none; align-items:center; justify-content:center;
    padding:24px;
  }
  .video-modal.open{ display:flex; }
  .video-modal-backdrop{ position:absolute; inset:0; background:rgba(8,6,4,0.88); }
  .video-modal-box{
    position:relative; z-index:1; width:100%; max-width:520px;
    background:#000; border-radius:8px; overflow:hidden;
    box-shadow:0 30px 70px rgba(0,0,0,0.6);
  }
  .video-modal-box video{ width:100%; display:block; max-height:80vh; }
  .video-modal-close{
    position:absolute; top:-40px; right:0; z-index:2;
    background:none; border:none; color:var(--cream); font-size:28px; line-height:1; cursor:pointer;
  }

  /* ---------- TICKET (theater style) ---------- */
  .ticket-wrap{ max-width:700px; margin:0 auto; position:relative; }
  .ticket{
    display:flex;
    background:linear-gradient(160deg, var(--bg-2), var(--bg-1));
    border:1px solid var(--gold-line);
    border-radius:20px;
    overflow:visible;
    box-shadow:0 24px 55px rgba(0,0,0,0.45);
    position:relative;
  }
  .ticket-main{ flex:1; padding:36px 32px; position:relative; overflow:hidden; }
  .ticket-serial-line{
    font-family:var(--sans); font-size:11px; letter-spacing:.1em; color:var(--muted);
    text-transform:uppercase;
  }
  .ticket-sparkle{
    position:absolute; color:var(--gold); font-size:14px; opacity:.8;
  }
  .sparkle-1{ top:18px; right:34px; font-size:18px; }
  .sparkle-2{ top:44px; right:16px; font-size:10px; opacity:.6; }
  .ticket-eyebrow{
    font-family:var(--sans); text-transform:uppercase; letter-spacing:.3em; font-size:12px;
    color:var(--gold-soft); margin-top:8px;
  }
  .ticket-title{ font-size:26px; margin-top:10px; }
  .ticket-sub{ font-family:var(--sans); font-size:14px; color:var(--cream-dim); margin-top:8px; letter-spacing:.03em; }
  .ticket-price{ font-family:var(--serif); font-size:56px; color:var(--gold); margin-top:22px; line-height:1; }
  .ticket-price span{ font-family:var(--sans); font-size:14px; color:var(--muted); text-transform:uppercase; letter-spacing:.08em; margin-left:8px; }
  .ticket-features{ list-style:none; padding:0; margin:22px 0 28px; font-family:var(--sans); font-size:14px; color:var(--cream-dim); }
  .ticket-features li{ padding:6px 0; }
  .ticket-features li:before{ content:"\2014 "; color:var(--gold); }

  .ticket-stub{
    width:110px; flex-shrink:0; position:relative;
    display:flex; flex-direction:column; align-items:center; justify-content:center; gap:12px;
    padding:20px 8px;
  }
  .ticket-stub-left{ border-right:2px dashed var(--gold-line); border-radius:20px 0 0 20px; }
  .ticket-stub-right{ border-left:2px dashed var(--gold-line); border-radius:0 20px 20px 0; }
  .ticket-stub .stub-label{
    writing-mode:vertical-rl; transform:rotate(180deg);
    font-family:var(--sans); letter-spacing:.3em; text-transform:uppercase; font-size:11px; color:var(--gold);
  }
  .ticket-stub .stub-barcode{
    width:22px; height:90px;
    background:repeating-linear-gradient(0deg,
      var(--cream) 0 2px, transparent 2px 4px,
      var(--cream) 4px 7px, transparent 7px 9px,
      var(--cream) 9px 10px, transparent 10px 14px,
      var(--cream) 14px 17px, transparent 17px 19px);
    opacity:.8;
  }
  .ticket-stub .stub-serial{
    font-family:var(--sans); font-size:9px; letter-spacing:.05em; color:var(--muted);
    writing-mode:vertical-rl; transform:rotate(180deg);
  }
  .ticket-stub-left::before, .ticket-stub-left::after,
  .ticket-stub-right::before, .ticket-stub-right::after{
    content:""; position:absolute; width:22px; height:22px; border-radius:50%;
    background:var(--bg-1); border:1px solid var(--gold-line);
  }
  .ticket-stub-left::before{ top:-11px; right:-11px; }
  .ticket-stub-left::after{ bottom:-11px; right:-11px; }
  .ticket-stub-right::before{ top:-11px; left:-11px; }
  .ticket-stub-right::after{ bottom:-11px; left:-11px; }

  .ticket-stamp{
    position:absolute; top:22px; right:26px; width:128px; height:128px;
    border:3px solid var(--stamp); border-radius:50%;
    display:flex; align-items:center; justify-content:center; flex-direction:column;
    color:var(--stamp); font-family:var(--sans); text-transform:uppercase; font-weight:700;
    text-align:center; transform:rotate(-14deg);
    background:rgba(230,57,47,0.10);
    box-shadow:0 0 0 1px rgba(230,57,47,0.25);
  }
  .ticket-stamp::before{
    content:""; position:absolute; inset:7px; border:1px solid var(--stamp); border-radius:50%;
  }
  .ticket-stamp b{ font-size:20px; line-height:1.1; display:block; }
  .ticket-stamp small{ font-size:9.5px; letter-spacing:.03em; font-weight:600; line-height:1.3; display:block; margin-top:2px; }
  .ticket-cta{ text-align:center; margin-top:34px; }
  .pay-icons{ margin-top:24px; text-align:center; font-family:var(--sans); font-size:14px; letter-spacing:.06em; color:var(--muted); text-transform:uppercase; }
  @media (max-width:620px){
    .ticket{ flex-direction:column; border-radius:20px; }
    .ticket-stub{ flex-direction:row; width:100%; padding:12px; gap:16px; }
    .ticket-stub-left{ border-right:none; border-bottom:2px dashed var(--gold-line); border-radius:20px 20px 0 0; order:-1; }
    .ticket-stub-right{ border-left:none; border-top:2px dashed var(--gold-line); border-radius:0 0 20px 20px; }
    .ticket-stub .stub-label{ writing-mode:horizontal-tb; transform:none; }
    .ticket-stub .stub-barcode{ width:90px; height:22px; background:repeating-linear-gradient(90deg,
      var(--cream) 0 2px, transparent 2px 4px,
      var(--cream) 4px 7px, transparent 7px 9px,
      var(--cream) 9px 10px, transparent 10px 14px,
      var(--cream) 14px 17px, transparent 17px 19px); }
    .ticket-stub .stub-serial{ writing-mode:horizontal-tb; transform:none; }
    .ticket-stub-left::before, .ticket-stub-left::after{ right:auto; left:-11px; top:auto; bottom:-11px; }
    .ticket-stub-left::before{ left:16px; bottom:-11px; top:auto; }
    .ticket-stub-left::after{ right:16px; left:auto; bottom:-11px; top:auto; }
    .ticket-stub-right::before{ left:16px; top:-11px; }
    .ticket-stub-right::after{ right:16px; left:auto; top:-11px; }
    .ticket-stamp{ width:104px; height:104px; top:16px; right:16px; }
    .ticket-stamp b{ font-size:16px; }
  }

  /* ---------- ANMELDUNG / FORM ---------- */
  .form-shell{
    max-width:660px; margin:0 auto; background:var(--bg-1); border:1px solid var(--line);
    padding:44px 40px;
  }
  .field{ margin-bottom:22px; }
  .field label{ display:block; font-family:var(--sans); font-size:13px; text-transform:uppercase; letter-spacing:.1em; color:var(--cream-dim); margin-bottom:9px; }
  .price-display{
    display:flex; align-items:baseline; gap:12px; background:var(--bg-0);
    border:1px solid var(--gold-line); border-radius:2px; padding:16px 18px;
  }
  #live-price{ font-family:var(--serif); font-size:28px; color:var(--gold); }
  #live-price-note{ font-family:var(--sans); font-size:13px; text-transform:uppercase; letter-spacing:.08em; color:var(--cream-dim); }
  .field input, .field select{
    width:100%; background:var(--bg-0); border:1px solid var(--line); color:var(--cream);
    padding:13px 14px; font-family:var(--body); font-size:16px; border-radius:2px;
    appearance:none; -webkit-appearance:none;
  }
  .field select{
    background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='%23c9a24a'%3E%3Cpath fill-rule='evenodd' d='M5.23 7.21a.75.75 0 011.06.02L10 11.168l3.71-3.938a.75.75 0 111.08 1.04l-4.25 4.5a.75.75 0 01-1.08 0l-4.25-4.5a.75.75 0 01.02-1.06z' clip-rule='evenodd'/%3E%3C/svg%3E");
    background-repeat:no-repeat; background-position:right 14px center; padding-right:38px;
  }
  .field-row{ display:flex; gap:16px; margin-bottom:22px; }
  .field-row .field{ flex:1; margin-bottom:0; }
  .field input:focus, .field select:focus{ border-color:var(--gold); outline:none; }
  .radio-row{ display:flex; gap:14px; flex-wrap:wrap; }
  .radio-opt{
    flex:1; min-width:140px; border:1px solid var(--line); padding:12px 14px; border-radius:2px;
    font-family:var(--sans); font-size:15px; color:var(--cream-dim); cursor:pointer;
    display:flex; align-items:center; justify-content:center; gap:9px; transition:border-color .2s, color .2s;
  }
  .radio-opt:has(input:checked){ border-color:var(--gold); color:var(--cream); }
  .radio-opt input{ accent-color:var(--gold); }
  .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;
  }
  .pay-mark{ display:flex; align-items:center; gap:8px; }
  .pay-mark-paypal{
    font-family:Verdana, Arial, sans-serif; font-size:18px; font-weight:700;
    color:#003087; letter-spacing:-.01em;
  }
  .pay-mark-paypal em{ font-style:normal; color:#009cde; }
  .pay-mark-bank{ color:var(--gold); font-family:var(--sans); font-size:14px; }
  .pay-mark-bank svg{ color:var(--gold); }
  .field label.checkbox-opt{
    display:flex; align-items:flex-start; gap:10px; cursor:pointer;
    font-family:var(--sans); font-size:14px; color:var(--cream-dim); line-height:1.5;
    text-transform:none; letter-spacing:normal;
    margin-bottom:20px;
  }
  .field label.checkbox-opt:last-child{ margin-bottom:0; }
  .checkbox-opt input{
    accent-color:var(--gold); margin-top:3px; flex-shrink:0; width:16px; height:16px;
    appearance:auto; -webkit-appearance:auto;
  }
  .checkbox-opt a{ text-decoration:underline; }
  .form-note{ font-size:14px; color:var(--muted); margin-top:18px; text-align:center; }
  #form-error.show{ display:block !important; font-weight:600; }
  .form-shell .btn{ width:100%; text-align:center; margin-top:6px; }
  #form-success{ display:none; text-align:center; padding:20px 0; }
  #form-success.show{ display:block; }
  #form-success h3{ color:var(--gold); font-size:24px; }
  #form-success p{ color:var(--cream-dim); margin-top:10px; }

  /* ---------- FAQ ---------- */
  .faq{ max-width:720px; margin:0 auto; }
  .faq details{ border-bottom:1px solid var(--line); padding:22px 0; }
  .faq summary{
    cursor:pointer; list-style:none; display:flex; justify-content:space-between; align-items:center;
    font-family:var(--sans); font-weight:500; font-size:18px; color:var(--cream);
  }
  .faq summary::-webkit-details-marker{ display:none; }
  .faq summary:after{ content:"+"; color:var(--gold); font-size:24px; font-family:var(--serif); transition:transform .25s; }
  .faq details[open] summary:after{ transform:rotate(45deg); }
  .faq .a{ color:var(--cream-dim); margin-top:14px; font-size:17px; max-width:600px; }

  /* ---------- FOOTER ---------- */
  footer{ background:var(--bg-0); border-top:1px solid var(--line); padding:52px 0 36px; text-align:center; }
  footer .brand{ display:inline-block; margin-bottom:14px; }
  footer .brand img{ height:44px; width:auto; margin:0 auto; }
  footer .foot-links{ font-family:var(--sans); font-size:14px; color:var(--muted); display:flex; gap:22px; justify-content:center; flex-wrap:wrap; margin-top:18px;}
  footer .foot-links a{ text-decoration:none; }
  footer .foot-links a:hover{ color:var(--gold); }
  footer .copyright{ margin-top:26px; font-family:var(--sans); font-size:13px; color:#6b6155; }
  footer .copyright-credit{ margin-top:8px; font-family:var(--sans); font-size:12px; color:#6b6155; }
  footer .copyright-credit a{ color:#6b6155; text-decoration:underline; }
  footer .copyright-credit a:hover{ color:var(--gold); }

  @media (prefers-reduced-motion: reduce){
    html{ scroll-behavior:auto; }
    *{ transition:none !important; }
  }
