/* Amelie — δημόσιος ιστότοπος (αρχική, φόρμα, σελίδα ζευγαριού, 404).
   Ιβουάρ, σαμπάνια και παλαιός χρυσός· EB Garamond για τους τίτλους.
   Φωτεινό και σκοτεινό θέμα από το prefers-color-scheme. Χωρίς εξωτερικά scripts. */

:root{
  color-scheme:light;
  --bg:#faf6ef; --bg-2:#f4ede1; --panel:#fffdf9; --field:#fffefb;
  --ink:#2d2620; --ink-soft:#5a4f44; --muted:#7a6d60; --placeholder:#aa9e8f;
  --line:#ebe2d4; --line-2:#dacdb8;
  --gold:#a8864a; --gold-deep:#80622b; --gold-1:#967539; --gold-2:#735624;
  --on-gold:#fffdf7; --gold-soft:#f4ead7; --gold-shadow:rgba(115,86,36,.45);
  --glow:rgba(226,203,158,.55); --star:rgba(168,134,74,.5);
  --focus-ring:rgba(168,134,74,.24);
  --err:#a4452f; --err-soft:#f8e8e2; --ok:#4f7a4a; --ok-soft:#e8f0e3;
  --no:#8a5a4a; --no-soft:#f3e6e0;
  --shadow:0 1px 2px rgba(70,50,20,.04),0 18px 40px -26px rgba(70,50,20,.3);
  --shadow-lg:0 2px 4px rgba(70,50,20,.05),0 30px 60px -30px rgba(70,50,20,.38);
  --serif:"EB Garamond","Cormorant Garamond",Georgia,"Times New Roman",serif;
  --ui:system-ui,-apple-system,"Segoe UI",Roboto,"Noto Sans","Helvetica Neue",Arial,sans-serif;
  --mono:ui-monospace,SFMono-Regular,"Cascadia Mono",Consolas,"Liberation Mono",monospace;
  --radius:18px;
}
@media (prefers-color-scheme:dark){
  :root{
    color-scheme:dark;
    --bg:#15110d; --bg-2:#1b1611; --panel:#211b15; --field:#1d1813;
    --ink:#f2eadd; --ink-soft:#cfc2b0; --muted:#a39583; --placeholder:#7d7061;
    --line:#352c23; --line-2:#4a3e32;
    --gold:#d4b477; --gold-deep:#e0c48d; --gold-1:#dcbd83; --gold-2:#c09c5c;
    --on-gold:#1a140e; --gold-soft:#2f261b; --gold-shadow:rgba(0,0,0,.55);
    --glow:rgba(120,92,48,.28); --star:rgba(224,196,141,.55);
    --focus-ring:rgba(212,180,119,.26);
    --err:#e79a82; --err-soft:#3a211b; --ok:#9cc493; --ok-soft:#223020;
    --no:#e0a995; --no-soft:#3a251e;
    --shadow:0 1px 2px rgba(0,0,0,.3),0 18px 40px -26px rgba(0,0,0,.7);
    --shadow-lg:0 2px 4px rgba(0,0,0,.35),0 30px 60px -30px rgba(0,0,0,.8);
  }
}

/* ── βάση ── */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%; text-size-adjust:100%; scroll-padding-top:84px}
@media (prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}}
body{margin:0; background:var(--bg); color:var(--ink); font:16px/1.6 var(--ui);
  -webkit-font-smoothing:antialiased; -moz-osx-font-smoothing:grayscale; text-rendering:optimizeLegibility;
  overflow-x:hidden}
img,svg{display:block; max-width:100%}
img{height:auto}
a{color:var(--gold-deep); text-decoration-thickness:1px; text-underline-offset:3px}
a:hover{text-decoration-thickness:2px}
button,input,select,textarea{font:inherit; color:inherit}
[hidden]{display:none!important}
::selection{background:var(--gold-soft); color:var(--ink)}
h1,h2,h3,h4{font-family:var(--serif); font-weight:500; line-height:1.12; letter-spacing:-.005em; margin:0; color:var(--ink)}
p{margin:0 0 1em}
.vh{position:absolute!important; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; border:0}
.skip{position:absolute; left:12px; top:-60px; z-index:100; background:var(--panel); color:var(--ink); padding:10px 16px; border-radius:10px; border:1px solid var(--gold)}
.skip:focus{top:12px}
.container{width:100%; max-width:1160px; margin:0 auto; padding:0 20px}
.container.narrow{max-width:780px}
:focus-visible{outline:2px solid var(--gold); outline-offset:3px}

/* ── κεφαλίδα ── */
.site-head{position:sticky; top:0; z-index:30; border-bottom:1px solid transparent;
  background:color-mix(in srgb,var(--bg) 84%,transparent);
  -webkit-backdrop-filter:saturate(1.2) blur(12px); backdrop-filter:saturate(1.2) blur(12px)}
