/* =========================================================
   SOPHIE & DRAVEN — MULTI-PAGE STYLES
   ========================================================= */

.page-hero {
  min-height: 48vh;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  padding: 120px 24px 80px;
  background:
    linear-gradient(rgba(247, 248, 246, 0.78), rgba(234, 241, 242, 0.9)),
    radial-gradient(circle at 20% 20%, rgba(255,255,255,.9), transparent 35%),
    radial-gradient(circle at 80% 70%, rgba(213,226,229,.7), transparent 40%);
}

.page-hero-inner {
  max-width: 850px;
}

.page-eyebrow {
  font-family: "DM Sans", sans-serif;
  font-size: 0.72rem;
  letter-spacing: 0.22em;
  color: var(--cranberry);
  margin-bottom: 18px;
  text-transform: uppercase;
}

.page-title {
  font-family: "Cormorant Garamond", serif;
  font-size: clamp(3.2rem, 8vw, 6.5rem);
  line-height: .9;
  font-weight: 500;
  color: var(--pine);
  margin: 0 0 24px;
}

.page-subtitle {
  max-width: 650px;
  margin: 0 auto;
  font-family: "Cormorant Garamond", serif;
  font-size: 1.35rem;
  line-height: 1.6;
  color: var(--muted);
}

.page-content {
  max-width: 1100px;
  margin: 0 auto;
  padding: 90px 24px;
}

.page-section {
  margin-bottom: 90px;
}

.page-section:last-child {
  margin-bottom: 0;
}

.section-kicker {
  font-family: "DM Sans", sans-serif;
  text-transform: uppercase;
  letter-spacing: .18em;
  font-size: .7rem;
  color: var(--cranberry);
  margin-bottom: 12px;
}

.section-title {
  font-family: "Cormorant Garamond", serif;
  color: var(--pine);
  font-size: clamp(2.2rem, 5vw, 3.5rem);
  font-weight: 500;
  margin: 0 0 20px;
}

.page-text {
  max-width: 750px;
  font-family: "DM Sans", sans-serif;
  color: var(--text);
  line-height: 1.9;
  font-size: .98rem;
}

.page-text + .page-text {
  margin-top: 18px;
}

/* -----------------------------------------
   PAGE CARDS
   ----------------------------------------- */

.page-card-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 24px;
}

.page-card {
  display: block;
  padding: 42px 34px;
  background: rgba(255,255,255,.7);
  border: 1px solid rgba(54,86,79,.14);
  text-decoration: none;
  transition: transform .3s ease, box-shadow .3s ease, background .3s ease;
}

.page-card:hover {
  transform: translateY(-5px);
  background: white;
  box-shadow: 0 18px 45px rgba(31,57,50,.1);
}

.page-card-number {
  font-family: "Cormorant Garamond", serif;
  font-size: 1.2rem;
  color: var(--cranberry);
}

.page-card h3 {
  font-family: "Cormorant Garamond", serif;
  color: var(--pine);
  font-size: 2rem;
  font-weight: 500;
  margin: 14px 0 8px;
}

.page-card p {
  font-family: "DM Sans", sans-serif;
  color: var(--muted);
  line-height: 1.7;
  margin: 0;
}

.page-link {
  display: inline-block;
  margin-top: 20px;
  font-family: "DM Sans", sans-serif;
  font-size: .72rem;
  text-transform: uppercase;
  letter-spacing: .15em;
  color: var(--cranberry);
}

/* -----------------------------------------
   STORY TIMELINE
   ----------------------------------------- */

.timeline {
  max-width: 800px;
  margin: 50px auto 0;
  position: relative;
}

.timeline::before {
  content: "";
  position: absolute;
  left: 50%;
  top: 0;
  bottom: 0;
  width: 1px;
  background: var(--ice-blue);
}

.timeline-item {
  width: 50%;
  padding: 0 45px 65px;
  position: relative;
}

.timeline-item:nth-child(even) {
  margin-left: 50%;
}

.timeline-item::before {
  content: "♥";
  position: absolute;
  top: 0;
  width: 30px;
  height: 30px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--ivory);
  color: var(--cranberry);
  font-size: .7rem;
}

.timeline-item:nth-child(odd)::before {
  right: -15px;
}

.timeline-item:nth-child(even)::before {
  left: -15px;
}

.timeline-year {
  font-family: "DM Sans", sans-serif;
  font-size: .7rem;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: var(--cranberry);
}

.timeline-item h3 {
  font-family: "Cormorant Garamond", serif;
  font-size: 2rem;
  font-weight: 500;
  color: var(--pine);
  margin: 8px 0;
}

.timeline-item p {
  font-family: "DM Sans", sans-serif;
  color: var(--muted);
  line-height: 1.7;
}

/* -----------------------------------------
   DETAILS
   ----------------------------------------- */

.detail-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 25px;
}

.detail-box {
  padding: 38px;
  background: var(--winter);
  border: 1px solid rgba(54,86,79,.1);
}

