    .handwriting {
        font-family: "adobe-handwriting-ernie", sans-serif;
        font-weight: 400;
        font-style: normal;
    }

    .sloop {
        font-family: "sloop-script-one", sans-serif;
        font-weight: 400;
        font-style: normal;
    }

    .minion {
        font-family: "adobe-jenson-pro", serif;
        font-weight: 400;
        font-style: normal;
    }

    .bold{
        font-family: "adobe-jenson-pro", serif;
        font-weight: 700;
        font-style: normal;
    }

    /* EFFECTS */
    /* Reveal on scroll */
    .reveal {
        opacity: 0;
        transform: translateY(28px);
        transition:
            opacity 0.7s cubic-bezier(.4, 0, .2, 1) var(--reveal-delay, 0s),
            transform 0.7s cubic-bezier(.4, 0, .2, 1) var(--reveal-delay, 0s);
        will-change: opacity, transform;
    }

    .reveal.is-visible {
        opacity: 1;
        transform: translateY(0);
    }

    /* Accessibility: respect reduced motion */
    @media (prefers-reduced-motion: reduce) {
        .reveal {
            opacity: 1;
            transform: none;
            transition: none;
        }
    }


    :root {
        --bubble-bg: rgba(215, 203, 171, 0.95);
        --bubble-text: #ffffff;
        --overlay-text: rgba(255, 255, 255, 0.92);
    }

    * {
        box-sizing: border-box;
    }

    html,
    body {
        height: 100%;
        margin: 0;
        font-family: system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
    }

    /* No outer frame: let the page be full-bleed */
    body {
        background: #F4F3ED;
    }

    .viewport {
        position: relative;
        width: 100%;
        height: 100svh;
        /* mobile-safe viewport */
        background: #000;
        overflow: hidden;
    }

    /* Full-bleed background video */
    .bg-video {
        position: absolute;
        inset: 0;
        width: 100%;
        height: 100%;
        object-fit: cover;
        filter: saturate(1.05) contrast(1.02);
        transform: scale(1.02);
    }

    /* Language pill bubble */
    .lang {

        position: fixed;
        top: calc(18px + env(safe-area-inset-top, 0px));
        right: calc(18px + env(safe-area-inset-right, 0px));
        z-index: 9999;

        display: inline-flex;
        align-items: center;
        gap: 10px;

        background: var(--bubble-bg);
        color: var(--bubble-text);
        border-radius: 38px;
        padding: 10px 14px;
        box-shadow: 0 10px 22px rgba(0, 0, 0, 0.25);
        backdrop-filter: blur(6px);
    }

    .lang button {
        appearance: none;
        border: 0;
        background: transparent;
        color: var(--bubble-text);
        font-weight: 500;
        letter-spacing: 0.5px;
        padding: 2px 4px;
        cursor: pointer;
        opacity: 0.75;
        font-size: 18px;
    }

    .lang button[aria-pressed="true"] {
        opacity: 1;
        font-weight: 700;
    }

    .lang .divider {
        width: 1px;
        height: 18px;
        background: rgba(255, 255, 255, 0.55);
    }

    /* Text overlay */
    .content {
        position: relative;
        z-index: 3;
        height: 100%;
        width: 100%;
        padding: 22px 18px;
        display: grid;
        grid-template-rows: 1fr auto;
    }

    /* Poster image behind video */
    .hero-poster {
        position: absolute;
        inset: 0;
        width: 100%;
        height: 100%;
        object-fit: cover;
        display: block;
        opacity: 0;
        /* hidden until video ends */
        transition: opacity 0.8s ease;
        transform: scale(1.02);
    }

    /* When video ends, show the poster */
    .viewport.show-poster .hero-poster {
        opacity: 1;
    }

    /* Fade the video away when done */
    .viewport.show-poster .bg-video {
        opacity: 0;
        transition: opacity 0.8s ease;
    }

    /* Hero text reveal at 4s */
    .hero-text {
        opacity: 0;
        transform: translateY(18px);
        transition: opacity 0.8s ease, transform 0.8s ease;
    }

    .viewport.show-hero-text .hero-text {
        opacity: 1;
        transform: translateY(0);
    }

    .hero {
        display: grid;
        align-content: start;
        justify-items: center;
        text-align: center;
        margin-top: clamp(90px, 12vh, 130px);
        color: var(--overlay-text);
        text-shadow: 0 6px 20px rgba(0, 0, 0, 0.35);
    }

    .kicker {
        font-size: clamp(25px, 4vw, 35px);
        margin-bottom: 22px;
        letter-spacing: 0.5px;
    }

    .names {
        font-size: clamp(42px, 15vw, 80px);
        letter-spacing: 0.5px;
        line-height: 1.05;
    }

    .date-hero {
        display: grid;
        justify-items: center;
        gap: 6px;
        color: var(--overlay-text);
        text-shadow: 0 6px 20px rgba(0, 0, 0, 0.35);
        margin-bottom: clamp(26px, 5vh, 44px);
    }

    .date {
        font-size: clamp(28px, 6.5vw, 42px);
    }

    .place {
        font-size: clamp(18px, 5vw, 30px);
    }

    .countdown-section {
        background: #f3f0e8;
        color: #5f5539;
        padding: 64px 18px 72px;
        text-align: center;
    }

    .countdown-title {
        margin: 0 0 34px;
        font-size: clamp(60px, 15vw, 90px);
        font-weight: 400;
        color: #b9ad7c;
    }

    .countdown-cards {
        display: grid;
        grid-template-columns: repeat(3, minmax(0, 1fr));
        gap: 14px;
        max-width: 520px;
        margin: 0 auto 14px;
    }

    .count-card {
        background: #f7f4ee;
        border-radius: 14px;
        padding: 26px 10px;
        box-shadow:
            0 16px 20px rgba(0, 0, 0, 0.12),
            inset 0 0 0 2px rgba(255, 255, 255, 0.65);
    }

    .count-number {
        font-size: clamp(34px, 8vw, 56px);
        letter-spacing: 1px;
    }

    .countdown-labels {
        display: grid;
        grid-template-columns: repeat(3, minmax(0, 1fr));
        gap: 14px;
        max-width: 520px;
        margin: 0 auto 46px;
        font-size: clamp(18px, 4vw, 26px);
        color: #6b6247;
    }

    .details-btn {
        display: inline-block;
        background: #5a2d33;
        /* base color */
        color: #fff;
        text-decoration: none;
        padding: 18px 26px;
        border-radius: 999px;
        letter-spacing: 3px;
        font-size: 16px;
        box-shadow: 0 14px 22px rgba(0, 0, 0, 0.18);

        /* for animation */
        transform: translateY(0);
        transition: transform 0.35s ease, box-shadow 0.45s ease, color 0.35s ease;
    }

    /* optional: focus style for keyboard users */
    .details-btn:focus-visible {
        outline: 3px solid rgba(186, 175, 135, 0.9);
        outline-offset: 4px;
    }

    /* "Pricing" style effect adapted for your pill */
    .details-window-slide:hover {
        /* use inset to animate a fill from both sides */
        box-shadow:
            inset 18rem 0 0 0 #BAAF87,
            inset -18rem 0 0 0 #BAAF87,
            0 14px 22px rgba(0, 0, 0, 0.18);
        color: #3b2a1f;
        /* text becomes dark like the demo */
        transform: translateY(-0.5rem);
    }

    /* .details-btn{
  display: inline-block;
  background: #5a2d33;
  color: #fff;
  text-decoration: none;
  padding: 18px 26px;
  border-radius: 999px;
  letter-spacing: 3px;
  font-size: 16px;
  box-shadow: 0 14px 22px rgba(0,0,0,0.18);
}

.details-btn:hover{
  filter: brightness(1.05);
} */

    .story-section {
        background: #5D5532;
        /* olive-ish tone like the mock */
    }

    .story-inner {
        max-width: 820px;
        margin: 0 auto;
        display: grid;
        gap: 18px;
    }

    .story-olive {
        width: 120px;
        height: auto;
        margin: 40px auto 4px;
        display: block;
    }

    .story-title {
        text-align: center;
        margin: 0 0 6px;
        font-size: clamp(60px, 15vw, 96px);
        font-weight: 400;
        color: #BAAF87;
    }

    .story-text {
        font-size: clamp(16px, 2.2vw, 20px);
        font-weight: 200;
        line-height: 1.7;
        letter-spacing: 0.2px;
        color: #F4F3ED;
        white-space: pre-line;
        padding: 6px 30px 64px;
    }


    .story-carousel-wrap {
        position: relative;
        margin-top: 1px;
    }

    /* stamps pinned over the carousel */
    .story-stamp {
        position: absolute;
        z-index: 3;
        width: 110px;
        height: auto;
        filter: drop-shadow(0 6px 5px rgba(0, 0, 0, 0.35));
        pointer-events: none;
        /* don't block scrolling */
    }

    .story-stamp--tl {
        top: -22px;
        left: 0px;
    }

    .story-stamp--br {
        bottom: -46px;
        right: 30px;
    }

    /* horizontal scroll carousel */
    .story-carousel {
        display: grid;
        grid-auto-flow: column;
        grid-auto-columns: 90%;
        gap: 14px;

        overflow-x: auto;
        overscroll-behavior-x: contain;
        scroll-snap-type: x mandatory;
        -webkit-overflow-scrolling: touch;
        padding: 0px 60px;
    }

    .story-carousel::-webkit-scrollbar {
        height: 10px;
    }

    .story-carousel::-webkit-scrollbar-thumb {
        background: rgba(255, 255, 255, 0.25);
        border-radius: 999px;
    }

    .story-carousel::-webkit-scrollbar-track {
        background: rgba(0, 0, 0, 0.15);
        border-radius: 999px;
    }

    .story-slide {
        margin: 0;
        scroll-snap-align: center;
        border-radius: 2px;
        overflow: hidden;
        background: rgba(255, 255, 255, 0.06);
        box-shadow: 0 18px 26px rgba(0, 0, 0, 0.25);
    }

    .story-slide img {
        width: 100%;
        height: 420px;
        object-fit: cover;
        display: block;
        filter: grayscale(100%);
        /* like the mock */
    }

    .story-caption {
        display: grid;
        gap: 6px;
        margin-top: 0px;
        align-items: start;
        padding: 30px 30px 64px;
    }

    .story-location {
        font-size: clamp(42px, 12vw, 78px);
        font-weight: 400;
        color: #BAAF87;
    }

    .story-date {
        font-size: clamp(18px, 5vw, 26px);
        color: #BAAF87;
    }

    /* better layout on wider screens: text + carousel side-by-side */
    @media (min-width: 900px) {
        .story-inner {
            max-width: 900px;
            /* optional: slightly wider */
        }

        .story-slide img {
            height: 520px;
        }

        .story-carousel {
            grid-auto-columns: 70%;
            /* show more photo with some peek */
        }
    }

    .venue-section {
        background: #f3f0e8;
        /* same warm off-white as countdown */
        color: #5f5539;
    }

    .venue-inner {
        max-width: 820px;
        margin: 0 auto;
        padding: 64px 18px 34px;
        text-align: center;
    }

    .venue-title {
        margin: 0 0 30px;
        font-size: clamp(60px, 16vw, 96px);
        font-weight: 400;
        color: #b9ad7c;
    }

    .venue-sub {
        margin: 0 auto 22px;
        font-size: clamp(18px, 4vw, 26px);
        color: #6b6247;
        line-height: 1.35;
    }

    .venue-dog {
        width: min(420px, 92%);
        height: auto;
        display: block;
        margin: 0px auto 18px;
    }

    .venue-text {
        margin: 0 auto 34px;
        max-width: 640px;
        font-size: clamp(16px, 2.2vw, 20px);
        line-height: 1.7;
        color: #6b6247;
    }

    .venue-note {
        display: inline-block;
        font-size: 0.92em;
        font-style: italic;
        opacity: 0.95;
    }

    #venue-btn {
        margin-bottom: 26px;
    }

    /* bottom lines image */
    .venue-lines {
        width: 100%;
        height: 110px;
        object-fit: cover;
        display: block;
    }




    /* Intro overlay */
    .intro {
        position: fixed;
        inset: 0;
        background: #5D5532;
        z-index: 20000;
        /* above language bubble */
        display: grid;
        place-items: center;
        pointer-events: none;
        /* avoid blocking after fade */
        opacity: 1;
        transition: opacity 0.6s ease;
    }

    .intro.is-hidden {
        opacity: 0;
    }

    .intro-inner {
        position: relative;
        width: min(560px, 92vw);
        height: min(420px, 60vh);
        display: grid;
        place-items: center;
    }

    .intro-monogram {
        color: #BAAF87;
        font-size: clamp(64px, 18vw, 140px);
        letter-spacing: 2px;
        opacity: 0;
        transform: translateY(10px);
        animation: introTextIn 0.8s ease forwards;
        animation-delay: 0.25s;
    }

    @keyframes introTextIn {
        to {
            opacity: 1;
            transform: translateY(0);
        }
    }

    /* Ring SVG */
    .intro-ring {
        position: absolute;
        width: 90%;
        height: 90%;

        top: 50%;
        left: 50%;
        transform: translate(-50%, -50%);
    }

    .ring {
        fill: transparent;
        stroke: #BAAF87;
        stroke-width: 4;
        opacity: 0.95;

        /* draw effect */
        stroke-dasharray: 1200;
        stroke-dashoffset: 1200;
        animation: ringDraw 1.8s ease forwards;
        animation-delay: 0.9s;
    }

    .ring--inner {
        stroke-width: 3;
        opacity: 0.7;
        animation-delay: 1.05s;
    }

    @keyframes ringDraw {
        to {
            stroke-dashoffset: 0;
        }
    }

    /* Accessibility */
    @media (prefers-reduced-motion: reduce) {

        .intro-monogram,
        .ring {
            animation: none;
            opacity: 1;
            transform: none;
            stroke-dashoffset: 0;
        }

        .intro {
            transition: none;
        }
    }




    /* =========================
   DETAILS PAGE (new page)
   ========================= */

    .details-page {
        background: #f3f0e8;
    }

    /* fixed nav always on top */
    .details-nav {
        position: fixed;
        top: 0;
        left: 0;
        right: 0;
        z-index: 9999;
        height: 70px;
        background: rgba(243, 240, 232, 0.96);
        backdrop-filter: blur(6px);
        box-shadow: 0 10px 22px rgba(0, 0, 0, 0.10);
    }

    .details-nav__inner {
        height: 100%;
        padding: 10px 18px;
        display: grid;
        grid-template-columns: 1fr auto 1fr;
        align-items: center;
    }

    .details-nav__logo {
        grid-column: 2;
        height: 96px;
        width: auto;
        display: block;
    }

    .details-nav__lang {
        margin-top: -30px;
        grid-column: 3;
        justify-self: end;
        display: inline-flex;
        align-items: center;
        gap: 10px;
        color: #b9ad7c;
        letter-spacing: 1px;
    }

    .details-nav__langbtn {
        appearance: none;
        border: 0;
        background: transparent;
        color: #5D5532;
        cursor: pointer;
        padding: 6px 8px;
        opacity: 0.7;
        font-size: 18px;
    }

    .details-nav__langbtn[aria-pressed="true"] {
        opacity: 1;
        font-weight: 700;
    }

    .details-nav__sep {
        opacity: 0.8;
    }

    /* section wrapper */
    .details-hero {
        min-height: 100vh;
        position: relative;
        padding-top: 96px;
        /* space for fixed nav */
    }

    /* background lines image (mobile default) */
    .details-bg {
        position: absolute;
        inset: 0;
        z-index: 0;
        background-image: url("files/linesbg.png");
        background-size: cover;
        background-position: center;
    }

    /* desktop bg */
    @media (min-width: 900px) {
        .details-bg {
            background-image: url("files/linesbg.png");
        }
    }

    /* centered card */
    .details-card {
        position: relative;
        z-index: 1;
        width: 80%;
        margin: 20px auto 64px;
        padding: 44px 20px 20px;
        text-align: center;
        background: rgba(243, 240, 232, 0.98);
        border: 1px solid rgba(0, 0, 0, 0.08);
        box-shadow: 0 18px 30px rgba(0, 0, 0, 0.18);
    }

    .details-card-2 {
        position: relative;
        z-index: 1;
        width: 80%;
        margin: 80px auto 64px;
        padding: 44px 20px 50px;
    }

    .details-title {
        margin: 0 0 24px;
        letter-spacing: 2px;
        font-weight: 400;
        color: #5f5539;
        font-size: clamp(26px, 5.5vw, 42px);
        line-height: 1.15;
        margin-bottom: 10px;
    }

    .details-grid {
        display: grid;
        grid-template-columns: 1fr;
        gap: 36px;
    }

    .details-grid-details2 {
        display: grid;
        grid-template-columns: 1fr;
        gap: 46px;
    }

    .details-day {
        display: grid;
        gap: 20px;
        justify-items: center;
    }

    .details-icon {
        width: 86px;
        height: auto;
        display: block;
    }

    .details-dayname {
        font-size: clamp(44px, 10vw, 62px);
        color: #7a704f;
        line-height: 1;
    }

    .details-desc {
        max-width: 340px;
        font-size: 16px;
        line-height: 1.6;
        color: #6b6247;
    }

    @media (min-width: 900px) {
        .details-grid {
            grid-template-columns: repeat(3, 1fr);
            gap: 42px;
        }

        .details-grid-details2 {
            display: grid;
            grid-template-columns: 1fr 1fr;
            gap: 46px;
        }

        .details-desc {
            max-width: 260px;
        }

        .details-card {
            position: relative;
            z-index: 1;
            width: 70%;
            margin: 48px auto 64px;
            padding: 80px 20px 100px 20px;
            /* height: 700px; */
        }

        .details-card-2 {
            width: 50%;
            padding: 80px 20px 100px 20px;
        }

        .details-title {
            margin-bottom: 100px;
        }
    }

    /* nicer animation variant */
    .reveal-pop {
        transform: translateY(26px) scale(0.98);
    }

    .reveal-pop.is-visible {
        transform: translateY(0) scale(1);
    }


    /* shared section wrapper */
    .details-section {
        position: relative;
        z-index: 1;
        padding: 76px 18px 84px;
    }

    .details-section__inner {
        width: min(980px, calc(100% - 36px));
        margin: 0 auto;
        text-align: center;
    }

    /* Big script heading (Travel) */
    .details-script {
        margin: 0 0 22px;
        font-size: clamp(72px, 14vw, 96px);
        font-weight: 400;
        color: #b9ad7c;
        line-height: 1;
    }

    /* Airport block link */
    .details-airport {
        display: inline-block;
        text-decoration: none;
        color: inherit;
        margin: 0 auto 28px;
        padding: 10px 6px;
    }

    .details-airport__label {
        font-size: clamp(18px, 3.2vw, 24px);
        color: #6b6247;
        margin-bottom: 15px;
    }

    .details-airport__value {
        font-size: clamp(26px, 5.5vw, 50px);
        color: #5f5539;
        letter-spacing: 0.4px;
        line-height: 1.15;
    }

    /* .details-airport:hover .details-airport__value {
        text-decoration: underline;
        text-underline-offset: 8px;
        text-decoration-thickness: 1px;
    } */

    .details-airport:focus-visible {
        outline: 3px solid rgba(186, 175, 135, 0.9);
        outline-offset: 8px;
        border-radius: 14px;
    }

    /* Travel paragraphs */
    .details-paras {
        max-width: 800px;
        margin: 0 auto;
        color: #6b6247;
        font-size: 18px;
        line-height: 1.2;
    }

    .details-paras p {
        margin: 0 0 26px;
    }

    .details-paras p:last-child {
        margin-bottom: 0;
    }


    /* =========================
   Accommodation section
   ========================= */

    .details-accom {
        position: relative;
    }

    /* top text block */
    .details-accom__top {
        background: #5D5532;
        padding: 76px 18px 64px;
    }

    .details-accom__top .details-script {
        color: #BAAF87;
        /* title color */
    }

    .details-accom__text {
        margin: 0 auto;
        max-width: 780px;
        color: #F4F3ED;
        font-size: 18px;
        /* requested */
        line-height: 1.2;
        text-align: center;
    }

    .details-accom__text p {
        margin: 0 0 26px;
    }

    .details-accom__text p:last-child {
        margin-bottom: 0;
    }

    /* bottom image + buttons */
    .details-accom__bottom {
        position: relative;
        min-height: 640px;
        overflow: hidden;

        display: flex;
        align-items: center;
        /* vertical */
        justify-content: center;
        /* horizontal */
    }

    .details-accom__bg {
        position: absolute;
        inset: 0;
        background-image: url("files/Quintadoouteiro.png");
        /* <-- your bg image */
        background-size: cover;
        background-position: center;
        z-index: 0;
    }

    .details-accom__bottom::after {
        /* subtle overlay to help buttons pop */
        content: "";
        position: absolute;
        inset: 0;
        background: rgba(0, 0, 0, 0.12);
        z-index: 1;
    }

    .details-accom__buttons {
        position: relative;
        z-index: 2;
        width: min(900px, calc(100% - 36px));
        margin: 0 auto;
        padding: 58px 0 72px;

        display: grid;
        gap: 24px;
    }

    /* the hotel buttons */
    .hotel-btn {
        display: grid;
        justify-items: center;
        align-items: center;
        gap: 10px;
        min-height: 135px;
        max-height: 135px;

        text-decoration: none;
        border-radius: 22px;
        padding: 20px 10px;

        background: rgba(186, 175, 135, 0.86);
        box-shadow: 0 18px 28px rgba(0, 0, 0, 0.22);
        border: 1px solid rgba(255, 255, 255, 0.18);

        transition: transform 260ms ease, box-shadow 260ms ease, background 260ms ease;
    }

    .hotel-btn:hover {
        transform: translateY(-4px);
        box-shadow: 0 22px 34px rgba(0, 0, 0, 0.26);
        background: rgba(186, 175, 135, 0.92);
    }

    .hotel-btn:focus-visible {
        outline: 3px solid rgba(244, 243, 237, 0.9);
        outline-offset: 6px;
    }

    /* logo inside */
    .hotel-btn__logo {
        max-width: min(420px, 40%);
        max-height: 560px;
        width: auto;
        height: auto;
        display: block;
    }

    /* "BOOK NOW" */
    .hotel-btn__cta {
        color: #5D5532;
        font-size: 18px;
        letter-spacing: 2px;
    }

    .hotel-btn:hover .hotel-btn__cta {
        text-decoration: underline;
    }

    /* Desktop: make buttons a bit wider/taller like mock */
    @media (min-width: 900px) {

        .details-accom__bottom {
            min-height: 560px;
        }

        .details-accom__buttons {
            padding: 72px 0 86px;
            gap: 28px;
        }

        .hotel-btn__logo {
            max-width: min(300px, 20%);
            max-width: 200px;
            max-height: 560px;
            width: auto;
            height: auto;
            display: block;
        }

        .hotel-btn {
            padding: 10px;
            min-height: 160px;
            max-height: 160px;
        }

    }

    /* =========================
Dress code section
========================= */

    .details-dress {
        background: #F4F3ED;
        padding: 56px 20px 60px 20px;
    }

    .details-dress .details-script {
        color: #BAAF87;
        /* same gold title color */
        margin-bottom: 22px;
    }

    .details-dress__sub {
        margin: 0 0 22px;
        font-size: clamp(34px, 6vw, 52px);
        font-weight: 400;
        color: #5D5532;
        letter-spacing: 1px;
    }

    .details-dress__text {
        max-width: 820px;
        margin: 0 auto 34px;
        color: #5D5532;
        font-size: 16px;
        /* close to your mock */
        line-height: 1.3;
        text-align: center;
    }

    .details-dress__text p {
        margin: 0 0 18px;
    }

    .details-dress__spacer {
        height: 10px;
        margin: 0;
    }

    .details-dress__img {
        display: block;
        width: min(980px, 100%);
        margin: 0 auto;
        height: auto;
    }



    /* =========================
   RSVP section
   ========================= */

    .details-rsvp {
        background: #F4F3ED;
        padding: 70px 18px 90px;
    }

    .rsvp-circle {
        display: grid;
        place-items: center;
        width: min(520px, 86vw);
        aspect-ratio: 1 / 1;
        margin: 0 auto;

        border-radius: 50%;
        background: #BAAF87;
        /* outside ring */
        text-decoration: none;
    }

    .rsvp-circle__inner {
        width: 78%;
        height: 78%;
        border-radius: 50%;
        background: #C5B88B;
        /* inside color */

        display: grid;
        place-items: center;
        align-content: center;
        gap: 18px;

        padding: 28px 24px;
    }

    .rsvp-title {
        color: #5D5532;
        font-size: 3.5em;
        letter-spacing: 2px;
    }

    .rsvp-glasses {
        width: min(120px, 40%);
        height: auto;
        display: block;
    }

    .rsvp-text {
        color: #5D5532;
        font-size: clamp(18px, 4vw, 28px);
        line-height: 1.05;
        text-align: center;
    }

    /* optional: subtle hover */
    .rsvp-circle:hover {
        transform: translateY(-3px);
        background: #948b6a;
    }

    .rsvp-circle {
        transition: transform 220ms ease, filter 220ms ease, background 260ms ease;
    }

    .rsvp-circle:focus-visible {
        outline: 3px solid rgba(93, 85, 50, 0.55);
        outline-offset: 10px;
    }


    /* =========================
   Other Details section
   ========================= */

    .details-other {
        background: #5D5532;
        padding: 84px 18px 92px;
        text-align: center;
    }

    .details-other .details-script {
        color: #BAAF87;
        /* same gold as other script titles */
        margin-bottom: 50px;
    }

    /* list wrapper */
    .details-other__list {
        max-width: 600px;
        margin: 0 auto;
        color: #F4F3ED;
        line-height: 1.2;
        padding: 10px ;
    }

    /* each Q/A block */
    .other-item {
        margin: 0 0 50px;
    }

    .other-item:last-child {
        margin-bottom: 0;
    }

    .other-item__q {
        font-size: 1.3em;
        margin-bottom: 10px;
        letter-spacing: 0.5px;
        color: #F4F3ED;
        font-family: "adobe-jenson-pro", serif;
        font-weight: 700;
        font-style: normal;
        opacity: 0.9;
    }

    .other-item__a {
        opacity: 0.8;
        font-size: 1em;
        line-height: 20px;
        font-weight: 200;
        color: #F4F3ED;
    }

        .other-item__a a {
        text-decoration: underline;
        color: #F4F3ED;
        font-family: "adobe-jenson-pro", serif;
        font-weight: 700;
        font-style: normal;

    }


    /* =========================
   Gift section
   ========================= */