.site-head.scrolled{border-bottom-color:var(--line)}
.site-head .container{display:flex; align-items:center; gap:18px; min-height:66px}
.brand{display:inline-flex; align-items:center; gap:10px; color:var(--ink); text-decoration:none}
.brand svg{width:26px; height:26px; color:var(--gold)}
.brand-name{font:italic 500 29px/1 var(--serif); color:var(--gold-deep); letter-spacing:.005em}
.nav{margin-left:auto; display:flex; align-items:center; gap:24px}
.nav a:not(.btn){color:var(--ink-soft); text-decoration:none; font-size:15px}
.nav a:not(.btn):hover{color:var(--ink)}
@media (max-width:860px){.nav a:not(.btn){display:none}}

/* ── κουμπιά ── */
.btn{display:inline-flex; align-items:center; justify-content:center; gap:9px; min-height:48px; padding:12px 24px;
  border-radius:999px; border:1px solid var(--line-2); background:var(--panel); color:var(--ink);
  font:500 16px/1.2 var(--ui); letter-spacing:.005em; text-decoration:none; cursor:pointer; white-space:nowrap;
  transition:background-color .2s,border-color .2s,box-shadow .25s,transform .25s,color .2s}
.btn:hover{border-color:var(--gold); text-decoration:none}
.btn-primary{background:linear-gradient(180deg,var(--gold-1),var(--gold-2)); color:var(--on-gold); border-color:transparent;
  box-shadow:0 10px 24px -12px var(--gold-shadow),inset 0 1px 0 rgba(255,255,255,.18)}
.btn-primary:hover{transform:translateY(-1px); box-shadow:0 14px 30px -12px var(--gold-shadow),inset 0 1px 0 rgba(255,255,255,.2)}
.btn-ghost{background:transparent}
.btn-sm{min-height:40px; padding:8px 18px; font-size:14.5px}
.btn[disabled],.btn[aria-disabled="true"]{opacity:.6; cursor:default; transform:none}
.btn svg{width:18px; height:18px; flex:none}
.textbtn{border:0; background:none; padding:4px 2px; color:var(--gold-deep); font:500 14.5px var(--ui); cursor:pointer;
  text-decoration:underline; text-underline-offset:3px}

/* ── τυπογραφία ── */
.eyebrow{display:inline-flex; align-items:center; gap:12px; font:600 12.5px/1.2 var(--ui); letter-spacing:.2em; color:var(--gold-deep)}
.eyebrow::before{content:""; width:28px; height:1px; background:currentColor; opacity:.55}
.center .eyebrow::after,.eyebrow.both::after{content:""; width:28px; height:1px; background:currentColor; opacity:.55}
.h-display{font-size:clamp(42px,7vw,78px); line-height:1.04; letter-spacing:-.012em}
.h-section{font-size:clamp(33px,4.6vw,52px); line-height:1.08}
.h-display em,.h-section em{font-style:italic; color:var(--gold-deep)}
.lead{font:400 clamp(19px,2.1vw,22.5px)/1.55 var(--serif); color:var(--ink-soft)}
.center{text-align:center}
.ornament{display:flex; align-items:center; justify-content:center; gap:14px; color:var(--gold); margin:0 auto}
.ornament::before,.ornament::after{content:""; height:1px; width:72px; background:linear-gradient(90deg,transparent,currentColor)}
.ornament::after{transform:scaleX(-1)}
.ornament svg{width:13px; height:13px}
.star{fill:currentColor}

/* ── ενότητες ── */
.section{padding:clamp(72px,10vw,128px) 0}
.section-alt{background:var(--bg-2); border-top:1px solid var(--line); border-bottom:1px solid var(--line)}
.section-head{max-width:700px; margin:0 auto clamp(40px,6vw,64px); text-align:center}
.section-head .eyebrow{margin-bottom:18px}
.section-head .eyebrow::after{content:""; width:28px; height:1px; background:currentColor; opacity:.55}
.section-head p{margin:18px auto 0; max-width:600px}

/* ── hero ── */
.hero{position:relative; overflow:hidden; padding:clamp(36px,6vw,84px) 0 clamp(72px,9vw,120px)}
.hero::before{content:""; position:absolute; inset:0; pointer-events:none; z-index:0;
  background:
    radial-gradient(900px 560px at 78% 30%,var(--glow),transparent 62%),
    radial-gradient(700px 480px at 8% 90%,color-mix(in srgb,var(--glow) 60%,transparent),transparent 65%)}