.detail-box h3 {
  font-family: "Cormorant Garamond", serif;
  color: var(--pine);
  font-size: 2rem;
  font-weight: 500;
  margin: 0 0 12px;
}

.detail-box p {
  font-family: "DM Sans", sans-serif;
  color: var(--muted);
  line-height: 1.7;
  margin: 5px 0;
}

/* -----------------------------------------
   TRAVEL
   ----------------------------------------- */

.travel-card {
  padding: 45px;
  background: linear-gradient(135deg, var(--ivory), var(--winter));
  border: 1px solid rgba(54,86,79,.1);
  margin-bottom: 24px;
}

.travel-card h3 {
  font-family: "Cormorant Garamond", serif;
  color: var(--pine);
  font-size: 2.2rem;
  font-weight: 500;
  margin: 0 0 15px;
}

/* -----------------------------------------
   PHOTO GALLERY
   ----------------------------------------- */

.photo-intro {
  text-align: center;
  max-width: 700px;
  margin: 0 auto 60px;
}

.photo-gallery {
  columns: 3 250px;
  column-gap: 18px;
}

.photo-item {
  break-inside: avoid;
  margin-bottom: 18px;
  position: relative;
  overflow: hidden;
  background: var(--winter);
}

.photo-item img {
  width: 100%;
  display: block;
  transition: transform .5s ease;
}

.photo-item:hover img {
  transform: scale(1.035);
}

.photo-placeholder {
  min-height: 320px;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  padding: 30px;
  background:
    linear-gradient(135deg, var(--winter), var(--ice));
  color: var(--spruce);
  font-family: "Cormorant Garamond", serif;
  font-size: 1.5rem;
}

.photo-caption {
  padding: 13px 15px;
  background: rgba(252,250,247,.96);
  font-family: "DM Sans", sans-serif;
  font-size: .75rem;
  color: var(--muted);
}

/* -----------------------------------------
   REGISTRY
   ----------------------------------------- */

.registry-box {
  max-width: 700px;
  margin: 0 auto;
  padding: 60px 40px;
  text-align: center;
  background: var(--winter);
  border: 1px solid rgba(54,86,79,.12);
}

.registry-heart {
  color: var(--cranberry);
  font-size: 1.2rem;
  margin-bottom: 18px;
}

.registry-box h2 {
  font-family: "Cormorant Garamond", serif;
  color: var(--pine);
  font-size: 3rem;
  font-weight: 500;
  margin: 0 0 18px;
}

.registry-box p {
  font-family: "DM Sans", sans-serif;
  color: var(--muted);
  line-height: 1.8;
}

/* -----------------------------------------
   RSVP
   ----------------------------------------- */

.rsvp-box {
  max-width: 750px;
  margin: 0 auto;
  padding: 70px 40px;
  text-align: center;
  background: linear-gradient(145deg, var(--ivory), var(--winter));
  border: 1px solid rgba(54,86,79,.12);
}

.rsvp-box h2 {
  font-family: "Cormorant Garamond", serif;
  font-size: 3.2rem;
  font-weight: 500;
  color: var(--pine);
  margin: 0 0 20px;
}

.rsvp-box p {
  font-family: "DM Sans", sans-serif;
  color: var(--muted);
  line-height: 1.8;
}

/* -----------------------------------------
   BUTTON
   ----------------------------------------- */

.elegant-button {
  display: inline-block;
  padding: 14px 25px;
  margin-top: 20px;
  border: 1px solid var(--pine);
  color: var(--pine);
  text-decoration: none;
  font-family: "DM Sans", sans-serif;
  font-size: .7rem;
  letter-spacing: .16em;
  text-transform: uppercase;
  transition: all .3s ease;
}

.elegant-button:hover {
  background: var(--pine);
  color: white;
}

/* -----------------------------------------
   MOBILE
   ----------------------------------------- */

@media (max-width: 700px) {

  .page-hero {
    min-height: 42vh;
    padding: 100px 20px 60px;
  }

  .page-content {
    padding: 65px 20px;
  }

  .page-card-grid,
  .detail-grid {
    grid-template-columns: 1fr;
  }

  .timeline::before {
    left: 10px;
  }

  .timeline-item,
  .timeline-item:nth-child(even) {
    width: 100%;
    margin-left: 0;
    padding-left: 45px;
    padding-right: 10px;
  }

  .timeline-item:nth-child(odd)::before,
  .timeline-item:nth-child(even)::before {
    left: -5px;
    right: auto;
  }

  .photo-gallery {
    columns: 2 140px;
    column-gap: 10px;
  }

  .photo-item {
    margin-bottom: 10px;
  }

  .photo-placeholder {
    min-height: 220px;
  }

  .travel-card,
  .registry-box,
  .rsvp-box {
    padding: 40px 25px;
  }
}

/* ================================
   NEW WEDDING DETAILS PAGE
   ================================ */

