
:root {
  --cream: #fbf8f2;
  --paper: #fffdf9;
  --ink: #26241f;
  --gold: #bd8d3b;
  --sage: #6f7958;
  --sage-dark: #596346;
  --border: rgba(94, 82, 59, .16);
  --shadow: 0 12px 35px rgba(53, 45, 33, .10);
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  color: var(--ink);
  background: var(--cream);
  font-family: "Montserrat", Arial, sans-serif;
  line-height: 1.6;
}
img { max-width: 100%; display: block; }
a { color: inherit; }
.container { width: min(1120px, calc(100% - 40px)); margin: 0 auto; }
.narrow { width: min(650px, calc(100% - 40px)); margin: 0 auto; }
.section { padding: 70px 0; }
h1, h2, h3 { font-family: "Cormorant Garamond", Georgia, serif; font-weight: 600; }
h2 { margin: 0; text-align: center; font-size: clamp(2.1rem, 4vw, 3.1rem); line-height: 1.05; }
.ornament { display:flex; align-items:center; justify-content:center; gap:10px; color:var(--gold); margin: 12px 0 28px; }
.ornament span { width: 38px; height: 1px; background: var(--gold); opacity: .65; }
.leaf { text-align: center; color: var(--gold); font-size: 2rem; transform: rotate(-12deg); }
.script { font-family: "Parisienne", cursive; font-size: clamp(1.8rem, 4vw, 2.5rem); margin: 20px 0 4px; }
.signature { font-family: "Cormorant Garamond", serif; color: var(--gold); font-size: 1.7rem; margin: 0 0 4px; }
.button {
  display: inline-flex; justify-content: center; align-items: center;
  min-height: 48px; padding: 13px 24px; border: 0; border-radius: 7px;
  background: var(--sage); color: white; text-decoration: none;
  text-transform: uppercase; font-weight: 600; letter-spacing: .02em;
  cursor: pointer; transition: transform .15s ease, background .15s ease;
}
.button:hover, .button:focus-visible { background: var(--sage-dark); transform: translateY(-1px); }
.button--small { min-height: 40px; padding: 10px 16px; font-size: .8rem; }
.hero {
  min-height: 720px; position: relative; display: grid; place-items: center;
  background: url("assets/lieu-reception.jpg") center/cover no-repeat;
  color: white; text-align: center;
}
.hero__overlay { position:absolute; inset:0; background:linear-gradient(rgba(10,12,9,.25),rgba(10,12,9,.48)); }
.hero__content { position:relative; z-index:1; padding: 40px 20px; }
.hero h1 { font-size: clamp(4rem, 9vw, 7.5rem); line-height:.9; margin: 0 0 28px; text-shadow: 0 3px 14px rgba(0,0,0,.45); }
.hero h1 span { color: var(--gold); }
.hero__occasion { font-family:"Cormorant Garamond",serif; font-size:clamp(1.8rem,3.5vw,2.6rem); line-height:1.15; text-transform:uppercase; letter-spacing:.04em; margin:0 0 18px; }
.hero__date { color:#e5b653; font-family:"Cormorant Garamond",serif; font-size:2rem; margin:0; }
.hero__time { font-family:"Cormorant Garamond",serif; font-size:1.8rem; margin:0 0 28px; }
.button--hero { background: rgba(111,121,88,.95); padding-inline: 32px; }
.scroll-cue { position:absolute; z-index:1; bottom:16px; font-size:3rem; text-decoration:none; color:white; line-height:1; }
.welcome { background: radial-gradient(circle at 50% 50%, #fff 0%, var(--cream) 72%); text-align:center; }
.welcome__text { text-align:left; display:inline-block; font-size:1.02rem; }
.wedding-memory { background:#fff; padding-top:45px; }
.container--photo { width:min(900px,calc(100% - 40px)); text-align:center; }
.wedding-memory figure { margin:0; }
.wedding-memory img { width:100%; border-radius:8px; box-shadow:var(--shadow); }
.wedding-memory figcaption { color:var(--gold); font-family:"Cormorant Garamond",serif; font-size:clamp(1.55rem,3vw,2.1rem); margin:16px 0 4px; }
.rsvp { background:linear-gradient(90deg,#f8f2e9,#fff,#f8f2e9); }
.rsvp-card {
  display:grid; grid-template-columns: 34% 66%; background:rgba(255,255,255,.82);
  border:1px solid var(--border); border-radius:18px; box-shadow:var(--shadow); overflow:hidden;
}
.rsvp-card__intro { position:relative; display:grid; place-content:center; text-align:center; padding:50px 30px; }
.rsvp-card__intro h2 { font-size:2.6rem; text-transform:uppercase; }
.botanical { position:absolute; left:-10px; top:15px; color:var(--gold); font-size:8rem; opacity:.55; transform:rotate(-30deg); }
.rsvp-form { padding:44px; display:grid; grid-template-columns:1fr 1fr; gap:24px 30px; }
.field { display:flex; flex-direction:column; gap:8px; }
.field label, .field legend { font-weight:600; font-size:.9rem; }
.field label span { font-weight:400; }
.field input[type=text], .field select, .field textarea {
  width:100%; border:1px solid #d8d5cd; border-radius:5px; background:white; padding:12px; font:inherit;
}
.field textarea { resize:vertical; }
.field small { color:#666; }
.field--radio { border:0; padding:0; margin:0; }
.field--radio label { font-weight:400; }
.form-submit { grid-column:1/-1; text-align:center; }
.hidden { position:absolute; left:-9999px; }
.practical { background:white; }
.info-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:16px; }
.info-card { text-align:center; padding:26px 18px; border:1px solid var(--border); border-radius:8px; background:#fffdf9; }
.info-card .icon { font-size:2.5rem; color:var(--sage); }
.info-card h3 { font-size:1.8rem; text-transform:uppercase; margin:6px 0 10px; }
.info-card p { font-size:.92rem; }
.map-wrap { margin-top:18px; border-radius:8px; overflow:hidden; border:1px solid var(--border); }
.map-wrap iframe { width:100%; height:280px; border:0; display:block; }
.access-note { text-align:center; margin:12px 0 0; color:#57564f; }
.final-tools { padding-top:0; background:white; }
.tools-grid { display:grid; grid-template-columns: 35% 65%; gap:16px; }
.countdown-card, .calendar-card { border:1px solid var(--border); border-radius:8px; padding:32px; text-align:center; background:#fffdf9; }
.countdown-card h2, .calendar-card h2 { font-size:2rem; text-transform:uppercase; }
.countdown { display:flex; align-items:baseline; justify-content:center; gap:10px; }
.countdown strong { font-family:"Cormorant Garamond",serif; font-size:5rem; color:var(--sage); line-height:1; }
.countdown span { text-transform:uppercase; }
.cheers { font-size:2.4rem; }
.calendar-links { display:flex; gap:14px; justify-content:center; flex-wrap:wrap; }
.calendar-button { background:white; border:1px solid var(--border); border-radius:7px; padding:14px 18px; text-decoration:none; font-weight:600; box-shadow:0 3px 10px rgba(0,0,0,.05); }
footer { position:relative; background:var(--sage); color:white; text-align:center; padding:30px 65px; }
footer p { margin:0; }
footer .script { margin-top:4px; }
.back-top { position:absolute; right:22px; bottom:22px; width:44px; height:44px; border:1px solid rgba(255,255,255,.7); border-radius:50%; display:grid; place-items:center; text-decoration:none; font-size:1.4rem; }
@media (max-width: 900px) {
  .hero { min-height: 640px; }
  .rsvp-card { grid-template-columns:1fr; }
  .rsvp-card__intro { padding-bottom:10px; }
  .rsvp-form { padding:28px; }
  .info-grid { grid-template-columns:1fr 1fr; }
  .tools-grid { grid-template-columns:1fr; }
}
@media (max-width: 620px) {
  .section { padding:50px 0; }
  .container, .narrow, .container--photo { width:min(100% - 24px,1120px); }
  .hero { min-height: 610px; background-position:58% center; }
  .hero h1 { font-size:3.8rem; }
  .hero__occasion { font-size:1.5rem; }
  .hero__date, .hero__time { font-size:1.55rem; }
  .welcome__text { font-size:.94rem; }
  .welcome__text br { display:none; }
  .rsvp-form { grid-template-columns:1fr; }
  .form-submit { grid-column:auto; }
  .info-grid { grid-template-columns:1fr; }
  .map-wrap iframe { height:240px; }
  footer { padding-inline:30px; }
}

.thanks-page {
  min-height:100vh; display:grid; place-items:center; padding:30px;
  background:linear-gradient(rgba(20,20,15,.45),rgba(20,20,15,.55)),url("assets/lieu-reception.jpg") center/cover no-repeat;
}
.thanks-card { width:min(640px,100%); background:rgba(255,253,249,.96); border-radius:18px; text-align:center; padding:55px 35px; box-shadow:var(--shadow); }
.thanks-card h1 { font-family:"Cormorant Garamond",serif; font-size:clamp(2.6rem,7vw,4.5rem); margin:0 0 14px; }