.hero::after{content:""; position:absolute; inset:0; pointer-events:none; z-index:0; opacity:.9;
  background-image:
    radial-gradient(1.4px 1.4px at 12% 18%,var(--star) 50%,transparent 60%),
    radial-gradient(1px 1px at 27% 64%,var(--star) 50%,transparent 60%),
    radial-gradient(1.2px 1.2px at 44% 12%,var(--star) 50%,transparent 60%),
    radial-gradient(1px 1px at 58% 84%,var(--star) 50%,transparent 60%),
    radial-gradient(1.6px 1.6px at 66% 8%,var(--star) 50%,transparent 60%),
    radial-gradient(1px 1px at 88% 58%,var(--star) 50%,transparent 60%),
    radial-gradient(1.3px 1.3px at 94% 16%,var(--star) 50%,transparent 60%),
    radial-gradient(1px 1px at 6% 48%,var(--star) 50%,transparent 60%),
    radial-gradient(1.2px 1.2px at 36% 92%,var(--star) 50%,transparent 60%),
    radial-gradient(1px 1px at 80% 92%,var(--star) 50%,transparent 60%)}
.hero .container{position:relative; z-index:1}
.hero-grid{display:grid; grid-template-columns:minmax(0,1.12fr) minmax(0,.88fr); gap:clamp(40px,6vw,88px); align-items:center}
.hero-copy h1{margin:20px 0 24px}
.hero-copy .lead{max-width:34em}
.cta-row{display:flex; flex-wrap:wrap; gap:12px; margin-top:34px}
.hero-meta{display:flex; flex-wrap:wrap; gap:8px 22px; margin:26px 0 0; padding:0; list-style:none; color:var(--muted); font-size:14.5px}
.hero-meta li{display:inline-flex; align-items:center; gap:8px}
.hero-meta li::before{content:""; width:7px; height:7px; background:var(--gold); opacity:.8;
  clip-path:polygon(50% 0,62% 38%,100% 50%,62% 62%,50% 100%,38% 62%,0 50%,38% 38%)}
@media (max-width:880px){
  .hero-grid{grid-template-columns:minmax(0,1fr); text-align:center}
  .hero-copy .eyebrow{justify-content:center}
  .hero-copy .eyebrow::after{content:""; width:28px; height:1px; background:currentColor; opacity:.55}
  .hero-copy .lead{margin-left:auto; margin-right:auto}
  .cta-row,.hero-meta{justify-content:center}
}
@media (max-width:480px){
  .cta-row .btn{width:100%}
  .eyebrow{letter-spacing:.12em; gap:9px}
  .eyebrow::before,.eyebrow::after{max-width:18px}
}