.details-page-hero {
  min-height: 430px;
  padding: 0 25px 75px;
  background: linear-gradient(135deg, #1f3932, #36564f);
  color: white;
  text-align: center;
}

.details-page-nav {
  max-width: 1150px;
  margin: auto;
  padding: 28px 0;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 20px;
  border-bottom: 1px solid rgba(255,255,255,.25);
}

.details-page-logo {
  color: white;
  font-family: "Playfair Display", serif;
  font-size: 24px;
  text-decoration: none;
}

.details-page-links {
  display: flex;
  flex-wrap: wrap;
  gap: 23px;
}

.details-page-links a {
  color: white;
  text-decoration: none;
  font-size: 11px;
  letter-spacing: 1px;
  text-transform: uppercase;
}

.details-page-heading {
  padding-top: 85px;
}

.details-page-heading h1 {
  color: white;
  font-size: clamp(3.2rem, 7vw, 5.5rem);
  margin: 12px 0;
}

.details-page-heading .eyebrow {
  color: #d5e2e5;
}

.details-page-heading > p:last-child {
  font-size: 13px;
  letter-spacing: 2px;
}

.details-page-flourish {
  color: #d5e2e5;
  margin: 20px 0;
  font-size: 20px;
  letter-spacing: 12px;
}

/* INTRODUCTION */

.details-page-intro {
  padding: 95px 20px;
  text-align: center;
  background: #fcfaf7;
}

.details-page-intro h2,
.details-page-section-heading h2,
.details-page-dress h2 {
  font-size: clamp(2.5rem, 5vw, 3.8rem);
}

.details-page-intro > p:not(.eyebrow) {
  max-width: 630px;
  margin: 20px auto;
  color: #66716f;
}

.details-page-ornament {
  color: #874452;
  font-size: 25px;
  margin-top: 30px;
}

/* VENUE */

.details-page-venue {
  padding: 90px 20px;
  background: #eaf1f2;
}

.details-page-section-heading {
  text-align: center;
  max-width: 650px;
  margin: 0 auto 45px;
}

.details-page-venue-card {
  max-width: 740px;
  margin: auto;
  padding: 65px 25px;
  background: white;
  border: 1px solid #d5e2e5;
  text-align: center;
  box-shadow: 0 15px 40px rgba(31,57,50,.06);
}

.details-page-venue-card h3 {
  font-size: clamp(1.7rem, 4vw, 2.3rem);
  margin: 10px 0;
}

.details-page-icon {
  color: #874452;
  font-size: 28px;
  margin-bottom: 25px;
}

.details-page-line {
  width: 70px;
  height: 1px;
  background: #b7aa9d;
  margin: 35px auto;
}

.details-page-button {
  display: inline-block;
  padding: 13px 28px;
  margin-top: 28px;
  color: white;
  background: #1f3932;
  text-decoration: none;
  font-size: 11px;
  letter-spacing: 1.5px;
}

.details-page-note {
  font-size: 12px;
  color: #66716f;
  margin-top: 24px;
  font-style: italic;
}

/* WEDDING DAY TIMELINE */

.details-page-schedule {
  padding: 100px 20px;
  background: #fcfaf7;
}

.details-page-timeline {
  max-width: 660px;
  margin: auto;
  border-left: 1px solid #b7aa9d;
  padding-left: 35px;
}

.details-page-event {
  position: relative;
  display: flex;
  gap: 25px;
  padding-bottom: 48px;
}

.details-page-event:last-child {
  padding-bottom: 0;
}

.details-page-event-symbol {
  position: absolute;
  left: -49px;
  top: 0;
  background: #fcfaf7;
  color: #874452;
  font-size: 22px;
  width: 27px;
  text-align: center;
}

.details-page-event h3 {
  font-size: 24px;
  margin: 0 0 12px;
}

.details-page-event p {
  color: #66716f;
  margin: 0;
}

/* DRESS CODE */

.details-page-dress {
  padding: 90px 20px;
  background: #1f3932;
  color: white;
  text-align: center;
}

.details-page-dress-inner {
  max-width: 650px;
  margin: auto;
}

.details-page-dress h2 {
  color: white;
}

.details-page-dress .eyebrow,
.details-page-dress .details-page-note {
  color: #d5e2e5;
}

.details-page-dress p {
  color: #eaf1f2;
}

/* EXTRA INFORMATION */

.details-page-extra {
  padding: 100px 20px;
  background: #f7f8f6;
}

.details-page-extra-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  max-width: 1100px;
  margin: auto;
  gap: 22px;
}

.details-page-extra-card {
  padding: 40px 28px;
  background: white;
  border: 1px solid #d5e2e5;
  text-align: center;
}

.details-page-extra-card span {
  font-size: 25px;
  color: #874452;
}

.details-page-extra-card h3 {
  font-size: 24px;
  margin: 15px 0;
}

.details-page-extra-card p {
  color: #66716f;
  font-size: 14px;
}

.details-page-extra-card a {
  display: inline-block;
  margin-top: 15px;
  color: #1f3932;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 1px;
  text-decoration: none;
}

/* FOOTER */

