@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Italiana&display=swap');
:root{--sage:#667d69;--sage-dark:#435c48;--cream:#faf9f4;--ivory:#f1f0e8;--ink:#34483a;--muted:#788278;--line:#d9ded4}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;color:var(--ink);background:var(--cream);font-family:'DM Sans',sans-serif;line-height:1.65}a{color:inherit}button,input,select,textarea{font:inherit}.topbar{height:74px;display:flex;justify-content:space-between;align-items:center;padding:0 clamp(20px,6vw,90px);background:var(--cream);position:sticky;top:0;z-index:10;border-bottom:1px solid #e8eae2}.brand{text-decoration:none;font-size:20px;letter-spacing:.19em;font-family:Georgia,serif}.brand span{color:#a9b9a6}.topbar nav{display:flex;gap:clamp(12px,3vw,32px)}.topbar nav a{text-decoration:none;font-size:12px;letter-spacing:.06em;text-transform:uppercase}.topbar nav a:hover,.admin-link:hover{text-decoration:underline}.hero{min-height:680px;padding:45px 20px;display:grid;place-items:center;background:radial-gradient(ellipse at 25% 15%,#e7ebdf 0,transparent 45%),radial-gradient(ellipse at 80% 90%,#d2ddcf 0,transparent 45%),linear-gradient(145deg,#778f7c,#536c5b)}.hero-border{width:min(860px,100%);min-height:585px;border:1px solid #e5e9df8a;outline:1px solid #e5e9df50;outline-offset:9px;text-align:center;display:flex;align-items:center;justify-content:center;flex-direction:column;color:#fffefa;padding:55px 16px}.sprig{font:64px Georgia,serif;line-height:1.2;color:#e4ebde}.eyebrow{font-size:11px;font-weight:700;letter-spacing:.24em;text-transform:uppercase;margin:0 0 20px}.hero h1{font:clamp(68px,12vw,135px)/1.2 'Italiana',Georgia,serif;letter-spacing:-.02em;margin:5px 0}.hero h1 em{font-weight:normal;font-size:.65em;color:#e2eadb}.hero-sub{font-size:12px;letter-spacing:.3em;margin:4px 0 23px}.ornament{opacity:.75;letter-spacing:.22em}.date{font:clamp(24px,4vw,34px) 'Italiana',Georgia,serif;margin:24px 0 8px}.hero-venue{margin:0 0 32px;font-size:15px;letter-spacing:.08em}.button{border:1px solid var(--sage-dark);background:var(--sage-dark);color:white;padding:13px 25px;display:inline-flex;align-items:center;justify-content:center;gap:16px;text-decoration:none;cursor:pointer;letter-spacing:.08em;font-size:12px;font-weight:700;text-transform:uppercase;transition:background .2s}.button:hover{background:#2d4435}.button:disabled{opacity:.6;cursor:wait}.button-light{background:#fcfbf6;color:#465c4a;border-color:#fcfbf6}.button-light:hover{background:#e8ede3}.small-note{font:italic 19px Georgia,serif;margin:32px 0 0}.section{padding:100px 20px;text-align:center}.intro{max-width:700px;margin:auto}.sage{color:var(--sage)}h2{font:clamp(40px,6vw,65px)/1.15 'Italiana',Georgia,serif;font-weight:normal;margin:0 0 26px}.intro>p:not(.eyebrow){color:#6f7a70;max-width:560px;margin:auto}.divider-leaf{font:42px Georgia,serif;margin-top:30px;color:#9dad9d}.details{background:#eff1e9}.detail-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;max-width:1080px;margin:48px auto 0}.detail-card{background:#fafbf6;padding:40px 26px;min-height:270px}.detail-card .card-icon{font:45px Georgia,serif;color:#95aa93}.detail-card h3{font:30px 'Italiana',Georgia,serif;margin:10px 0}.detail-card p{margin:12px 0}.muted{color:var(--muted);font-size:13px}.rsvp-section{background:var(--cream)}.rsvp-wrap{max-width:650px;margin:auto}.rsvp-lead{color:var(--muted);margin:0 auto 36px;max-width:520px}.rsvp-wrap form{text-align:left;background:#fff;padding:clamp(24px,5vw,48px);border:1px solid var(--line);box-shadow:0 12px 45px #354b3810}.field{margin-bottom:24px}.field label,fieldset legend{display:block;font-size:13px;font-weight:700;margin-bottom:9px}.field label span,fieldset legend span{color:#b36a53}input[type=text],input[type=email],input[type=password],select,textarea{background:#fff;border:1px solid #ccd4c9;border-radius:2px;width:100%;padding:12px 13px;color:#324438;outline-offset:3px}textarea{resize:vertical}.field small{display:block;color:var(--muted);font-size:11px;margin-top:7px}.attendance{border:0;padding:0;margin:0 0 23px}.choice{display:flex;align-items:center;gap:10px;border:1px solid var(--line);padding:12px 14px;margin:9px 0;cursor:pointer}.choice input{accent-color:var(--sage-dark)}.privacy-note,.demo-note{font-size:12px;color:#657468}.demo-note{background:#f3eddd;padding:15px;text-align:left;line-height:1.6;margin-top:20px}.status{margin-top:16px;font-size:14px}.status.success{color:#266b42}.status.error{color:#a33424}footer{text-align:center;background:#4b6451;color:#f2f5ec;padding:50px 20px;font-size:12px;letter-spacing:.08em}.footer-names{font:46px 'Italiana',Georgia,serif;margin:0}.footer-names span{font-size:.75em}.footer-mini{opacity:.7}.admin-link{display:inline-block;margin-top:30px;opacity:.65;font-size:11px}.admin-body{background:#f6f8f3}.admin-main{max-width:1180px;margin:0 auto;padding:55px 20px 100px}.admin-heading{text-align:center;margin-bottom:35px}.admin-heading h1{font:60px 'Italiana',Georgia,serif;margin:0}.admin-heading>p:last-child{color:var(--muted)}.login-panel{max-width:430px;margin:20px auto;padding:35px;background:#fff;border:1px solid var(--line)}.login-panel h2{font-size:37px}.admin-actions{display:flex;align-items:center;justify-content:space-between;gap:15px;margin:25px 0;flex-wrap:wrap}.admin-actions span{font-size:12px;color:var(--muted)}.button-outline{background:transparent;color:var(--ink);font-size:11px;padding:10px 14px}.button-outline:hover{color:white}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:15px}.stats article{background:white;padding:24px;border:1px solid var(--line)}.stats span{display:block;color:var(--muted);font-size:12px}.stats strong{font:48px 'Italiana',Georgia,serif}.note{font-size:12px;color:#758277;margin:25px 0}.table-scroll{overflow-x:auto;background:white;border:1px solid var(--line)}.guest-table{width:100%;border-collapse:collapse;min-width:920px;text-align:left;font-size:13px}.guest-table th{background:#e6ebe3;text-transform:uppercase;font-size:10px;letter-spacing:.08em}.guest-table th,.guest-table td{padding:14px;border-bottom:1px solid var(--line);vertical-align:top;max-width:240px;overflow-wrap:anywhere}.empty-state{text-align:center;color:var(--muted);margin:35px}.admin-main>.status{max-width:660px;margin:0 auto 25px;text-align:center}@media(max-width:720px){.topbar{height:63px}.topbar nav{gap:13px}.topbar nav a{font-size:10px}.hero{min-height:630px;padding:33px 23px}.hero-border{min-height:545px;outline-offset:5px}.hero h1{font-size:clamp(57px,13vw,90px)}.eyebrow{font-size:9px}.section{padding:70px 20px}.detail-grid{grid-template-columns:1fr;max-width:430px;gap:13px}.detail-card{min-height:auto;padding:25px}.stats{grid-template-columns:repeat(2,1fr)}.stats article{padding:18px}.stats strong{font-size:38px}}@media(max-width:360px){.topbar nav a{font-size:9px}.brand{font-size:16px}.hero h1{font-size:54px}}
/* Additions for v2: language switch, gallery and venue map (original palette preserved). */
.header-controls{display:flex;align-items:center;gap:clamp(14px,3vw,32px)}
.language-switch{display:flex;align-items:center;gap:4px;border:1px solid var(--line);background:#fff;padding:3px 5px;white-space:nowrap}
.language-switch button{appearance:none;border:0;background:transparent;color:#5b725e;cursor:pointer;padding:5px 6px;font-size:11px;letter-spacing:.07em;font-weight:700}
.language-switch button[aria-pressed="true"]{background:var(--sage-dark);color:white}
.language-switch button:focus-visible,.button:focus-visible,.topbar nav a:focus-visible{outline:3px solid #b6ccad;outline-offset:3px}
.photo-moments{background:#faf9f4}.photos-lead,.directions-lead{max-width:650px;margin:0 auto 40px;color:var(--muted)}
.photo-layout{max-width:1060px;margin:0 auto;display:grid;grid-template-columns:1.2fr 1fr;gap:20px;text-align:left;align-items:stretch}
.photo-card{margin:0}.photo-stack{display:grid;grid-template-columns:1fr 1fr;gap:20px}
.photo-frame{position:relative;overflow:hidden;background:linear-gradient(145deg,#dfe7d9,#bacbb7);height:350px}
.photo-large .photo-frame{height:480px}.photo-stack .photo-frame{height:480px}
.photo-frame img{width:100%;height:100%;object-fit:cover;display:none}
.photo-frame.has-photo img{display:block}.photo-frame.has-photo .photo-fallback{display:none}
.photo-fallback{height:100%;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;gap:15px;padding:24px;color:#4f6a51;font:italic clamp(15px,2vw,20px) Georgia,serif}
.photo-motif{font:clamp(42px,6vw,75px) Georgia,serif;opacity:.55;line-height:1}
.photo-card figcaption{font:italic 16px Georgia,serif;color:#637764;text-align:center;margin-top:16px}
.directions{background:#faf9f4}.venue-address{font-size:15px;line-height:1.8;margin:0 auto 30px}
.map-shell{max-width:1000px;margin:0 auto;border:8px solid #e8ede5;box-shadow:0 12px 35px #354b3812;background:#e4e9e0}
.map-shell iframe{display:block;border:0;width:100%;height:420px}
.direction-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:12px;margin-top:28px}
.map-note{font-size:12px;color:var(--muted);margin:22px auto 0;max-width:650px}
@media(max-width:960px){.photo-layout{grid-template-columns:1fr;max-width:650px}.photo-large .photo-frame{height:380px}.photo-stack .photo-frame{height:320px}}
@media(max-width:720px){.topbar{padding:0 14px}.header-controls{gap:8px}.topbar nav{gap:10px}.topbar nav a{font-size:9px}.language-switch{gap:1px;padding:2px}.language-switch button{font-size:10px;padding:4px}.photo-stack{gap:12px}.photo-large .photo-frame{height:320px}.photo-stack .photo-frame{height:240px}.map-shell iframe{height:320px}.direction-actions{flex-direction:column;align-items:stretch;max-width:345px;margin:25px auto 0}.direction-actions .button{width:100%}}
@media(max-width:420px){.topbar nav a[href="#details"]{display:none}.brand{font-size:17px}.topbar nav{gap:9px}.header-controls{gap:5px}.topbar nav a{font-size:9px}.photo-stack .photo-frame{height:200px}}