/* το κινητό με το ζωντανό σκηνικό */
.phone-wrap{position:relative; display:flex; flex-direction:column; align-items:center}
.phone{position:relative; display:block; width:min(310px,70vw); padding:10px; border-radius:46px; text-decoration:none;
  background:linear-gradient(150deg,#453a30,#1c1712 55%,#2b241d);
  box-shadow:0 50px 90px -40px rgba(60,40,20,.55),0 0 0 1px rgba(255,255,255,.06) inset,0 0 0 1px rgba(0,0,0,.25)}
.phone::before{content:""; position:absolute; top:20px; left:50%; width:74px; height:20px; margin-left:-37px; border-radius:99px; background:#0f0c09; z-index:2; opacity:.92}
.phone-screen{position:relative; display:block; overflow:hidden; border-radius:37px; aspect-ratio:9/16; background:#e7dccb}
.phone-screen img{width:100%; height:100%; object-fit:cover}
.pearl-ring{position:absolute; left:52.341%; top:55.558%; width:11%; aspect-ratio:1; border-radius:50%;
  transform:translate(-50%,-50%); border:1.5px solid rgba(255,250,236,.95); box-shadow:0 0 18px rgba(255,244,214,.9); pointer-events:none}
.pearl-ring.two{animation-delay:1.3s}
.phone-tip{position:absolute; left:50%; top:80%; transform:translateX(-50%); padding:7px 14px; border-radius:999px; white-space:nowrap;
  background:rgba(255,252,245,.82); color:#6a5324; font:italic 500 15px/1 var(--serif); letter-spacing:.02em;
  -webkit-backdrop-filter:blur(6px); backdrop-filter:blur(6px); box-shadow:0 6px 18px -10px rgba(60,40,20,.5)}
.phone:hover .phone-tip,.phone:focus-visible .phone-tip{background:rgba(255,252,245,.96)}
.phone:focus-visible{outline:2px solid var(--gold); outline-offset:6px}
.phone-caption{margin:22px 0 0; font:italic 400 17px/1.4 var(--serif); color:var(--muted); text-align:center}
.sparkle{position:absolute; color:var(--gold); width:18px; height:18px; opacity:.75}
.sparkle.s1{top:6%; left:4%}
.sparkle.s2{top:28%; right:0; width:12px; height:12px}
.sparkle.s3{bottom:14%; left:0; width:14px; height:14px}
@media (prefers-reduced-motion:no-preference){
  .phone{animation:float 7s ease-in-out infinite}
  .pearl-ring{animation:pearl 2.6s cubic-bezier(.2,.6,.3,1) infinite}
  .sparkle{animation:twinkle 3.4s ease-in-out infinite}
  .sparkle.s2{animation-delay:1.1s}
  .sparkle.s3{animation-delay:2.2s}
}
@keyframes float{0%,100%{transform:translateY(0)}50%{transform:translateY(-10px)}}
@keyframes pearl{0%{transform:translate(-50%,-50%) scale(.75); opacity:0}15%{opacity:1}100%{transform:translate(-50%,-50%) scale(2.1); opacity:0}}
@keyframes twinkle{0%,100%{opacity:.25; transform:scale(.8) rotate(0)}50%{opacity:.9; transform:scale(1.1) rotate(20deg)}}

/* ── πώς λειτουργεί ── */
.steps{display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:18px; list-style:none; margin:0; padding:0}
@media (max-width:980px){.steps{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:560px){.steps{grid-template-columns:minmax(0,1fr)}}
.step{position:relative; padding:30px 26px 28px; background:var(--panel); border:1px solid var(--line); border-radius:22px; box-shadow:var(--shadow)}
.step-num{display:block; font:italic 500 46px/1 var(--serif); color:var(--gold)}
.step h3{font-size:25px; margin:16px 0 10px}
.step p{margin:0; color:var(--ink-soft); font-size:15.5px}

/* ── τι κάνει ── */
.features{display:grid; grid-template-columns:repeat(auto-fill,minmax(min(100%,250px),1fr)); gap:16px}
.feature{display:flex; gap:18px; padding:24px 24px 22px; background:var(--panel); border:1px solid var(--line); border-radius:20px}
.feature .ic{flex:none; width:48px; height:48px; border-radius:50%; display:grid; place-items:center;
  background:var(--gold-soft); color:var(--gold-deep); border:1px solid color-mix(in srgb,var(--gold) 28%,transparent)}
.feature .ic svg{width:23px; height:23px; fill:none; stroke:currentColor; stroke-width:1.5; stroke-linecap:round; stroke-linejoin:round}
.feature h3{font-size:22px; margin:2px 0 6px}
.feature p{margin:0; font-size:15px; color:var(--ink-soft)}
.demo-band{display:flex; flex-wrap:wrap; align-items:center; justify-content:center; gap:14px 22px; margin-top:clamp(36px,5vw,52px); text-align:center}
.demo-band p{margin:0; font:italic 400 20px/1.4 var(--serif); color:var(--ink-soft)}

/* ── πακέτα ── */
.pkgs{display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,310px),1fr)); gap:24px; max-width:920px; margin:0 auto}
.pkg{position:relative; display:flex; flex-direction:column; padding:38px 30px 30px; background:var(--panel);
  border:1px solid var(--line); border-radius:26px; box-shadow:var(--shadow)}
.pkg.featured{border-color:var(--gold); box-shadow:0 0 0 1px var(--gold) inset,var(--shadow-lg)}
.pkg-badge{position:absolute; top:-14px; left:50%; transform:translateX(-50%); white-space:nowrap; padding:6px 16px; border-radius:999px;
  background:linear-gradient(180deg,var(--gold-1),var(--gold-2)); color:var(--on-gold); font:600 12px/1.2 var(--ui); letter-spacing:.14em}
.pkg-name{font-size:32px}
.pkg-price{display:flex; align-items:baseline; gap:8px; margin:14px 0 6px; font:500 60px/1 var(--serif); color:var(--gold-deep)}
.pkg-price small{font:400 15px/1.2 var(--ui); color:var(--muted)}
.pkg-lead{margin:0 0 20px; color:var(--ink-soft); font-size:15px}
.pkg-list{list-style:none; padding:22px 0 0; margin:0 0 30px; display:grid; gap:11px; border-top:1px solid var(--line)}
.pkg-list li{position:relative; padding-left:26px; font-size:15.5px; line-height:1.5}
.pkg-list li::before{content:""; position:absolute; left:3px; top:.42em; width:11px; height:11px; background:var(--gold);
  clip-path:polygon(50% 0,62% 38%,100% 50%,62% 62%,50% 100%,38% 62%,0 50%,38% 38%)}
.pkg .btn{margin-top:auto; width:100%}
.pkg-note{max-width:620px; margin:28px auto 0; text-align:center; color:var(--muted); font-size:14.5px}
.pkg-note.closed{color:var(--ink-soft); font:italic 400 18px/1.5 var(--serif)}

/* ── συχνές ερωτήσεις ── */
.faq{max-width:800px; margin:0 auto}
.faq details{border-bottom:1px solid var(--line)}
.faq details:first-child{border-top:1px solid var(--line)}
.faq summary{position:relative; list-style:none; cursor:pointer; padding:24px 48px 24px 2px; font:500 clamp(20px,2.4vw,23px)/1.3 var(--serif); color:var(--ink)}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:""; position:absolute; right:10px; top:50%; width:11px; height:11px;
  border-right:1.5px solid var(--gold); border-bottom:1.5px solid var(--gold); transform:translateY(-70%) rotate(45deg); transition:transform .25s}