.details-page-footer {
  background: #1f3932;
  color: #eaf1f2;
  text-align: center;
  padding: 50px 20px;
}

.details-page-footer-names {
  font-family: "Playfair Display", serif;
  font-size: 28px;
  color: white;
}

.details-page-footer > span {
  display: block;
  margin: 15px;
  color: #d5e2e5;
}

.details-page-footer > a {
  color: white;
  font-size: 11px;
  letter-spacing: 1.5px;
  text-decoration: none;
}

/* IPHONE COMPATIBILITY */

@media (max-width: 768px) {
  .details-page-hero {
    min-height: 380px;
    padding: 0 18px 55px;
  }

  .details-page-nav {
    flex-direction: column;
    gap: 18px;
  }

  .details-page-links {
    justify-content: center;
    gap: 12px 18px;
  }

  .details-page-links a {
    font-size: 10px;
  }

  .details-page-heading {
    padding-top: 60px;
  }

  .details-page-intro,
  .details-page-venue,
  .details-page-schedule,
  .details-page-extra {
    padding: 65px 18px;
  }

  .details-page-venue-card {
    padding: 45px 20px;
  }

  .details-page-extra-grid {
    grid-template-columns: 1fr;
  }

  .details-page-timeline {
    padding-left: 28px;
  }

  .details-page-event-symbol {
    left: -42px;
  }
}

/* Consistent decorative snowflakes across devices */

.winter-snowflake {
  display: inline-block;
  width: 24px;
  height: 24px;
  vertical-align: middle;
  background-color: currentColor;
  -webkit-mask: url("snowflake.svg") center / contain no-repeat;
  mask: url("snowflake.svg") center / contain no-repeat;
}

.winter-snowflake.small {
  width: 16px;
  height: 16px;
}

.winter-snowflake.large {
  width: 36px;
  height: 36px;
}

/* ==========================================
   OUR STORY — WINTER EDITORIAL DESIGN
   ========================================== */

.story-page {
  background: #fcfaf7;
  color: #293331;
  font-family: "DM Sans", sans-serif;
}

/* NAVIGATION */

.story-page .story-header {
  background: #1f3932;
}

.story-page .story-nav {
  max-width: 1180px;
  margin: auto;
  padding: 25px 24px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 24px;
}

.story-page .story-logo {
  font-family: "Cormorant Garamond", serif;
  font-size: 30px;
  color: white;
  text-decoration: none;
}

.story-page .story-nav-links {
  display: flex;
  flex-wrap: wrap;
  gap: 22px;
}

.story-page .story-nav-links a {
  color: #eaf1f2;
  text-decoration: none;
  font-size: 11px;
  letter-spacing: 1.2px;
  text-transform: uppercase;
}

.story-page .story-nav-links a:hover {
  color: #afc7cc;
}

/* HERO */

