:root {
    --ink: #24343b;
    --muted: #5f6d72;
    --navy: #0d4960;
    --navy-dark: #073b50;
    --plum: #963f60;
    --plum-dark: #763149;
    --teal: #187984;
    --green: #64805d;
    --gold: #c78d3c;
    --orange: #cf6947;
    --cream: #fff9ef;
    --paper: #ffffff;
    --line: #dbe3e2;
    --shadow: 0 14px 38px rgba(24, 59, 72, .10);
    --site-width: 1220px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
    margin: 0;
    color: var(--ink);
    background: #fffdf9;
    font-family: Aptos, "Segoe UI Variable", "Segoe UI", Arial, sans-serif;
    font-size: 17px;
    line-height: 1.55;
}
img { max-width: 100%; height: auto; }
a { color: var(--navy-dark); }
a:hover { color: var(--plum-dark); }
button, input { font: inherit; }
.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:fixed;left:12px;top:-80px;z-index:1100;background:#fff;color:#000;padding:10px 14px;border-radius:8px; }
.skip-link:focus { top:12px; }
.site-width { width:min(calc(100% - 40px), var(--site-width)); margin-inline:auto; }

.site-utility { background: var(--navy-dark); color:#fff; font-size:.82rem; }
.utility-inner { min-height:38px; display:flex; justify-content:flex-end; align-items:center; }
.utility-links { display:flex; flex-wrap:wrap; gap:20px; }
.site-utility a { color:#fff; text-decoration:none; }
.site-utility a:hover { text-decoration:underline; }

.site-header { background:rgba(255,255,255,.97); border-bottom:1px solid var(--line); position:sticky; top:0; z-index:100; box-shadow:0 4px 18px rgba(7,59,80,.055); }
.header-inner { min-height:118px; display:flex; align-items:center; justify-content:space-between; gap:20px; }
.header-inner > .brand { min-width:0; flex:0 1 auto; }
.brand { display:inline-flex; flex-direction:column; gap:1px; text-decoration:none; color:var(--muted); letter-spacing:.1em; text-transform:uppercase; font-size:.65rem; }
.brand img { display:block; width:500px; max-width:43vw; height:auto; object-fit:contain; object-position:left center; }
.primary-nav { display:flex; align-items:center; gap:3px; flex:0 0 auto; }
.primary-nav a { color:var(--ink); text-decoration:none; font-weight:650; font-size:.92rem; padding:10px 12px; border-radius:999px; white-space:nowrap; }
.primary-nav a:hover, .primary-nav a[aria-current="page"] { background:#edf5f4; color:var(--navy-dark); }
.primary-nav .nav-cta { background:var(--plum); color:#fff; padding-inline:18px; }
.primary-nav .nav-cta:hover { background:var(--plum-dark); color:#fff; }
.nav-toggle { display:none; }

main { background:#fffdf9; }
.hero {
    overflow:hidden;
    background:
        radial-gradient(circle at 3% 22%, rgba(242,188,111,.28), transparent 30%),
        radial-gradient(circle at 51% 8%, rgba(64,161,158,.16), transparent 32%),
        linear-gradient(122deg, #fff8eb 0%, #fffdf8 49%, #eef7f5 100%);
    border-bottom:1px solid #efe2d1;
}
.hero-grid { display:grid; grid-template-columns:minmax(0,.9fr) minmax(470px,1.1fr); gap:58px; align-items:center; padding-block:64px; }
.hero-copy-column { position:relative; z-index:2; }
.eyebrow, .section-kicker, .card-kicker, .mail-kicker { margin:0 0 11px; color:var(--plum); font-weight:800; letter-spacing:.13em; text-transform:uppercase; font-size:.76rem; }
.hero h1, .section-title, .audience-card h2, .brand-section h2, .mail-card h2 {
    font-family:Baskerville, "Iowan Old Style", "Palatino Linotype", Georgia, serif;
    font-weight:500;
    color:var(--navy-dark);
    letter-spacing:-.025em;
}
.hero h1 { font-size:clamp(2.8rem,4.8vw,4.7rem); line-height:.98; margin:0 0 24px; max-width:680px; }
.hero-lead { margin:0 0 17px; color:#8b3b53; font-family:Baskerville, "Iowan Old Style", Georgia, serif; font-size:1.15rem; line-height:1.55; }
.hero-copy { margin:0; max-width:650px; color:#405058; font-size:1.04rem; }
.hero-actions { display:flex; flex-wrap:wrap; gap:12px; margin-top:29px; }
.btn { display:inline-flex; align-items:center; justify-content:center; min-height:46px; padding:10px 21px; border-radius:16px; border:1px solid transparent; text-decoration:none; font-weight:750; transition:transform .15s ease,background-color .15s ease,border-color .15s ease; }
.btn:hover { transform:translateY(-1px); }
.btn-primary { background:var(--plum); color:#fff; box-shadow:0 8px 19px rgba(150,63,96,.17); }
.btn-primary:hover { background:var(--plum-dark); color:#fff; }
.btn-secondary { background:rgba(255,255,255,.85); color:var(--navy-dark); border-color:#9ab6bc; }
.btn-secondary:hover { background:#fff; border-color:var(--teal); }

.hero-media { position:relative; display:grid; grid-template-columns:1.25fr .75fr; grid-template-rows:1fr 1fr; gap:12px; min-height:455px; }
.hero-media::before { content:""; position:absolute; width:210px; height:210px; right:-70px; top:-45px; border-radius:50%; background:rgba(207,105,71,.18); }
.hero-media::after { content:""; position:absolute; width:170px; height:170px; left:-42px; bottom:-40px; border-radius:50%; background:rgba(24,121,132,.16); }
.hero-photo { margin:0; overflow:hidden; position:relative; z-index:1; box-shadow:0 20px 44px rgba(20,60,73,.18); background:#fff; }
.hero-photo-main { grid-row:1 / span 2; border-radius:48px 18px 44px 18px; }
.hero-photo-small { border-radius:18px 38px 18px 30px; }
.hero-photo-small:last-child { border-radius:30px 18px 42px 18px; }
.hero-photo img { width:100%; height:100%; object-fit:cover; display:block; }

.content-section { padding-block:70px; }
.section-heading { display:flex; justify-content:space-between; align-items:end; gap:26px; margin-bottom:28px; }
.section-title { margin:0; font-size:clamp(2.15rem,3vw,3rem); }
.section-heading p:not(.section-kicker) { margin:6px 0 0; color:var(--muted); }
.text-link { font-weight:750; text-underline-offset:4px; }

.shows-section { background:#fff; }
.event-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px 18px; }
.event-row { --event-accent:var(--teal); display:grid; grid-template-columns:106px 1fr; min-height:170px; background:#fff; border:1px solid #e4e9e7; border-left:5px solid var(--event-accent); border-radius:18px; overflow:hidden; box-shadow:0 8px 24px rgba(26,61,73,.065); transition:transform .15s ease, box-shadow .15s ease; }
.event-row:hover { transform:translateY(-2px); box-shadow:0 13px 30px rgba(26,61,73,.10); }
.event-row--artazan { --event-accent:var(--orange); }
.event-row--maacs { --event-accent:var(--green); }
.event-row--cots { --event-accent:var(--teal); }
.event-row--bds { --event-accent:var(--plum); }
.event-date { background:color-mix(in srgb, var(--event-accent) 10%, #fff 90%); display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; padding:18px 8px; color:var(--navy-dark); }
.event-month { color:var(--event-accent); font-weight:850; letter-spacing:.12em; font-size:.78rem; }
.event-days { font-size:1.8rem; line-height:1.05; margin:5px 0 3px; letter-spacing:-.04em; }
.event-year { font-size:.76rem; color:#6a777b; }
.event-info { padding:20px 22px 18px; display:flex; flex-direction:column; }
.event-info h3 { margin:0 0 7px; color:var(--navy-dark); font-family:Aptos,"Segoe UI Variable","Segoe UI",Arial,sans-serif; font-size:1.18rem; line-height:1.2; font-weight:750; letter-spacing:-.01em; }
.event-location { margin:0 0 2px; font-weight:700; color:#34464d; }
.event-venue { margin:0; color:var(--muted); font-size:.91rem; }
.event-actions { margin-top:auto; padding-top:14px; display:flex; flex-wrap:wrap; gap:15px; align-items:center; font-size:.88rem; font-weight:750; }
.event-actions a { text-underline-offset:3px; }
.event-register { color:var(--plum-dark); }

.audience-section { background:linear-gradient(110deg,#eaf6f3 0%,#fff7e9 50%,#faeef2 100%); }
.audience-grid { display:grid; grid-template-columns:1fr 1fr; gap:25px; }
.audience-card { position:relative; overflow:hidden; background:rgba(255,255,255,.88); border:1px solid rgba(255,255,255,.8); border-radius:34px 14px 34px 14px; padding:38px; box-shadow:var(--shadow); }
.audience-card::after { content:""; position:absolute; width:145px; height:145px; right:-50px; top:-55px; border-radius:50%; background:rgba(24,121,132,.11); }
.audience-card--exhibitor { border-radius:14px 34px 14px 34px; }
.audience-card--exhibitor::after { background:rgba(207,105,71,.12); }
.audience-card h2 { font-size:2.15rem; margin:0 0 10px; }
.audience-card p:not(.card-kicker) { margin:0 0 20px; color:#46565c; }
.quick-links { display:flex; flex-wrap:wrap; gap:9px 19px; margin-top:20px; }
.quick-links a { font-size:.91rem; font-weight:700; text-underline-offset:3px; }

.brand-section { padding-block:72px 60px; background:#fffaf2; }
.brand-section h2 { margin:0; font-size:2.55rem; }
.brand-intro { margin:7px 0 0; color:var(--muted); }
.brand-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:18px; }
.brand-tile { --brand-accent:var(--teal); position:relative; min-height:185px; display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; gap:13px; padding:26px 20px 22px; background:#fff; border:1px solid #eee7dc; border-radius:24px; text-decoration:none; box-shadow:0 10px 28px rgba(42,65,65,.07); transition:transform .18s ease,box-shadow .18s ease; }
.brand-tile::after { content:""; position:absolute; left:25px; right:25px; bottom:0; height:5px; border-radius:5px 5px 0 0; background:var(--brand-accent); }
.brand-tile:hover { transform:translateY(-3px); box-shadow:0 15px 36px rgba(42,65,65,.11); }
.brand-tile--bds { --brand-accent:var(--plum); }
.brand-tile--artazan { --brand-accent:var(--orange); }
.brand-tile--cots { --brand-accent:var(--teal); }
.brand-tile--maacs { --brand-accent:var(--green); }
.brand-logo-wrap { width:100%; height:78px; display:flex; align-items:center; justify-content:center; }
.brand-logo-wrap img { display:block; max-width:92%; max-height:72px; width:auto; height:auto; object-fit:contain; }
.brand-tile--bds .brand-logo-wrap img { max-width:100%; max-height:88px; transform:scale(1.22); }
.brand-tile--maacs .brand-logo-wrap { background:#fff; border-radius:12px; padding:4px 8px; }
.brand-tile--maacs .brand-logo-wrap img { max-height:76px; }
.brand-tile span { color:#526168; font-size:.9rem; line-height:1.35; }

.mail-wrap { padding-block:10px 72px; background:#fffaf2; }
.mail-card { position:relative; overflow:hidden; background:linear-gradient(125deg,#0d5268 0%,#187984 52%,#873d5a 115%); border-radius:34px 16px 34px 16px; box-shadow:0 16px 38px rgba(19,70,82,.16); color:#fff; padding:38px 40px; }
.mail-card::before { content:""; position:absolute; width:320px; height:320px; border-radius:50%; background:rgba(255,198,111,.13); right:-120px; top:-165px; }
.mail-intro { position:relative; z-index:1; max-width:760px; margin-bottom:25px; }
.mail-kicker { color:#ffd5a0; }
.mail-card h2 { color:#fff; margin:0 0 7px; font-size:2.25rem; }
.mail-intro p:not(.mail-kicker) { margin:0; color:#edf8f6; }
.mail-form { position:relative; z-index:1; background:rgba(255,255,255,.97); color:var(--ink); border-radius:24px; padding:25px; }
.mail-email { display:grid; grid-template-columns:140px 1fr; align-items:center; gap:14px; font-weight:750; }
.mail-email input { width:100%; min-height:46px; border:1px solid #adc4c7; border-radius:13px; padding:10px 13px; color:var(--ink); background:#fff; }
.mail-email input:focus { outline:3px solid rgba(24,121,132,.18); border-color:var(--teal); }
.mail-choices { border:0; padding:0; margin:22px 0 0; }
.mail-choices legend { font-weight:800; color:var(--navy-dark); margin-bottom:10px; }
.mail-choice-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:9px; }
.choice { display:flex; align-items:flex-start; gap:9px; min-height:44px; border:1px solid #e0e7e5; border-radius:12px; background:#f9fbfa; padding:10px 12px; font-size:.88rem; line-height:1.25; }
.choice input { margin-top:2px; accent-color:var(--teal); }
.choice-master { display:inline-flex; min-height:auto; background:#eef7f5; margin-bottom:11px; font-weight:750; }
.choice small { display:block; margin-top:3px; color:var(--muted); }
.exhibitor-choice .choice { max-width:620px; background:#fff7ef; border-color:#efd9c9; }
.mail-submit-row { margin-top:22px; display:flex; justify-content:space-between; align-items:center; gap:24px; }
.mail-submit-row p { margin:0; max-width:760px; color:#627075; font-size:.79rem; }
.btn-mail { background:var(--plum); color:#fff; border:0; cursor:pointer; white-space:nowrap; }
.btn-mail:hover { background:var(--plum-dark); color:#fff; }
.form-notice { margin:0 0 18px; border-radius:12px; padding:11px 14px; font-weight:700; }
.form-notice--success { background:#e9f7ef; color:#245d3a; }
.form-notice--error { background:#fff0f0; color:#8a3030; }
.hp-field { position:absolute !important; left:-10000px !important; width:1px !important; height:1px !important; overflow:hidden !important; }

.site-footer { background:#173d4b; color:#d8e1e2; padding-top:44px; }
.footer-grid { display:grid; grid-template-columns:2fr repeat(3,1fr); gap:36px; }
.footer-brand img { display:block; width:430px; max-width:100%; height:auto; object-fit:contain; object-position:center; margin-inline:auto; }
.footer-brand p { max-width:460px; font-size:.9rem; color:#ccd8da; }
.site-footer h2 { color:#fff; font-family:Aptos,"Segoe UI",Arial,sans-serif; text-transform:uppercase; letter-spacing:.08em; font-size:.77rem; margin:0 0 12px; }
.site-footer a { display:block; color:#e2eaeb; text-decoration:none; margin:7px 0; font-size:.9rem; }
.site-footer a:hover { color:#fff; text-decoration:underline; }
.footer-bottom { display:flex; justify-content:space-between; align-items:center; gap:20px; border-top:1px solid #37606b; margin-top:30px; padding-block:18px 26px; font-size:.8rem; color:#b8c8cc; }
.footer-preferences { border:0; background:transparent; color:#dbe4e6; text-decoration:underline; text-underline-offset:3px; cursor:pointer; padding:4px 0; }

.cookie-consent { position:fixed; z-index:1000; left:14px; bottom:14px; max-width:660px; background:#fff; color:#25353d; border:1px solid #cad6d6; border-radius:14px; box-shadow:0 12px 34px rgba(15,40,50,.20); }
.cookie-consent[hidden] { display:none; }
.cookie-inner { display:flex; align-items:center; gap:15px; padding:13px 14px 13px 16px; }
.cookie-inner p { margin:0; color:#52616a; font-size:.78rem; line-height:1.35; }
.cookie-actions { display:flex; flex:0 0 auto; gap:6px; }
.cookie-choice { border:1px solid #a9bdc1; border-radius:9px; padding:7px 10px; background:#fff; color:var(--navy-dark); cursor:pointer; font-size:.76rem; font-weight:750; }
.cookie-choice-primary { background:var(--navy); border-color:var(--navy); color:#fff; }
.cookie-choice:hover { border-color:var(--navy); }

@media (max-width:1180px) {
    .brand img { width:440px; max-width:42vw; }
    .primary-nav a { padding-inline:9px; font-size:.88rem; }
}

@media (max-width:1050px) {
    .hero-grid { grid-template-columns:1fr; gap:30px; }
    .hero-media { min-height:360px; }
    .brand-grid { grid-template-columns:repeat(2,1fr); }
    .mail-choice-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
    .header-inner { min-height:104px; }
    .brand img { width:420px; max-width:calc(100vw - 86px); }
    .brand span { display:none; }
    .nav-toggle { display:inline-flex; flex:0 0 44px; width:44px; height:44px; border:1px solid var(--line); border-radius:12px; background:#fff; align-items:center; justify-content:center; color:var(--navy-dark); cursor:pointer; }
    .nav-toggle-lines,.nav-toggle-lines::before,.nav-toggle-lines::after { display:block; width:21px; height:2px; background:currentColor; position:relative; }
    .nav-toggle-lines::before,.nav-toggle-lines::after { content:""; position:absolute; left:0; }
    .nav-toggle-lines::before { top:-7px; }
    .nav-toggle-lines::after { top:7px; }
    .primary-nav { display:none; position:absolute; left:0; right:0; top:100%; background:#fff; border-bottom:1px solid var(--line); padding:12px 14px 18px; box-shadow:0 16px 24px rgba(38,49,58,.1); }
    .primary-nav.is-open { display:grid; gap:3px; }
    .primary-nav a { padding:11px 14px; white-space:nowrap; }
    .primary-nav .nav-cta { margin-top:5px; text-align:center; }
}

@media (max-width:820px) {
    .site-width { width:min(calc(100% - 28px), var(--site-width)); }
    .header-inner { min-height:96px; }
    .brand img { width:380px; max-width:calc(100vw - 82px); }
    .event-grid { grid-template-columns:1fr; }
    .audience-grid { grid-template-columns:1fr; }
    .footer-grid { grid-template-columns:1fr 1fr; }
    .footer-brand { grid-column:1 / -1; }
    .cookie-consent { right:14px; max-width:none; }
}

@media (max-width:600px) {
    body { font-size:16px; }
    .utility-inner { min-height:38px; padding-block:6px; }
    .utility-links { justify-content:flex-end; gap:4px 11px; font-size:.75rem; line-height:1.25; }
    .utility-links a { white-space:nowrap; }
    .brand img { width:340px; max-width:calc(100vw - 76px); }
    .hero-grid { padding-block:42px; }
    .hero h1 { font-size:2.7rem; }
    .hero-media { min-height:285px; grid-template-columns:1fr 1fr; }
    .hero-photo-main { grid-row:auto; grid-column:1 / -1; height:165px; border-radius:28px 12px 24px 12px; }
    .hero-photo-small { height:108px; }
    .section-heading { align-items:flex-start; flex-direction:column; gap:6px; }
    .content-section { padding-block:48px; }
    .event-row { grid-template-columns:82px 1fr; min-height:155px; }
    .event-info { padding:17px 16px; }
    .event-days { font-size:1.55rem; }
    .audience-card { padding:27px; }
    .brand-grid,.footer-grid { grid-template-columns:1fr; }
    .footer-brand { grid-column:auto; }
    .mail-card { padding:26px 18px; border-radius:26px 12px 26px 12px; }
    .mail-form { padding:20px 16px; }
    .mail-email { grid-template-columns:1fr; gap:6px; }
    .mail-choice-grid { grid-template-columns:1fr; }
    .mail-submit-row { align-items:stretch; flex-direction:column; }
    .btn-mail { width:100%; }
    .footer-bottom { align-items:flex-start; flex-direction:column; }
    .cookie-inner { align-items:stretch; flex-direction:column; gap:9px; }
    .cookie-actions { align-self:flex-end; }
}

/* v6 homepage refinements */
.event-grid { gap:20px; }
.event-row {
    min-height:240px;
    grid-template-columns:104px 1fr;
    background:#fff;
    border:1px solid #e4ddd2;
    border-left:0;
    border-radius:22px;
    box-shadow:0 9px 24px rgba(42,65,65,.065);
    overflow:hidden;
}
.event-date {
    align-self:stretch;
    border-radius:0;
    padding:24px 12px;
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    background:var(--event-soft,#f3eee8);
    border-left:5px solid var(--event-accent,var(--plum));
}
.event-row--artazan { --event-accent:#c85f3b; --event-soft:#fbefe9; }
.event-row--maacs { --event-accent:#66845e; --event-soft:#eef3eb; }
.event-row--cots { --event-accent:#157f89; --event-soft:#e8f4f3; }
.event-row--bds { --event-accent:#9b3d62; --event-soft:#f6eaf0; }
.event-row--gb { --event-accent:#496b73; --event-soft:#eef2f2; }
.event-month { color:var(--event-accent); letter-spacing:.12em; font-size:.78rem; font-weight:800; }
.event-days { color:var(--navy-dark); font-family:Georgia,"Times New Roman",serif; font-size:2rem; line-height:1; margin:6px 0 4px; font-weight:500; }
.event-year { color:#67767d; font-size:.73rem; }
.event-info { padding:25px 25px 22px; display:flex; flex-direction:column; align-items:flex-start; }
.event-info h3 {
    margin:0 0 8px;
    color:#152f3e;
    font-family:Georgia,"Times New Roman",serif;
    font-weight:500;
    font-size:1.62rem;
    line-height:1.08;
    text-transform:none !important;
    letter-spacing:0;
}
.event-meta { margin:0; display:flex; flex-wrap:wrap; gap:5px 10px; align-items:baseline; color:#56666d; font-size:.91rem; }
.event-meta strong { color:#344a55; font-weight:700; }
.event-meta span::before { content:"•"; margin-right:10px; color:var(--event-accent); }
.event-hours { margin:6px 0 0; color:#7b664f; font-size:.84rem; font-weight:650; }
.event-summary { margin:12px 0 0; color:#536169; font-size:.9rem; line-height:1.5; }
.event-actions { margin-top:auto; padding-top:15px; display:flex; flex-wrap:wrap; gap:10px; align-items:center; }
.event-actions a { display:inline-flex; align-items:center; min-height:38px; padding:8px 13px; border-radius:999px; border:1px solid #b9c6c8; text-decoration:none; font-size:.84rem; font-weight:750; }
.event-actions a:hover { border-color:var(--event-accent); }
.event-actions .event-register { background:var(--event-accent); color:#fff; border-color:var(--event-accent); }
.event-actions .event-register:hover { filter:brightness(.94); color:#fff; }

.brand-section { background:#fff9ef; }
.brand-grid { gap:20px; }
.brand-tile {
    min-height:200px;
    padding:22px 20px 20px;
    border:1px solid rgba(30,54,60,.09);
    box-shadow:0 11px 28px rgba(50,61,55,.07);
    overflow:hidden;
}
.brand-tile::after { height:4px; left:22px; right:22px; }
.brand-tile--bds { background:linear-gradient(145deg,#f5eef1,#fff 70%); }
.brand-tile--artazan { background:linear-gradient(145deg,#fbefe5,#fff8ee 72%); }
.brand-tile--cots { background:linear-gradient(145deg,#e9f4f1,#f8fcfb 72%); }
.brand-tile--maacs { background:linear-gradient(145deg,#eef1e3,#fff6df 72%); }
.brand-logo-wrap { height:100px; }
.brand-logo-wrap img { max-height:91px; max-width:96%; }
.brand-tile--bds .brand-logo-wrap img { max-height:108px; transform:scale(1.35); }
.brand-tile--maacs .brand-logo-wrap { background:transparent; padding:0; }
.brand-tile--maacs .brand-logo-wrap img { max-height:92px; }
.brand-tile span { max-width:245px; color:#45565d; }

.mail-wrap { padding-block:20px 72px; background:#fff9ef; }
.mail-card {
    background:#fff;
    color:var(--ink);
    border:1px solid #e6ded2;
    border-radius:26px;
    box-shadow:0 12px 30px rgba(51,63,60,.08);
    padding:32px 36px;
}
.mail-card::before { display:none; }
.mail-intro { max-width:820px; margin-bottom:18px; }
.mail-kicker { color:var(--plum); }
.mail-card h2 { color:var(--navy-dark); font-size:2.15rem; }
.mail-intro p:not(.mail-kicker) { color:#56666d; }
.mail-form { background:transparent; padding:0; border-radius:0; }
.mail-main-row { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:12px; align-items:end; }
.mail-email-simple { display:grid; gap:7px; font-weight:750; }
.mail-email-simple input { min-height:48px; width:100%; border:1px solid #b7c6c8; border-radius:13px; padding:10px 13px; font:inherit; }
.mail-email-simple input:focus { outline:3px solid rgba(24,121,132,.16); border-color:var(--teal); }
.mail-primary-options { display:grid; grid-template-columns:1fr 1fr; gap:12px; margin-top:16px; }
.mail-option-main { display:flex; gap:10px; align-items:flex-start; padding:12px 14px; background:#faf8f3; border:1px solid #ebe4d9; border-radius:14px; }
.mail-option-main input { margin-top:3px; accent-color:var(--teal); }
.mail-option-main strong,.mail-option-main small { display:block; }
.mail-option-main strong { color:#253e4a; }
.mail-option-main small { margin-top:2px; color:#68767c; font-size:.79rem; line-height:1.35; }
.mail-customize { margin-top:14px; border-top:1px solid #e8e2d8; padding-top:12px; }
.mail-customize summary { width:max-content; cursor:pointer; color:var(--navy); font-size:.88rem; font-weight:750; text-decoration:underline; text-underline-offset:3px; }
.mail-customize > p { margin:8px 0 10px; color:#6b787d; font-size:.82rem; }
.mail-customize .mail-choice-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
.mail-customize .choice { min-height:40px; padding:9px 10px; font-size:.81rem; background:#fbfcfb; }
.mail-legal { margin:14px 0 0; color:#718087; font-size:.76rem; line-height:1.45; }
.btn-mail { min-height:48px; }

@media (max-width:820px) {
    .event-row { min-height:220px; }
    .mail-customize .mail-choice-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width:600px) {
    .event-row { grid-template-columns:82px 1fr; min-height:220px; }
    .event-info { padding:19px 16px; }
    .event-info h3 { font-size:1.35rem; }
    .event-summary { font-size:.86rem; }
    .event-meta { display:block; }
    .event-meta span { display:block; margin-top:2px; }
    .event-meta span::before { display:none; }
    .brand-logo-wrap { height:88px; }
    .brand-tile--bds .brand-logo-wrap img { transform:scale(1.25); }
    .mail-card { padding:26px 20px; }
    .mail-main-row,.mail-primary-options { grid-template-columns:1fr; }
    .mail-customize .mail-choice-grid { grid-template-columns:1fr; }
}

/* v7 refinements: show-brand header colors, logo-only brand links, quieter mailing form */
.brand-section { background:#fffaf3; }
.brand-grid { gap:18px; }
.brand-tile {
    min-height:150px;
    padding:20px 24px;
    border:0;
    border-radius:22px;
    box-shadow:0 10px 26px rgba(39,52,49,.09);
    display:flex;
    align-items:center;
    justify-content:center;
    transition:transform .18s ease, box-shadow .18s ease;
}
.brand-tile:hover { transform:translateY(-3px); box-shadow:0 15px 34px rgba(39,52,49,.13); }
.brand-tile::after { display:none; }
/* These mirror the light header fields used by the current show sites. */
.brand-tile--bds { background:#ece8e4; }
.brand-tile--artazan { background:#f2e6d6; }
.brand-tile--cots { background:#e5efeb; }
.brand-tile--maacs { background:#efe4c6; }
.brand-logo-wrap { width:100%; height:105px; display:flex; align-items:center; justify-content:center; }
.brand-logo-wrap img { display:block; max-width:88%; max-height:96px; width:auto; height:auto; object-fit:contain; }
.brand-tile--bds .brand-logo-wrap img { max-height:118px; max-width:94%; transform:scale(1.16); }
.brand-tile--artazan .brand-logo-wrap img { max-width:82%; }
.brand-tile--cots .brand-logo-wrap img { max-width:92%; }
.brand-tile--maacs .brand-logo-wrap img { max-width:94%; max-height:100px; }
.brand-tile span { display:none; }

.mail-card { padding:30px 34px; }
.mail-intro { margin-bottom:14px; }
.mail-card h2 { margin-bottom:0; }
.mail-primary-options { margin-top:13px; }
.mail-option-main { padding:10px 13px; }
.mail-option-main small { display:none; }
.mail-customize { margin-top:11px; padding-top:10px; }
.mail-customize > p { display:none; }
.mail-security { margin-top:12px; min-height:0; }
.mail-legal { margin-top:10px; max-width:900px; }

@media (max-width:600px) {
    .brand-tile { min-height:126px; padding:16px; }
    .brand-logo-wrap { height:90px; }
    .brand-tile--bds .brand-logo-wrap img { transform:scale(1.10); }
}

/* v8: exact show-site header fields and dedicated mailing/accessibility pages */
.brand-tile--bds { background:#180a1c; }
.brand-tile--artazan { background:#f6ead8; }
.brand-tile--cots { background:#faf4e8; }
.brand-tile--maacs { background:#748f72; }
.brand-tile--bds .brand-logo-wrap img {
    filter:grayscale(1) brightness(0) invert(1);
    opacity:.95;
    max-height:122px;
    transform:scale(1.18);
}
.brand-tile--artazan .brand-logo-wrap img { max-width:88%; }
.brand-tile--cots .brand-logo-wrap img { max-width:96%; }
.brand-tile--maacs .brand-logo-wrap img { max-width:97%; max-height:104px; }

.mail-cta-section { background:#fffaf3; padding:18px 0 70px; }
.mail-cta-card {
    border-radius:28px;
    padding:32px 38px;
    background:linear-gradient(110deg,#f7eee2,#eef5f1);
    border:1px solid rgba(35,72,78,.10);
    box-shadow:0 12px 34px rgba(45,57,55,.08);
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:30px;
}
.mail-cta-card h2 { margin:2px 0 7px; font-size:clamp(2rem,3vw,2.7rem); }
.mail-cta-card p:last-child { margin:0; color:#52636a; }

.narrow-content { max-width:960px; }
.page-hero { background:linear-gradient(120deg,#f8f0e6,#eef5f2); }
.page-hero--compact { padding:58px 0 46px; }
.page-hero h1 { margin:.1em 0 .2em; font-size:clamp(2.6rem,5vw,4.4rem); }
.page-hero p:last-child { max-width:760px; color:#52656d; font-size:1.05rem; }

.mailing-page-section { background:#fffaf3; }
.mailing-page-form {
    background:#fff;
    border:1px solid #e6ddd0;
    border-radius:24px;
    box-shadow:0 14px 36px rgba(50,56,53,.08);
    padding:30px;
}
.mail-page-email { display:grid; gap:8px; font-weight:750; margin-bottom:28px; }
.mail-page-email input {
    width:100%; min-height:52px; border:1px solid #b8c6c8; border-radius:14px;
    padding:11px 14px; font:inherit; background:#fff;
}
.mail-page-email input:focus { outline:3px solid rgba(24,121,132,.16); border-color:var(--teal); }
.mailing-list-fieldset { border:0; margin:0 0 28px; padding:0; }
.mailing-list-fieldset legend { font-family:var(--serif); font-size:1.65rem; color:var(--navy-dark); margin-bottom:12px; }
.mail-select-all {
    display:inline-flex; align-items:center; gap:9px; margin-bottom:13px;
    font-weight:750; color:var(--navy); cursor:pointer;
}
.mail-select-all input,.mail-page-choice input { accent-color:var(--teal); }
.mail-page-list-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
.mail-page-choice {
    display:flex; gap:10px; align-items:flex-start; cursor:pointer;
    padding:13px 14px; border:1px solid #e1e7e4; border-radius:14px; background:#fbfcfa;
}
.mail-page-choice:hover { border-color:#bdceca; background:#f7faf8; }
.mail-page-choice input { margin-top:4px; flex:0 0 auto; }
.mail-page-choice strong,.mail-page-choice small { display:block; }
.mail-page-choice strong { color:#203f4b; line-height:1.3; }
.mail-page-choice small { color:#6b797d; margin-top:3px; font-size:.8rem; }
.mailing-list-fieldset--exhibitor { padding-top:5px; border-top:1px solid #e9e2d8; }
.mailing-list-fieldset--exhibitor legend { padding-top:20px; }
.mail-page-choice--exhibitor { max-width:520px; background:#fff8ef; border-color:#efd7bf; }
.mail-page-submit {
    border-top:1px solid #e9e2d8; margin-top:18px; padding-top:20px;
    display:flex; align-items:center; justify-content:space-between; gap:26px;
}
.mail-page-submit p { margin:0; max-width:650px; color:#65767c; font-size:.8rem; line-height:1.5; }
.mail-security { margin-top:18px; }

.prose-card {
    background:#fff; border:1px solid #e8e0d4; border-radius:22px; padding:32px 36px;
    box-shadow:0 12px 32px rgba(50,56,53,.06);
}
.prose-card h2 { margin-top:1.5em; font-size:1.75rem; }
.prose-card h2:first-child { margin-top:0; }
.prose-card p { color:#4f6168; line-height:1.75; }

@media (max-width:700px) {
    .mail-cta-card,.mail-page-submit { flex-direction:column; align-items:flex-start; }
    .mail-cta-card { padding:26px 22px; }
    .mail-page-list-grid { grid-template-columns:1fr; }
    .mailing-page-form,.prose-card { padding:22px 18px; }
    .mail-page-submit .btn { width:100%; text-align:center; }
}


/* v12: expandable homepage upcoming-show list */
.event-row[hidden] { display:none !important; }
.show-more-row { display:flex; justify-content:center; margin-top:24px; }
.show-more-shows { min-width:210px; }
@media (max-width:600px) {
    .show-more-shows { width:100%; }
}

/* Homepage mailing-list form */
.home-mail-section { background:#fffaf3; padding:18px 0 70px; }
.home-mail-card {
    border-radius:28px;
    padding:32px 36px;
    background:linear-gradient(112deg,#f7eee2,#eef5f1);
    border:1px solid rgba(35,72,78,.10);
    box-shadow:0 12px 34px rgba(45,57,55,.08);
}
.home-mail-heading { margin-bottom:20px; }
.home-mail-heading h2 { margin:2px 0 0; font-family:var(--serif); font-size:clamp(2rem,3vw,2.7rem); font-weight:500; color:var(--navy-dark); }
.home-mail-form { display:grid; grid-template-columns:minmax(250px,1.35fr) minmax(280px,1fr) auto; gap:16px 22px; align-items:end; }
.home-mail-email { display:grid; gap:7px; font-weight:750; }
.home-mail-email input { width:100%; min-height:48px; border:1px solid #b8c6c8; border-radius:14px; padding:10px 13px; font:inherit; background:#fff; }
.home-mail-email input:focus { outline:3px solid rgba(24,121,132,.16); border-color:var(--teal); }
.home-mail-options { display:flex; flex-wrap:wrap; gap:10px 18px; min-height:48px; align-items:center; }
.home-mail-options label { display:inline-flex; align-items:center; gap:8px; font-weight:700; cursor:pointer; }
.home-mail-options input { accent-color:var(--teal); }
.home-mail-actions { grid-column:1 / -1; display:flex; flex-wrap:wrap; align-items:center; justify-content:flex-end; gap:13px 18px; border-top:1px solid rgba(35,72,78,.10); padding-top:17px; }
.home-mail-customize { margin-right:auto; font-size:.9rem; font-weight:700; text-underline-offset:3px; }
.home-mail-actions .cf-turnstile { margin-right:auto; }
.home-mail-actions .home-mail-customize + .btn { margin-left:0; }

@media (max-width:900px) {
    .home-mail-form { grid-template-columns:1fr; }
    .home-mail-actions { grid-column:auto; justify-content:flex-start; }
    .home-mail-actions .cf-turnstile,.home-mail-customize { margin-right:0; }
}
@media (max-width:600px) {
    .home-mail-card { padding:26px 20px; }
    .home-mail-options { display:grid; gap:10px; }
    .home-mail-actions { align-items:stretch; }
    .home-mail-actions .btn { width:100%; }
}

/* v13: softer show reveal and expanded About Us presentation */
.event-row--more {
    transition: opacity .42s ease, transform .42s ease;
}
.event-row--reveal-start {
    opacity:0;
    transform:translateY(18px);
}
.event-row--revealed {
    opacity:1;
    transform:translateY(0);
}
.show-more-shows {
    transition:opacity .2s ease, transform .2s ease;
}
.show-more-shows--leaving {
    opacity:0;
    transform:translateY(-6px);
    pointer-events:none;
}

.about-hero {
    padding:68px 0 62px;
    background:
        radial-gradient(circle at 88% 18%, rgba(201,153,88,.17), transparent 26%),
        linear-gradient(118deg,#fbf2e7 0%,#f7f5ed 49%,#edf4f0 100%);
}
.about-hero-grid {
    display:grid;
    grid-template-columns:minmax(0,1fr) minmax(250px,340px);
    gap:64px;
    align-items:end;
}
.about-hero h1 {
    max-width:850px;
    margin:.12em 0 .25em;
    font-size:clamp(2.9rem,5.5vw,5rem);
    line-height:.98;
}
.about-hero-lead {
    max-width:820px;
    margin:0;
    font-size:clamp(1.05rem,1.5vw,1.25rem);
    line-height:1.65;
    color:#465b63;
}
.about-hero-note {
    padding:24px 26px;
    border-left:4px solid var(--plum);
    background:rgba(255,255,255,.62);
    border-radius:0 18px 18px 0;
    box-shadow:0 10px 28px rgba(54,58,52,.06);
}
.about-hero-note strong,
.about-hero-note span { display:block; }
.about-hero-note strong {
    font-family:var(--serif);
    color:var(--navy-dark);
    font-size:1.8rem;
    margin-bottom:8px;
}
.about-hero-note span {
    color:#617077;
    line-height:1.55;
}

.about-story-section { background:#fffdf8; }
.about-story-layout {
    display:grid;
    grid-template-columns:minmax(0,1.65fr) minmax(285px,.75fr);
    gap:58px;
    align-items:start;
}
.about-story-main {
    max-width:850px;
}
.about-story-main h2 {
    margin:1.65em 0 .45em;
    color:var(--navy-dark);
    font-size:clamp(1.8rem,2.6vw,2.55rem);
    line-height:1.1;
}
.about-story-main h2:first-of-type { margin-top:.15em; }
.about-story-main p {
    margin:.8em 0;
    color:#43565e;
    font-size:1rem;
    line-height:1.82;
}
.about-story-actions {
    display:flex;
    flex-wrap:wrap;
    gap:12px;
    margin-top:34px;
}
.about-story-sidebar {
    display:grid;
    gap:18px;
    position:sticky;
    top:28px;
}
.about-side-card {
    padding:24px;
    border:1px solid #e6ded2;
    border-radius:22px;
    background:#fff;
    box-shadow:0 10px 28px rgba(49,57,54,.06);
}
.about-side-card h2 {
    margin:.18em 0 .45em;
    font-size:1.55rem;
}
.about-side-card p:not(.section-kicker) {
    color:#5a6a70;
    line-height:1.6;
}
.about-side-card--brands {
    background:linear-gradient(145deg,#f9f0e6,#f2f6f2);
}
.about-brand-list {
    display:grid;
    gap:8px;
    margin-top:16px;
}
.about-brand-list a {
    min-height:70px;
    padding:10px 14px;
    display:grid;
    grid-template-columns:1fr auto;
    gap:12px;
    align-items:center;
    border-radius:14px;
    background:#fff;
    border:1px solid rgba(31,65,72,.10);
    text-decoration:none;
    transition:transform .15s ease, box-shadow .15s ease;
}
.about-brand-list a:hover {
    transform:translateX(3px);
    box-shadow:0 7px 18px rgba(42,55,52,.08);
}
.about-brand-list img {
    width:auto;
    max-width:200px;
    max-height:54px;
    object-fit:contain;
}
.about-brand-list span {
    color:var(--plum);
    font-size:1.2rem;
}
.about-side-links {
    display:flex;
    flex-wrap:wrap;
    gap:10px 18px;
    margin-top:15px;
}
.about-side-links a {
    color:var(--navy);
    font-weight:750;
    text-underline-offset:3px;
}
.about-side-card--contact { border-top:4px solid var(--teal); }

@media (max-width:900px) {
    .about-hero-grid,
    .about-story-layout { grid-template-columns:1fr; }
    .about-hero-grid { gap:30px; }
    .about-hero-note { max-width:520px; }
    .about-story-sidebar { position:static; grid-template-columns:repeat(2,minmax(0,1fr)); }
    .about-side-card--brands { grid-column:1 / -1; }
}
@media (max-width:620px) {
    .about-hero { padding:48px 0 42px; }
    .about-story-sidebar { grid-template-columns:1fr; }
    .about-side-card--brands { grid-column:auto; }
    .about-brand-list img { max-width:170px; max-height:50px; }
}
@media (prefers-reduced-motion: reduce) {
    .event-row--more,
    .show-more-shows,
    .about-brand-list a { transition:none; }
}


/* v14: final show-brand logo treatments. Keep uploaded logo artwork unfiltered. */
.brand-tile--bds { background:#32172f; }
.brand-tile--artazan { background:#f6ead8; }
.brand-tile--cots { background:#faf4e8; }
.brand-tile--maacs { background:#748f72; }
.brand-tile--bds .brand-logo-wrap img {
    filter:none;
    opacity:1;
    max-width:88%;
    max-height:96px;
    transform:none;
}

.about-brand-list a.about-brand-link--bds { background:#32172f; }
.about-brand-list a.about-brand-link--artazan { background:#f6ead8; }
.about-brand-list a.about-brand-link--cots { background:#faf4e8; }
.about-brand-list a.about-brand-link--maacs { background:#748f72; }
.about-brand-list .about-brand-link img {
    filter:none;
    opacity:1;
}
/* Merge these rules into /css/public.css for the apply preview. */
.apply-hero { background:linear-gradient(135deg,#fff8ec 0%,#fffdf9 52%,#eef7f5 100%); border-bottom:1px solid #ebdfd2; }
.apply-hero-grid { display:grid; grid-template-columns:minmax(0,1fr) minmax(340px,.72fr); gap:54px; align-items:center; padding-block:54px; }
.apply-hero h1,.interior-simple-hero h1 { margin:0 0 15px; color:var(--navy-dark); font-family:Baskerville,"Iowan Old Style",Georgia,serif; font-size:clamp(2.6rem,4.6vw,4.25rem); line-height:1; font-weight:500; }
.apply-lead { max-width:720px; margin:0; color:#4c5d63; font-size:1.08rem; }
.apply-brand-context { --apply-brand-color:#f6f2ea; display:grid; grid-template-columns:140px 1fr; gap:20px; align-items:center; min-height:150px; padding:22px; border:1px solid rgba(30,52,60,.09); border-radius:30px 14px 30px 14px; background:var(--apply-brand-color); box-shadow:var(--shadow); }
.apply-brand-logo-wrap { display:flex; align-items:center; justify-content:center; min-height:96px; }
.apply-brand-logo-wrap img { max-width:138px; max-height:88px; object-fit:contain; }
.apply-brand-context strong,.apply-brand-context span { display:block; }
.apply-brand-label { font-size:.72rem; font-weight:800; letter-spacing:.11em; text-transform:uppercase; color:#5a5860; margin-bottom:5px; }
.apply-brand-context strong { color:#182e37; font-family:Baskerville,"Iowan Old Style",Georgia,serif; font-size:1.45rem; line-height:1.1; }
.apply-brand-context strong + span { color:#52636a; font-size:.88rem; margin-top:7px; }
.apply-layout { display:grid; grid-template-columns:minmax(0,1fr) 310px; gap:38px; align-items:start; }
.apply-main { min-width:0; }
.apply-account-bar,.apply-account-prompt { display:flex; align-items:center; justify-content:space-between; gap:24px; padding:17px 19px; margin-bottom:22px; border:1px solid #d6e1df; border-radius:18px; background:#f3f8f7; }
.apply-account-bar strong,.apply-account-prompt strong { display:block; color:var(--navy-dark); }
.apply-account-bar span,.apply-account-prompt span { display:block; color:var(--muted); font-size:.9rem; margin-top:2px; }
.apply-account-actions { display:flex; flex-wrap:wrap; gap:12px; font-size:.86rem; font-weight:700; }
.apply-form { display:grid; gap:22px; }
.apply-form-section { background:#fff; border:1px solid #e2e4df; border-radius:28px 12px 28px 12px; padding:28px; box-shadow:0 8px 26px rgba(36,52,59,.055); }
.apply-section-heading { display:grid; grid-template-columns:42px 1fr; gap:14px; align-items:start; margin-bottom:22px; }
.apply-section-heading > span { width:38px; height:38px; display:grid; place-items:center; border-radius:50%; background:#edf5f4; color:var(--teal); font-weight:850; }
.apply-section-heading h2 { margin:0 0 3px; color:var(--navy-dark); font-family:Baskerville,"Iowan Old Style",Georgia,serif; font-weight:500; font-size:1.65rem; }
.apply-section-heading p { margin:0; color:var(--muted); font-size:.92rem; }
.form-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:17px 20px; }
.field { display:grid; gap:6px; color:#34464e; font-size:.9rem; font-weight:750; }
.field-full { grid-column:1 / -1; }
.field input,.field select,.field textarea { width:100%; border:1px solid #becdce; border-radius:12px; background:#fff; color:var(--ink); padding:11px 12px; font:inherit; font-weight:450; }
.field textarea { resize:vertical; min-height:110px; }
.field input:focus,.field select:focus,.field textarea:focus { outline:3px solid rgba(24,121,132,.15); border-color:var(--teal); }
.required { font-size:.78rem; line-height:1.2; text-transform:uppercase; letter-spacing:.06em; color:#8a3150; margin-left:5px; font-weight:700; }
.field-help { color:#68767a; font-size:.82rem; margin:10px 0 0; }
.upload-picker { display:flex; align-items:center; justify-content:space-between; gap:18px; padding:17px 18px; border:1.5px dashed #93afb1; border-radius:16px; background:#f4f9f8; cursor:pointer; }
.upload-picker strong { color:var(--navy-dark); }
.upload-picker span { color:var(--muted); font-size:.82rem; }
.upload-preview-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:12px; margin-top:15px; }
.upload-preview { margin:0; background:#f5f5f2; border-radius:12px; overflow:hidden; border:1px solid #e0e2dd; }
.upload-preview img { width:100%; aspect-ratio:1; object-fit:cover; display:block; }
.upload-preview figcaption { padding:7px 8px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; font-size:.72rem; color:#5b696e; }
.upload-error { grid-column:1/-1; margin:0; color:#8a3030; font-weight:700; }
.apply-mail-choice { max-width:560px; margin-top:16px; }
.apply-documents { display:flex; flex-wrap:wrap; gap:10px 18px; align-items:center; padding:15px 0 2px; font-size:.86rem; }
.apply-documents strong { width:100%; color:var(--navy-dark); }
.apply-submit-row { display:flex; justify-content:space-between; align-items:center; gap:24px; margin-top:24px; }
.form-privacy-note { color:#69767a; font-size:.78rem; margin:12px 0 0; }
.apply-sidebar { display:grid; gap:18px; position:sticky; top:128px; }
.apply-side-card { padding:22px; background:#f7f3ea; border-radius:22px 10px 22px 10px; border:1px solid #eadfce; }
.apply-side-card h2 { margin:0 0 10px; color:var(--navy-dark); font-family:Baskerville,"Iowan Old Style",Georgia,serif; font-size:1.35rem; font-weight:500; }
.apply-side-card p,.apply-side-card li { color:#56666c; font-size:.87rem; }
.apply-side-card ol { padding-left:20px; margin:0; }
.apply-side-card li + li { margin-top:8px; }
.apply-success { padding:34px; background:#f0f8f3; border:1px solid #cfe3d4; border-radius:26px 12px 26px 12px; }
.apply-success h2 { margin-top:0; color:#285f3d; font-family:Baskerville,"Iowan Old Style",Georgia,serif; font-size:2rem; font-weight:500; }
.interior-simple-hero { background:#fff8ec; border-bottom:1px solid #ebdfd2; padding-block:48px; }
.interior-simple-hero p { max-width:680px; color:var(--muted); }
.signin-application-wrap { display:grid; grid-template-columns:minmax(0,520px) minmax(0,340px); gap:30px; justify-content:center; align-items:start; }
.signin-application-card,.signin-application-alt { background:#fff; border:1px solid #e1e4df; border-radius:24px 12px 24px 12px; padding:26px; display:grid; gap:17px; box-shadow:0 8px 24px rgba(36,52,59,.055); }
.signin-application-alt { background:#f7f3ea; }
.signin-application-alt p { color:var(--muted); }
@media (max-width:900px) { .apply-hero-grid,.apply-layout { grid-template-columns:1fr; } .apply-sidebar { position:static; grid-template-columns:1fr 1fr; } .apply-brand-context { max-width:620px; } }
@media (max-width:650px) { .apply-hero-grid { padding-block:38px; gap:28px; } .apply-brand-context { grid-template-columns:105px 1fr; padding:17px; border-radius:22px 10px 22px 10px; } .apply-brand-logo-wrap img { max-width:105px; } .apply-account-bar,.apply-account-prompt,.apply-submit-row { align-items:stretch; flex-direction:column; } .form-grid,.signin-application-wrap { grid-template-columns:1fr; } .field-full { grid-column:auto; } .upload-preview-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } .apply-sidebar { grid-template-columns:1fr; } .apply-form-section { padding:22px 17px; } }


/* Apply preview v3 refinements. */
.apply-brand-context { --apply-brand-text:#18333d; }
.apply-brand-label,
.apply-brand-context strong,
.apply-brand-context strong + span { color:var(--apply-brand-text); }
.apply-brand-label { opacity:.72; }
.apply-brand-context strong + span { opacity:.76; }
.apply-fee-note {
    display:inline-block;
    margin:18px 0 0;
    padding:9px 13px;
    border:1px solid rgba(31,65,72,.12);
    border-radius:11px;
    background:rgba(255,255,255,.72);
    color:#43575e;
    font-size:.88rem;
}
.apply-fee-note strong { color:var(--navy-dark); }
#apply-show { font-size:1rem; font-weight:700; }
#apply-show option { font-size:1rem; font-weight:600; }

/* Apply preview v4: additive multi-image previews. */
.upload-preview { position:relative; padding-bottom:34px; }
.upload-preview figcaption { padding-right:8px; }
.upload-preview-remove {
    position:absolute;
    left:8px;
    bottom:7px;
    border:0;
    background:transparent;
    color:#8a304f;
    padding:0;
    font:inherit;
    font-size:.72rem;
    font-weight:750;
    text-decoration:underline;
    text-underline-offset:2px;
    cursor:pointer;
}
.upload-preview-remove:hover,
.upload-preview-remove:focus-visible { color:#5f2038; }

/* Apply page: neutral hero uses the full width until a show is selected. */
.apply-hero-grid--neutral { grid-template-columns:minmax(0,760px); }
.apply-brand-context[hidden] { display:none !important; }

/* Apply form submission progress */
.apply-form.is-submitting {
    display: none;
}

.apply-submitting {
    min-height: 320px;
    padding: clamp(3rem, 8vw, 6rem) 1.5rem;
    text-align: center;
    border: 1px solid rgba(20, 55, 65, 0.12);
    border-radius: 28px;
    background: #fffdf9;
    box-shadow: 0 18px 50px rgba(20, 55, 65, 0.08);
}

.apply-submitting h2 {
    margin: 1.1rem 0 0.55rem;
}

.apply-submitting p {
    max-width: 34rem;
    margin: 0 auto;
}

.apply-spinner {
    display: inline-block;
    width: 46px;
    height: 46px;
    border: 4px solid rgba(17, 72, 85, 0.18);
    border-top-color: #9f3f64;
    border-radius: 50%;
    animation: gb-apply-spin 0.8s linear infinite;
}

@keyframes gb-apply-spin {
    to { transform: rotate(360deg); }
}

@media (prefers-reduced-motion: reduce) {
    .apply-spinner {
        animation-duration: 1.8s;
    }
}


/* Apply preview v12: mobile overflow guard and image-preparation layout. */
.page-apply { overflow-x: clip; }
.page-apply .apply-layout,
.page-apply .apply-main,
.page-apply .apply-form,
.page-apply .apply-form-section,
.page-apply .form-grid,
.page-apply .field,
.page-apply .upload-picker,
.page-apply .upload-preview-grid { min-width:0; max-width:100%; }

@media (max-width:650px) {
    .page-apply .upload-picker {
        align-items:flex-start;
        flex-direction:column;
        gap:4px;
    }
    .page-apply .upload-picker span {
        max-width:100%;
        overflow-wrap:anywhere;
    }
}


/* Apply preview v13: mobile preview containment and validation/progress visibility. */
.page-apply .upload-preview-grid > *,
.page-apply .upload-preview {
    min-width:0;
    max-width:100%;
}
.page-apply .upload-preview img {
    max-width:100%;
}
.page-apply .upload-preview figcaption {
    width:100%;
    min-width:0;
    max-width:100%;
    box-sizing:border-box;
}

.field-validation-message {
    display:block;
    margin-top:2px;
    color:#8a3030;
    font-size:.82rem;
    font-weight:700;
}
.field select[aria-invalid=\"true\"],
.field input[aria-invalid=\"true\"],
.field textarea[aria-invalid=\"true\"] {
    border-color:#a33f3f;
    box-shadow:0 0 0 3px rgba(163,63,63,.12);
}

.apply-submitting {
    scroll-margin-top:110px;
}

/* Apply preview v14: responsive Turnstile and iOS submission viewport fix. */
.page-apply .apply-submit-row,
.page-apply .cf-turnstile {
    min-width:0;
    max-width:100%;
}
.page-apply .cf-turnstile {
    width:100%;
}
@media (max-width:650px) {
    .page-apply .apply-submit-row {
        width:100%;
    }
    .page-apply .cf-turnstile {
        align-self:stretch;
        width:100%;
    }
}

/* Apply preview v16: keep the primary action clearly below Turnstile. */
.page-apply .apply-submit-row {
    flex-direction:column;
    align-items:stretch;
    gap:14px;
}
.page-apply .apply-submit-row .btn {
    display:block;
    width:100%;
    white-space:nowrap;
}


/* Apply preview v17: clearly separate Turnstile verification from final submission. */
.page-apply .apply-security-step {
    display:flex;
    flex-direction:column;
    gap:3px;
    margin-top:24px;
    margin-bottom:10px;
    padding:12px 14px;
    border-left:4px solid #687b81;
    background:#f3f6f6;
    color:#33474e;
    font-size:.88rem;
    line-height:1.45;
}
.page-apply .apply-security-step strong {
    color:var(--navy-dark);
}
.page-apply .apply-security-step.is-complete {
    border-left-color:#2f8a52;
    background:#f1f8f3;
}
.page-apply .apply-security-step.is-warning {
    border-left-color:#a36532;
    background:#fff8ef;
}
.page-apply .apply-submit-row {
    margin-top:10px;
}
.page-apply .apply-submit-row .btn {
    margin-top:2px;
}
.page-apply .form-privacy-note a {
    color:var(--navy-dark);
    font-weight:700;
}
.page-apply .form-privacy-note a:hover,
.page-apply .form-privacy-note a:focus {
    text-decoration-thickness:2px;
}

/* v21 accessibility and contrast pass. */

/* Give the small descriptor under the primary logo a little more presence. */
.brand {
    font-size:.76rem;
    font-weight:700;
    letter-spacing:.08em;
}

/* Darker brand accents retain each show's identity while meeting AA for small text
   on the light date panels and for white text on registration buttons. */
.event-row--artazan { --event-accent:#9a4328; }
.event-row--maacs { --event-accent:#4d6947; }
.event-row--cots { --event-accent:#0f6670; }
.event-row--bds { --event-accent:#9b3d62; }

.event-month {
    font-size:.82rem;
}
.event-year {
    color:#526168;
    font-size:.8rem;
    font-weight:650;
}
.event-actions a {
    min-height:42px;
    font-size:.87rem;
}

/* Mailing-list dates/explanatory copy: slightly larger and darker for AA contrast. */
.mail-page-choice small {
    color:#56656a;
    font-size:.84rem;
    line-height:1.4;
}
.mail-page-submit p {
    color:#56666c;
    font-size:.84rem;
}

/* Footer: slightly smaller logo than v20, with a restrained lightening filter so
   the gray lettering remains readable directly on the dark footer. */
.footer-brand img {
    width:370px;
    filter:brightness(1.5) contrast(.88);
    opacity:.98;
}
.footer-brand p {
    color:#d7e1e3;
    font-size:.94rem;
}
.site-footer h2 {
    font-size:.82rem;
}
.site-footer a {
    font-size:.92rem;
}
.footer-bottom {
    color:#c8d5d8;
    font-size:.84rem;
}

/* Keep keyboard focus obvious across the refreshed public site. */
a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible,
summary:focus-visible {
    outline:3px solid #0b6575;
    outline-offset:3px;
}

/* A few pieces of supporting text were unnecessarily tiny. */
.cookie-inner p { font-size:.82rem; }
.cookie-choice { font-size:.8rem; }
.mail-legal { color:#5f6f75; font-size:.8rem; }
.page-apply .form-privacy-note { color:#5f6f73; font-size:.82rem; }
.page-apply .upload-preview figcaption { color:#526168; font-size:.78rem; }

@media (max-width:600px) {
    .brand { font-size:.72rem; }
    .event-month { font-size:.8rem; }
    .event-year { font-size:.78rem; }
    .footer-brand img { width:330px; }
}


/* v25: rebalance show-brand tiles and improve Bead & Design logo presentation. */
.brand-tile--bds {
    background:#4a2946;
}
.brand-logo-wrap {
    height:112px;
}
.brand-tile--bds .brand-logo-wrap {
    height:122px;
}
.brand-tile--bds .brand-logo-wrap img {
    max-width:80%;
    max-height:112px;
    width:auto;
    height:auto;
}
.about-brand-list a.about-brand-link--bds {
    background:#4a2946;
}

@media (max-width:600px) {
    .brand-logo-wrap { height:94px; }
    .brand-tile--bds .brand-logo-wrap { height:104px; }
    .brand-tile--bds .brand-logo-wrap img {
        max-width:78%;
        max-height:100px;
    }
}

/* v27: Terms & Conditions page */
.legal-hero .legal-updated {
    margin-top:14px;
    color:#5d6d73;
    font-size:.86rem;
    font-weight:650;
}
.legal-section { background:#fffdf8; }
.legal-layout {
    display:grid;
    grid-template-columns:minmax(0, 1fr) 300px;
    gap:42px;
    align-items:start;
}
.legal-content {
    min-width:0;
    background:#fff;
    border:1px solid #e3ded3;
    border-radius:24px;
    padding:clamp(28px,4vw,52px);
    box-shadow:0 14px 34px rgba(32,67,76,.07);
}
.legal-content h2 {
    margin:2em 0 .5em;
    color:var(--navy-dark);
    font-size:clamp(1.45rem,2.4vw,1.9rem);
    line-height:1.18;
}
.legal-content h2:first-child { margin-top:0; }
.legal-content p,
.legal-content li {
    color:#40545b;
    font-size:1rem;
    line-height:1.72;
}
.legal-content p { margin:.7em 0 1em; }
.legal-content ul {
    margin:.7em 0 1.15em;
    padding-left:1.35em;
}
.legal-content li + li { margin-top:.45em; }
.legal-content a:not(.btn) {
    color:#075f70;
    text-decoration-thickness:1px;
    text-underline-offset:3px;
}
.legal-content a:not(.btn):hover,
.legal-content a:not(.btn):focus { color:#083e4a; }
.legal-sidebar {
    display:grid;
    gap:18px;
    position:sticky;
    top:24px;
}
.legal-side-card {
    background:#f7f2e8;
    border:1px solid #dfd8ca;
    border-radius:20px;
    padding:22px;
}
.legal-side-card h2 {
    margin:.15em 0 .55em;
    color:var(--navy-dark);
    font-size:1.25rem;
    line-height:1.2;
}
.legal-side-card p:not(.section-kicker) {
    margin:.45em 0 .8em;
    color:#4b6067;
    font-size:.94rem;
    line-height:1.58;
}
.legal-jump-links,
.legal-side-links {
    display:grid;
    gap:9px;
}
.legal-jump-links a,
.legal-side-links a {
    color:#075f70;
    font-weight:720;
    text-decoration:none;
    line-height:1.35;
}
.legal-jump-links a:hover,
.legal-jump-links a:focus,
.legal-side-links a:hover,
.legal-side-links a:focus {
    color:#083e4a;
    text-decoration:underline;
    text-underline-offset:3px;
}
@media (max-width:900px) {
    .legal-layout { grid-template-columns:1fr; }
    .legal-sidebar {
        position:static;
        grid-template-columns:repeat(2,minmax(0,1fr));
    }
    .legal-sidebar .legal-side-card:first-child { grid-column:1 / -1; }
}
@media (max-width:600px) {
    .legal-content {
        border-radius:18px;
        padding:24px 20px;
    }
    .legal-sidebar { grid-template-columns:1fr; }
    .legal-sidebar .legal-side-card:first-child { grid-column:auto; }
    .legal-content p,
    .legal-content li { font-size:.98rem; }
}

/* ------------------------------
   Contact page
------------------------------ */
.contact-hero { background:linear-gradient(135deg,#fffaf2 0%,#f3f8f6 100%); }
.contact-layout { display:grid; grid-template-columns:minmax(0,1.55fr) minmax(280px,.7fr); gap:34px; align-items:start; }
.contact-form-card,.contact-info-card { background:#fff; border:1px solid var(--border); border-radius:22px; box-shadow:var(--shadow-soft); }
.contact-form-card { padding:clamp(22px,4vw,38px); }
.contact-card-heading { margin-bottom:24px; }
.contact-card-heading h2,.contact-success h2,.contact-info-card h2 { margin:.15em 0 .45em; }
.contact-card-heading p:last-child,.contact-success p,.contact-info-card p { color:#52666d; }
.contact-form-grid { margin-top:8px; }
.contact-sidebar { display:grid; gap:20px; }
.contact-info-card { padding:24px; }
.contact-info-card--accent { background:#f7f1e8; border-color:#e6d5c4; }
.contact-info-card a:not(.btn) { overflow-wrap:anywhere; }
.contact-security-step { margin-top:24px; padding:14px 16px; border:1px solid #cbd9d6; border-radius:14px; background:#f5f9f8; display:grid; gap:3px; color:#28474e; }
.contact-security-step strong { color:#173b44; }
.contact-security-step.is-complete { border-color:#8bb79b; background:#eef8f1; }
.contact-security-step.is-complete strong { color:#245d3a; }
.contact-security-step.is-error { border-color:#d7a3a3; background:#fff3f3; }
.contact-security-step.is-error strong { color:#8a3030; }
.contact-submit-area { margin-top:14px; display:grid; gap:15px; min-width:0; }
.page-contact .cf-turnstile { width:100%; max-width:100%; min-width:0; overflow:hidden; }
.contact-submit-button { width:100%; min-height:50px; font-size:1rem; }
.contact-form .form-privacy-note { margin-top:14px; color:#52666d; font-size:.9rem; line-height:1.6; }
.contact-submitting { min-height:300px; display:flex; flex-direction:column; justify-content:center; align-items:center; text-align:center; padding:42px 20px; }
.contact-submitting[hidden] { display:none; }
.contact-submitting h2 { margin:18px 0 8px; }
.contact-submitting p { margin:0; color:#52666d; }
.contact-success { padding-block:10px; }
.field-invalid-control { outline:3px solid #b54848 !important; outline-offset:2px; border-color:#b54848 !important; }
.field-validation-message { display:block; margin-top:7px; color:#8a3030; font-size:.88rem; font-weight:700; line-height:1.35; }
.page-contact .required { font-size:.78rem; font-weight:700; color:#7b304a; }
@media (max-width:900px) {
  .contact-layout { grid-template-columns:1fr; }
  .contact-sidebar { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .contact-info-card:first-child { grid-column:1 / -1; }
}
@media (max-width:650px) {
  .contact-form-card { padding:22px 17px; }
  .contact-sidebar { grid-template-columns:1fr; }
  .contact-info-card:first-child { grid-column:auto; }
  .contact-submit-area { width:100%; }
}