.faq details[open] summary::after{transform:translateY(-25%) rotate(225deg)}
.faq summary:hover{color:var(--gold-deep)}
.faq .answer{padding:0 44px 24px 2px; color:var(--ink-soft)}
.faq .answer p:last-child{margin-bottom:0}

/* ── κλείσιμο & υποσέλιδο ── */
.cta-band{position:relative; overflow:hidden; text-align:center; padding:clamp(72px,10vw,120px) 0;
  background:radial-gradient(700px 360px at 50% 0,var(--glow),transparent 70%),var(--bg-2); border-top:1px solid var(--line)}
.cta-band h2{margin:18px 0 14px}
.cta-band .cta-row{justify-content:center}
.site-foot{border-top:1px solid var(--line); padding:40px 0 48px; color:var(--muted); font-size:14.5px}
.site-foot .container{display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:18px 30px}
.foot-brand{display:flex; flex-direction:column; gap:4px}
.foot-brand .brand-name{font-size:25px}
.foot-links{display:flex; flex-wrap:wrap; gap:10px 24px; list-style:none; margin:0; padding:0}
.foot-links a{color:var(--ink-soft); text-decoration:none}
.foot-links a:hover{color:var(--ink); text-decoration:underline}

/* ═════════ φόρμα ═════════ */
.page-intro{padding:clamp(36px,6vw,68px) 0 clamp(24px,3.5vw,36px); text-align:center}
.page-intro h1{font-size:clamp(35px,5.4vw,56px); margin:16px 0 14px}
.page-intro .lead{max-width:600px; margin:0 auto}
.wiz{max-width:780px; margin:0 auto clamp(64px,9vw,110px)}
.card{background:var(--panel); border:1px solid var(--line); border-radius:26px; box-shadow:var(--shadow-lg); padding:clamp(22px,5vw,46px)}
.wiz-prog{margin-bottom:30px}
.wiz-prog-top{display:flex; flex-wrap:wrap; justify-content:space-between; align-items:baseline; gap:4px 14px; margin-bottom:10px; font-size:13.5px; color:var(--muted)}
.wiz-prog-top b{color:var(--ink-soft); font-weight:600}
.wiz-bar{height:4px; border-radius:99px; background:var(--line); overflow:hidden}
.wiz-bar i{display:block; height:100%; width:0; border-radius:99px; background:linear-gradient(90deg,var(--gold-1),var(--gold)); transition:width .4s ease}
.wiz-step{display:none}
.wiz-step.on{display:block}
@media (prefers-reduced-motion:no-preference){.wiz-step.on{animation:rise .32s ease}}
@keyframes rise{from{opacity:0; transform:translateY(8px)}to{opacity:1; transform:none}}
.wiz-h{font-size:clamp(29px,4.2vw,38px); margin:0 0 8px}
.wiz-h:focus{outline:none}
.wiz-sub{margin:0 0 28px; color:var(--ink-soft); font-size:15.5px}
.fld{display:flex; flex-direction:column; gap:7px; margin:0 0 20px; min-width:0}
.fld-label{font-weight:600; font-size:14.5px; color:var(--ink)}
.fld-label .opt{font-weight:400; color:var(--muted)}
.fld-label .req{color:var(--gold-deep); margin-left:2px}
.hint{margin:0; font-size:13.5px; color:var(--muted); line-height:1.5}
.in{display:block; width:100%; min-height:50px; padding:12px 15px; border:1px solid var(--line-2); border-radius:13px;
  background:var(--field); color:var(--ink); font:16px/1.4 var(--ui); transition:border-color .15s,box-shadow .15s; -webkit-appearance:none; appearance:none}
