/* Public application form: light denim identity. */
:root {
    --bg: #f4f2ee;
    --text: #1c3049;
    --muted: #617084;
    --line: #dce2e7;
    --brand: #244b70;
    --brand-2: #345f87;
    --input-bg: #fff;
    --error: #b52e2e;
    --error-soft: #fff1ef;
    --shadow: 0 16px 50px #142d4612;
}
.page { padding: 40px 24px; }
.bg { position: absolute; background-color: #f4f2ee; background-image: linear-gradient(rgba(255, 255, 255, .72), rgba(255, 255, 255, .72)), url("../img/denim-background.png"); background-position: center top; background-size: 100% 100%, 100% auto; background-repeat: no-repeat; filter: blur(1px); }
.shell { width: min(1040px, 100%); gap: 20px; }
.site-menu { grid-template-columns: 290px minmax(0, 1fr) auto; gap: 28px; padding: 30px; border: 1px solid #ffffffb3; border-radius: 18px; background: #fffffff5; box-shadow: var(--shadow); }
.site-menu::before, .site-menu::after { display: none; }
.brand-logo { filter: none; }
.event-date { margin: 18px 0 5px; color: var(--text); font-size: 19px; font-weight: 900; letter-spacing: .1em; }
.event-location { color: var(--muted); }
.site-menu .menu-title { padding: 0; border: 0; border-radius: 0; background: none; color: var(--text); font-size: 21px; font-weight: 700; letter-spacing: .02em; }
.menu-title .dot { display: none; }
.menu-subtitle { padding: 0; border: 0; border-radius: 0; background: none; color: var(--muted); font-size: 14px; font-weight: 400; line-height: 1.7; }
.language-switch { grid-template-columns: repeat(2, 38px); gap: 5px; align-self: start; }
.language-switch a { width: 38px; min-height: 36px; border: 1px solid var(--line); border-radius: 8px; background: #fff; color: var(--muted); font-size: 11px; }
.language-switch a.is-active { background: var(--brand); color: #fff; box-shadow: none; }
.panel { padding: 32px; background: #fffffff7; border: 1px solid #ffffffb3; border-radius: 18px; box-shadow: var(--shadow); }
.section-no { background: #eaf0f5; color: var(--brand); box-shadow: none; border-radius: 10px; font-weight: 700; }
.section-head h2 { color: var(--text); font-size: 19px; }
.section-head span, .signature-hint, .option span, .note { color: var(--muted); font-weight: 400; }
.field > span, .label-title, .signature-title { color: var(--text); padding-left: 0; font-weight: 600; }
.input, select, textarea { border: 1px solid #ced7df; border-radius: 8px; padding: 14px 16px; box-shadow: none; color: var(--text); background-color: #fff; }
.input:focus, select:focus, textarea:focus { border-color: var(--brand); box-shadow: 0 0 0 3px #244b7015; }
select.input { background-position: calc(100% - 24px) 21px, calc(100% - 16px) 21px; }
.standard-package-grid .package-card, .package-card { border: 1px solid #ced7df; border-radius: 12px; background: #f8fafc; box-shadow: none; }
.stand-area-title { font-family: inherit; color: var(--text); font-size: 24px; font-weight: 600; }
.package-select { border-color: #bdcbd8; color: var(--brand); border-radius: 8px; }
.package-card:has(:checked) { border-color: var(--brand); background: #eef4f9; box-shadow: inset 0 0 0 1px var(--brand); }
.package-card:has(:checked) .package-select { background: var(--brand); color: #fff; }
.btn, .secondary-action { border-radius: 9px; font-size: 14px; font-weight: 700; letter-spacing: .08em; padding: 17px 24px; }
.btn-primary, .secondary-action { background: var(--brand); color: #fff; box-shadow: none; }
.btn-primary:hover, .secondary-action:hover { background: #193c5e; }
.signature-pad, .option, .product-groups .option { border-color: var(--line); background: #f8fafc; }
.signature-clear { border-color: #cbd5df; color: var(--brand); background: #fff; }
.option strong, .product-groups .option strong, .package-description, .package-area, .package-dimensions { color: var(--text); }
.option:has(input:checked), .product-groups .option:has(input:checked) { background: #eaf1f7; border-color: var(--brand); }
.product-groups .option:has(input:checked) strong { color: var(--brand); }
.field-error, .alert { color: var(--error); }
.success-screen h2 { color: var(--text); }
.success-screen p { color: var(--muted); }
.success-icon { background: #e7f2ee; color: #267253; box-shadow: none; }
.stand-thumb { background: #fff; color: var(--muted); }
.stand-lightbox { background: #fff; color: var(--text); }
@media (max-width: 860px) {
    .page { padding: 24px 16px; }
    .site-menu { grid-template-columns: minmax(0, 1fr) auto; padding: 24px; gap: 24px; }
    .header-brand { width: min(290px, 100%); }
    .menu-copy { grid-column: 1 / -1; }
    .panel { padding: 26px; }
}
@media (max-width: 520px) {
    .page { padding: 16px 10px 28px; }
    .shell { gap: 14px; }
    .bg { background-position: center top; }
    .site-menu { padding: 22px 18px; gap: 20px 12px; border-radius: 14px; }
    .site-menu .menu-title { font-size: 19px; padding: 0; }
    .menu-subtitle { font-size: 13px; padding: 0; }
    .header-brand .event-date { font-size: 15px; margin-top: 14px; }
    .panel { padding: 22px 18px; border-radius: 14px; }
    .input, select, textarea { font-size: 16px; }
    .language-switch { grid-template-columns: repeat(2, 32px); }
    .language-switch a { width: 32px; min-height: 34px; font-size: 10px; }
}

.venue-logo { display: block; width: min(180px, 100%); height: auto; margin: 12px auto 0; }
@media (max-width: 520px) { .venue-logo { width: min(150px, 100%); margin-top: 10px; } }

/* Centered mobile masthead, with a distinct event date. */
@media (max-width: 600px) {
    .site-menu { display: flex; flex-direction: column; align-items: center; gap: 22px; padding: 18px 22px 26px; text-align: center; border-radius: 18px; }
    .site-menu .language-switch { order: -1; align-self: center; justify-self: center; display: inline-grid; grid-template-columns: repeat(2, 40px); gap: 6px; padding: 4px; border-radius: 12px; background: #f0f4f8; }
    .language-switch a { width: 40px; min-height: 34px; font-size: 11px; }
    .header-brand { width: min(290px, 100%); margin: 0 auto; text-align: center; }
    .header-brand .event-date { display: block; margin: 22px auto 16px; padding: 12px 10px; border: 1px solid #d8e3ed; border-radius: 10px; background: #edf3f8; color: #193c5e; font-size: clamp(19px, 5.5vw, 24px); font-weight: 900; line-height: 1.3; letter-spacing: .06em; }
    .venue-logo { width: min(165px, 70%); margin: 0 auto; }
    .menu-copy { width: 100%; gap: 12px; padding-top: 22px; border-top: 1px solid var(--line); text-align: center; }
    .site-menu .menu-title { display: block; padding: 0; font-size: 19px; line-height: 1.5; letter-spacing: .015em; text-align: center; }
    .menu-subtitle { padding: 0; margin: 0 auto; max-width: 340px; font-size: 13px; line-height: 1.75; text-align: center; }
}

.site-menu .menu-title { white-space: nowrap; }
@media (max-width: 600px) {
    .site-menu .menu-title { font-size: clamp(12px, 3.7vw, 19px); letter-spacing: 0; }
}
