:root{
  --navy:#0d1b2a;
  --deep:#12334a;
  --sky:#7ba7c2;
  --gold:#f4c542;
  --sand:#ead7b5;
  --olive:#6a7a5b;
  --ivory:#faf7f2;
  --white:#fffdf8;
  --text:#183247;
  --muted:#667987;
  --shadow:0 24px 80px rgba(13,27,42,.16);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--ivory);color:var(--text);font-family:Montserrat,Arial,sans-serif;line-height:1.75}
a{color:inherit;text-decoration:none}
img{max-width:100%;display:block}
.hidden{display:none!important}.hidden-field{display:none}
.eyebrow{letter-spacing:.22em;text-transform:uppercase;font-weight:700;font-size:.76rem;color:var(--olive);margin:0 0 .8rem}.eyebrow.gold{color:#c89522}
.gate{position:fixed;inset:0;z-index:30;display:grid;place-items:center;min-height:100vh;overflow:hidden;background:var(--navy)}
.gate-bg{position:absolute;inset:0;background:linear-gradient(90deg,rgba(13,27,42,.72),rgba(13,27,42,.35)),url('assets/constantinos-pool.jpeg') center/cover;filter:saturate(.95)}
.gate-card{position:relative;width:min(92vw,620px);padding:3rem 3.2rem;border-radius:28px;background:rgba(250,247,242,.92);box-shadow:var(--shadow);text-align:center;backdrop-filter:blur(12px);animation:rise .7s ease both}
.gate-card h1,.hero h1,footer h2,.signature{font-family:Allura,cursive;font-weight:400}.gate-card h1{font-size:5.2rem;line-height:.9;margin:.1rem 0;color:var(--deep)}
.gate-card h2{font-family:Cormorant Garamond,serif;font-size:2rem;margin:.2rem 0 1rem;color:var(--navy)}.gate-line{font-size:1rem;max-width:430px;margin:0 auto 1rem}.gate-sub{font-size:.9rem;color:var(--muted)}
.password-row{display:flex;gap:.75rem;margin:1.5rem auto 0;max-width:470px}.password-row input{flex:1;border:1px solid rgba(18,51,74,.22);border-radius:999px;padding:1rem 1.15rem;font-size:1rem;background:white;text-align:center}.password-row button,.btn{border:0;border-radius:999px;padding:1rem 1.45rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;cursor:pointer;transition:.25s ease}.password-row button,.btn.primary{background:var(--deep);color:white}.btn.secondary{background:rgba(250,247,242,.18);border:1px solid rgba(255,255,255,.55);color:white}.btn:hover,.password-row button:hover{transform:translateY(-2px);box-shadow:0 10px 30px rgba(13,27,42,.18)}.error{color:#8a1d1d;font-weight:700;min-height:1.2rem}
.announcement{background:var(--gold);color:var(--navy);text-align:center;font-size:.86rem;font-weight:700;padding:.55rem 1rem}.nav{position:sticky;top:0;z-index:20;background:rgba(250,247,242,.92);backdrop-filter:blur(12px);display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1rem clamp(1rem,4vw,4rem);box-shadow:0 1px 0 rgba(13,27,42,.08)}.brand span{font-family:Allura,cursive;font-size:2.1rem;color:var(--deep);display:block;line-height:.85}.brand small{font-size:.62rem;text-transform:uppercase;letter-spacing:.18em;color:var(--olive);font-weight:700}.nav-links{display:flex;gap:1.25rem;align-items:center;font-size:.8rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em}.nav-links a{opacity:.85}.nav-links a:hover{color:#b47b12}.menu-btn{display:none;background:transparent;border:1px solid rgba(13,27,42,.18);padding:.55rem .9rem;border-radius:99px;color:var(--navy)}
.hero{min-height:92vh;position:relative;display:grid;place-items:center;text-align:center;color:white;background:url('assets/beach-sea.jpeg') center/cover}.hero-overlay{position:absolute;inset:0;background:linear-gradient(180deg,rgba(13,27,42,.42),rgba(13,27,42,.67))}.hero-content{position:relative;width:min(92vw,930px);padding:5rem 1rem}.hero h1{font-size:clamp(5rem,12vw,10rem);line-height:.75;margin:.5rem 0;color:white;text-shadow:0 12px 60px rgba(0,0,0,.22)}.hero h2{font-family:Cormorant Garamond,serif;font-size:clamp(2.4rem,6vw,5rem);line-height:1;margin:.7rem 0;color:white}.tagline{font-size:1.15rem;max-width:650px;margin:0 auto 1rem}.venue{letter-spacing:.12em;text-transform:uppercase;font-size:.82rem;font-weight:700}.countdown{display:flex;justify-content:center;gap:.8rem;margin:2rem auto;flex-wrap:wrap}.countdown div{min-width:92px;background:rgba(250,247,242,.18);border:1px solid rgba(255,255,255,.25);border-radius:18px;padding:.85rem .8rem;backdrop-filter:blur(8px)}.countdown strong{display:block;font-family:Cormorant Garamond,serif;font-size:2.2rem;line-height:1}.countdown span{font-size:.68rem;text-transform:uppercase;letter-spacing:.15em}.hero-buttons{display:flex;justify-content:center;gap:1rem;flex-wrap:wrap}
.section{padding:clamp(4rem,8vw,7rem) clamp(1rem,5vw,6rem)}.two-col{display:grid;grid-template-columns:1fr 1fr;gap:clamp(2rem,5vw,5rem);align-items:center}.reverse{direction:rtl}.reverse>*{direction:ltr}.section h2{font-family:Cormorant Garamond,serif;font-size:clamp(2.4rem,5vw,4.8rem);line-height:.98;margin:.25rem 0 1.5rem;color:var(--navy)}.lead{font-size:1.25rem;color:var(--deep)}.photo.rounded,.image-frame{border-radius:28px}.image-frame{padding:.75rem;background:white;box-shadow:var(--shadow);transform:rotate(-1deg)}.image-frame img{border-radius:22px}.signature{font-size:3rem;color:var(--deep);margin-top:1.5rem}.content-card{background:rgba(255,253,248,.92);box-shadow:var(--shadow);border:1px solid rgba(234,215,181,.55);border-radius:30px;padding:clamp(2rem,5vw,4rem)}.wide{max-width:980px;margin:auto}.story-section{background:linear-gradient(180deg,rgba(234,215,181,.35),rgba(250,247,242,.96)),url('assets/beach-umbrellas.jpeg') center/cover fixed}.section-heading{text-align:center;max-width:850px;margin:0 auto 3rem}.stay-section{background:var(--white)}.cards{display:grid;gap:1.2rem}.cards.four{grid-template-columns:repeat(4,1fr)}.cards article{background:var(--ivory);border:1px solid rgba(18,51,74,.08);border-radius:24px;padding:1.5rem;box-shadow:0 12px 40px rgba(13,27,42,.06)}.cards article span{color:#c89522;font-weight:800;letter-spacing:.14em}.cards h3{font-family:Cormorant Garamond,serif;font-size:2rem;margin:.25rem 0;color:var(--deep)}.important-note{max-width:980px;margin:2rem auto 0;background:var(--deep);color:white;border-radius:22px;padding:1.35rem 1.6rem;text-align:center}.gallery-strip{display:grid;grid-template-columns:repeat(3,1fr);gap:0;padding:0}.gallery-strip img{height:410px;width:100%;object-fit:cover}.accommodation{background:linear-gradient(135deg,var(--ivory),#f4eadb)}.travel-section{background:var(--navy);color:white}.travel-section h2,.travel-section .eyebrow{color:white}.tip-box,.quote-card{background:white;color:var(--text);border-radius:28px;padding:2rem;box-shadow:var(--shadow)}.tip-box h3{font-family:Cormorant Garamond,serif;color:var(--navy);font-size:2.2rem;margin-top:0}.cyprus-section{background:var(--ivory)}.quote-card p{font-family:Cormorant Garamond,serif;font-size:2.25rem;line-height:1.15;color:var(--navy)}.compact{text-align:center;max-width:920px;margin:auto}.wedding-day{background:linear-gradient(180deg,rgba(13,27,42,.72),rgba(13,27,42,.72)),url('assets/beach-sea.jpeg') center/cover;color:white;max-width:none}.wedding-day h2{color:white}.updates-section{background:white}.updates{max-width:940px;margin:auto;display:grid;gap:1rem}.updates div{display:grid;grid-template-columns:220px 1fr;gap:1rem;align-items:center;border-left:4px solid var(--gold);background:var(--ivory);padding:1.25rem 1.5rem;border-radius:18px}.updates strong{font-family:Cormorant Garamond,serif;font-size:1.6rem;color:var(--navy)}.form-section{background:linear-gradient(135deg,#f7efe2,#ffffff)}.plan-form{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-top:2rem}.plan-form label{display:grid;gap:.45rem;font-weight:700;font-size:.86rem;color:var(--deep)}.plan-form input,.plan-form select,.plan-form textarea{width:100%;border:1px solid rgba(13,27,42,.16);border-radius:16px;padding:.95rem 1rem;background:white;font:inherit}.plan-form label:has(textarea),.plan-form button{grid-column:1/-1}.faqs details{background:white;margin:1rem auto;border-radius:18px;padding:1.1rem 1.25rem;text-align:left;box-shadow:0 10px 34px rgba(13,27,42,.06)}.faqs summary{cursor:pointer;font-weight:800;color:var(--navy)}footer{background:var(--navy);color:white;text-align:center;padding:4rem 1rem}footer h2{font-size:4.5rem;font-weight:400;margin:0}footer p{margin:.35rem 0;color:rgba(255,255,255,.85)}
.reveal{opacity:0;transform:translateY(24px);transition:opacity .7s ease,transform .7s ease}.reveal.visible{opacity:1;transform:none}@keyframes rise{from{opacity:0;transform:translateY(20px) scale(.98)}to{opacity:1;transform:none}}
@media(max-width:900px){.nav{align-items:flex-start}.menu-btn{display:block}.nav-links{display:none;position:absolute;left:1rem;right:1rem;top:84px;background:var(--ivory);border-radius:22px;box-shadow:var(--shadow);padding:1rem;flex-direction:column;align-items:flex-start}.nav-links.open{display:flex}.two-col,.cards.four,.plan-form{grid-template-columns:1fr}.reverse{direction:ltr}.hero{min-height:88vh}.hero h1{font-size:5.7rem}.gate-card{padding:2rem 1.35rem}.gate-card h1{font-size:4.1rem}.password-row{flex-direction:column}.gallery-strip{grid-template-columns:1fr}.gallery-strip img{height:260px}.updates div{grid-template-columns:1fr}.section{padding:3.7rem 1.1rem}.content-card{border-radius:24px}.quote-card p{font-size:1.8rem}footer h2{font-size:3.6rem}}
.cards.three{grid-template-columns:repeat(3,1fr)}
.accom-options{background:var(--white)}
.hotel-cards article{background:linear-gradient(180deg,#fffdf8,#faf7f2);border-top:5px solid var(--gold)}
.hotel-cards h3{font-size:2.15rem;line-height:1.05}
.booking-note{margin-top:1.2rem;padding:.9rem 1rem;border-radius:16px;background:rgba(244,197,66,.18);font-weight:700;color:var(--deep)}
@media(max-width:900px){.cards.three{grid-template-columns:1fr}.hotel-cards h3{font-size:1.9rem}}

/* v2.1 brand mark update */
.sun-mark{width:44px;height:44px;border-radius:50%;background:radial-gradient(circle at center,var(--gold) 0 32%,transparent 34%);position:relative;margin:0 auto 1rem;filter:drop-shadow(0 8px 18px rgba(244,197,66,.25))}
.sun-mark:before,.sun-mark:after{content:"";position:absolute;inset:-8px;border-radius:50%;background:repeating-conic-gradient(from 0deg,var(--gold) 0 6deg,transparent 6deg 22deg);-webkit-mask:radial-gradient(circle,transparent 0 48%,#000 50%);mask:radial-gradient(circle,transparent 0 48%,#000 50%)}
.sun-mark:after{transform:rotate(11deg);opacity:.55}
.hero-sun{margin-bottom:.55rem}.footer-sun{margin-bottom:1.2rem}.gate-card .sun-mark{width:38px;height:38px;margin-bottom:.65rem}
.brand{display:grid;grid-template-columns:auto 1fr;column-gap:.55rem;align-items:center;line-height:1}
.brand small{grid-column:2}
.mini-sun{grid-row:1/3;width:28px;height:28px;border-radius:50%;background:radial-gradient(circle at center,var(--gold) 0 32%,transparent 34%);position:relative;display:inline-block}
.mini-sun:before{content:"";position:absolute;inset:-5px;border-radius:50%;background:repeating-conic-gradient(var(--gold) 0 7deg,transparent 7deg 24deg);-webkit-mask:radial-gradient(circle,transparent 0 48%,#000 50%);mask:radial-gradient(circle,transparent 0 48%,#000 50%);opacity:.9}
.hero h2{letter-spacing:.03em}.tagline{letter-spacing:.04em;text-transform:uppercase;font-size:1rem;font-weight:600}.gate-line{letter-spacing:.03em}
@media(max-width:900px){.brand span{font-size:1.8rem}.mini-sun{width:24px;height:24px}.sun-mark{width:36px;height:36px}.tagline{font-size:.88rem}}


/* v2.2 accommodation and travel updates */
.portrait-crop{width:100%;aspect-ratio:4/5;object-fit:cover;object-position:center top}
.comparison{max-width:1120px;margin:0 auto 2rem;display:grid;grid-template-columns:repeat(5,1fr);gap:.75rem}
.comparison div{background:var(--ivory);border:1px solid rgba(18,51,74,.08);border-radius:18px;padding:1rem;box-shadow:0 8px 28px rgba(13,27,42,.05)}
.comparison strong{display:block;font-family:Cormorant Garamond,serif;font-size:1.35rem;line-height:1.05;color:var(--navy);margin-bottom:.4rem}.comparison span{font-size:.78rem;color:var(--muted);font-weight:700}.hotel-cards{grid-template-columns:repeat(5,1fr)}.hotel-cards article{display:flex;flex-direction:column}.contact-card{margin-top:auto;padding:1rem;border-radius:16px;background:rgba(13,27,42,.06);font-size:.9rem;line-height:1.65;color:var(--deep)}.travel-advice{background:linear-gradient(180deg,#fffdf8,#f4eadb)}.board-basis{margin-top:2rem}.board-basis h2{font-size:clamp(2rem,4vw,3.8rem)}.time-together{background:var(--ivory)}.stay-section .content-card h3{font-family:Cormorant Garamond,serif;font-size:2.3rem;margin-top:0;color:var(--navy)}
@media(max-width:1100px){.hotel-cards{grid-template-columns:repeat(2,1fr)}.comparison{grid-template-columns:repeat(2,1fr)}}
@media(max-width:900px){.hotel-cards,.comparison{grid-template-columns:1fr}.portrait-crop{aspect-ratio:4/5}.travel-advice .cards.three{grid-template-columns:1fr}}