textarea.in{min-height:108px; resize:vertical; line-height:1.55}
.in::placeholder{color:var(--placeholder); opacity:1}
.in:hover{border-color:color-mix(in srgb,var(--gold) 45%,var(--line-2))}
.in:focus{outline:none; border-color:var(--gold); box-shadow:0 0 0 4px var(--focus-ring)}
input[type=date].in,input[type=time].in{min-width:0}
.in[aria-invalid="true"],.fld.err .in{border-color:var(--err)}
.fld-err{font-size:13.5px; font-weight:500; color:var(--err)}
.counter{align-self:flex-end; font-size:12.5px; color:var(--muted); font-variant-numeric:tabular-nums}
.counter.near{color:var(--err)}
.row2{display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:0 16px}
@media (max-width:600px){.row2{grid-template-columns:minmax(0,1fr)}}
.subhead{display:flex; align-items:center; gap:14px; margin:30px 0 16px; font:600 12px/1.2 var(--ui); letter-spacing:.16em; color:var(--muted)}
.subhead::after{content:""; flex:1; height:1px; background:var(--line)}
.note{margin:0 0 24px; padding:14px 16px; border-radius:14px; font-size:14.5px; line-height:1.55; color:var(--ink-soft);
  background:var(--gold-soft); border:1px solid color-mix(in srgb,var(--gold) 28%,transparent)}
.note b{color:var(--ink); font-weight:600}
.note.soft{background:transparent; border-style:dashed}

/* επιλογές-κάρτες */
.choices{display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,230px),1fr)); gap:12px}
.choice{position:relative; display:block; cursor:pointer}
.choice input{position:absolute; top:18px; right:18px; width:18px; height:18px; margin:0; opacity:0}
.choice-box{position:relative; display:flex; flex-direction:column; height:100%; padding:18px 48px 18px 18px; border:1.5px solid var(--line-2); border-radius:16px;
  background:var(--field); transition:border-color .15s,background-color .15s,box-shadow .15s}
.choice-box::after{content:""; position:absolute; top:18px; right:18px; width:20px; height:20px; border-radius:50%; border:1.5px solid var(--line-2); background:var(--panel)}
.choice:hover .choice-box{border-color:color-mix(in srgb,var(--gold) 55%,var(--line-2))}
.choice input:checked + .choice-box{border-color:var(--gold); background:var(--gold-soft); box-shadow:0 0 0 1px var(--gold) inset}
.choice input:checked + .choice-box::after{border-color:var(--gold-2); background:var(--gold-2); box-shadow:inset 0 0 0 4px var(--panel)}
.choice input:focus-visible + .choice-box{outline:2px solid var(--gold); outline-offset:3px}
.choice-title{display:flex; flex-wrap:wrap; align-items:baseline; justify-content:space-between; gap:4px 10px; font:500 24px/1.15 var(--serif); color:var(--ink)}
.choice-price{font:500 23px/1 var(--serif); color:var(--gold-deep); white-space:nowrap}
.choice-desc{display:block; margin-top:8px; font-size:14px; line-height:1.5; color:var(--ink-soft)}
.choices.compact .choice-box{padding:14px 46px 14px 16px}
.choices.compact .choice-title{font:600 15.5px/1.3 var(--ui)}
.choices.compact .choice-box::after{top:50%; margin-top:-10px}
.fld.err .choice-box{border-color:var(--err)}

