:root {
  --ink: #29312f;
  --muted: #6f7470;
  --paper: #fffefa;
  --cream: #f4f1ea;
  --coral: #8fb8aa;
  --coral-dark: #527d70;
  --yellow: #d9b86c;
  --green: #527d70;
  --line: #e2ddd2;
  --shadow: 0 18px 55px rgba(75, 47, 38, .12);
  font-family: Inter, ui-rounded, "SF Pro Rounded", system-ui, -apple-system, sans-serif;
  color: var(--ink);
  background: var(--cream);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; min-height: 100vh; background:
  radial-gradient(circle at 10% 5%, rgba(217,184,108,.18), transparent 24rem),
  radial-gradient(circle at 90% 12%, rgba(143,184,170,.24), transparent 26rem),
  var(--cream); }
a { color: inherit; }
img { max-width: 100%; }
button, input, select, textarea { font: inherit; }

.shell { width: min(1120px, calc(100% - 32px)); margin: 0 auto; }
.topbar { display: flex; justify-content: space-between; align-items: center; padding: 22px 0; }
.brand { display: inline-flex; align-items: center; gap: 10px; font-weight: 900; text-decoration: none; font-size: 1.15rem; }
.brand-mark { display:block; flex:0 0 auto; width:42px; height:42px; font-size:0; background:url("/assets/logo-mark.svg?v=brand-2") center/contain no-repeat; }
.brand-wordmark { display:inline-flex; align-items:baseline; white-space:nowrap; letter-spacing:-.025em; }
.brand-tld { color:#527d70; }
.hero { min-height: calc(100vh - 90px); display:grid; grid-template-columns: 1.08fr .92fr; align-items:center; gap: clamp(32px, 7vw, 90px); padding: 48px 0 90px; }
.eyebrow { display:inline-flex; padding: 8px 12px; border-radius:999px; background:#fff; border:1px solid var(--line); font-weight:800; font-size:.82rem; letter-spacing:.02em; }
h1, h2, h3, p { margin-top:0; }
h1 { max-width: 750px; font-size: clamp(3.1rem, 8vw, 6.8rem); line-height:.92; letter-spacing:-.065em; margin: 24px 0; }
.accent { color:var(--coral-dark); }
.lead { max-width:620px; color:var(--muted); font-size:clamp(1.08rem, 2vw, 1.3rem); line-height:1.6; }
.actions { display:flex; flex-wrap:wrap; gap:12px; margin-top:30px; }
.btn { display:inline-flex; justify-content:center; align-items:center; gap:9px; min-height:50px; padding:0 20px; border:0; border-radius:15px; background:var(--coral-dark); color:#fff; font-weight:850; text-decoration:none; cursor:pointer; box-shadow:0 9px 20px rgba(82,125,112,.24); }
.btn:hover { background:#3f675b; transform:translateY(-1px); }
.btn.secondary { background:#fff; color:var(--ink); box-shadow:none; border:1px solid var(--line); }
.btn.danger { background:#b52e32; }
.phone { position:relative; max-width:370px; margin:auto; padding:14px; border-radius:42px; background:var(--ink); box-shadow:var(--shadow); transform:rotate(2deg); }
.phone-screen { min-height:570px; overflow:hidden; border-radius:31px; padding:27px 20px; background:var(--paper); }
.mini-date { color:var(--coral-dark); font-weight:850; font-size:.78rem; letter-spacing:.08em; text-transform:uppercase; }
.phone h2 { font-size:2.25rem; line-height:1; margin:10px 0 12px; }
.mini-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:9px; margin-top:25px; }
.demo-photo { display:grid; place-items:center; width:100%; aspect-ratio:1; border-radius:15px; font-size:2.2rem; background:linear-gradient(145deg,#ffe2d3,#fff2c9); }
.demo-photo:nth-child(2) { background:linear-gradient(145deg,#e6d8ff,#ffd7e2); }
.demo-photo:nth-child(3) { background:linear-gradient(145deg,#d6f1e7,#fff0c6); }
.demo-photo:nth-child(4) { background:linear-gradient(145deg,#ffd7d2,#e4e1ff); }
.float-card { position:absolute; right:-50px; bottom:80px; width:170px; padding:16px; border-radius:18px; background:var(--yellow); box-shadow:var(--shadow); transform:rotate(-5deg); font-weight:850; }
.demo-callout { display:grid; grid-template-columns:1fr auto; align-items:center; gap:28px; margin-bottom:42px; padding:28px 32px; border:1px solid var(--line); border-radius:26px; background:rgba(255,254,250,.9); box-shadow:var(--shadow); }
.demo-callout h2 { margin:8px 0; font-size:clamp(1.8rem,4vw,2.7rem); }
.demo-callout p { max-width:690px; margin:0; color:var(--muted); line-height:1.55; }
.demo-page { padding:35px 0 70px; }
.demo-intro { max-width:800px; margin-bottom:38px; }
.demo-intro h1 { font-size:clamp(2.8rem,7vw,5.5rem); }
.demo-jump { display:flex; flex-wrap:wrap; gap:10px; margin-top:26px; }
.demo-section-heading { max-width:760px; margin:0 0 22px; scroll-margin-top:24px; }
.demo-section-heading h2 { margin:14px 0 8px; font-size:clamp(2rem,5vw,3.25rem); line-height:1.03; letter-spacing:-.045em; }
.demo-section-heading p { margin:0; color:var(--muted); font-size:1.05rem; line-height:1.55; }
.demo-experience { display:grid; grid-template-columns:minmax(270px,.72fr) minmax(320px,1fr); gap:38px; align-items:center; padding:clamp(22px,5vw,48px); border-radius:30px; background:var(--paper); box-shadow:var(--shadow); }
.demo-steps { display:grid; gap:12px; }
.demo-step { display:grid; grid-template-columns:42px 1fr; gap:2px 13px; padding:16px; text-align:left; color:var(--ink); border:1px solid var(--line); border-radius:17px; background:#fff; }
.demo-step span { grid-row:1/3; display:grid; place-items:center; width:42px; height:42px; border-radius:50%; background:var(--cream); font-weight:900; }
.demo-step strong, .demo-step small { grid-column:2; }
.demo-step small { color:var(--muted); }
.demo-step.active { border-color:var(--coral-dark); box-shadow:0 8px 22px rgba(82,125,112,.13); }
.demo-step.active span, .demo-step.complete span { background:var(--coral-dark); color:#fff; }
.demo-device { position:relative; width:min(100%,330px); margin:auto; padding:7px; border:1px solid #151a18; border-radius:48px; background:#151a18; box-shadow:0 24px 55px rgba(28,36,33,.2); }
.demo-phone-screen { position:relative; min-height:650px; overflow:hidden; border-radius:41px; background:var(--paper); }
.demo-statusbar { position:relative; display:flex; align-items:center; justify-content:space-between; height:35px; padding:3px 17px 0; color:var(--ink); font-size:.68rem; font-weight:800; }
.demo-island { position:absolute; top:7px; left:50%; width:80px; height:23px; border-radius:16px; background:#080b0a; transform:translateX(-50%); }
.demo-device-bar { display:flex; align-items:center; gap:9px; padding:11px 16px; border-top:1px solid rgba(35,50,44,.08); border-bottom:1px solid rgba(35,50,44,.1); color:var(--ink); }
.demo-device-bar .brand-mark { width:32px; height:32px; }
.demo-screen { min-height:480px; padding:30px 22px 52px; background:var(--paper); }
.demo-home-indicator { position:absolute; left:50%; bottom:9px; width:92px; height:5px; border-radius:5px; background:#151a18; transform:translateX(-50%); }
.demo-screen-state h2 { margin:12px 0; font-size:2rem; }
.demo-picker { display:grid; place-items:center; gap:6px; margin:28px 0; padding:35px 18px; border:2px dashed #d4c9bd; border-radius:20px; background:#fff9f2; }
.demo-picker span { font-size:2.5rem; }
.demo-picker small { color:var(--muted); }
.demo-success { display:grid; place-items:center; width:70px; height:70px; margin:20px auto; border-radius:50%; background:var(--coral-dark); color:#fff; font-size:2rem; font-weight:900; }
.demo-screen-state[data-demo-state="3"] { text-align:center; }
.demo-gallery { display:grid; grid-template-columns:repeat(3,1fr); gap:8px; margin:25px 0; }
.demo-gallery span { display:grid; place-items:center; aspect-ratio:1; border-radius:14px; background:#edf3ef; font-size:2rem; }
.demo-owner-heading { margin-top:78px; }
.demo-owner { display:grid; grid-template-columns:minmax(0,1.08fr) minmax(300px,.92fr); gap:34px; align-items:center; padding:clamp(22px,5vw,46px); border-radius:30px; background:var(--ink); color:#fff; box-shadow:var(--shadow); }
.demo-dashboard { padding:22px; border-radius:23px; background:var(--paper); color:var(--ink); box-shadow:0 18px 44px rgba(0,0,0,.2); }
.demo-dashboard-top { display:grid; grid-template-columns:auto 1fr auto; align-items:center; gap:12px; padding-bottom:17px; border-bottom:1px solid var(--line); }
.demo-dashboard-top .brand-mark { width:38px; height:38px; }
.demo-dashboard-top div { display:grid; gap:1px; }
.demo-dashboard-top small { color:var(--muted); }
.demo-live-dot { padding:7px 10px; border-radius:999px; background:#e5f2ed; color:#356a5a; font-size:.72rem; font-weight:850; }
.demo-dashboard-stats { display:grid; grid-template-columns:repeat(3,1fr); gap:9px; margin:16px 0; }
.demo-dashboard-stats div { display:grid; gap:2px; padding:13px 10px; border-radius:14px; background:var(--cream); }
.demo-dashboard-stats strong { font-size:1.35rem; }
.demo-dashboard-stats span { color:var(--muted); font-size:.7rem; line-height:1.2; }
.demo-qr-panel { display:grid; grid-template-columns:auto 1fr auto; align-items:center; gap:13px; padding:14px; border:1px solid var(--line); border-radius:16px; }
.demo-qr-panel > div:nth-child(2) { display:grid; gap:3px; }
.demo-qr-panel span { color:var(--muted); font-size:.72rem; line-height:1.3; }
.demo-qr-art { display:grid; place-items:center; width:50px; height:50px; border-radius:9px; background:#fff; border:2px solid var(--ink); font-size:2.4rem; line-height:1; }
.demo-mini-button { padding:8px 10px; border-radius:10px; background:var(--coral-dark); color:#fff !important; font-weight:800; }
.demo-settings-preview { display:grid; gap:8px; margin-top:13px; }
.demo-settings-preview div { display:flex; justify-content:space-between; gap:14px; padding:11px 13px; border-radius:12px; background:#edf3ef; font-size:.78rem; }
.demo-settings-preview span { color:var(--muted); }
.demo-owner-features { display:grid; gap:10px; }
.demo-owner-features article { display:grid; grid-template-columns:38px 1fr; gap:13px; padding:14px; border:1px solid rgba(255,255,255,.14); border-radius:16px; background:rgba(255,255,255,.06); }
.demo-owner-features article > span { display:grid; place-items:center; width:38px; height:38px; border-radius:50%; background:var(--coral); color:var(--ink); font-size:.76rem; font-weight:900; }
.demo-owner-features h3 { margin:0 0 4px; font-size:1rem; }
.demo-owner-features p { margin:0; color:rgba(255,255,255,.72); font-size:.84rem; line-height:1.4; }
.demo-finish { max-width:760px; margin:46px auto 0; text-align:center; }
.demo-finish h2 { font-size:clamp(2rem,5vw,3rem); margin-bottom:10px; }
.demo-finish p { color:var(--muted); line-height:1.6; }
.demo-finish .actions { justify-content:center; }
.setup-guide { margin-bottom:34px; padding:25px; border:1px solid #bdd7cf; border-radius:24px; background:#edf6f2; }
.setup-guide-heading { display:flex; justify-content:space-between; align-items:end; gap:20px; }
.setup-guide-heading h2 { margin:6px 0 0; font-size:1.65rem; }
.setup-progress { flex:0 0 auto; color:var(--green); font-weight:750; }
.setup-progress-bar { height:8px; margin:18px 0; overflow:hidden; border-radius:999px; background:#d8e5e0; }
.setup-progress-bar span { display:block; height:100%; border-radius:inherit; background:var(--green); transition:width .25s ease; }
.setup-list { display:grid; gap:10px; margin:0; padding:0; list-style:none; }
.setup-item { display:grid; grid-template-columns:42px 1fr auto; align-items:center; gap:14px; padding:15px; border:1px solid rgba(82,125,112,.2); border-radius:16px; background:#fff; }
.setup-check { display:grid; place-items:center; width:38px; height:38px; border-radius:50%; background:var(--cream); font-weight:900; }
.setup-item.complete .setup-check { background:var(--green); color:#fff; }
.setup-item div { display:grid; gap:3px; }
.setup-item small { color:var(--muted); line-height:1.35; }
.setup-item a, .setup-item button { padding:8px 10px; border:0; background:transparent; color:var(--green); font-weight:850; text-decoration:none; cursor:pointer; white-space:nowrap; }
.setup-optional { margin:16px 2px 0; color:var(--muted); font-size:.88rem; }
.trust-strip { display:flex; flex-wrap:wrap; justify-content:center; gap:10px; margin-top:-50px; margin-bottom:42px; }
.trust-strip span { display:inline-flex; align-items:center; min-height:42px; padding:8px 13px; border:1px solid var(--line); border-radius:999px; background:rgba(255,253,249,.9); color:var(--ink); font-size:.86rem; font-weight:800; box-shadow:0 8px 22px rgba(75,47,38,.06); }

.event-header { padding: 24px 0 18px; }
.event-hero { display:grid; grid-template-columns: 1fr auto; gap:22px; align-items:end; padding:38px 0; }
.event-hero h1 { font-size:clamp(2.7rem, 8vw, 5.8rem); margin:10px 0 15px; letter-spacing:-.025em; }
.event-meta { color:var(--muted); font-weight:700; }
.gallery { display:grid; grid-template-columns:repeat(4, 1fr); gap:12px; padding:12px 0 70px; }
.photo { position:relative; overflow:hidden; border-radius:18px; background:#e7ddd6; aspect-ratio:1; border:0; padding:0; cursor:zoom-in; }
.photo img { width:100%; height:100%; object-fit:cover; transition:transform .25s; }
.photo:hover img { transform:scale(1.035); }
.empty { grid-column:1/-1; text-align:center; padding:65px 20px; background:rgba(255,255,255,.65); border:1px dashed #d9c8bc; border-radius:24px; color:var(--muted); }
.gallery-more { display:flex; justify-content:center; margin:-48px 0 70px; }

.card { width:min(640px, calc(100% - 32px)); margin:42px auto; padding:clamp(22px, 5vw, 42px); border-radius:28px; background:var(--paper); box-shadow:var(--shadow); }
.card.wide { width:min(1020px, calc(100% - 32px)); }
.card h1 { font-size:clamp(2.2rem, 7vw, 4rem); margin-bottom:12px; }
.field { margin:18px 0; }
.field label { display:block; font-weight:850; margin-bottom:8px; }
.field input, .field select, .field textarea { width:100%; min-height:50px; border:1px solid var(--line); border-radius:14px; padding:10px 14px; background:#fff; color:var(--ink); }
.field select { appearance:none; -webkit-appearance:none; padding-right:48px; background-color:#fff; background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 20 20' fill='none'%3E%3Cpath d='m6 8 4 4 4-4' stroke='%23262f2c' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E"); background-repeat:no-repeat; background-position:right 15px center; background-size:20px; cursor:pointer; }
.trap { position:absolute; left:-10000px; width:1px; height:1px; overflow:hidden; }
.hint, .muted { color:var(--muted); font-size:.92rem; }
.notice { padding:13px 15px; border-radius:13px; margin:16px 0; background:#e6f6f0; color:#22644f; font-weight:750; }
.notice.error { background:#fde8e6; color:#94352f; }
.upload-zone { display:block; padding:38px 20px; border:2px dashed #d7c3b6; border-radius:22px; text-align:center; background:#fff9f2; cursor:pointer; }
.upload-zone input { position:absolute; opacity:0; pointer-events:none; }
.upload-zone strong { display:block; font-size:1.22rem; margin-bottom:6px; }
.guestbook-compose { margin:24px 0; overflow:hidden; border:1px solid var(--line); border-radius:20px; background:#fff; }
.guestbook-compose summary { display:flex; align-items:center; justify-content:space-between; gap:16px; padding:20px; cursor:pointer; list-style:none; }
.guestbook-compose summary::-webkit-details-marker { display:none; }
.guestbook-compose summary::after { content:'+'; display:grid; place-items:center; flex:0 0 34px; width:34px; height:34px; border-radius:50%; background:var(--cream); color:var(--coral-dark); font-size:1.5rem; font-weight:800; }
.guestbook-compose[open] summary::after { content:'−'; }
.guestbook-compose summary span { display:grid; gap:3px; }
.guestbook-compose summary strong { font-size:1.08rem; }
.guestbook-compose summary small { color:var(--muted); }
.guestbook-compose .guestbook-form { padding:2px 20px 20px; border-top:1px solid var(--line); }
.guestbook-clarification { margin:16px 0; padding:14px 16px; border-left:4px solid var(--coral-dark); border-radius:12px; background:#edf6f2; color:#355d52; line-height:1.45; }
.upload-continue[hidden] { display:none; }
.upload-continue { position:fixed; z-index:20; left:50%; bottom:20px; width:min(590px,calc(100% - 32px)); transform:translateX(-50%); display:flex; align-items:center; justify-content:space-between; gap:16px; padding:12px 14px 12px 18px; border:1px solid rgba(255,255,255,.16); border-radius:18px; background:var(--ink); color:#fff; box-shadow:0 18px 45px rgba(43,38,48,.3); }
.upload-continue strong { line-height:1.3; }
.upload-continue .btn { min-height:46px; box-shadow:none; white-space:nowrap; }
.upload-overlay[hidden] { display:none; }
.upload-overlay { position:fixed; z-index:50; inset:0; display:grid; place-items:center; padding:20px; background:rgba(43,38,48,.86); backdrop-filter:blur(5px); }
.upload-progress-card { width:min(470px,100%); padding:32px; border-radius:26px; background:var(--paper); text-align:center; box-shadow:var(--shadow); }
.upload-progress-card h2 { margin:16px 0 8px; font-size:clamp(1.7rem,5vw,2.35rem); }
.upload-progress-card p { color:var(--muted); line-height:1.5; }
.upload-spinner { width:52px; height:52px; margin:auto; border:5px solid #f2ded5; border-top-color:var(--coral); border-radius:50%; animation:upload-spin .8s linear infinite; }
.upload-progress-track { height:12px; margin:22px 0 10px; overflow:hidden; border-radius:999px; background:#eee4dd; }
.upload-progress-track span { display:block; width:0; height:100%; border-radius:inherit; background:var(--coral); transition:width .2s ease; }
.upload-progress-card > strong { color:var(--coral-dark); font-size:1.1rem; }
@keyframes upload-spin { to { transform:rotate(360deg); } }

.admin-bar { background:var(--ink); color:#fff; }
.admin-bar .shell { min-height:68px; display:flex; justify-content:space-between; align-items:center; gap:16px; }
.admin-bar a { color:#fff; }
.admin-bar .brand-tld { color:#8fb8aa; }
.admin-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:14px; }
.stat { padding:20px; border-radius:20px; background:#fff; border:1px solid var(--line); }
.stat strong { display:block; font-size:1.8rem; }
.event-list { display:grid; gap:12px; margin-top:25px; }
.event-row { display:grid; grid-template-columns:1fr auto; align-items:center; gap:16px; padding:18px; border:1px solid var(--line); border-radius:18px; background:#fff; }
.event-row h3 { margin-bottom:5px; }
.qr { width:210px; padding:12px; border-radius:18px; background:#fff; border:1px solid var(--line); }
.link-box { display:flex; gap:8px; }
.link-box input { flex:1; min-width:0; }
.manage-head { display:grid; grid-template-columns:1fr auto; gap:25px; align-items:start; }
.event-share-panel { display:grid; gap:12px; margin-top:24px; }
.event-share-panel > label { margin-bottom:-4px; font-weight:850; }
.guest-link-display { overflow:hidden; padding:14px 16px; border:1px solid var(--line); border-radius:14px; background:#fff; color:var(--ink); font-size:.96rem; white-space:nowrap; text-overflow:ellipsis; }
.event-primary-actions, .event-secondary-actions { display:flex; flex-wrap:wrap; gap:9px; }
.event-primary-actions .btn { flex:1 1 210px; }
.event-secondary-actions .btn { min-height:46px; padding:10px 16px; font-size:.9rem; }
.album-status-panel { display:flex; justify-content:space-between; align-items:center; gap:24px; margin:28px 0; padding:22px 24px; border:1px solid var(--line); border-radius:20px; background:#f7f4ed; }
.album-status-panel h2 { margin:3px 0 4px; font-size:1.35rem; }
.album-status-panel p { margin:0; }
.album-status-panel form { flex:0 0 auto; }
.dashboard-head { align-items:center; margin-bottom:26px; }
.dashboard-head h1 { margin-bottom:0; }
.dashboard-actions { width:min(620px,100%); display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
.dashboard-actions .btn { width:100%; min-height:54px; padding:8px 18px; text-align:center; }
.dashboard-actions .dashboard-new, .dashboard-actions .dashboard-booking { grid-column:1/-1; }
.dashboard-actions .dashboard-new { min-height:62px; font-size:1.05rem; }
.event-browser { margin-top:28px; padding:22px; border:1px solid var(--line); border-radius:22px; background:#fff9f2; }
.event-browser-heading { display:flex; justify-content:space-between; align-items:end; gap:18px; margin-bottom:18px; }
.event-browser-heading h2 { margin:4px 0 0; font-size:1.55rem; }
.event-filter-toggle, .event-filter-button { display:none; }
.event-search { display:grid; grid-template-columns:minmax(250px,1.6fr) minmax(150px,.7fr) minmax(190px,.9fr) auto auto; align-items:end; gap:10px; }
.event-search .field { margin:0; }
.event-search .btn { min-height:52px; padding:10px 17px; }
.event-filter-tabs { display:flex; flex-wrap:wrap; gap:8px; margin-top:16px; }
.event-filter-tabs a { padding:9px 14px; border:1px solid var(--line); border-radius:999px; background:#fff; color:var(--ink); font-size:.86rem; font-weight:850; text-decoration:none; }
.event-filter-tabs a:hover { border-color:#9cbbb1; }
.event-filter-tabs a.active { border-color:var(--coral); background:var(--coral); color:#fff; }
.pagination { display:flex; justify-content:center; align-items:center; gap:14px; margin-top:24px; }
.pagination span { color:var(--muted); font-size:.9rem; font-weight:800; }
.pagination .btn { min-height:46px; padding:9px 15px; }
.danger-zone { margin-top:35px; padding:24px; border:1px solid #e8b8b5; border-radius:20px; background:#fff4f3; }
.danger-zone h2 { color:#8f2429; }
.settings-panel { margin:30px 0; }
.settings-panel form[data-async-settings] { display:grid; gap:24px; }
.settings-panel form[data-async-settings] .settings-save { margin-top:0; }
.voucher-form { display:grid; grid-template-columns:minmax(0,1.55fr) minmax(210px,.9fr) minmax(190px,.75fr); gap:18px; align-items:end; margin-top:18px; }
.voucher-form label { display:grid; min-width:0; gap:8px; color:var(--ink); font-weight:850; }
.voucher-form input, .voucher-form select { width:100%; min-width:0; }
.voucher-form .btn { grid-column:1 / -1; justify-self:start; min-width:245px; margin-top:4px; }
.correction-details { overflow:hidden; border:1px solid var(--line); border-radius:20px; background:#fff; }
.correction-details summary { display:flex; justify-content:space-between; align-items:center; gap:18px; padding:20px 24px; cursor:pointer; list-style:none; }
.correction-details summary::-webkit-details-marker { display:none; }
.correction-details summary > span:first-child { display:grid; gap:3px; }
.correction-details summary small { color:var(--coral-dark); font-size:.72rem; font-weight:900; letter-spacing:.09em; text-transform:uppercase; }
.correction-details summary strong { font-size:1.12rem; }
.details-toggle { color:var(--muted); font-size:.88rem; font-weight:800; }
.correction-details[open] .details-toggle { font-size:0; }
.correction-details[open] .details-toggle::after { content:'Sluiten'; font-size:.88rem; }
.correction-content { padding:0 24px 24px; border-top:1px solid var(--line); }
.correction-content > form { display:grid; gap:18px; margin-top:18px; }
.settings-group { padding:26px; border-radius:22px; background:#fff9f2; border:1px solid var(--line); box-shadow:0 8px 22px rgba(50,40,45,.04); }
.settings-group h2 { margin:5px 0 8px; }
.settings-disclosure { padding:0; overflow:hidden; }
.settings-disclosure summary { display:flex; justify-content:space-between; align-items:center; gap:18px; padding:24px 26px; cursor:pointer; list-style:none; }
.settings-disclosure summary::-webkit-details-marker { display:none; }
.settings-disclosure-heading { display:grid; min-width:0; gap:5px; }
.settings-disclosure-heading strong { font-size:1.42rem; line-height:1.15; }
.settings-disclosure-meta { display:flex; flex:0 0 auto; align-items:center; gap:10px; }
.settings-state { max-width:240px; padding:7px 11px; overflow:hidden; border-radius:999px; background:#eeeae4; color:var(--muted); font-size:.78rem; font-weight:850; text-overflow:ellipsis; white-space:nowrap; }
.settings-state.is-active { background:#e4f3ed; color:#27664f; }
.settings-chevron { font-size:1.25rem; line-height:1; transition:transform .2s ease; }
.settings-disclosure[open] .settings-chevron { transform:rotate(180deg); }
.settings-disclosure-content { padding:0 26px 26px; border-top:1px solid var(--line); }
.settings-disclosure-content > .muted:first-child { margin-top:20px; }
.settings-kicker { color:var(--coral-dark); font-size:.76rem; font-weight:900; letter-spacing:.09em; text-transform:uppercase; }
.settings-save { display:flex; justify-content:flex-end; align-items:center; gap:16px; margin-top:22px; padding:0 0 30px; }
.settings-status { flex:1; margin:0; color:var(--muted); font-size:.92rem; font-weight:750; }
.settings-status.success { color:#22644f; }
.settings-status.error { color:#94352f; }
.settings-save .btn:disabled { opacity:.7; cursor:wait; transform:none; }
.settings-divider { margin:30px 0; border:0; border-top:1px solid var(--line); }
.privacy-options { display:grid; gap:10px; margin:16px 0 22px; }
.privacy-option { display:flex; gap:12px; padding:16px; border:1px solid var(--line); border-radius:16px; background:#fff; cursor:pointer; }
.privacy-option input { margin-top:3px; accent-color:var(--coral-dark); }
.privacy-option span { display:grid; gap:4px; }
.privacy-option small { color:var(--muted); line-height:1.4; }
.code-link { padding:12px; border-radius:12px; background:#f5eee7; word-break:break-all; font-family:ui-monospace,monospace; font-size:.86rem; }
.privacy-note { margin:16px 0; padding:13px 15px; border-left:4px solid var(--green); background:#eef8f4; color:#315e50; border-radius:10px; font-size:.92rem; line-height:1.5; }
.photo-actions { display:flex; flex-wrap:wrap; gap:6px; margin:8px 0; }
.photo-actions .btn { min-height:40px; padding:0 12px; font-size:.82rem; }
.photo-bulk-bar { display:flex; justify-content:space-between; align-items:center; gap:16px; margin:14px 0 4px; padding:14px 16px; border:1px solid var(--line); border-radius:16px; background:#fff9f2; }
.photo-bulk-bar > label { display:flex; align-items:center; gap:9px; font-weight:850; cursor:pointer; }
.photo-bulk-bar input, .photo-select input { width:20px; height:20px; accent-color:var(--coral-dark); }
.photo-bulk-bar .btn { min-height:44px; }
.photo-bulk-bar .btn:disabled { opacity:.45; cursor:not-allowed; transform:none; }
.photo-card { position:relative; }
.photo-select { position:absolute; z-index:2; top:10px; left:10px; display:flex; align-items:center; gap:7px; padding:8px 10px; border-radius:12px; background:rgba(255,255,255,.94); box-shadow:0 4px 14px rgba(43,38,48,.16); cursor:pointer; }
.photo-select span { position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; }
.guestbook-panel { margin:30px 0; padding:24px; border-radius:22px; background:#fff4e8; border:1px solid var(--line); }
.guestbook-heading { display:flex; align-items:center; justify-content:space-between; gap:18px; margin-bottom:18px; }
.guestbook-heading h2 { margin:5px 0 0; }
.guestbook-list { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
.guestbook-entry { padding:20px; border-radius:18px; background:#fff; border:1px solid var(--line); }
.guestbook-entry p { margin:0 0 14px; white-space:normal; line-height:1.6; }
.guestbook-entry small { color:var(--muted); font-weight:700; }
.guestbook-delete { margin-top:14px; padding:0; border:0; background:transparent; color:#94352f; font:inherit; font-size:.82rem; font-weight:800; cursor:pointer; }
.guestbook-delete:hover { text-decoration:underline; }
.guestbook-form { margin:22px 0; padding:20px; border-radius:20px; background:#fff4e8; border:1px solid var(--line); }
.guestbook-form h2 { margin-bottom:4px; }
.guestbook-form textarea { resize:vertical; line-height:1.5; }
.choice-hint { margin:18px 0; padding:13px 15px; border-radius:13px; background:#fff4e8; color:var(--ink); line-height:1.5; }
.share-confirmation { margin-top:28px; padding:30px; border-radius:24px; background:#eef8f4; border:1px solid #cfe7de; text-align:center; }
.confirmation-icon { display:grid; place-items:center; width:62px; height:62px; margin:0 auto 18px; border-radius:50%; background:var(--green); color:#fff; font-size:2rem; font-weight:900; }
.share-confirmation h2 { margin-bottom:10px; font-size:clamp(1.7rem,5vw,2.35rem); }
.share-confirmation p { margin-bottom:0; color:#315e50; line-height:1.6; }
.confirmation-actions { display:grid; gap:10px; margin-top:24px; }
.confirmation-actions .btn { width:100%; }
.instagram-safety-note { margin-top:16px; padding:15px 17px; border-radius:15px; background:#eef8f4; border:1px solid #cfe7de; color:#315e50; line-height:1.55; }
.event-hashtag { display:inline-flex; flex-wrap:wrap; gap:5px; margin:14px 0 0; padding:10px 14px; border-radius:999px; background:#fff; border:1px solid var(--line); color:var(--muted); font-size:.92rem; }
.event-hashtag strong, .print-hashtag { color:var(--green); }
.instagram-share-suggestion { display:grid; gap:4px; margin-top:18px; padding:15px 17px; border-radius:15px; background:#fff; color:var(--ink); text-align:left; }
.instagram-share-suggestion span { color:var(--muted); line-height:1.5; }
.print-hashtag { margin:4px 0 10px; font-size:1.45rem; font-weight:900; }
.optional-details { margin:20px 0; padding:16px 18px; border:1px solid var(--line); border-radius:16px; background:#fff9f2; }
.optional-details summary { cursor:pointer; color:var(--ink); font-weight:850; }
.optional-details[open] summary { margin-bottom:10px; }
.request-consent { margin-top:24px; }
.request-submit { margin-top:20px; }
.booking-card { max-width:820px; }
.booking-assurance { margin:26px 0 30px; padding:24px; border:1px solid #c9ddd5; border-radius:22px; background:#f1f8f5; }
.booking-assurance h2, .booking-after h2, .booking-faq h2 { margin:8px 0 18px; font-size:clamp(1.45rem,4vw,2rem); }
.booking-checklist { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px 18px; margin:0; padding:0; list-style:none; }
.booking-checklist li { position:relative; padding-left:28px; color:var(--ink); line-height:1.45; }
.booking-checklist li::before { content:'✓'; position:absolute; left:0; top:0; display:grid; place-items:center; width:20px; height:20px; border-radius:50%; background:var(--green); color:#fff; font-size:.75rem; font-weight:900; }
.booking-after, .booking-faq { margin-top:34px; padding-top:30px; border-top:1px solid var(--line); }
.booking-after ol { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; margin:0; padding:0; list-style:none; counter-reset:booking-step; }
.booking-after li { position:relative; min-width:0; padding:54px 18px 18px; border:1px solid var(--line); border-radius:18px; background:#fff; counter-increment:booking-step; }
.booking-after li::before { content:counter(booking-step); position:absolute; top:16px; left:18px; display:grid; place-items:center; width:28px; height:28px; border-radius:50%; background:#dcece6; color:var(--green); font-size:.8rem; font-weight:900; }
.booking-after li strong, .booking-after li span { display:block; }
.booking-after li strong { margin-bottom:7px; line-height:1.3; }
.booking-after li span { margin-top:6px; color:var(--muted); font-size:.9rem; line-height:1.5; }
.booking-faq::before { content:'Klik op een vraag om het antwoord te bekijken.'; display:block; margin:-8px 0 16px; color:var(--muted); font-size:.92rem; }
.booking-faq details { margin-bottom:10px; border:1px solid var(--line); border-radius:16px; background:#fff; overflow:hidden; transition:border-color .18s ease, box-shadow .18s ease; }
.booking-faq details:hover, .booking-faq details[open] { border-color:#a8cabe; box-shadow:0 8px 22px rgba(39,52,47,.07); }
.booking-faq summary { position:relative; padding:18px 58px 18px 18px; cursor:pointer; color:var(--ink); font-weight:850; list-style:none; }
.booking-faq summary::-webkit-details-marker { display:none; }
.booking-faq summary::after { content:'+'; position:absolute; top:50%; right:16px; translate:0 -50%; display:grid; place-items:center; width:30px; height:30px; border-radius:50%; background:#dcece6; color:var(--green); font-size:1.35rem; line-height:1; }
.booking-faq details[open] summary::after { content:'−'; }
.booking-faq p { margin:0; padding:0 58px 19px 18px; color:var(--muted); line-height:1.55; }
.booking-price { display:flex; align-items:baseline; gap:12px; margin:20px 0 26px; padding:18px 22px; border-radius:18px; background:#eef8f4; border:1px solid #cfe7de; }
.booking-price strong { color:var(--green); font-size:clamp(2.3rem,7vw,4rem); line-height:1; }
.booking-price span { color:var(--muted); font-weight:800; }
.package-options { display:grid; gap:12px; margin:26px 0 18px; padding:0; border:0; }
.package-options legend { margin-bottom:10px; font-weight:900; font-size:1.15rem; }
.package-option { display:grid; grid-template-columns:auto 1fr auto; align-items:center; gap:15px; padding:18px; border:1px solid var(--line); border-radius:18px; background:#fff; cursor:pointer; }
.package-option:has(input:checked) { border-color:var(--green); box-shadow:0 0 0 3px rgba(82,125,112,.12); background:#f5faf8; }
.package-option.featured { background:#fffaf0; }
.package-option input { width:21px; height:21px; accent-color:var(--green); }
.package-option span { display:grid; gap:5px; }
.package-option small { color:var(--muted); line-height:1.45; }
.package-option b { color:var(--green); font-size:1.6rem; white-space:nowrap; }
.payment-submit { width:100%; }
.payment-submit:disabled { opacity:.7; cursor:wait; transform:none; }
.payment-help { margin:12px 0 0; text-align:center; color:var(--muted); font-size:.88rem; }
.feature-showcase { padding:60px 0 30px; }
.hero h1 {
  font-size:clamp(3.1rem,7vw,6rem);
  line-height:1;
  letter-spacing:-.035em;
  overflow-wrap:normal;
  hyphens:none;
}
.pricing-section { padding:58px 0 10px; }
.pricing-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; }
.pricing-card { display:flex; flex-direction:column; align-items:flex-start; padding:30px; border:1px solid var(--line); border-radius:26px; background:var(--paper); box-shadow:0 14px 36px rgba(75,47,38,.08); }
.pricing-card.featured { border-color:#b8d4ca; background:linear-gradient(145deg,#f3faf7,#fffefa); }
.pricing-card h3 { margin:12px 0 8px; font-size:clamp(1.7rem,4vw,2.5rem); }
.pricing-card p { flex:1; color:var(--muted); line-height:1.6; }
.pricing-label { color:var(--coral-dark); font-size:.78rem; font-weight:900; letter-spacing:.08em; text-transform:uppercase; }
.pricing-amount { margin-bottom:14px; color:var(--green); font-size:clamp(2.8rem,6vw,4.5rem); font-weight:950; line-height:1; letter-spacing:-.05em; }
.pricing-actions { display:flex; flex-wrap:wrap; align-items:center; gap:14px; }
.text-link { color:var(--coral-dark); font-weight:850; }
.feature-intro { max-width:760px; margin-bottom:28px; }
.feature-intro h2 { margin:14px 0 12px; font-size:clamp(2.2rem,5vw,4.2rem); line-height:1; letter-spacing:-.045em; }
.feature-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:16px; }
.feature-card { padding:26px; border-radius:24px; background:var(--paper); border:1px solid var(--line); box-shadow:0 12px 32px rgba(75,47,38,.07); }
.feature-card h3 { margin:18px 0 9px; font-size:1.25rem; }
.feature-card p { margin:0; color:var(--muted); line-height:1.6; }
.feature-icon { display:grid; place-items:center; width:52px; height:52px; border-radius:16px; background:#e6f0ec; color:var(--coral-dark); font-size:1.45rem; font-weight:900; }
.feature-card:nth-child(2) .feature-icon { background:#fff4cc; color:#8b6516; }
.feature-card:nth-child(3) .feature-icon { background:#e5f4ef; color:#2f765f; }
.home-cta { display:grid; grid-template-columns:1fr auto; align-items:center; gap:28px; margin:28px 0 20px; padding:32px; border-radius:28px; background:var(--ink); color:#fff; }
.home-cta h2 { margin:12px 0 8px; font-size:clamp(1.8rem,4vw,3rem); }
.home-cta p { max-width:700px; margin:0; color:rgba(255,255,255,.72); line-height:1.6; }
.home-cta .eyebrow { color:var(--ink); }
.home-cta .btn { white-space:nowrap; }
.home-cta > .actions { justify-content:flex-end; margin-top:0; }
.site-footer { display:grid; gap:7px; padding:28px 16px 36px; text-align:center; color:var(--muted); font-size:.88rem; }
.site-footer strong { color:var(--ink); }
.site-footer nav { display:flex; flex-wrap:wrap; justify-content:center; gap:14px; margin-top:5px; }
.instagram-callout { display:grid; grid-template-columns:auto 1fr auto; align-items:center; gap:22px; margin-top:34px; margin-bottom:50px; padding:28px 32px; border-radius:28px; color:#fff; background:linear-gradient(125deg,#466b60,#648b7f 58%,#8fb8aa); box-shadow:var(--shadow); }
.instagram-callout h2 { margin:6px 0; font-size:clamp(1.7rem,4vw,2.5rem); }
.instagram-callout p { margin:0; color:rgba(255,255,255,.88); }
.instagram-callout .eyebrow { color:var(--ink); }
.instagram-symbol { display:grid; place-items:center; width:68px; height:68px; border:4px solid #fff; border-radius:20px; font-size:3.1rem; font-weight:900; line-height:1; }
.instagram-btn { background:#fff; color:var(--ink); box-shadow:none; white-space:nowrap; }
.instagram-btn:hover { background:#f4f1ea; color:var(--ink); }
.qr-actions { display:grid; gap:8px; margin-top:10px; }
.print-card { width:min(148mm, calc(100% - 32px)); min-height:190mm; margin:24px auto; padding:18mm 14mm; display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; background:#fff; border-radius:28px; box-shadow:var(--shadow); }
.print-card h1 { font-size:2.7rem; margin:16px 0 10px; }
.print-card .qr { width:92mm; max-width:100%; }
@media print {
  body { background:#fff; }
  .no-print, .site-footer { display:none !important; }
  .print-card { width:100%; min-height:0; margin:0; padding:10mm; box-shadow:none; }
}

.lightbox { display:none; position:fixed; inset:0; z-index:30; padding:24px 82px; background:rgba(20,16,22,.94); align-items:center; justify-content:center; touch-action:pan-y; }
.lightbox.open { display:flex; }
.lightbox-stage { display:flex; flex-direction:column; align-items:center; justify-content:center; max-width:100%; max-height:100%; }
.lightbox img { display:block; max-height:calc(90vh - 36px); max-width:100%; object-fit:contain; border-radius:12px; }
.lightbox-close, .lightbox-nav { position:absolute; display:grid; place-items:center; width:48px; height:48px; padding:0; border:1px solid rgba(255,255,255,.3); border-radius:50%; color:#242129; background:rgba(255,255,255,.94); font:inherit; cursor:pointer; box-shadow:0 8px 24px rgba(0,0,0,.2); }
.lightbox-close { top:20px; right:20px; z-index:2; font-size:1.6rem; }
.lightbox-nav { top:50%; transform:translateY(-50%); font-size:2.5rem; line-height:1; }
.lightbox-prev { left:20px; }
.lightbox-next { right:20px; }
.lightbox-counter { min-height:24px; margin:10px 0 0; color:#fff; font-size:.95rem; font-weight:700; }
.lightbox-close:hover, .lightbox-nav:hover, .lightbox-close:focus-visible, .lightbox-nav:focus-visible { background:#fff; outline:3px solid var(--accent, #8fb8aa); outline-offset:3px; }

@media (max-width: 760px) {
  .voucher-form { grid-template-columns:1fr; gap:16px; }
  .voucher-form .btn { grid-column:auto; justify-self:stretch; width:100%; min-width:0; margin-top:6px; }
  .lightbox { padding:66px 12px 20px; }
  .lightbox img { max-height:calc(88vh - 54px); max-width:calc(100vw - 24px); }
  .lightbox-nav { top:auto; bottom:18px; width:52px; height:52px; }
  .lightbox-prev { left:18px; }
  .lightbox-next { right:18px; }
  .lightbox-counter { margin-bottom:10px; }
  .topbar { gap:10px; padding:16px 0; }
  .topbar .brand { flex:1 1 auto; min-width:0; }
  .topbar .actions { flex:0 0 auto; flex-wrap:nowrap; gap:6px; margin-top:0; }
  .topbar .btn { min-height:42px; padding:0 11px; border-radius:12px; font-size:.82rem; white-space:nowrap; }
  .hero { grid-template-columns:1fr; padding-top:25px; }
  .demo-callout, .demo-experience { grid-template-columns:1fr; }
  .demo-owner { grid-template-columns:1fr; padding:18px; }
  .demo-owner-heading { margin-top:58px; }
  .demo-jump { display:grid; grid-template-columns:1fr; }
  .demo-jump .btn { width:100%; }
  .demo-dashboard { padding:15px; }
  .demo-dashboard-stats { gap:6px; }
  .demo-dashboard-stats div { padding:11px 7px; }
  .demo-qr-panel { grid-template-columns:auto 1fr; }
  .demo-mini-button { grid-column:1/-1; text-align:center; }
  .demo-callout .btn { width:100%; }
  .demo-intro h1 { letter-spacing:-.045em; }
  .demo-device { width:min(100%,330px); }
  .setup-guide { padding:18px; }
  .setup-guide-heading { align-items:start; flex-direction:column; gap:8px; }
  .setup-item { grid-template-columns:38px 1fr; }
  .setup-item a, .setup-item button { grid-column:2; justify-self:start; padding-left:0; }
  .hero h1 { font-size:clamp(2.8rem,13vw,4.8rem); }
  .hero > section:first-child > .actions { display:grid; grid-template-columns:1fr; gap:10px; }
  .hero > section:first-child > .actions .btn { width:100%; min-height:54px; }
  .phone { width:88%; }
  .float-card { right:-18px; }
  .trust-strip { display:grid; grid-template-columns:1fr; margin-top:-55px; margin-bottom:30px; }
  .trust-strip span { justify-content:center; border-radius:14px; text-align:center; }
  .event-hero, .manage-head { grid-template-columns:1fr; }
  .manage-head > div:last-child { text-align:center; }
  .event-primary-actions, .event-secondary-actions { display:grid; grid-template-columns:1fr; }
  .event-primary-actions .btn, .event-secondary-actions .btn { width:100%; }
  .album-status-panel { align-items:stretch; flex-direction:column; }
  .album-status-panel form, .album-status-panel .btn { width:100%; }
  .correction-details summary, .correction-content { padding-left:18px; padding-right:18px; }
  .settings-disclosure summary { align-items:flex-start; padding:20px 18px; }
  .settings-disclosure-heading strong { font-size:1.18rem; }
  .settings-disclosure-meta { gap:7px; }
  .settings-state { max-width:118px; padding:6px 9px; font-size:.68rem; }
  .settings-disclosure-content { padding:0 18px 20px; }
  .event-hero .btn { position:fixed; z-index:10; bottom:16px; left:16px; right:16px; }
  .gallery { grid-template-columns:repeat(2,1fr); gap:7px; padding-bottom:95px; }
  .guestbook-list { grid-template-columns:1fr; }
  .pricing-grid { grid-template-columns:1fr; }
  .booking-assurance { padding:19px; }
  .booking-checklist, .booking-after ol { grid-template-columns:1fr; }
  .package-option { grid-template-columns:auto 1fr; }
  .package-option b { grid-column:2; }
  .guestbook-heading { align-items:stretch; flex-direction:column; }
  .photo { border-radius:12px; }
  .upload-continue { bottom:12px; align-items:stretch; flex-direction:column; padding:14px; text-align:center; }
  .upload-continue .btn { width:100%; }
  .photo-bulk-bar { align-items:stretch; flex-direction:column; }
  .photo-bulk-bar form, .photo-bulk-bar .btn { width:100%; }
  .admin-grid { grid-template-columns:1fr; }
  .dashboard-head { gap:22px; }
  .dashboard-head h1 { margin-top:18px; }
  .dashboard-actions { grid-template-columns:1fr 1fr; gap:9px; }
  .dashboard-actions .btn { min-width:0; min-height:52px; padding:8px 10px; font-size:.88rem; line-height:1.2; }
  .dashboard-actions .dashboard-new { min-height:62px; margin-bottom:7px; font-size:1rem; }
  .dashboard-actions .dashboard-booking { margin-top:7px; }
  .admin-grid.dashboard-stats { grid-template-columns:repeat(3,minmax(0,1fr)); gap:7px; }
  .dashboard-stats .stat { min-width:0; padding:14px 8px; text-align:center; border-radius:15px; }
  .dashboard-stats .stat strong { font-size:1.55rem; }
  .dashboard-stats .stat .muted { display:block; font-size:.7rem; line-height:1.2; }
  .event-browser { margin-top:38px; padding:17px; }
  .event-browser-heading { align-items:start; flex-direction:column; gap:5px; }
  .event-filter-button { display:flex; justify-content:space-between; width:100%; margin-top:16px; cursor:pointer; }
  .event-filter-button span { font-size:1.15rem; transition:transform .2s ease; }
  .event-filter-content { display:none; padding-top:16px; }
  .event-filter-toggle:checked + .event-filter-button span { transform:rotate(180deg); }
  .event-filter-toggle:checked + .event-filter-button + .event-filter-content { display:block; }
  .event-search { grid-template-columns:1fr 1fr; }
  .event-search-query { grid-column:1/-1; }
  .event-search .btn { width:100%; }
  .event-filter-tabs { flex-wrap:nowrap; margin-left:-17px; margin-right:-17px; padding:0 17px 3px; overflow-x:auto; scrollbar-width:none; }
  .event-filter-tabs::-webkit-scrollbar { display:none; }
  .event-filter-tabs a { flex:0 0 auto; }
  .pagination { flex-wrap:wrap; gap:9px; }
  .pagination span { order:-1; width:100%; text-align:center; }
  .feature-showcase { padding-top:38px; }
  .feature-grid, .home-cta { grid-template-columns:1fr; }
  .home-cta .eyebrow { display:flex; width:max-content; margin-left:auto; margin-right:auto; }
  .home-cta .btn { width:100%; }
  .home-cta > .actions { display:grid; grid-template-columns:1fr; margin-top:8px; }
  .event-row { grid-template-columns:1fr; }
  .link-box { flex-direction:column; }
  .instagram-callout { grid-template-columns:auto 1fr; padding:24px; }
  .instagram-callout .instagram-btn { grid-column:1/-1; width:100%; }
}

@media (max-width: 420px) {
  .topbar .brand { font-size:1rem; }
  .topbar .brand-mark { width:34px; height:34px; }
  .topbar .btn { padding:0 9px; font-size:.76rem; }
}
.tv-pair-form{display:grid;grid-template-columns:minmax(180px,.7fr) minmax(220px,1fr) auto;gap:16px;align-items:end}.tv-pair-form .field{margin:0}.tv-code-input{text-transform:uppercase;letter-spacing:.18em;font-weight:800;font-size:1.15rem}.tv-pair-panel .hint{margin-top:16px}
@media (max-width:760px){.tv-pair-form{grid-template-columns:1fr}.tv-pair-form .btn{width:100%}}


/* Overzichtelijk cadeaucodeformulier */
.voucher-form {
  display: grid;
  grid-template-columns: minmax(0, 1.35fr) minmax(220px, .9fr) minmax(210px, .75fr);
  gap: 18px;
  align-items: end;
  margin-top: 18px;
}
.voucher-field {
  display: grid;
  min-width: 0;
  gap: 8px;
  font-weight: 800;
}
.voucher-field > span {
  display: block;
  line-height: 1.25;
}
.voucher-field small {
  color: var(--muted);
  font-size: .82em;
  font-weight: 650;
}
.voucher-field input,
.voucher-field select {
  width: 100%;
  min-width: 0;
  min-height: 54px;
}
.voucher-submit {
  grid-column: 1 / -1;
  display: flex;
  justify-content: flex-start;
  padding-top: 2px;
}
.voucher-submit .btn {
  min-width: 235px;
}
@media (max-width: 760px) {
  .voucher-form {
    grid-template-columns: 1fr;
    gap: 16px;
  }
  .voucher-submit {
    grid-column: 1;
  }
  .voucher-submit .btn {
    width: 100%;
  }
}