.details-gift{
  background: #BAAF87;
  padding: 84px 18px 98px;
  text-align: center;
}

.details-gift .details-script{
  color: #5D5532;
  margin-bottom: 20px;
  font-size: 3em;
}

.gift-world{
  width: 80%;
  max-width: 500px;
  height: auto;
  display: block;
  margin: 0 auto 18px;
}

.gift-text{
  max-width: 820px;
  margin: 0 auto 28px;
  color: #5D5532;
  font-size: 1em;
  line-height: 1.5;
}

.gift-text a{
    font-size: 1.3em;
  color: #5D5532;
  text-decoration: underline;
  text-underline-offset: 6px;
  text-decoration-thickness: 1px;
          font-family: "adobe-jenson-pro", serif;
        font-weight: 700;
        font-style: normal;
}

.gift-box-wrap{
  max-width: 680px;
  margin: 0 auto;
}

/* the "polite" toggle button */
.gift-box-txt{
    font-size: 0.92em;
}

.gift-box{
  width: 100%;
  border: 1px solid rgba(93,85,50,0.35);
  background:  rgba(244,243,237,0.25);
  border-radius: 18px;
  padding: 18px 18px;
  cursor: pointer;
  transition: background 180ms ease, transform 180ms ease;
}

.gift-box:hover{
  background: rgba(244,243,237,0.32);
  transform: translateY(-2px);
}