/* διακόπτες */
.tog{display:flex; align-items:flex-start; gap:14px; margin:0 0 20px; padding:15px 16px; border:1px solid var(--line); border-radius:15px; background:var(--field); cursor:pointer}
.tog input{-webkit-appearance:none; appearance:none; position:relative; flex:none; width:46px; height:27px; margin:0; border-radius:99px; background:var(--line-2); cursor:pointer; transition:background-color .2s}
.tog input::after{content:""; position:absolute; top:3px; left:3px; width:21px; height:21px; border-radius:50%; background:#fff; box-shadow:0 1px 3px rgba(0,0,0,.28); transition:transform .2s}
.tog input:checked{background:var(--gold-2)}
.tog input:checked::after{transform:translateX(19px)}
.tog input:focus-visible{outline:2px solid var(--gold); outline-offset:3px}
.tog-text{display:flex; flex-direction:column; gap:2px; padding-top:2px}
.tog-text b{font-weight:600; font-size:15px}
.tog-text small{font-size:13.5px; color:var(--muted); line-height:1.45}
.reveal{padding-left:2px}

/* συναίνεση */
.cbx{display:flex; align-items:flex-start; gap:13px; padding:16px 18px; border:1px solid var(--line-2); border-radius:15px; background:var(--field); cursor:pointer; font-size:15px; line-height:1.55}
.cbx input{flex:none; width:21px; height:21px; margin:1px 0 0; accent-color:var(--gold-2); cursor:pointer}
.fld.err .cbx{border-color:var(--err)}

/* λίστες γραμμών */
.list{display:grid; gap:10px}
.list-row{display:flex; align-items:center; gap:8px}
.list-row .in{flex:1 1 auto; min-width:0}
.list-row.pair .in.p-label{flex:0 1 42%}
.icon-btn{flex:none; display:grid; place-items:center; width:46px; height:46px; border-radius:13px; border:1px solid var(--line-2);
  background:var(--field); color:var(--muted); cursor:pointer; font-size:22px; line-height:1}
.icon-btn:hover{color:var(--err); border-color:var(--err)}
.add-btn{justify-self:start; display:inline-flex; align-items:center; gap:6px; padding:9px 16px; border:1px dashed var(--line-2); border-radius:999px;
  background:transparent; color:var(--gold-deep); font:500 14.5px var(--ui); cursor:pointer}
.add-btn:hover{border-color:var(--gold); border-style:solid}
@media (max-width:460px){
  .list-row.pair{flex-wrap:wrap}
  .list-row.pair .in.p-label{flex:1 1 100%}
  .list-row.pair .in.p-number{flex:1 1 0}
}

/* πλοήγηση & μηνύματα */
.wiz-alert{margin:22px 0 0; padding:13px 16px; border-radius:13px; background:var(--err-soft); color:var(--err); font-size:14.5px; font-weight:500; line-height:1.5}
.wiz-alert.info{background:var(--gold-soft); color:var(--ink-soft)}
.wiz-nav{display:flex; flex-wrap:wrap; align-items:center; gap:12px; margin-top:32px; padding-top:24px; border-top:1px solid var(--line)}
.wiz-nav .spacer{flex:1}
.save-note{margin:14px 0 0; font-size:12.5px; color:var(--muted); text-align:center}
@media (max-width:480px){
  .wiz-nav .spacer{display:none}
  .wiz-nav .btn{flex:1 1 0; padding-left:14px; padding-right:14px}
}

/* έλεγχος */
.review{display:grid; gap:14px; margin:0 0 26px}
.rv-sec{padding:16px 18px 14px; border:1px solid var(--line); border-radius:16px; background:var(--field)}
.rv-head{display:flex; align-items:baseline; justify-content:space-between; gap:12px; margin-bottom:8px}
.rv-head h3{font-size:22px}
.rv-dl{display:grid; grid-template-columns:minmax(110px,34%) minmax(0,1fr); gap:6px 16px; margin:0; font-size:14.5px}
.rv-dl dt{color:var(--muted)}
.rv-dl dd{margin:0; white-space:pre-line; overflow-wrap:anywhere}
.rv-empty{margin:0; font-size:14px; color:var(--muted); font-style:italic}
@media (max-width:520px){
  .rv-dl{grid-template-columns:minmax(0,1fr); gap:0}
  .rv-dl dd{margin-bottom:9px}
}

/* ολοκλήρωση & καταστάσεις */
.done,.state{text-align:center; padding:10px 0 4px}
.done-ic{display:grid; place-items:center; width:76px; height:76px; margin:0 auto 20px; border-radius:50%;
  background:var(--gold-soft); color:var(--gold-deep); border:1px solid color-mix(in srgb,var(--gold) 35%,transparent)}
.done-ic svg{width:34px; height:34px; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round}
.done h2,.state h2{font-size:clamp(30px,4.4vw,40px); margin:0 0 12px}
.done p,.state p{max-width:500px; margin:0 auto 12px; color:var(--ink-soft)}
.ref{display:inline-flex; align-items:center; gap:12px; margin:14px 0 18px; padding:12px 14px 12px 20px; border:1px dashed var(--gold); border-radius:15px; background:var(--field)}
.ref-code{font:600 clamp(20px,4vw,26px)/1 var(--mono); letter-spacing:.08em; color:var(--ink)}
.state .cta-row{justify-content:center; margin-top:26px}
.spinner{width:30px; height:30px; margin:36px auto; border-radius:50%; border:2px solid var(--line-2); border-top-color:var(--gold)}
@media (prefers-reduced-motion:no-preference){.spinner{animation:spin 1s linear infinite}}
@keyframes spin{to{transform:rotate(360deg)}}

/* δόλωμα για bots — αόρατο σε ανθρώπους και αναγνώστες οθόνης */
.hp{position:absolute!important; left:-10000px!important; top:auto; width:1px; height:1px; overflow:hidden}

/* ═════════ σελίδα ζευγαριού ═════════ */
.cp-head{padding:clamp(40px,6vw,76px) 0 clamp(28px,4vw,40px); text-align:center}
.cp-names{margin:18px 0 12px; font:italic 500 clamp(42px,7.5vw,74px)/1.04 var(--serif); color:var(--gold-deep)}
.cp-date{margin:0; font:500 clamp(19px,2.2vw,22px)/1.4 var(--serif); color:var(--ink-soft)}
.cp-count{margin:6px 0 0; color:var(--muted); font-size:14.5px}
.cp-section{margin:0 0 clamp(40px,6vw,64px)}
.cp-section > h2{font-size:clamp(28px,3.6vw,36px); margin:0 0 18px}
.stats{display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,145px),1fr)); gap:12px; margin:0 0 22px}
.stat{display:flex; flex-direction:column; align-items:flex-start; gap:4px; padding:18px 20px; text-align:left; cursor:pointer;
  border:1px solid var(--line); border-radius:18px; background:var(--panel); box-shadow:var(--shadow); color:var(--ink)}
