html, body { max-width:100%; overflow-x:hidden; }
img, svg { max-width:100%; height:auto; }
input, select, textarea, button { max-width:100%; }
.table-wrap { max-width:100%; -webkit-overflow-scrolling:touch; scrollbar-width:thin; }
td, th { overflow-wrap:anywhere; }
.hero-actions { display:flex; flex-direction:column; align-items:flex-start; gap:14px; margin-top:20px; }
.hero-actions .button { margin-top:0; }
.hero-actions .hero-login { color:#fff; background:transparent; border:2px solid #f2c55d; }
.hero-actions .hero-login:hover { background:#ffffff12; }

@media (max-width:1000px) {
  .site-header { padding-inline:28px; }
  .hero { padding-inline:7vw; }
  .gift { right:8%; }
  .form-section { padding-inline:5vw; gap:35px; grid-template-columns:minmax(240px,.65fr) minmax(0,1.35fr); }
  .admin-panel { margin-top:55px; }
  .admin-panel h1, .admin-login h1, .legal h1 { font-size:clamp(42px,7vw,55px); }
  .admin-title { align-items:flex-start; gap:20px; }
  .admin-nav { overflow-x:auto; white-space:nowrap; }
  table { min-width:760px; }
}

@media (max-width:760px) {
  .site-header { min-height:104px; height:auto; padding:16px 20px 13px; flex-direction:column; align-items:flex-start; gap:9px; }
  .brand { font-size:22px; line-height:1.15; white-space:nowrap; }
  .site-header nav { display:flex; width:100%; gap:18px; overflow-x:auto; padding-bottom:3px; white-space:nowrap; scrollbar-width:none; }
  .site-header nav::-webkit-scrollbar { display:none; }
  .site-header nav a, .site-header nav a:not(:first-child) { display:block; flex:none; font-size:12px; }
  .hero { min-height:620px; padding:58px 24px 150px; align-items:flex-start; }
  .hero:before { width:520px; height:520px; right:-220px; top:-100px; }
  .hero h1 { font-size:clamp(52px,16vw,76px); }
  .lead { font-size:19px; }
  .hero .button { width:100%; text-align:center; }
  .hero-actions { width:100%; align-items:stretch; text-align:center; }
  .hero-login { padding:8px; }
  .gift { width:105px; height:84px; right:11%; bottom:50px; }
  .gift:before { left:46px; width:16px; }
  .gift span { top:18px; height:15px; }
  .intro { padding:75px 20px; }
  .steps { grid-template-columns:1fr; gap:16px; }
  .steps article { padding:28px 22px; }
  .wichtel-rules, .faq-section { padding:70px 20px; }
  .rule-cards, .faq-section { grid-template-columns:1fr; }
  .rule-cards { gap:16px; }
  .rule-cards article { padding:28px 22px; }
  .faq-section { gap:28px; }
  .faq-list details { padding-inline:18px; }
  .faq-list summary { font-size:16px; }
  .form-section { padding:70px 20px; grid-template-columns:1fr; gap:28px; }
  .form-section form, .compact { width:100%; max-width:none; padding:25px 20px; }
  .form-section button[type=submit], .compact > button[type=submit] { width:100%; }
  .grid { grid-template-columns:1fr; gap:12px; }
  .wide { grid-column:auto; }
  .choices { display:grid; gap:8px; }
  .choices label { padding:8px 0; }
  .check { line-height:1.5; }
  .legal, .admin-login, .admin-panel { margin:48px auto; padding-inline:18px; }
  .admin-title, .account-head { flex-direction:column; align-items:stretch; }
  .admin-title > .button, .admin-title > form, .account-head > form { width:100%; }
  .admin-title > .button, .admin-title button, .account-head button { width:100%; text-align:center; }
  .admin-nav { margin:0 -18px 32px; padding:8px 18px; border-radius:0; }
  .admin-nav a { padding:10px 13px; }
  .admin-cards { grid-template-columns:1fr; }
  .event-admin { grid-template-columns:1fr; }
  .event-form .grid { grid-template-columns:1fr; }
  .template-picker { flex-direction:column; align-items:stretch; }
  .template-picker button { width:100%; }
  .template-help { align-items:flex-start; }
  .form-actions { flex-direction:column; align-items:stretch; }
  .form-actions button, .form-actions a { width:100%; text-align:center; }
  .package-checks { display:grid; grid-template-columns:1fr; }
  .account-status { display:grid; grid-template-columns:1fr; }
  .account-status .status { padding:9px 12px; text-align:center; }
  table { min-width:700px; font-size:14px; }
  th, td { padding:12px 10px; }
  .table-wrap { margin-inline:-18px; width:calc(100% + 36px); border-left:18px solid transparent; border-right:18px solid transparent; }
  .participant-filter { display:block; max-width:none; }
  footer { padding:38px 20px; }
}

@media (max-width:420px) {
  .site-header { min-height:108px; }
  .brand { font-size:20px; }
  .hero { min-height:600px; }
  .hero h1 { font-size:54px; }
  h2 { font-size:36px; }
  .button, button { min-height:44px; }
  .admin-nav a { font-size:12px; }
  .flash { margin:12px 15px; }
}