.story-page .story-hero {
  min-height: 520px;
  display: flex;
  justify-content: center;
  align-items: center;
  padding: 95px 24px;
  text-align: center;
  background:
    linear-gradient(135deg, #1f3932, #36564f);
  color: white;
}

.story-page .story-hero-content {
  max-width: 800px;
}

.story-page .story-eyebrow {
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 3px;
  color: #874452;
  margin-bottom: 18px;
}

.story-page .story-hero .story-eyebrow,
.story-page .story-closing .story-eyebrow {
  color: #d5e2e5;
}

.story-page .story-hero h1 {
  font-family: "Cormorant Garamond", serif;
  font-size: clamp(4.5rem, 10vw, 8rem);
  font-weight: 400;
  line-height: 1;
  margin: 0;
  color: white;
}

.story-page .story-divider {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 14px;
  margin: 30px auto;
}

.story-page .story-divider span:not(.story-diamond) {
  width: 60px;
  height: 1px;
  background: #afc7cc;
}

.story-page .story-diamond {
  width: 8px;
  height: 8px;
  background: #d5e2e5;
  transform: rotate(45deg);
}

.story-page .story-divider.dark span:not(.story-diamond) {
  background: #b7aa9d;
}

.story-page .story-divider.dark .story-diamond {
  background: #874452;
}

.story-page .story-hero-subtitle {
  font-family: "Cormorant Garamond", serif;
  font-size: clamp(1.4rem, 3vw, 1.9rem);
  line-height: 1.5;
  color: #eaf1f2;
  max-width: 560px;
  margin: auto;
}

.story-page .story-hero-date {
  font-size: 11px;
  letter-spacing: 3px;
  margin-top: 35px;
  color: #d5e2e5;
}

/* INTRODUCTION */

.story-page .story-intro {
  padding: 110px 24px;
  background: #fcfaf7;
  text-align: center;
}

.story-page .story-intro-inner {
  max-width: 850px;
  margin: auto;
}

.story-page .story-intro h2,
.story-page .story-section-heading h2,
.story-page .story-gallery-preview h2,
.story-page .story-closing h2 {
  font-family: "Cormorant Garamond", serif;
  font-size: clamp(2.8rem, 6vw, 4.5rem);
  font-weight: 500;
  line-height: 1.1;
  color: #1f3932;
  margin: 10px 0;
}

.story-page .story-lead {
  font-family: "Cormorant Garamond", serif;
  font-size: 1.65rem;
  color: #36564f;
  margin: 30px auto;
}

.story-page .story-letter {
  text-align: left;
  padding: 55px;
  background: white;
  border: 1px solid #e5e7e2;
  box-shadow: 0 15px 45px rgba(31,57,50,.05);
}

.story-page .story-letter p {
  font-size: 15px;
  line-height: 2;
  color: #4e5956;
  margin-bottom: 22px;
}

.story-page .story-letter-ending {
  font-family: "Cormorant Garamond", serif;
  font-size: 25px !important;
  font-style: italic;
  color: #874452 !important;
  text-align: center;
  margin-top: 35px;
}

/* FEATURED MEMORY */

.story-page .story-memory-feature {
  padding: 100px 24px;
  background: #eaf1f2;
}

.story-page .story-memory-inner {
  max-width: 1100px;
  margin: auto;
  display: grid;
  grid-template-columns: 1fr 1fr;
  align-items: center;
  gap: 70px;
}

.story-page .story-photo-placeholder {
  min-height: 470px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  padding: 30px;
  background:
    linear-gradient(135deg, #d5e2e5, #afc7cc);
  border: 12px solid white;
  box-shadow: 0 18px 40px rgba(31,57,50,.1);
}

.story-page .story-photo-placeholder span {
  font-size: 12px;
  letter-spacing: 2px;
  color: #36564f;
}

.story-page .story-photo-placeholder p {
  font-family: "Cormorant Garamond", serif;
  font-size: 25px;
  color: #36564f;
  margin-top: 12px;
}

.story-page .story-memory-text h2 {
  font-family: "Cormorant Garamond", serif;
  font-size: clamp(2.8rem, 5vw, 4rem);
  color: #1f3932;
  line-height: 1.1;
}

.story-page .story-memory-text > p:not(.story-eyebrow) {
  color: #66716f;
  line-height: 1.9;
  margin-top: 20px;
}

/* BUTTON */

.story-page .story-button {
  display: inline-block;
  margin-top: 25px;
  padding: 14px 30px;
  background: #1f3932;
  color: white;
  font-size: 11px;
  letter-spacing: 2px;
  text-decoration: none;
  transition: background .3s ease;
}

.story-page .story-button:hover {
  background: #36564f;
}

/* TIMELINE */

.story-page .story-timeline-section {
  padding: 110px 24px;
  background: #fcfaf7;
}

.story-page .story-section-heading {
  text-align: center;
  margin-bottom: 70px;
}

.story-page .story-section-heading > p:last-child {
  color: #66716f;
}

.story-page .story-timeline {
  max-width: 750px;
  margin: auto;
  border-left: 1px solid #b7aa9d;
  padding-left: 45px;
}

.story-page .story-timeline-item {
  position: relative;
  padding-bottom: 60px;
}

.story-page .story-timeline-item:last-child {
  padding-bottom: 0;
}

.story-page .story-timeline-dot {
  position: absolute;
  left: -53px;
  top: 7px;
  width: 15px;
  height: 15px;
  background: #874452;
  border: 4px solid #fcfaf7;
  border-radius: 50%;
  box-shadow: 0 0 0 1px #874452;
}

.story-page .story-timeline-date {
  color: #874452;
  font-size: 11px;
  letter-spacing: 2px;
  font-weight: 600;
}

.story-page .story-timeline-content h3 {
  font-family: "Cormorant Garamond", serif;
  font-size: 32px;
  font-weight: 500;
  color: #1f3932;
  margin: 8px 0 15px;
}

.story-page .story-timeline-content p:last-child {
  color: #66716f;
  line-height: 1.9;
}

/* PHOTO PREVIEW */

.story-page .story-gallery-preview {
  padding: 110px 24px;
  background: #eaf1f2;
  text-align: center;
}

.story-page .story-gallery-preview > p:not(.story-eyebrow) {
  color: #66716f;
}

.story-page .story-gallery-grid {
  max-width: 1100px;
  margin: 50px auto 25px;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 20px;
}

.story-page .story-gallery-placeholder {
  min-height: 300px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: #d5e2e5;
  border: 8px solid white;
  color: #36564f;
  font-size: 11px;
  letter-spacing: 2px;
}

/* CLOSING */

.story-page .story-closing {
  padding: 110px 24px;
  text-align: center;
  background: #1f3932;
}

.story-page .story-closing h2 {
  color: white;
}

.story-page .story-closing > p:not(.story-eyebrow) {
  color: #d5e2e5;
}

.story-page .story-closing-link {
  display: inline-block;
  margin-top: 25px;
  color: white;
  text-decoration: none;
  font-size: 11px;
  letter-spacing: 2px;
  border-bottom: 1px solid #afc7cc;
  padding-bottom: 8px;
}

/* FOOTER */

.story-page .story-footer {
  background: #172e29;
  padding: 45px 20px;
  text-align: center;
  color: #d5e2e5;
}

.story-page .story-footer-names {
  font-family: "Cormorant Garamond", serif;
  font-size: 30px;
  color: white;
}

.story-page .story-footer a {
  display: inline-block;
  margin-top: 15px;
  color: white;
  font-size: 11px;
  letter-spacing: 2px;
  text-decoration: none;
}

/* IPHONE / MOBILE */

@media (max-width: 768px) {

  .story-page .story-nav {
    flex-direction: column;
    gap: 20px;
  }

  .story-page .story-nav-links {
    justify-content: center;
    gap: 12px 16px;
  }

  .story-page .story-nav-links a {
    font-size: 10px;
  }

  .story-page .story-hero {
    min-height: 400px;
    padding: 70px 20px;
  }

  .story-page .story-intro,
  .story-page .story-memory-feature,
  .story-page .story-timeline-section,
  .story-page .story-gallery-preview,
  .story-page .story-closing {
    padding: 70px 20px;
  }

  .story-page .story-letter {
    padding: 30px 24px;
  }

  .story-page .story-memory-inner {
    grid-template-columns: 1fr;
    gap: 40px;
  }

  .story-page .story-photo-placeholder {
    min-height: 350px;
  }

  .story-page .story-timeline {
    padding-left: 30px;
  }

  .story-page .story-timeline-dot {
    left: -38px;
  }

  .story-page .story-gallery-grid {
    grid-template-columns: 1fr;
  }

  .story-page .story-gallery-placeholder {
    min-height: 250px;
  }
}

/* =========================================
   SOPHIE & DRAVEN — RSVP PAGE
   ========================================= */

.rsvp-page-content {
  background: #f7f8f6;
  padding: 65px 20px 85px;
}

.rsvp-welcome {
  max-width: 650px;
  margin: 0 auto 45px;
  text-align: center;
}

.rsvp-heart {
  display: block;
  color: #874452;
  font-size: 18px;
  margin-bottom: 15px;
}

.rsvp-welcome h2,
.rsvp-form-heading h2 {
  font-family: "Cormorant Garamond", Georgia, serif;
  font-size: clamp(38px, 6vw, 54px);
  font-weight: 500;
  color: #1f3932;
  margin: 0 0 18px;
}

.rsvp-welcome p,
.rsvp-form-heading p {
  color: #66716f;
  line-height: 1.9;
  font-size: 15px;
}

.rsvp-notes {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 22px;
  max-width: 1000px;
  margin: 0 auto 65px;
}

.rsvp-note-card {
  padding: 35px 30px;
  background: #ffffff;
  border: 1px solid #d5e2e5;
  border-radius: 5px;
  text-align: center;
}

.rsvp-note-icon {
  display: block;
  font-size: 25px;
  color: #874452;
  margin-bottom: 12px;
}

.rsvp-note-card h3 {
  font-family: "Cormorant Garamond", Georgia, serif;
  font-size: 29px;
  font-weight: 500;
  color: #1f3932;
  margin: 0 0 15px;
}

.rsvp-note-card p {
  font-size: 14px;
  line-height: 1.9;
  color: #66716f;
  margin: 0 0 12px;
}

.rsvp-note-card p:last-child {
  margin-bottom: 0;
}

.rsvp-form-heading {
  max-width: 650px;
  margin: 0 auto 30px;
  text-align: center;
}

.rsvp-google-form {
  max-width: 760px;
  margin: 0 auto;
  border: 1px solid #d5e2e5;
  border-radius: 8px;
  overflow: hidden;
  background: #ffffff;
}

.rsvp-google-form iframe {
  display: block;
  width: 100%;
  height: 1450px;
  border: none;
}

.rsvp-closing {
  margin: 35px auto 0;
  text-align: center;
  color: #36564f;
  font-family: "Cormorant Garamond", Georgia, serif;
  font-size: 24px;
  font-style: italic;
}

/* iPhone and smaller screens */
@media screen and (max-width: 700px) {

  .rsvp-page-content {
    padding: 45px 12px 65px;
  }

  .rsvp-notes {
    grid-template-columns: 1fr;
    gap: 16px;
    margin-bottom: 50px;
  }

  .rsvp-note-card {
    padding: 28px 20px;
  }

  .rsvp-google-form iframe {
    height: 1650px;
  }

  .rsvp-welcome h2,
  .rsvp-form-heading h2 {
    font-size: 40px;
  }
}

/* =====================================
   ELEGANT WEDDING NAVIGATION
   ===================================== */

body > header {
  background: #203b33;
  padding: 0 5%;
  position: relative;
  z-index: 100;
}

body > header nav {
  max-width: 1250px;
  margin: 0 auto;
  min-height: 85px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 30px;
}

body > header nav > a {
  font-family: "Cormorant Garamond", Georgia, serif;
  font-size: 32px;
  color: #f7f4ed;
  text-decoration: none;
  letter-spacing: 3px;
  white-space: nowrap;
}

body > header nav > div {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 28px;
  flex-wrap: wrap;
}

body > header nav > div a {
  font-family: "DM Sans", sans-serif;
  font-size: 12px;
  font-weight: 500;
  letter-spacing: 1px;
  color: #f7f4ed;
  text-decoration: none;
  transition: color 0.2s ease;
}

body > header nav > div a:hover {
  color: #d8aab5;
}

body > header nav > div a[href="rsvp.html"] {
  border: 1px solid #d8aab5;
  border-radius: 2px;
  padding: 10px 17px;
  color: #f7f4ed;
}

/* MOBILE NAVIGATION */

@media (max-width: 800px) {

  body > header {
    padding: 18px 15px;
  }

  body > header nav {
    flex-direction: column;
    min-height: auto;
    gap: 15px;
  }

  body > header nav > div {
    justify-content: center;
    gap: 12px 18px;
  }

  body > header nav > div a {
    font-size: 11px;
  }

}

/* =====================================
   SOPHIE & DRAVEN — RSVP FOOTER
   ===================================== */

footer.rsvp-footer {
  background: #203b33;
  color: #f7f4ed;
  padding: 65px 20px 30px;
  text-align: center;
}

.rsvp-footer-inner {
  max-width: 800px;
  margin: 0 auto;
}

.rsvp-footer-monogram {
  font-family: "Cormorant Garamond", Georgia, serif;
  font-size: 46px;
  font-weight: 500;
  letter-spacing: 5px;
  color: #f7f4ed;
}

.rsvp-footer-monogram span {
  color: #d8aab5;
  font-style: italic;
}

.rsvp-footer-heart {
  color: #d8aab5;
  font-size: 13px;
  margin: 15px 0 20px;
}

.rsvp-footer-date {
  font-family: "DM Sans", sans-serif;
  font-size: 11px;
  letter-spacing: 3px;
  color: #e6e9e3;
  margin: 0 0 10px;
}

.rsvp-footer-location {
  font-family: "Cormorant Garamond", Georgia, serif;
  font-size: 23px;
  color: #e6e9e3;
  margin: 0 0 28px;
}

.rsvp-footer-link {
  display: inline-block;
  font-family: "DM Sans", sans-serif;
  font-size: 12px;
  letter-spacing: 1px;
  color: #f7f4ed;
  text-decoration: none;
  border-bottom: 1px solid #d8aab5;
  padding-bottom: 6px;
  transition: color 0.2s ease;
}

.rsvp-footer-link:hover {
  color: #d8aab5;
}

.rsvp-footer-bottom {
  margin: 55px 0 0;
  padding-top: 20px;
  border-top: 1px solid rgba(247, 244, 237, 0.18);
  font-family: "DM Sans", sans-serif;
  font-size: 11px;
  letter-spacing: 0.5px;
  color: #b9c8bf;
}

/* Mobile footer */

@media (max-width: 600px) {
  footer.rsvp-footer {
    padding: 50px 20px 25px;
  }

  .rsvp-footer-monogram {
    font-size: 40px;
  }

  .rsvp-footer-bottom {
    margin-top: 40px;
  }
}

/* RSVP FOOTER — FIX */

body footer.rsvp-footer {
  display: block;
  width: 100%;
  box-sizing: border-box;
  background-color: #203b33;
  color: #f7f4ed;
  text-align: center;
  padding: 65px 20px 30px;
}

body footer.rsvp-footer .rsvp-footer-inner {
  max-width: 800px;
  margin: 0 auto;
  text-align: center;
}

body footer.rsvp-footer .rsvp-footer-monogram {
  font-family: "Cormorant Garamond", Georgia, serif;
  font-size: 46px;
  color: #f7f4ed;
  letter-spacing: 5px;
}

body footer.rsvp-footer .rsvp-footer-monogram span,
body footer.rsvp-footer .rsvp-footer-heart {
  color: #d8aab5;
}

body footer.rsvp-footer .rsvp-footer-heart {
  margin: 15px 0 20px;
  font-size: 14px;
}

body footer.rsvp-footer .rsvp-footer-date {
  font-family: "DM Sans", sans-serif;
  font-size: 11px;
  letter-spacing: 3px;
  color: #e6e9e3;
  margin-bottom: 10px;
}

body footer.rsvp-footer .rsvp-footer-location {
  font-family: "Cormorant Garamond", Georgia, serif;
  font-size: 23px;
  color: #e6e9e3;
  margin-bottom: 28px;
}

body footer.rsvp-footer .rsvp-footer-link {
  display: inline-block;
  color: #f7f4ed;
  text-decoration: none;
  font-size: 12px;
  letter-spacing: 1px;
  border-bottom: 1px solid #d8aab5;
  padding-bottom: 6px;
}

body footer.rsvp-footer .rsvp-footer-bottom {
  margin-top: 55px;
  padding-top: 20px;
  border-top: 1px solid rgba(247, 244, 237, 0.18);
  font-size: 11px;
  color: #b9c8bf;
}

/* =====================================
   SOPHIE & DRAVEN — TRAVEL PAGE
   ===================================== */

.travel-page {
  background: #f7f8f6;
  padding: 70px 20px 85px;
}

.travel-intro {
  max-width: 650px;
  margin: 0 auto 65px;
  text-align: center;
}

.travel-heart {
  display: block;
  color: #874452;
  font-size: 18px;
  margin-bottom: 18px;
}

.travel-intro h2,
.travel-explore h2 {
  font-family: "Cormorant Garamond", Georgia, serif;
  font-size: clamp(40px, 6vw, 55px);
  font-weight: 500;
  color: #203b33;
  margin: 15px 0 22px;
}

.travel-intro p,
.travel-explore p {
  font-family: "DM Sans", sans-serif;
  font-size: 15px;
  line-height: 1.9;
  color: #66716f;
  margin-bottom: 15px;
}

.travel-info-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 24px;
  max-width: 1050px;
  margin: 0 auto 85px;
}

.travel-info-card {
  background: #ffffff;
  border: 1px solid #d5e2e5;
  border-radius: 6px;
  padding: 42px 35px;
  text-align: center;
}

.travel-card-symbol {
  color: #874452;
  font-size: 29px;
  margin-bottom: 15px;
}

.travel-info-card h3 {
  font-family: "Cormorant Garamond", Georgia, serif;
  font-size: 32px;
  font-weight: 500;
  color: #203b33;
  margin: 0 0 18px;
}

.travel-info-card p {
  font-family: "DM Sans", sans-serif;
  font-size: 14px;
  line-height: 1.9;
  color: #66716f;
  margin: 0 0 15px;
}

.travel-info-card p:last-child {
  margin-bottom: 0;
}

.travel-explore {
  max-width: 700px;
  margin: 0 auto 70px;
  text-align: center;
}

.travel-closing {
  max-width: 700px;
  margin: 0 auto;
  padding: 35px 20px;
  border-top: 1px solid #d5e2e5;
  text-align: center;
}

.travel-closing span {
  color: #874452;
  font-size: 18px;
}

.travel-closing p {
  color: #66716f;
  font-size: 14px;
  line-height: 1.8;
}

.travel-closing-signature {
  font-family: "Cormorant Garamond", Georgia, serif;
  font-size: 25px !important;
  font-style: italic;
  color: #203b33 !important;
}

/* MOBILE */

@media (max-width: 700px) {

  .travel-page {
    padding: 45px 15px 65px;
  }

  .travel-intro {
    margin-bottom: 45px;
  }

  .travel-info-grid {
    grid-template-columns: 1fr;
    gap: 16px;
    margin-bottom: 60px;
  }

  .travel-info-card {
    padding: 30px 24px;
  }

  .travel-explore {
    margin-bottom: 50px;
  }
}

/* TRAVEL PAGE — HOTEL RECOMMENDATIONS */

.travel-hotels {
  max-width: 1100px;
  margin: 0 auto 85px;
  text-align: center;
}

.travel-hotels h2 {
  font-family: "Cormorant Garamond", Georgia, serif;
  font-size: clamp(40px, 6vw, 55px);
  font-weight: 500;
  color: #203b33;
  margin: 15px 0 20px;
}

.travel-hotels-intro {
  max-width: 650px;
  margin: 0 auto 35px;
  color: #66716f;
  font-size: 15px;
  line-height: 1.9;
}

.travel-hotels-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 20px;
}