.stat:hover{border-color:var(--gold)}
.stat[aria-pressed="true"]{border-color:var(--gold); background:var(--gold-soft); box-shadow:0 0 0 1px var(--gold) inset}
.stat-n{font:500 clamp(34px,6vw,44px)/1 var(--serif)}
.stat-l{font-size:14.5px; font-weight:600; color:var(--ink-soft)}
.stat-sub{font-size:13px; color:var(--muted)}
.toolbar{display:flex; flex-wrap:wrap; align-items:center; gap:10px; margin:0 0 14px}
.toolbar .in{flex:1 1 240px; min-height:46px}
.tbl-wrap{border:1px solid var(--line); border-radius:18px; overflow:hidden; background:var(--panel); box-shadow:var(--shadow)}
.tbl{width:100%; border-collapse:collapse; font-size:14.5px}
.tbl th{padding:12px 14px; text-align:left; font:600 12px/1.2 var(--ui); letter-spacing:.08em; color:var(--muted); background:var(--bg-2); border-bottom:1px solid var(--line); white-space:nowrap}
.tbl td{padding:13px 14px; vertical-align:top; border-bottom:1px solid var(--line); overflow-wrap:anywhere}
.tbl tbody tr:last-child td{border-bottom:0}
.tbl td.num{font-variant-numeric:tabular-nums; white-space:nowrap}
.tbl td.muted{color:var(--muted); white-space:nowrap}
.tbl td.pre{white-space:pre-line}
.tbl td.wishcell{font-family:var(--serif); font-style:italic; font-size:16.5px; white-space:pre-line}
.pill{display:inline-block; padding:3px 11px; border-radius:999px; font-size:12.5px; font-weight:600; line-height:1.5; white-space:nowrap;
  background:var(--gold-soft); color:var(--gold-deep)}
.pill.no{background:var(--no-soft); color:var(--no)}
.pill.yes{background:var(--ok-soft); color:var(--ok)}
@media (max-width:720px){
  .tbl thead{position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0)}
  .tbl tr{display:block; padding:12px 16px; border-bottom:1px solid var(--line)}
  .tbl tbody tr:last-child{border-bottom:0}
  .tbl td{display:flex; gap:12px; padding:4px 0; border:0}
  .tbl td::before{content:attr(data-l); flex:0 0 92px; font-size:12.5px; color:var(--muted); font-family:var(--ui); font-style:normal}
  .tbl td:empty{display:none}
}
.wishes{display:grid; grid-template-columns:repeat(auto-fill,minmax(min(100%,290px),1fr)); gap:14px}
.wish{position:relative; margin:0; padding:24px 22px 18px; border:1px solid var(--line); border-radius:20px; background:var(--panel); box-shadow:var(--shadow)}
.wish::before{content:"“"; position:absolute; top:6px; left:16px; font:500 44px/1 var(--serif); color:var(--gold); opacity:.55}
.wish blockquote{margin:0 0 14px; padding-top:14px; font:italic 400 19px/1.5 var(--serif); white-space:pre-line; overflow-wrap:anywhere}
.wish figcaption{font-size:13.5px; color:var(--muted)}
.wish figcaption b{color:var(--ink-soft); font-weight:600}
.empty{padding:30px 20px; text-align:center; color:var(--muted); font:italic 400 18px/1.5 var(--serif)}
.privacy-note{margin:0 0 clamp(56px,8vw,90px); padding:18px 20px; border-radius:16px; border:1px dashed var(--line-2); color:var(--muted); font-size:14px; text-align:center}

/* ═════════ 404 ═════════ */
.nf{display:grid; place-items:center; min-height:calc(100vh - 66px - 140px); padding:60px 0; text-align:center}
.nf-code{display:block; font:italic 500 clamp(96px,20vw,168px)/1 var(--serif); color:var(--gold); opacity:.9}
.nf .ornament{margin:14px auto 6px}
.nf h1{font-size:clamp(30px,4.6vw,44px); margin:10px 0 14px}
.nf p{max-width:460px; margin:0 auto; color:var(--ink-soft)}
.nf .cta-row{justify-content:center}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.001ms!important; animation-iteration-count:1!important; transition-duration:.001ms!important}
}
@media print{
  .site-head,.site-foot,.toolbar,.btn{display:none!important}
  body{background:#fff; color:#000}
}