.gift-box:focus-visible{
  outline: 3px solid rgba(93,85,50,0.35);
  outline-offset: 6px;
}

.gift-box__hint{
  color: #5D5532;
  font-size: 16px;
  letter-spacing: 1px;
}

/* hidden/revealed details */
.gift-details{
  margin-top: 14px;
  border-radius: 18px;
  background: rgba(244,243,237,0.50);
  border: 1px solid rgba(93,85,50,0.18);
  overflow: hidden;
}

.gift-details__inner{
  padding: 18px 18px 10px;
  color: #5D5532;
  text-align: left;
  font-size: 16px;
  line-height: 1.6;
}

.gift-row{
  display: grid;
  grid-template-columns: 180px 1fr;
  gap: 12px;
  padding: 10px 0;
  border-top: 1px solid rgba(93,85,50,0.10);
}

.gift-row:first-child{
  border-top: 0;
}

.gift-k{
  font-weight: 700;
}

.gift-v{
  word-break: break-word;
}

@media (max-width: 560px){
  .gift-row{
    grid-template-columns: 1fr;
    gap: 4px;
  }
}

/* value + copy button layout (icon on the right) */
.gift-vwrap{
  display: grid;
  grid-template-columns: 1fr auto;
  align-items: start;
  gap: 10px;
}