.travel-hotel-card {
  background: #fff;
  border: 1px solid #d5e2e5;
  border-radius: 6px;
  padding: 35px 25px;
  display: flex;
  flex-direction: column;
  align-items: center;
}

.travel-hotel-icon {
  color: #874452;
  font-size: 25px;
  margin-bottom: 15px;
}

.travel-hotel-card h3 {
  font-family: "Cormorant Garamond", Georgia, serif;
  font-size: 29px;
  font-weight: 500;
  color: #203b33;
  margin: 0 0 15px;
}

.travel-hotel-card p {
  color: #66716f;
  font-size: 14px;
  line-height: 1.8;
  margin: 0 0 25px;
  flex-grow: 1;
}

.travel-hotel-link {
  display: inline-block;
  padding: 12px 24px;
  background: #203b33;
  color: #fff;
  text-decoration: none;
  font-family: "DM Sans", sans-serif;
  font-size: 12px;
  letter-spacing: 1px;
  border-radius: 3px;
  transition: background 0.2s ease;
}

.travel-hotel-link:hover {
  background: #36564f;
}

.travel-hotels-note {
  margin: 25px auto 0;
  color: #66716f;
  font-size: 12px;
  line-height: 1.7;
}

@media (max-width: 750px) {
  .travel-hotels-grid {
    grid-template-columns: 1fr;
    gap: 16px;
  }

  .travel-hotels {
    margin-bottom: 60px;
  }
}
