@font-face{font-family:"Bodoni Moda";font-style:normal;font-weight:400;font-display:swap;src:url(fonts/bodoni-moda-latin-ext-400-normal.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:"Bodoni Moda";font-style:normal;font-weight:400;font-display:swap;src:url(fonts/bodoni-moda-latin-400-normal.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Inter";font-style:normal;font-weight:400;font-display:swap;src:url(/assets/fonts/inter-latin-ext-400-normal.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:"Inter";font-style:normal;font-weight:400;font-display:swap;src:url(/assets/fonts/inter-latin-400-normal.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Inter";font-style:normal;font-weight:500;font-display:swap;src:url(/assets/fonts/inter-latin-ext-500-normal.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:"Inter";font-style:normal;font-weight:500;font-display:swap;src:url(/assets/fonts/inter-latin-500-normal.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Inter";font-style:normal;font-weight:600;font-display:swap;src:url(/assets/fonts/inter-latin-ext-600-normal.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:"Inter";font-style:normal;font-weight:600;font-display:swap;src:url(/assets/fonts/inter-latin-600-normal.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
:root{
  --bg:#F7F4F0;--card:rgba(255,255,255,.58);--solid:#FFFFFF;--ink:#1B2B4B;--muted:#56637E;--faint:#9098A8;
  --navy:#1B2B4B;--navy-2:#2A3F66;--on-navy:#FFFFFF;--gold:#97773F;--gold-2:#B08D52;--champ:#C9B48F;
  --soft:rgba(27,43,75,.05);--soft-2:rgba(27,43,75,.14);--line:rgba(255,255,255,.75);--hair:rgba(27,43,75,.09);--track:rgba(27,43,75,.10);
  --green:#4C7F5C;--green-s:rgba(76,127,92,.12);--rose:#A65552;--rose-s:rgba(166,85,82,.11);--gold-s:rgba(151,119,63,.13);
  --glass-blur:blur(20px) saturate(160%);
  --shadow:0 10px 40px rgba(40,30,20,.10),inset 0 1px 0 rgba(255,255,255,.8);
  --shadow-sm:0 6px 24px rgba(27,43,75,.07),inset 0 1px 0 rgba(255,255,255,.9);
  --serif:"Inter",-apple-system,BlinkMacSystemFont,"SF Pro Display","Helvetica Neue","Segoe UI",system-ui,sans-serif;
  --sans:"Inter",-apple-system,BlinkMacSystemFont,"SF Pro Text","Helvetica Neue","Segoe UI",system-ui,sans-serif;
  color-scheme:light;
}
[hidden]{display:none!important}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--ink);font:16px/1.5 var(--sans);min-height:100vh;-webkit-font-smoothing:antialiased}
body.lock{overflow:hidden}
button,input,select,textarea{font:inherit;color:inherit}
button{cursor:pointer;background:none;border:0;padding:0;text-align:inherit}
a{color:var(--navy-2)}
:focus-visible{outline:2px solid var(--navy-2);outline-offset:2px;border-radius:8px}
h1,h2,h3{margin:0;font-weight:400}
.ic{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;flex:none}
.ic.sm{width:18px;height:18px}
.muted{color:var(--muted)}
.serif{font-family:var(--serif)}

main{max-width:580px;margin:0 auto;padding:calc(14px + env(safe-area-inset-top,0px)) 20px calc(130px + env(safe-area-inset-bottom,0px))}
body.bare main{padding-bottom:calc(40px + env(safe-area-inset-bottom,0px))}

/* page header */
.ph{margin:4px 0 22px}
.ph-top{display:flex;justify-content:space-between;align-items:center;min-height:56px;margin-bottom:8px}
.ph-acts{display:flex;gap:10px}
.rbtn{width:52px;height:52px;border-radius:50%;background:var(--card);border:1px solid var(--line);display:grid;place-items:center;color:var(--navy)}
.ph h1{font-family:var(--serif);font-size:44px;line-height:1.05;letter-spacing:-.01em}
.ph p{color:var(--muted);margin:8px 0 0;font-size:17px}
.sec-h{font-family:var(--serif);font-size:30px;line-height:1.1;margin:34px 0 14px}
.sec-sub{color:var(--muted);margin:-8px 0 14px}

/* cards */
.card{background:var(--card);border:1px solid var(--line);border-radius:26px;padding:22px}
.card+.card,.stack>*+*{margin-top:14px}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:50px;padding:0 22px;border-radius:999px;border:1px solid var(--line);background:var(--card);font-weight:600;text-decoration:none;color:var(--ink);white-space:nowrap}
.btn.primary{background:var(--navy);border-color:var(--navy);color:var(--on-navy)}
.btn.wide{width:100%}
.btn.big{min-height:60px;font-size:18px}
.btn.danger{color:var(--rose);border-color:var(--rose)}
.btn[disabled]{opacity:.55;pointer-events:none}
.btns{display:flex;gap:10px;flex-wrap:wrap}
.tlink{display:inline-flex;align-items:center;gap:8px;color:var(--navy);font-weight:600;padding:8px 0}
.tlink .ic{width:20px;height:20px}
.bar{display:block;height:6px;border-radius:6px;background:var(--track);overflow:hidden}
.bar i{display:block;height:100%;background:var(--navy);border-radius:6px;transition:width .5s ease}
.bar.over i{background:var(--rose)}

/* hello */
.hello{margin:16px 0 22px}
.hello p{color:var(--muted);margin:0 0 4px}
.hello h1{font-family:var(--serif);font-size:38px;line-height:1.1}

/* steps */
.steps-h{display:flex;align-items:baseline;gap:12px;width:100%;margin-bottom:16px}
.steps-h h2{font-family:var(--serif);font-size:28px}
.steps-h .muted{font-weight:600;font-size:15px}
.steps-h .ic{margin-left:auto;align-self:center;transition:transform .2s;transform:rotate(-90deg)}
.steps.closed .steps-h .ic{transform:rotate(90deg)}
.steps.closed .steps-h{margin-bottom:12px}
.steplist{list-style:none;margin:14px 0 18px;padding:0}
.step{display:flex;align-items:center;gap:14px;width:100%;padding:11px 0;font-size:17px}
.step .ic.sm{margin-left:auto;color:var(--faint)}
.ring{width:30px;height:30px;border-radius:50%;border:2px solid var(--soft-2);display:grid;place-items:center;flex:none}
.ring .ic{width:16px;height:16px;stroke:var(--on-navy);stroke-width:2.6}
.step.done{color:var(--faint);text-decoration:line-through;text-decoration-color:var(--faint);cursor:default}
.step.done .ring{background:var(--navy);border-color:var(--navy)}
.next{background:var(--soft);border-radius:20px;padding:18px 20px 20px}
.lbl{font-size:13px;font-weight:700;letter-spacing:.06em;color:var(--navy-2);margin:0 0 2px}
.next h3{font-family:var(--serif);font-size:26px}
.next p{color:var(--muted);margin:4px 0 16px}

/* big day */
.bigday{margin-top:16px;border-radius:28px;padding:24px 24px 22px;color:#fff;background:radial-gradient(120% 140% at 0% 0%,#2A527D 0%,#1C3A5E 55%,#152B46 100%);box-shadow:0 14px 34px rgba(28,58,94,.28)}
.bd-top{display:flex;justify-content:space-between;align-items:center;font-size:14px;letter-spacing:.08em;font-weight:600;opacity:.92}
.bd-top button{display:flex;align-items:center;gap:4px;letter-spacing:0;font-weight:500;font-size:15px;color:#fff;opacity:.85}
.bigday h2{font-family:var(--serif);font-size:34px;line-height:1.15;margin:14px 0 18px}
.bd-count{display:flex;align-items:baseline;gap:12px;margin:10px 0 2px}
.bd-count b{font-family:var(--serif);font-weight:400;font-size:76px;line-height:1;letter-spacing:-.02em}
.bd-count span{font-size:17px;opacity:.9}
.bd-date{margin:0 0 18px;opacity:.85}
.bd-bar{height:5px;border-radius:5px;background:rgba(255,255,255,.18);overflow:hidden}
.bd-bar i{display:block;height:100%;background:#fff;border-radius:5px}
.bd-p{margin:10px 0 0;font-size:15px;opacity:.9}

/* tiles */
.tiles{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:14px}
.tile{background:var(--card);border:1px solid var(--line);border-radius:24px;padding:18px 18px 18px;display:flex;flex-direction:column;min-height:176px}
.tile-h{display:flex;align-items:center;gap:10px;color:var(--muted);font-size:15px}
.tile-h .bub{width:40px;height:40px;border-radius:50%;background:var(--soft);display:grid;place-items:center;color:var(--navy)}
.tile-h .bub .ic{width:20px;height:20px}
.tile-h .ic.sm{margin-left:auto;color:var(--faint)}
.tile b{font-family:var(--serif);font-weight:400;font-size:40px;line-height:1;margin:18px 0 0;color:var(--navy)}
.tile b small{font-family:var(--sans);font-size:15px;color:var(--muted);margin-left:6px}
.tile span.s{color:var(--muted);font-size:14.5px;margin-top:auto;padding-top:12px;line-height:1.35}

/* task rows */
.tl{list-style:none;margin:0;padding:0}
.tl li+li{border-top:1px solid var(--line)}
.trow{display:flex;align-items:flex-start;gap:14px;padding:13px 0}
.chk{width:30px;height:30px;border-radius:50%;border:2px solid var(--soft-2);display:grid;place-items:center;flex:none;margin-top:-3px}
.chk .ic{width:16px;height:16px;stroke:var(--on-navy);stroke-width:2.6;opacity:0}
.trow.done .chk{background:var(--navy);border-color:var(--navy)}
.trow.done .chk .ic{opacity:1}
.ttext{flex:1;font-size:16.5px}
.ttext small{display:block;color:var(--muted);font-size:13.5px;margin-top:2px}
.trow.done .ttext{color:var(--faint);text-decoration:line-through}
.empty{text-align:center;padding:30px 22px}
.empty .bub{width:72px;height:72px;border-radius:50%;background:var(--soft);display:grid;place-items:center;margin:0 auto 16px;color:var(--navy)}
.empty h3{font-family:var(--serif);font-size:28px;line-height:1.15;margin-bottom:8px}
.empty p{color:var(--muted);margin:0 auto 20px;max-width:34ch}
.empty.left{text-align:left;padding:22px}
.empty.left p{margin:0 0 10px}

/* summary cards */
.sum-top{display:flex;justify-content:space-between;align-items:flex-end;gap:12px}
.sum-big{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}
.sum-big b{font-family:var(--serif);font-weight:400;font-size:64px;line-height:.95;color:var(--navy)}
.sum-big span{color:var(--muted);font-size:18px}
.sum-sub{margin:6px 0 0;font-size:17px}
.sum-pct{text-align:right}
.sum-pct b{display:block;font-family:var(--serif);font-weight:400;font-size:40px;line-height:1;color:var(--navy)}
.sum-pct span{color:var(--muted);font-size:15px}
.legend{display:flex;justify-content:space-between;gap:8px;flex-wrap:wrap;margin:22px 0 0;padding-bottom:18px;border-bottom:1px solid var(--line)}
.legend span{display:flex;align-items:center;gap:8px;color:var(--muted)}
.legend b{color:var(--ink);font-weight:600}
.dot{width:10px;height:10px;border-radius:50%;background:var(--faint);flex:none}
.d-jon{background:var(--green)}.d-nem{background:var(--rose)}.d-f{background:var(--gold)}
.kv{display:flex;justify-content:space-between;align-items:center;padding-top:16px;font-size:17px}
.kv span{color:var(--muted)}
.kv button{font-weight:600}
.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:18px}
.grid3 span{display:block;color:var(--muted);font-size:13.5px}
.grid3 b{font-weight:600;font-size:16px;font-variant-numeric:tabular-nums}

/* segmented */
.seg{display:flex;gap:4px;background:var(--soft);padding:5px;border-radius:999px;margin:18px 0 16px;overflow-x:auto;scrollbar-width:none}
.seg::-webkit-scrollbar{display:none}
.seg button{flex:1 0 auto;min-height:44px;padding:0 18px;border-radius:999px;font-weight:600;color:var(--muted);white-space:nowrap;text-align:center;font-size:15.5px}
.seg button span{font-weight:500;color:var(--faint);margin-left:6px}
.seg button[aria-selected="true"]{background:var(--card);color:var(--navy);box-shadow:0 1px 3px rgba(29,42,59,.1)}

/* lists */
.list{list-style:none;margin:0;padding:0;background:var(--card);border:1px solid var(--line);border-radius:24px;overflow:hidden}
.list>li+li{border-top:1px solid var(--line)}
.row{display:flex;align-items:center;gap:14px;width:100%;padding:16px 18px;min-height:76px}
.av{width:52px;height:52px;border-radius:50%;background:var(--soft);display:grid;place-items:center;flex:none;color:var(--navy);font-weight:700;font-size:16px}
.av .ic{width:24px;height:24px}
.rmain{flex:1;min-width:0;display:flex;flex-direction:column}
.rmain b{font-weight:500;font-size:17.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.rmain small{color:var(--muted);font-size:14.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.rr{text-align:right;display:flex;flex-direction:column;align-items:flex-end;gap:4px;font-variant-numeric:tabular-nums}
.rr b{font-weight:600}
.row>.ic.sm{color:var(--faint)}
.pill{display:inline-flex;align-items:center;gap:6px;font-size:14px;font-weight:500;padding:5px 12px;border-radius:999px;background:var(--soft);color:var(--muted);white-space:nowrap}
.pill .dot{width:8px;height:8px}
.p-jon,.p-ok{background:var(--green-s);color:var(--green)}
.p-nem{background:var(--rose-s);color:var(--rose)}
.p-f,.p-wait{background:var(--gold-s);color:var(--gold)}
.p-miss{background:var(--soft);color:var(--muted)}
.p-ok .dot{background:var(--green)}.p-wait .dot{background:var(--gold)}.p-miss .dot{background:var(--faint)}
.search{position:relative;margin:0 0 14px}
.search .ic{position:absolute;left:16px;top:50%;transform:translateY(-50%);color:var(--muted);width:20px;height:20px}
.search input{padding-left:46px}

input[type=text],input[type=search],input[type=number],input[type=date],input[type=time],input[type=tel],input[type=email],input[type=url],input[type=password],select,textarea{width:100%;min-height:58px;padding:14px 18px;border:1px solid var(--line);border-radius:18px;background:var(--card);font-size:17px;-webkit-appearance:none;appearance:none}
select{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M7 10l5 5 5-5' fill='%236D7485'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 14px center;background-size:26px;padding-right:46px}
textarea{resize:vertical;line-height:1.5;min-height:110px}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--navy-2);box-shadow:0 0 0 4px var(--soft)}
input::placeholder,textarea::placeholder{color:var(--faint)}
.fld{display:block;margin-bottom:16px}
.fld>label,.flabel{display:block;font-size:13px;font-weight:700;letter-spacing:.06em;color:var(--muted);margin:0 0 8px 4px}
.hint{color:var(--muted);font-size:14.5px;margin:8px 0 0 4px}
.suf{position:relative}
.suf input{padding-right:56px}
.suf em{position:absolute;right:20px;top:50%;transform:translateY(-50%);font-style:normal;color:var(--muted)}
.chkl{display:flex;align-items:flex-start;gap:12px;font-size:16px;cursor:pointer;margin-bottom:16px;line-height:1.4}
.chkl input{width:22px;height:22px;accent-color:var(--navy);flex:none;margin:0}
input[type=range]{width:100%;accent-color:var(--navy);margin:18px 0 4px;height:28px}

/* vendor categories */
.vcat{background:var(--card);border:1px solid var(--line);border-radius:24px;overflow:hidden}
.vcat+.vcat{margin-top:12px}
.vcat-h{display:flex;align-items:center;gap:12px;width:100%;padding:18px 20px}
.vcat-h h3{font-family:var(--serif);font-size:24px;flex:1}
.vcat ul{list-style:none;margin:0;padding:0;border-top:1px solid var(--line)}
.vcat li+li{border-top:1px solid var(--line)}
.vrow{display:flex;align-items:center;gap:12px;width:100%;padding:14px 20px}
.vrow .rmain b{font-size:16.5px}
.contact{display:flex;gap:18px;padding:0 20px 14px;margin-top:-6px}
.contact a{font-weight:600;font-size:14.5px;text-decoration:none}
.vadd{display:flex;align-items:center;gap:8px;width:100%;padding:14px 20px;color:var(--navy);font-weight:600;border-top:1px solid var(--line)}
.vadd .ic{width:20px;height:20px}

/* seating */
.tables{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:12px}
.tbl{background:var(--card);border:1px solid var(--line);border-radius:24px;padding:16px}
.tbl.over{border-color:var(--rose)}
.tbl-h{display:flex;flex-direction:column;align-items:center;width:100%;text-align:center}
.tcircle{width:64px;height:64px;border-radius:50%;border:2px solid var(--soft-2);display:grid;place-items:center;font-family:var(--serif);font-size:20px;color:var(--navy);margin-bottom:8px}
.tbl.full .tcircle{border-color:var(--green)}
.tbl.over .tcircle{border-color:var(--rose);color:var(--rose)}
.tbl-h b{font-weight:600}
.tbl-h small{color:var(--muted)}
.tbl ul{list-style:none;margin:12px 0 0;padding:12px 0 0;border-top:1px dashed var(--line);font-size:14.5px}
.tbl li button{display:block;width:100%;padding:4px 0}
.chips{display:flex;flex-wrap:wrap;gap:8px}
.chip{padding:8px 14px;border-radius:999px;background:var(--soft);font-weight:500;font-size:15px}

/* timeline */
.tline{list-style:none;margin:0;padding:0;background:var(--card);border:1px solid var(--line);border-radius:24px;padding:8px 20px}
.tline li button{display:flex;gap:18px;width:100%;padding:14px 0;align-items:flex-start}
.tline li+li button{border-top:1px solid var(--line)}
.tline time{flex:none;width:58px;font-family:var(--serif);font-size:24px;line-height:1.15;color:var(--navy)}
.tline .rmain b{white-space:normal}
.tline .rmain small{white-space:normal}

/* notes */
.notes{display:grid;gap:12px}
.note{display:block;width:100%;background:var(--card);border:1px solid var(--line);border-radius:22px;padding:18px 20px}
.note b{font-family:var(--serif);font-weight:400;font-size:22px}
.note p{margin:6px 0 0;color:var(--muted);white-space:pre-line;display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden}
.note .lnk{display:inline-block;margin-top:8px;font-size:14.5px;font-weight:600;color:var(--navy-2)}

/* recommended */
.rec{display:flex;gap:14px;overflow-x:auto;scroll-snap-type:x mandatory;margin:0 -20px;padding:0 20px 6px;scrollbar-width:none}
.rec::-webkit-scrollbar{display:none}
.rcard{flex:0 0 82%;max-width:400px;scroll-snap-align:start;background:var(--card);border:1px solid var(--line);border-radius:24px;overflow:hidden;text-decoration:none;color:var(--ink);display:flex;flex-direction:column}
.rimg{aspect-ratio:16/10;background:linear-gradient(135deg,var(--navy-2),var(--fab-b));display:grid;place-items:center;color:#fff;font-family:var(--serif);font-size:48px;overflow:hidden}
.rimg img{width:100%;height:100%;object-fit:cover;display:block}
.rbody{padding:16px 20px 20px}
.rbody .lbl{color:var(--muted)}
.rbody h3{font-family:var(--serif);font-size:24px;margin:2px 0 4px}
.rbody p{margin:0;color:var(--muted);font-size:15px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}

.gift{margin:34px 0 0;text-align:center;color:var(--muted);font-size:14.5px}
.gift a{color:inherit}
.promo{background:var(--soft);border-color:transparent}
.promo h2{font-family:var(--serif);font-size:26px;margin-bottom:6px}
.promo p{margin:0 0 16px;color:var(--muted)}
.setsec h2{font-family:var(--serif);font-size:24px;margin-bottom:6px}
.setsec p{color:var(--muted);margin:0 0 14px}
.linkbox{display:flex;gap:8px;align-items:center;background:var(--soft);border-radius:16px;padding:12px 14px;margin:0 0 14px;word-break:break-all;font-size:14.5px}

/* nav */
.nav{position:fixed;left:50%;transform:translateX(-50%);bottom:calc(12px + env(safe-area-inset-bottom,0px));width:calc(100% - 24px);max-width:560px;z-index:20;background:color-mix(in srgb,var(--card) 92%,transparent);-webkit-backdrop-filter:saturate(1.4) blur(16px);backdrop-filter:saturate(1.4) blur(16px);border:1px solid var(--line);border-radius:999px;box-shadow:var(--shadow);display:grid;grid-template-columns:repeat(7,1fr);align-items:center;padding:8px 8px}
body.bare .nav{display:none}
.nav>button{height:56px;border-radius:999px;display:grid;place-items:center;color:var(--muted)}
.nav>button[aria-current="page"]{background:var(--soft);color:var(--navy)}
.nav .fab{width:66px;height:66px;margin:-22px auto 0;border-radius:50%;background:linear-gradient(135deg,var(--fab-a),var(--fab-b));color:#fff;box-shadow:0 10px 24px rgba(63,95,130,.35)}
.nav .fab .ic{width:30px;height:30px;stroke-width:2}

/* sheet */
#sheet{position:fixed;inset:0;z-index:40;background:rgba(18,24,34,.45);display:flex;align-items:flex-end}
#sheet[hidden]{display:none}
.sheet{width:100%;max-width:580px;margin:0 auto;background:var(--card);border-radius:30px 30px 0 0;padding:10px 22px calc(22px + env(safe-area-inset-bottom,0px));max-height:92vh;overflow:auto;animation:up .24s cubic-bezier(.2,.8,.3,1)}
.grab{width:48px;height:5px;border-radius:5px;background:var(--soft-2);margin:4px auto 16px}
.sheet-h{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}
.sheet-h h2{font-family:var(--serif);font-size:28px}
.x{width:44px;height:44px;border-radius:50%;display:grid;place-items:center;color:var(--muted);background:var(--soft)}
.x .ic{width:20px;height:20px}
.sheet-f{display:flex;justify-content:space-between;gap:10px;margin-top:22px}
.err{color:var(--rose);font-weight:600;margin:4px 0 0}
.menu{list-style:none;margin:0 -6px;padding:0}
.menu button,.menu a{display:flex;align-items:center;gap:18px;width:100%;padding:15px 6px;font-size:19px;color:var(--ink);text-decoration:none}
.menu .ic{color:var(--navy);width:26px;height:26px}
.menu hr{border:0;border-top:1px solid var(--line);margin:8px 0}
.menu .dim{color:var(--muted)}
.menu .dim .ic{color:var(--muted)}
.qadd{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.qadd button{display:flex;flex-direction:column;align-items:center;gap:10px;padding:18px 6px;border-radius:22px;background:var(--soft);font-weight:600;font-size:14.5px;text-align:center}
.qadd .ic{color:var(--navy);width:26px;height:26px}
@keyframes up{from{transform:translateY(40px);opacity:.5}to{transform:none;opacity:1}}

#toast{position:fixed;left:50%;bottom:calc(104px + env(safe-area-inset-bottom,0px));transform:translate(-50%,10px);background:var(--ink);color:var(--bg);padding:12px 18px;border-radius:16px;font-size:15px;font-weight:500;opacity:0;pointer-events:none;transition:.2s;z-index:60;max-width:90vw;text-align:center}
#toast.on{opacity:1;transform:translate(-50%,0)}
.sync{position:fixed;top:calc(10px + env(safe-area-inset-top,0px));right:14px;z-index:15;font-size:12.5px;color:var(--muted);display:flex;align-items:center;gap:6px;background:color-mix(in srgb,var(--bg) 85%,transparent);padding:4px 10px;border-radius:999px;opacity:0;transition:opacity .3s;pointer-events:none}
.sync.show{opacity:1}
.sync::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--green)}
.sync[data-s="saving"]::before,.sync[data-s="pending"]::before{background:var(--navy-2)}
.sync[data-s="offline"]::before,.sync[data-s="err"]::before{background:var(--gold)}
body.bare .sync{display:none}

/* welcome + onboarding */
.wel{min-height:calc(100vh - 80px);display:flex;flex-direction:column;padding-top:4vh}
.wel .mark{font-family:var(--serif);color:var(--muted);font-size:20px;margin:0 0 26px}
.wel h1{font-family:var(--serif);font-size:clamp(46px,13vw,66px);line-height:1.02;letter-spacing:-.015em}
.wel .lead{font-size:18px;color:var(--muted);margin:18px 0 26px;max-width:32ch}
.feat{list-style:none;margin:0 0 30px;padding:0;display:grid;gap:12px}
.feat li{display:flex;align-items:center;gap:14px;font-size:16.5px}
.feat .bub{width:42px;height:42px;border-radius:50%;background:var(--card);border:1px solid var(--line);display:grid;place-items:center;color:var(--navy)}
.feat .bub .ic{width:20px;height:20px}
.wel .acts{margin-top:auto;display:grid;gap:10px}
.free{text-align:center;color:var(--muted);font-size:14.5px;margin:16px 0 0}
.ob-top{display:grid;grid-template-columns:52px 1fr 52px;align-items:center;margin:0 -20px;padding:0 20px 18px;border-bottom:2px solid var(--track);position:relative}
.ob-top .prog{position:absolute;left:0;bottom:-2px;height:2px;background:var(--navy);transition:width .4s}
.ob-top button{width:44px;height:44px;display:grid;place-items:center;color:var(--navy)}
.ob-top span{text-align:center;font-size:14px;font-weight:700;letter-spacing:.1em;color:var(--navy)}
.ob-top em{font-style:normal;text-align:right;font-size:15px;color:var(--muted);letter-spacing:.06em}
.ob{min-height:calc(100vh - 110px);display:flex;flex-direction:column;padding-top:30px}
.ob .kick{font-family:var(--serif);font-size:24px;color:var(--muted);margin:0 0 8px}
.ob h1{font-family:var(--serif);font-size:clamp(40px,11vw,54px);line-height:1.08;margin:0 0 14px}
.ob .lead{color:var(--muted);font-size:17px;margin:0 0 26px}
.ob form{display:flex;flex-direction:column;flex:1}
.ob .foot{margin-top:auto;padding-top:24px;display:grid;gap:6px}
.amsg{background:var(--soft);border-radius:16px;padding:12px 16px;margin:0 0 18px}
.amsg.bad{background:var(--rose-s);color:var(--rose)}
.center{text-align:center}
.loading{text-align:center;color:var(--muted);padding:30vh 0}

/* guest page */
#guestpage{position:fixed;inset:0;z-index:50;background:var(--bg);overflow:auto}
#guestpage[hidden]{display:none}
.gp-bar{position:sticky;top:0;z-index:2;display:flex;justify-content:space-between;gap:8px;padding:calc(10px + env(safe-area-inset-top,0px)) 16px 10px;background:color-mix(in srgb,var(--bg) 90%,transparent);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}
.gp{max-width:560px;margin:0 auto;padding:40px 24px 70px;text-align:center}
.gp-k{font-family:var(--serif);font-size:20px;color:var(--muted);margin:0 0 16px}
.gp h1{font-family:var(--serif);font-weight:400;font-size:clamp(52px,15vw,84px);line-height:1;letter-spacing:-.02em}
.gp h1 i{display:block;font-size:.5em;margin:10px 0;color:var(--muted)}
.gp-d{font-size:20px;margin:26px 0 4px}
.gp-v{color:var(--muted);margin:0}
.gp-orn{display:flex;justify-content:center;gap:10px;margin:38px 0;color:var(--navy)}
.gp-orn i{width:6px;height:6px;border-radius:50%;background:currentColor;opacity:.5}
.gp-orn i:nth-child(2){opacity:1}
.gp-w{white-space:pre-line;font-size:18px;line-height:1.65;font-family:var(--serif);max-width:36ch;margin:0 auto}
.gp h2{font-family:var(--serif);font-size:32px;margin:0 0 18px}
.gp-sec{margin-top:46px}
.gp-t{list-style:none;padding:0;margin:0 auto;max-width:380px;text-align:left}
.gp-t li{display:flex;gap:20px;padding:14px 0;border-top:1px solid var(--line)}
.gp-t time{flex:none;width:64px;font-family:var(--serif);font-size:26px;color:var(--navy)}
.gp-t span{display:flex;flex-direction:column;justify-content:center;font-size:17px}
.gp-t small{color:var(--muted);font-size:14.5px}
.gp-l{display:grid;gap:12px;text-align:left}
.gp-l>div{background:var(--card);border:1px solid var(--line);border-radius:22px;padding:18px 20px}
.gp-l b{font-family:var(--serif);font-weight:400;font-size:22px;display:block}
.gp-l p{margin:4px 0 0;color:var(--muted);font-size:15px;white-space:pre-line}
.gp-foot{margin-top:56px;color:var(--faint);font-size:13.5px}
.gp-foot a{color:inherit}


/* ===== a weboldal üvegrétege ===== */
html{background:var(--bg)}
body{background:transparent;letter-spacing:-.006em}
body::before{content:"";position:fixed;inset:0;z-index:-1;pointer-events:none;background:
  radial-gradient(70% 45% at 8% 8%,#EAD9C2 0,transparent 62%),
  radial-gradient(70% 45% at 95% 92%,#D9E2EF 0,transparent 62%),
  radial-gradient(55% 35% at 65% 42%,#F1E7DC 0,transparent 70%),
  #F7F4F0}
h1,h2,h3,.serif{font-weight:400;letter-spacing:-.005em}
a{color:var(--gold)}
:focus-visible{outline-color:var(--champ)}
.card,.tile,.list,.vcat,.tbl,.tline,.note,.rcard,.gp-l>div,.seg{
  background:var(--card);border:1px solid var(--line);
  -webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur);box-shadow:var(--shadow)}
.card,.vcat,.list,.tline{border-radius:28px}
.tile,.note,.rcard,.tbl,.gp-l>div{border-radius:24px;box-shadow:var(--shadow-sm)}
.rbtn,.feat .bub,.av,.tile-h .bub,.empty .bub{background:rgba(255,255,255,.6);border:1px solid rgba(255,255,255,.85);-webkit-backdrop-filter:blur(16px) saturate(160%);backdrop-filter:blur(16px) saturate(160%);box-shadow:0 6px 20px rgba(27,43,75,.08),inset 0 1px 0 rgba(255,255,255,.9);color:var(--ink)}
.list>li+li,.tl li+li,.vcat ul,.vcat li+li,.vadd,.tline li+li button,.legend,.tbl ul{border-color:var(--hair)}
.kv[style*="border-top"]{border-top-color:var(--hair)!important}
.lbl,.bd-top>span{font-size:12.5px;font-weight:500;letter-spacing:.2em;text-transform:uppercase;color:var(--gold)}
.bd-top>span{color:var(--champ)}
.fld>label,.flabel{font-weight:500;letter-spacing:.14em;text-transform:uppercase;font-size:12px}
.ph h1,.sec-h,.hello h1,.wel h1,.ob h1,.steps-h h2,.next h3,.empty h3,.vcat-h h3,.sheet-h h2,.setsec h2,.promo h2,.note b,.rbody h3,.bigday h2,.gp h1,.gp h2{font-family:var(--serif);font-weight:400}
.ob .kick,.wel .mark,.gp-k{color:var(--gold)}
.seg{padding:5px;border-radius:999px}
.seg button{color:var(--muted)}
.seg button[aria-selected="true"]{background:var(--solid);color:var(--ink);box-shadow:0 2px 10px rgba(27,43,75,.10)}
.seg button span{color:var(--faint)}
.next{background:rgba(255,255,255,.55);border:1px solid rgba(183,132,72,.25)}
.promo{background:radial-gradient(80% 90% at 0% 0%,#EFE3D3 0,transparent 70%),rgba(247,244,240,.75);border:1px solid var(--line)}
.btn{min-height:52px;padding:0 26px;border-radius:2.5rem;font-weight:500;background:rgba(255,255,255,.5);color:var(--ink);border:1px solid rgba(255,255,255,.85);-webkit-backdrop-filter:blur(16px) saturate(160%);backdrop-filter:blur(16px) saturate(160%);box-shadow:0 6px 20px rgba(27,43,75,.08),inset 0 1px 0 rgba(255,255,255,.9);transition:background-color .2s,border-color .2s,transform .2s,box-shadow .2s}
.btn.primary{background:var(--ink);border-color:var(--ink);color:#fff;box-shadow:0 8px 22px rgba(27,43,75,.22)}
.btn:active,.btn.primary:active{transform:translateY(1px)}
@media (hover:hover){.btn:hover,.btn.primary:hover{background:var(--gold);border-color:var(--gold);color:#fff;transform:translateY(-1px);box-shadow:0 8px 20px rgba(183,132,72,.28)}}
.btn.danger{color:var(--rose);border-color:rgba(166,85,82,.45)}
.btn.big{min-height:60px}
.tlink{color:var(--gold)}
input[type=text],input[type=search],input[type=number],input[type=date],input[type=time],input[type=tel],input[type=email],input[type=url],input[type=password],select,textarea{
  background-color:rgba(255,255,255,.8);border:1px solid rgba(27,43,75,.14);border-radius:14px;color:var(--ink);transition:border-color .15s,box-shadow .15s}
input:focus,select:focus,textarea:focus{outline:none;background-color:#fff;border-color:var(--gold);box-shadow:0 0 0 4px rgba(151,119,63,.15)}
.chkl input,input[type=range]{accent-color:var(--ink)}
.bar,.bd-bar{height:5px}
.bar i{background:var(--ink)}
.ring,.chk{border-color:rgba(27,43,75,.18)}
.step.done .ring,.trow.done .chk{background:var(--ink);border-color:var(--ink)}
.tile b,.sum-big b,.sum-pct b,.tline time,.gp-t time{color:var(--ink);font-family:var(--serif)}
.tcircle{font-family:var(--serif);color:var(--ink);border-color:rgba(151,119,63,.4)}
.bigday{color:#fff;background:
  radial-gradient(80% 110% at 100% 0%,rgba(201,180,143,.38),transparent 60%),
  radial-gradient(70% 90% at 0% 100%,rgba(217,226,239,.22),transparent 60%),
  linear-gradient(135deg,rgba(42,63,102,.94),rgba(27,43,75,.96));
  border:1px solid rgba(255,255,255,.3);box-shadow:0 18px 50px rgba(27,43,75,.22),inset 0 1px 0 rgba(255,255,255,.18)}
.bd-count b{font-family:var(--serif)}
.bd-bar i{background:var(--champ)}
.nav{background:rgba(255,255,255,.62);border:1px solid rgba(255,255,255,.8);box-shadow:0 18px 50px rgba(27,43,75,.14),inset 0 1px 0 rgba(255,255,255,.85);-webkit-backdrop-filter:blur(22px) saturate(170%);backdrop-filter:blur(22px) saturate(170%)}
.nav>button{color:var(--muted)}
.nav>button[aria-current="page"]{background:rgba(27,43,75,.07);color:var(--ink)}
.nav .fab{background:linear-gradient(135deg,var(--gold-2),var(--gold));color:#fff;box-shadow:0 10px 26px rgba(151,119,63,.38),inset 0 1px 0 rgba(255,255,255,.35)}
#sheet{background:rgba(27,43,75,.18);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}
.sheet{background:rgba(255,255,255,.86);border:1px solid rgba(255,255,255,.9);border-bottom:0;-webkit-backdrop-filter:blur(24px) saturate(170%);backdrop-filter:blur(24px) saturate(170%);box-shadow:0 -14px 44px rgba(27,43,75,.12),inset 0 1px 0 rgba(255,255,255,.9)}
.grab{background:rgba(27,43,75,.15)}
.menu .ic,.qadd .ic{color:var(--gold)}
.qadd button{background:rgba(255,255,255,.6);border:1px solid rgba(255,255,255,.85);box-shadow:0 6px 20px rgba(27,43,75,.07),inset 0 1px 0 rgba(255,255,255,.9)}
.x{background:rgba(27,43,75,.06)}
.chip{background:rgba(255,255,255,.6);border:1px solid rgba(255,255,255,.85);box-shadow:0 4px 14px rgba(27,43,75,.06)}
.pill{background:rgba(27,43,75,.06);color:var(--muted)}
.p-jon,.p-ok{background:var(--green-s);color:var(--green)}
.p-nem{background:var(--rose-s);color:var(--rose)}
.p-f,.p-wait{background:var(--gold-s);color:var(--gold)}
.d-f,.p-wait .dot{background:var(--gold)}
.linkbox{background:rgba(255,255,255,.6);border:1px solid var(--line)}
.rimg{background:radial-gradient(80% 90% at 20% 20%,#EFE3D3 0,transparent 70%),radial-gradient(80% 90% at 90% 90%,#D9E2EF 0,transparent 70%),#F7F4F0;color:rgba(151,119,63,.6)}
.sync{background:rgba(255,255,255,.66);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);box-shadow:0 6px 20px rgba(27,43,75,.08);color:var(--muted)}
#toast{background:rgba(27,43,75,.9);color:#fff;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}
.ob-top span{color:var(--gold);font-weight:500;letter-spacing:.2em;text-transform:uppercase;font-size:12.5px}
.ob-top .prog{background:var(--ink)}
.ob-top button{color:var(--ink)}
#guestpage{background:
  radial-gradient(70% 45% at 8% 8%,#EAD9C2 0,transparent 62%),
  radial-gradient(70% 45% at 95% 92%,#D9E2EF 0,transparent 62%),
  #F7F4F0}
.gp-bar{background:rgba(255,255,255,.62);-webkit-backdrop-filter:blur(22px) saturate(170%);backdrop-filter:blur(22px) saturate(170%);border-bottom:1px solid rgba(255,255,255,.7)}
.gp h1 i{font-size:.42em;color:var(--gold)}
.gp-orn{color:var(--champ)}
.gp-t li{border-top-color:rgba(151,119,63,.25)}
.gp-w{font-family:var(--sans);font-size:17px}
@supports not ((backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px))){
  :root{--card:rgba(255,255,255,.9)}
  .nav,.sheet{background:rgba(255,255,255,.97)}
}

/* ===== finomítások ===== */
.hello{margin:10px 0 24px}
.cd-top{display:flex;flex-direction:column;align-items:flex-start;gap:1px;margin:0 0 12px;padding:0;text-align:left;background:none;border:0}
.cd-top b{font-family:var(--sans);font-weight:600;font-size:16px;color:var(--ink)}
.cd-top span{font-size:14.5px;color:var(--muted)}
.btn{min-height:58px;padding:17px 30px;line-height:1.2;white-space:normal;text-align:center}
.btn.big{min-height:64px;padding:20px 30px}
.btns .btn{min-height:52px;padding:14px 22px}
.empty .btn,.next .btn{margin-top:6px}
.sheet{max-height:88vh;max-height:calc(100dvh - env(safe-area-inset-top,0px) - 28px);padding-top:0;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}
.sheet .grab{margin:10px auto 0}
.sheet-h{position:sticky;top:0;z-index:3;margin:0 -22px 14px;padding:12px 22px 12px;background:rgba(255,255,255,.9);-webkit-backdrop-filter:blur(18px) saturate(160%);backdrop-filter:blur(18px) saturate(160%);border-bottom:1px solid rgba(27,43,75,.06)}
.sheet-h .x{width:46px;height:46px;flex:none}
.sheet-f{position:sticky;bottom:0;z-index:3;margin:22px -22px 0;padding:14px 22px 6px;background:rgba(255,255,255,.92);-webkit-backdrop-filter:blur(18px) saturate(160%);backdrop-filter:blur(18px) saturate(160%);border-top:1px solid rgba(27,43,75,.06)}
.sheet-f .btn{min-height:54px;padding:15px 26px}
body.lock{position:fixed;left:0;right:0;width:100%;overflow:hidden}
#totop{position:fixed;right:16px;bottom:calc(104px + env(safe-area-inset-bottom,0px));z-index:19;width:50px;height:50px;border-radius:50%;display:grid;place-items:center;color:var(--ink);background:rgba(255,255,255,.62);border:1px solid rgba(255,255,255,.85);-webkit-backdrop-filter:blur(18px) saturate(170%);backdrop-filter:blur(18px) saturate(170%);box-shadow:0 8px 26px rgba(27,43,75,.14),inset 0 1px 0 rgba(255,255,255,.9);opacity:0;transform:translateY(10px);pointer-events:none;transition:opacity .25s,transform .25s}
#totop.show{opacity:1;transform:none;pointer-events:auto}
#totop svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
body.bare #totop,body.lock #totop{display:none}

.vinfo{margin-top:16px}
.vinfo p{margin:0 0 10px;font-size:15.5px;line-height:1.55}
.vinfo p:last-child{margin:0}
.vinfo b{font-weight:600}

/* ===== címek Interrel, mint a weboldalon ===== */
h1,h2,h3,.ph h1,.sec-h,.hello h1,.wel h1,.ob h1,.steps-h h2,.next h3,.empty h3,.vcat-h h3,.sheet-h h2,.setsec h2,.promo h2,.note b,.rbody h3,.bigday h2,.gp h1,.gp h2{font-family:var(--sans);font-weight:600;letter-spacing:-.025em}
.ph h1{font-size:38px;line-height:1.1}
.hello h1{font-size:32px;line-height:1.15}
.wel h1{font-size:clamp(40px,11vw,56px);letter-spacing:-.035em}
.ob h1{font-size:clamp(34px,9vw,46px);letter-spacing:-.03em}
.sec-h{font-size:25px}
.steps-h h2,.next h3,.empty h3,.sheet-h h2{font-size:22px}
.vcat-h h3,.setsec h2,.promo h2,.note b,.rbody h3{font-size:19px}
.bigday h2{font-size:28px}
.tile b,.sum-big b,.sum-pct b,.bd-count b,.tcircle,.tline time,.gp-t time{font-family:var(--sans);font-weight:600;letter-spacing:-.03em}
.tile b{font-size:34px}
.sum-big b{font-size:52px}
.sum-pct b{font-size:32px}
.bd-count b{font-size:64px}
.tline time,.gp-t time{font-size:18px;font-weight:600;padding-top:1px}
.tcircle{font-size:16px}
.ob .kick,.wel .mark,.gp-k{font-family:var(--sans);font-size:15px;font-weight:500;letter-spacing:.18em;text-transform:uppercase}
.gp h1{font-size:clamp(44px,13vw,72px);letter-spacing:-.04em}
.gp h1 i{font-style:normal;font-weight:400}
.gp-w{font-family:var(--sans)}

/* ===== esküvői weboldal: fotók, térkép, menü, visszajelzés ===== */
.pgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:0 0 16px}
.pgrid figure{margin:0;position:relative;border-radius:16px;overflow:hidden;background:rgba(255,255,255,.6);border:1px solid var(--line);box-shadow:0 4px 14px rgba(27,43,75,.07)}
.pgrid img{display:block;width:100%;aspect-ratio:1;object-fit:cover}
.pgrid figcaption{display:flex}
.pgrid figcaption button{flex:1;padding:8px 2px;font-size:13px;font-weight:500;color:var(--muted)}
.pgrid figcaption button+button{border-left:1px solid var(--hair)}
.pcover{position:absolute;left:8px;top:8px;font-size:11.5px;font-weight:600;letter-spacing:.06em;color:#fff;background:rgba(27,43,75,.72);padding:3px 8px;border-radius:999px}
.gp-cover{margin:-14px -4px 34px;border-radius:28px;overflow:hidden;box-shadow:0 18px 50px rgba(27,43,75,.16);border:1px solid rgba(255,255,255,.8)}
.gp-cover img{display:block;width:100%;max-height:68vh;object-fit:cover}
.gp-map{border-radius:24px;overflow:hidden;border:1px solid rgba(255,255,255,.8);box-shadow:var(--shadow);margin:16px 0 16px;background:rgba(255,255,255,.5)}
.gp-map iframe{display:block;width:100%;height:280px;border:0}
.gp-menu{list-style:none;margin:0 auto;padding:22px;max-width:420px;text-align:center;background:var(--card);border:1px solid var(--line);border-radius:24px;box-shadow:var(--shadow-sm);-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur)}
.gp-menu li{padding:6px 0;font-size:17px}
.gp-menu li.mh{font-size:12.5px;font-weight:500;letter-spacing:.2em;text-transform:uppercase;color:var(--gold);padding-top:16px}
.gp-menu li.mh:first-child{padding-top:0}
.gp-gal{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.gp-gal img{width:100%;aspect-ratio:4/5;object-fit:cover;border-radius:20px;display:block;box-shadow:0 8px 24px rgba(27,43,75,.1)}
.gp-gal img:only-child{grid-column:1/-1;aspect-ratio:auto}
.gp-t li.nt time{position:relative}
.gp-t li.nt time::after{content:"";position:absolute;left:8px;top:50%;width:6px;height:6px;border-radius:50%;background:var(--champ);transform:translateY(-50%)}
.gp-form{text-align:left;background:var(--card);border:1px solid var(--line);border-radius:28px;padding:22px;box-shadow:var(--shadow);-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur);margin-top:18px}
.gp-yn{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:0 0 16px}
.gp-yn label{cursor:pointer}
.gp-yn input{position:absolute;opacity:0;pointer-events:none}
.gp-yn span{display:flex;align-items:center;justify-content:center;text-align:center;min-height:56px;padding:10px;border-radius:16px;border:1px solid rgba(27,43,75,.14);background:rgba(255,255,255,.7);font-weight:500;font-size:15px;line-height:1.3}
.gp-yn input:checked+span{background:var(--ink);border-color:var(--ink);color:#fff}
.gp-yn input:focus-visible+span{outline:2px solid var(--champ);outline-offset:2px}
.g2{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.hp{position:absolute!important;left:-9999px!important;width:1px;height:1px;opacity:0}
.gp-form .hint{margin-top:12px}
.gp-thanks{background:var(--card);border:1px solid var(--line);border-radius:28px;padding:26px 22px;box-shadow:var(--shadow);margin-top:18px}
.gp-thanks h3{font-size:24px;font-weight:600;letter-spacing:-.02em;margin-bottom:6px}
.gp-thanks p{margin:0;color:var(--muted)}
.gp .amsg{margin:14px auto 0;max-width:420px}

/* étkezési igények számlálóval */
.diets{background:rgba(255,255,255,.6);border:1px solid rgba(27,43,75,.12);border-radius:18px;padding:4px 14px}
.drow{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:9px 0}
.drow+.drow{border-top:1px solid var(--hair)}
.drow>span{font-size:16px}
.dstep{display:flex;align-items:center;gap:6px}
.dstep button{width:40px;height:40px;border-radius:50%;display:grid;place-items:center;font-size:22px;line-height:1;color:var(--ink);background:rgba(255,255,255,.85);border:1px solid rgba(27,43,75,.14);box-shadow:0 2px 8px rgba(27,43,75,.06)}
.dstep button:active{transform:scale(.95)}
.dstep output{min-width:28px;text-align:center;font-weight:600;font-size:17px;font-variant-numeric:tabular-nums}

/* ===== ültetésrend alaprajz ===== */
.plan{background:var(--card);border:1px solid var(--line);border-radius:24px;padding:8px;box-shadow:var(--shadow);-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur)}
.plansvg{display:block;width:100%;height:auto;font-family:var(--sans)}
.plansvg .room{fill:rgba(255,255,255,.55);stroke:rgba(27,43,75,.12);stroke-width:2;stroke-dasharray:10 8}
.plansvg .tbl-g{cursor:grab;touch-action:none}
.plansvg .tbl-g.drag{cursor:grabbing}
.plansvg .tbl-g.drag .tb{filter:drop-shadow(0 8px 14px rgba(27,43,75,.25))}
.plansvg .tb{fill:#fff;stroke:rgba(27,43,75,.28);stroke-width:2}
.plansvg .tbl-g.over .tb{stroke:var(--rose);stroke-width:3}
.plansvg .st,.plegend .st{fill:#fff;stroke:rgba(27,43,75,.3);stroke-width:2}
.plansvg .st.so,.plegend .st.so{fill:var(--ink);stroke:var(--ink)}
.plansvg .st.sd,.plegend .st.sd{fill:var(--gold);stroke:var(--gold)}
.plansvg .tn{font-size:17px;font-weight:600;fill:var(--ink);text-anchor:middle}
.plansvg .tc{font-size:15px;fill:var(--muted);text-anchor:middle}
.plegend{display:flex;flex-wrap:wrap;gap:8px 18px;margin:12px 4px 0;font-size:14px;color:var(--muted)}
.plegend span{display:flex;align-items:center;gap:7px}
.plegend .st{display:inline-block;width:14px;height:14px;border-radius:50%;border:2px solid rgba(27,43,75,.3);background:#fff}
.plegend .st.so{background:var(--ink);border-color:var(--ink)}
.plegend .st.sd{background:var(--gold);border-color:var(--gold)}
.tbl li .dt{display:block;font-size:12.5px;color:var(--gold)}
.sp{max-width:1000px;margin:0 auto;padding:30px 20px 60px}
.sp h1{font-size:36px;font-weight:600;letter-spacing:-.025em}
.sp>.muted{margin:6px 0 20px}
.sp-plan{background:#fff;border:1px solid rgba(27,43,75,.12);border-radius:20px;padding:8px;margin-bottom:18px}
.sp-plan .room{fill:#fff}
.sp-diets{margin:0 0 18px}
.sp-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px}
.sp-card{background:#fff;border:1px solid rgba(27,43,75,.12);border-radius:16px;padding:14px 16px;break-inside:avoid}
.sp-card h3{font-size:17px;font-weight:600;margin-bottom:8px}
.sp-card h3 small{font-weight:400;color:var(--muted);font-size:14px}
.sp-card ul{list-style:none;margin:0;padding:0}
.sp-card li{padding:5px 0;border-top:1px solid rgba(27,43,75,.08);font-size:14.5px}
.sp-card li:first-child{border-top:0}
.sp-card li em{display:block;font-style:normal;font-size:12.5px;color:var(--gold)}
.sp-card p{margin:0;color:var(--muted);font-size:14px}
@media print{
  @page{margin:12mm}
  .sp{padding:0;max-width:none}
  .sp-plan{break-inside:avoid;border-color:#ccc}
  .sp-grid{grid-template-columns:repeat(3,1fr)}
  .sp-card{border-color:#ccc}
  .plansvg .st.so{fill:#1B2B4B}
}

/* székek */
.list.seats{border-radius:20px;margin:0;padding:0}
.seatrow{display:flex;align-items:center;gap:12px;width:100%;padding:11px 16px;min-height:58px;text-align:left}
.seatrow>i{flex:none;width:30px;height:30px;border-radius:50%;display:grid;place-items:center;font-style:normal;font-weight:600;font-size:13.5px;background:var(--ink);color:#fff}
.seatrow.free>i{background:#fff;color:var(--muted);border:2px solid rgba(27,43,75,.2)}
.seatrow.free b{color:var(--faint);font-weight:400}
.seatrow.extra>i{background:var(--rose)}
.seatrow.sel{background:rgba(151,119,63,.14);box-shadow:inset 3px 0 0 var(--gold)}
.seatrow.sel>i{background:var(--gold)}
.seatrow .rmain b{font-weight:500}
.seatlist{list-style:none;margin:12px 0 0;padding:12px 0 0;border-top:1px dashed var(--hair);font-size:14.5px}
.seatlist li button{display:block;width:100%;padding:4px 0;text-align:left}
.seatlist i{display:inline-block;min-width:22px;font-style:normal;color:var(--faint);font-size:12.5px}
.sp-card ol{list-style:none;margin:0;padding:0}
.sp-card li i{font-style:normal;color:#8a93a5;font-size:12.5px}
.vseat small{font-size:14px;line-height:1.45}

.sheet.nudge{animation:nudge .32s ease}
@keyframes nudge{0%,100%{transform:none}30%{transform:translateY(-8px)}60%{transform:translateY(3px)}}

/* ===== széles nézet számítógépen, a weboldal szélességéhez igazítva ===== */
.wgrid{display:grid;gap:14px}
.wgrid>.vcat+.vcat,.wgrid>.card+.card{margin-top:0}
@media (min-width:900px){
  main{max-width:72rem;padding-left:2rem;padding-right:2rem}
  .tiles{grid-template-columns:repeat(4,1fr)}
  .wgrid{grid-template-columns:repeat(2,1fr);align-items:start}
  .notes{grid-template-columns:repeat(3,1fr)}
  .tables{grid-template-columns:repeat(auto-fill,minmax(220px,1fr))}
  .ph h1{font-size:46px}
  .hello h1{font-size:40px}
  .plan{max-width:1000px}
  .pgrid{grid-template-columns:repeat(6,1fr)}
  .sheet{max-width:640px;border-radius:30px;margin-bottom:auto;margin-top:auto}
  #sheet{align-items:center}
  .wel,.ob{max-width:620px;margin-left:auto;margin-right:auto}
  .ob-top{max-width:none}
  .seg{max-width:720px}
}
@media (min-width:1200px){.wgrid.tri,.notes{grid-template-columns:repeat(3,1fr)}}

/* forgatókönyv: weboldal-jelzés */
.tline li button{align-items:center;min-height:62px;padding:12px 0}
.tline time{align-self:center;line-height:1.25;padding-top:0}
.tline .rmain{justify-content:center}
.tline .rmain b{line-height:1.3}
.tline .rmain small{line-height:1.3;margin-top:2px}
.pclock{flex:none;width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:rgba(151,119,63,.14);color:var(--gold);font-style:normal}
.pclock .ic{width:19px;height:19px;stroke-width:2}
.pclock.sm{width:22px;height:22px}
.pclock.sm .ic{width:14px;height:14px}
.pdot{flex:none;width:34px;height:34px;display:grid;place-items:center;font-style:normal}
.pdot::before{content:"";width:10px;height:10px;border-radius:50%;background:var(--champ)}
.pdot.off::before{background:transparent;border:2px solid rgba(27,43,75,.22);width:12px;height:12px;box-sizing:border-box}
.plegend .pdot{width:14px;height:14px}
.plegend .pdot{margin:0}
.tline .pm-hide .rmain b{color:var(--muted)}

/* ceremóniamesteri szerkesztés sáv */
.editbar{position:sticky;top:calc(8px + env(safe-area-inset-top,0px));z-index:12;display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;margin:0 0 16px;padding:10px 12px 10px 16px;border-radius:20px;background:rgba(151,119,63,.16);border:1px solid rgba(151,119,63,.35);-webkit-backdrop-filter:blur(18px) saturate(160%);backdrop-filter:blur(18px) saturate(160%)}
.editbar span{display:flex;align-items:center;gap:8px;color:var(--ink)}
.editbar .ic{width:18px;height:18px;color:var(--gold)}
.editbar .btn{min-height:42px;padding:8px 16px;font-size:14.5px}

@media (max-width:370px){.ph h1{font-size:38px}.tile b{font-size:34px}.sum-big b{font-size:54px}.nav>button{height:50px}}
@media (min-width:700px){.rcard{flex-basis:340px}}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
@media print{
  body.gp-open>*:not(#guestpage){display:none!important}
  #guestpage{position:static;overflow:visible;background:#fff}
  .gp-bar{display:none}
}