/* copy button */
.gift-copy{
  border: 0;
  background: transparent;
  padding: 4px;
  cursor: pointer;
  line-height: 0;
  opacity: 0.75;
  transition: opacity 160ms ease, transform 160ms ease;
}

.gift-copy:hover{
  opacity: 1;
  transform: translateY(-1px);
}

.gift-copy:focus-visible{
  outline: 2px solid rgba(93,85,50,0.35);
  outline-offset: 4px;
  border-radius: 6px;
}

.gift-copy__icon{
  width: 18px;
  height: 18px;
  display: block;
}

/* optional feedback when copied */
.gift-copy.is-copied{
  opacity: 1;
  transform: scale(1.08);
}


.gift-copy{
  position: relative; /* needed for tooltip positioning */
}

/* tooltip bubble */
.gift-copy::after{
  content: attr(data-tip);
  position: absolute;
  left: 50%;
  bottom: calc(100% + 8px);
  transform: translateX(-50%);
  white-space: nowrap;

  padding: 10px 7px;
  border-radius: 10px;
  background: rgba(93,85,50,0.92);
  color: #F4F3ED;
  font-size: 10px;
  letter-spacing: 0.5px;

  opacity: 0;
  pointer-events: none;
  transition: opacity 160ms ease, transform 160ms ease;
}

/* little arrow */
.gift-copy::before{
  content: "";
  position: absolute;
  left: 50%;
  bottom: calc(100% + 3px);
  transform: translateX(-50%);
  border: 6px solid transparent;
  border-top-color: rgba(93,85,50,0.92);

  opacity: 0;
  pointer-events: none;
  transition: opacity 160ms ease;
}

/* show tooltip only when data-tip exists */
.gift-copy[data-tip]::after,
.gift-copy[data-tip]::before{
  opacity: 1;
}

.rsvp-deadline{
  margin-top: 18px;
  text-align: center;
  color: #5D5532;
  font-size: 18px;
  line-height: 1.4;
}