@charset "UTF-8";

@import url("https://fonts.googleapis.com/css2?family=Cormorant+Garamond:wght@500;600;700&family=Inter:wght@400;500;600;700;800;900&family=Noto+Serif+Hebrew:wght@500;600;700&display=swap");

:root {
    --night: #172033;
    --night-soft: #22304a;
    --gold: #c8a86b;
    --gold-light: #e4cf9b;
    --ivory: #fbfaf7;
    --paper: #fffdf7;
    --text: #222;
    --muted: #666;
    --white: #fff;
}

* {
    box-sizing: border-box;
}

html {
    scroll-behavior: smooth;
}

body {
    margin: 0;
    background: var(--ivory);
    color: var(--text);
    font-family: Inter,Arial,sans-serif;
}

h1,h2,h3 {
    font-family: "Cormorant Garamond",Georgia,serif;
}

.top-logo-bar {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 72px;
    background: white;
    z-index: 9998;
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 4px 18px rgba(0,0,0,.08);
}

.top-logo-bar img {
    height: 48px;
    width: auto;
}

.hero {
    min-height: 88vh;
    background: linear-gradient(rgba(23,32,51,.35),rgba(23,32,51,.72)),url("nous.png") center/cover no-repeat;
    display: flex;
    justify-content: center;
    align-items: center;
    text-align: center;
    color: white;
    padding: 102px 30px 30px;
}

.hero-content {
    max-width: 820px;
    animation: fadeUp .9s ease both;
}

.hero h1 {
    font-size: clamp(56px,10vw,105px);
    line-height: .95;
    margin: 0;
}

.hebrew-title {
    font-family: "Noto Serif Hebrew",serif;
    font-size: clamp(26px,5vw,42px);
    margin: 10px 0 0;
    color: rgba(255,255,255,.92);
}

.date {
    font-size: clamp(22px,4vw,36px);
    margin: 18px 0 5px;
}

.place {
    font-size: 18px;
    opacity: .9;
}

@keyframes fadeUp {
    from {
        opacity: 0;
        transform: translateY(18px);
    }

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

.music-player {
    position: fixed;
    top: 18px;
    right: 18px;
    z-index: 9999;
    display: flex;
    align-items: center;
    gap: 10px;
    border: none;
    border-radius: 999px;
    padding: 10px 16px;
    background: rgba(255,255,255,.92);
    color: var(--night);
    box-shadow: 0 12px 35px rgba(0,0,0,.22);
    cursor: pointer;
    backdrop-filter: blur(10px);
}

.music-player strong {
    display: block;
    font-size: 13px;
    line-height: 1.1;
}

.music-player small {
    display: block;
    font-size: 11px;
    color: #666;
}

.music-icon {
    width: 34px;
    height: 34px;
    border-radius: 50%;
    background: var(--gold);
    color: var(--night);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 20px;
    font-weight: 900;
}

.music-icon.playing {
    animation: spin 4s linear infinite;
}

@keyframes spin {
    from {
        transform: rotate(0deg);
    }

    to {
        transform: rotate(360deg);
    }
}

section {
    max-width: 1060px;
    margin: 0 auto;
    padding: 70px 22px;
    text-align: center;
}

section h2 {
    font-size: clamp(38px,7vw,60px);
    color: var(--night);
    margin: 0 0 20px;
}

section p {
    font-size: 18px;
    line-height: 1.65;
}

.reveal {
    opacity: 0;
    transform: translateY(18px);
    transition: opacity .8s ease,transform .8s ease;
}

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

.countdown-section h2 {
    font-size: clamp(28px,5vw,44px);
}

.countdown {
    display: flex;
    justify-content: center;
    gap: 8px;
    margin-top: 25px;
}

.countdown-card {
    width: 72px;
    background: white;
    border: 1px solid rgba(200,168,107,.4);
    border-radius: 18px;
    padding: 12px 4px;
    box-shadow: 0 10px 26px rgba(23,32,51,.08);
}

.countdown-card span {
    display: block;
    font-size: 31px;
    font-weight: 800;
    color: var(--night);
    line-height: 1;
}

.countdown-card small {
    display: block;
    margin-top: 6px;
    font-size: 10px;
    text-transform: uppercase;
    color: var(--muted);
    letter-spacing: .8px;
}

.section-subtitle {
    color: var(--muted);
    margin-top: -10px;
}

.invitation-cards {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 50px;
    max-width: 900px;
    margin: 42px auto 0;
}

.invitation-card {
    width: 100%;
    max-width: 850px;
    background: linear-gradient(135deg,rgba(255,255,255,.9),rgba(255,250,238,.95)),radial-gradient(circle at top left,rgba(200,168,107,.18),transparent 32%);
    border-radius: 34px;
    padding: 12px;
    box-shadow: 0 26px 70px rgba(23,32,51,.12);
    border: 1px solid rgba(200,168,107,.35);
}

.invitation-inner {
    min-height: 100%;
    border: 1px solid rgba(200,168,107,.55);
    border-radius: 26px;
    padding: 40px 34px;
    background: linear-gradient(rgba(255,253,247,.94),rgba(255,253,247,.98)),repeating-linear-gradient(45deg,rgba(200,168,107,.04) 0,rgba(200,168,107,.04) 1px,transparent 1px,transparent 9px);
    display: flex;
    flex-direction: column;
}

.invite-names {
    font-family: "Cormorant Garamond",Georgia,serif;
    font-size: 38px;
    color: var(--night);
    margin: 0;
    line-height: 1.05;
}

.invite-hebrew {
    font-family: "Noto Serif Hebrew",serif;
    font-size: 25px;
    color: var(--gold);
    margin: 6px 0 0;
}

.ornament {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 14px;
    color: var(--gold);
    font-size: 22px;
    margin: 24px 0;
}

.ornament span {
    display: block;
    width: 95px;
    height: 1px;
    background: rgba(200,168,107,.55);
}

.ornament.small {
    margin-top: auto;
    margin-bottom: 22px;
}

.invitation-card h3 {
    font-size: 40px;
    color: var(--night);
    margin: 0 0 10px;
}

.invite-date {
    color: var(--gold);
    font-weight: 900;
    margin: 0 0 8px;
}

.invite-place {
    font-weight: 800;
    color: var(--night);
    margin: 0 0 6px;
}

.invite-address {
    margin: 10px 0 20px;
    font-size: 16px;
    line-height: 1.6;
    color: #5b6272;
}

.invite-text {
    color: #5b6272;
    font-size: 16px;
    max-width: 620px;
    margin: 0 auto 28px;
}

.timeline {
    list-style: none;
    padding: 0;
    margin: 22px auto 30px;
    text-align: left;
    max-width: 560px;
}

.timeline li {
    padding: 9px 0;
    border-bottom: 1px solid rgba(0,0,0,.06);
}

.timeline span {
    display: inline-block;
    width: 76px;
    color: var(--gold);
    font-weight: 800;
}

.invite-footer {
    margin-top: auto;
}

.map-actions {
    display: flex;
    justify-content: center;
    gap: 15px;
    flex-wrap: wrap;
}

.invite-map-actions {
    padding-top: 0;
}

.map-button,.waze-button {
    display: inline-block;
    text-decoration: none;
    padding: 14px 24px;
    border-radius: 40px;
    font-weight: 800;
    transition: .25s;
    min-width: 220px;
}

.map-button {
    background: var(--night);
    color: white;
}

.waze-button {
    background: #33ccff;
    color: var(--night);
}

.map-button:hover,.waze-button:hover {
    transform: translateY(-3px);
    box-shadow: 0 10px 22px rgba(0,0,0,.18);
}

.rsvp-section {
    max-width: none;
    background: radial-gradient(circle at top left,rgba(200,168,107,.22),transparent 32%),linear-gradient(135deg,#101827,#172033 55%,#22304a);
    color: white;
    padding: 90px 22px;
}

.rsvp-shell {
    max-width: 820px;
    margin: 0 auto;
}

.rsvp-heading {
    margin-bottom: 34px;
}

.rsvp-kicker {
    display: inline-block;
    color: var(--gold-light);
    font-size: 13px;
    font-weight: 900;
    letter-spacing: 4px;
    text-transform: uppercase;
    margin-bottom: 10px;
}

.rsvp-heading h2 {
    color: white;
    margin-bottom: 12px;
}

.rsvp-heading p {
    max-width: 680px;
    margin: 0 auto;
    color: rgba(255,255,255,.86);
}

.premium-rsvp {
    background: rgba(255,255,255,.96);
    color: var(--night);
    padding: 34px;
    border-radius: 32px;
    box-shadow: 0 28px 80px rgba(0,0,0,.34);
    text-align: left;
    border: 1px solid rgba(255,255,255,.55);
}

.field-block {
    margin-bottom: 22px;
}

.premium-rsvp label {
    display: block;
    font-weight: 900;
    margin: 0 0 9px;
}

.premium-rsvp input[type="text"],.premium-rsvp textarea {
    width: 100%;
    display: block;
    padding: 15px 16px;
    border: 1px solid #ddd;
    border-radius: 16px;
    font-size: 16px;
    font-family: Inter,Arial,sans-serif;
    outline: none;
    transition: border-color .2s ease,box-shadow .2s ease;
}

.premium-rsvp input[type="text"]:focus,.premium-rsvp textarea:focus {
    border-color: var(--gold);
    box-shadow: 0 0 0 4px rgba(200,168,107,.18);
}

.rsvp-event-card {
    padding: 22px;
    border-radius: 24px;
    background: linear-gradient(135deg,#fff,#fbf8ef);
    border: 1px solid rgba(200,168,107,.28);
    margin: 18px 0;
}

.event-tag {
    display: inline-block;
    color: var(--gold);
    font-size: 12px;
    font-weight: 900;
    letter-spacing: 2px;
    text-transform: uppercase;
    margin-bottom: 6px;
}

.rsvp-event-card h3 {
    font-size: 30px;
    margin: 0 0 6px;
    color: var(--night);
}

.choice-row {
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
    margin-top: 18px;
}

.choice-pill input {
    display: none;
}

.choice-pill span {
    display: inline-block;
    padding: 12px 18px;
    border-radius: 999px;
    border: 1px solid rgba(23,32,51,.18);
    background: white;
    font-weight: 900;
    cursor: pointer;
    transition: .2s ease;
}

.choice-pill input:checked+span {
    background: linear-gradient(135deg,var(--gold),var(--gold-light));
    color: var(--night);
    border-color: transparent;
    box-shadow: 0 10px 24px rgba(200,168,107,.22);
}

.count-panel {
    display: none;
    margin-top: 18px;
}

.count-panel.is-visible {
    display: block;
}

.count-panel p {
    margin: 0 0 10px;
    color: var(--night);
    font-weight: 900;
    font-size: 15px;
}

.stepper {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    background: white;
    padding: 8px;
    border-radius: 999px;
    box-shadow: 0 10px 28px rgba(23,32,51,.08);
}

.stepper button {
    width: 38px;
    height: 38px;
    border: none;
    border-radius: 50%;
    background: var(--night);
    color: white;
    font-size: 22px;
    font-weight: 800;
    cursor: pointer;
    line-height: 1;
}

.stepper input {
    width: 42px;
    border: none;
    background: transparent;
    text-align: center;
    font-size: 24px;
    font-weight: 900;
    color: var(--night);
    pointer-events: none;
}

.rsvp-error {
    min-height: 22px;
    color: #b64242;
    font-weight: 800;
    text-align: center;
    margin: 8px 0 0;
    font-size: 14px;
}

.rsvp-submit {
    width: 100%;
    margin-top: 18px;
    padding: 17px 24px;
    border: none;
    border-radius: 999px;
    background: linear-gradient(135deg,var(--gold),var(--gold-light));
    color: var(--night);
    font-size: 17px;
    font-weight: 900;
    cursor: pointer;
    transition: .2s ease;
}

.rsvp-submit:hover {
    transform: translateY(-2px);
    box-shadow: 0 14px 32px rgba(200,168,107,.28);
}

.rsvp-submit.is-loading {
    opacity: .75;
    cursor: wait;
}

.rsvp-thanks {
    display: none;
    background: rgba(255,255,255,.96);
    color: var(--night);
    padding: 42px 30px;
    border-radius: 32px;
    box-shadow: 0 28px 80px rgba(0,0,0,.28);
    text-align: center;
    animation: fadeUp .5s ease both;
}

.thanks-heart {
    font-size: 42px;
    margin-bottom: 8px;
}

.rsvp-thanks h3 {
    font-size: 44px;
    margin: 0 0 10px;
}

.thanks-signature {
    font-family: "Cormorant Garamond",Georgia,serif;
    font-size: 32px !important;
    margin-top: 18px !important;
}

.thanks-hebrew {
    font-family: "Noto Serif Hebrew",serif;
    color: var(--gold) !important;
    font-size: 22px !important;
}

@media (max-width:760px) {
    .top-logo-bar {
        height: 64px;
    }

    .top-logo-bar img {
        height: 42px;
    }

    .hero {
        min-height: 78vh;
        padding: 94px 18px 24px;
    }

    .music-player {
        top: 12px;
        right: 12px;
        padding: 8px 12px;
    }

    .music-player strong {
        font-size: 12px;
    }

    .music-player small {
        font-size: 10px;
    }

    .music-icon {
        width: 30px;
        height: 30px;
        font-size: 18px;
    }

    section {
        padding: 54px 18px;
    }

    .countdown-logo {
        width: 190px;
    }

    .countdown {
        gap: 6px;
    }

    .countdown-card {
        width: 64px;
    }

    .countdown-card span {
        font-size: 27px;
    }

    .invitation-inner {
        padding: 28px 20px;
    }

    .invite-names {
        font-size: 32px;
    }

    .invite-hebrew {
        font-size: 22px;
    }

    .invitation-card h3 {
        font-size: 34px;
    }

    .ornament span {
        width: 55px;
    }

    .map-button,.waze-button {
        width: 100%;
        min-width: 0;
    }

    .rsvp-section {
        padding: 66px 16px;
    }

    .premium-rsvp {
        padding: 20px;
        border-radius: 26px;
    }

    .choice-row {
        flex-direction: column;
    }

    .choice-pill span {
        width: 100%;
        text-align: center;
    }

    .stepper {
        width: 100%;
        justify-content: space-between;
    }

    .stepper button {
        width: 42px;
        height: 42px;
    }

    .stepper input {
        flex: 1;
    }
}

@media (max-width:370px) {
    .countdown-card {
        width: 58px;
    }

    .countdown-card span {
        font-size: 24px;
    }

    .countdown-card small {
        font-size: 9px;
    }
}

.luxury-cards {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 55px;
    max-width: 880px;
    margin: 45px auto 0;
}

.luxury-card {
    width: 100%;
    background: #fffdf7;
    border: 1px solid rgba(200,168,107,.55);
    border-radius: 34px;
    padding: 12px;
    box-shadow: 0 26px 70px rgba(23,32,51,.12);
}

.luxury-card-inner {
    min-height: 720px;
    display: flex;
    flex-direction: column;
    border: 1px solid rgba(200,168,107,.45);
    border-radius: 26px;
    padding: 38px 34px;
    background: linear-gradient(rgba(255,253,247,.94), rgba(255,253,247,.98)),
    repeating-linear-gradient(45deg, rgba(200,168,107,.04) 0, rgba(200,168,107,.04) 1px, transparent 1px, transparent 10px);
}

.luxury-icon {
    font-size: 44px;
    color: var(--gold);
    margin-bottom: 18px;
}

.luxury-names {
    font-family: "Cormorant Garamond",Georgia,serif;
    font-size: 42px;
    line-height: 1;
    color: var(--night);
    margin: 0;
}

.luxury-hebrew {
    font-family: "Noto Serif Hebrew",serif;
    font-size: 26px;
    color: var(--gold);
    margin: 8px 0 0;
}

.luxury-separator {
    color: var(--gold);
    font-size: 22px;
    margin: 28px 0;
}

.luxury-card h3 {
    font-size: 46px;
    line-height: 1.05;
    color: var(--night);
    margin: 0 0 12px;
}

.luxury-date {
    color: var(--gold);
    font-weight: 900;
    font-size: 20px;
    margin: 0 0 16px;
}

.luxury-place {
    font-weight: 900;
    color: var(--night);
    font-size: 21px;
    margin: 0 0 10px;
}

.luxury-address {
    color: #5f6675;
    font-size: 18px;
    line-height: 1.55;
    margin: 0 0 28px;
}

.luxury-time {
    display: flex;
    justify-content: center;
    gap: 22px;
    align-items: center;
    margin: 8px auto 28px;
    padding: 18px 0;
    width: min(100%,520px);
    border-top: 1px solid rgba(200,168,107,.35);
    border-bottom: 1px solid rgba(200,168,107,.35);
}

.luxury-time strong {
    color: var(--gold);
    font-size: 22px;
}

.luxury-time span {
    font-size: 18px;
}

.luxury-text {
    max-width: 620px;
    margin: 0 auto;
    color: #5f6675;
    font-size: 18px;
    line-height: 1.7;
}

.luxury-timeline {
    list-style: none;
    padding: 0;
    margin: 24px auto 0;
    max-width: 520px;
    text-align: left;
}

.luxury-timeline li {
    display: grid;
    grid-template-columns: 92px 1fr;
    gap: 14px;
    padding: 11px 0;
    border-bottom: 1px solid rgba(200,168,107,.20);
}

.luxury-timeline strong {
    color: var(--gold);
    font-size: 20px;
}

.luxury-timeline span {
    font-size: 18px;
    color: #222;
}

.luxury-card-spacer {
    flex: 1;
}

.invite-map-actions {
    margin-top: 35px;
    padding-top: 28px;
    border-top: 1px solid rgba(200,168,107,.35);
}

.luxury-card .map-button,
.luxury-card .waze-button {
    min-width: 245px;
    padding: 15px 24px;
    font-size: 16px;
}

@media (max-width:760px) {
    .luxury-card-inner {
        min-height: auto;
        padding: 34px 24px;
    }

    .luxury-icon {
        font-size: 38px;
    }

    .luxury-names {
        font-size: 36px;
    }

    .luxury-hebrew {
        font-size: 23px;
    }

    .luxury-card h3 {
        font-size: 42px;
    }

    .luxury-timeline li {
        grid-template-columns: 90px 1fr;
    }

    .luxury-card .map-button,
  .luxury-card .waze-button {
        width: 100%;
        min-width: 0;
    }
}

/* ==========================================
   BOUTONS PREMIUM
   ========================================== */

.map-button {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 14px;
    width: 100%;
    padding: 18px 28px;
    background: linear-gradient(180deg,#E2CCA0 0%,#D6B56D 100%);
    border: 1px solid #C7A861;
    border-radius: 999px;
    text-decoration: none;
    font-family: "Inter",sans-serif;
    font-size: 17px;
    font-weight: 700;
    box-shadow: 0 10px 24px rgba(199,168,97,.35),
      inset 0 1px 0 rgba(255,255,255,.45);
    transition: transform .20s ease,
        box-shadow .25s ease,
        border-color .25s ease,
        background .25s ease;
}

.map-button i {
    color: #172033;
    font-size: 22px;
    width: 24px;
    text-align: center;
}

.map-button span {
    white-space: nowrap;
}

/* PC */

.map-button:hover {
    transform: translateY(-2px);
    background: linear-gradient(180deg,#EDE1C7 0%,#DABD83 100%);
    border-color: #D0AE67;
    box-shadow: 0 14px 30px rgba(199,168,97,.40),
        inset 0 1px 0 rgba(255,255,255,.60);
}

/* Mobile + PC */

.map-button:active {
    transform: scale(.98);
}

.hebrew-blessing-arc {
    font-family: "Noto Serif Hebrew", serif;
    color: #172033;
    font-size: 30px;
    font-weight: 700;
    letter-spacing: 1px;
    text-align: center;
    margin: 0 auto 28px;
    max-width: 760px;
    line-height: 1.4;
    transform: rotate(-2deg);
    text-shadow: 0 1px 0 rgba(200,168,107,.25);
}

@media (max-width:760px) {
    .hebrew-blessing-arc {
        font-size: 22px;
        line-height: 1.45;
        margin-bottom: 24px;
    }
}

.luxury-card {
    overflow: hidden !important;
}

.location-photo {
    width: 100% !important;
    max-width: 100% !important;
    margin: 18px 0 24px !important;
    border-radius: 16px !important;
    overflow: hidden !important;
    border: 1px solid #e7dcc3 !important;
}

.location-photo img {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    height: 170px !important;
    object-fit: cover !important;
}

.hebrew-blessing-svg {
    width: 100%;
    max-width: 820px;
    margin: 0 auto 18px;
    overflow: visible;
}

.hebrew-blessing-svg svg {
    display: block;
    width: 100%;
    height: auto;
    overflow: visible;
}

.blessing-text {
    font-family: "Noto Serif Hebrew", serif;
    font-size: 32px;
    font-weight: 700;
    fill: #172033;
    letter-spacing: .5px;
}

@media (max-width:760px) {
    .hebrew-blessing-svg {
        max-width: 390px;
        margin-bottom: 10px;
    }

    .blessing-text {
        font-size: 34px;
    }
}

.location-caption {
    padding: 10px 12px;
    background: #fff;
    color: #666;
    font-size: 14px;
    font-weight: 600;
    text-align: center;
    border-top: 1px solid #ece5d3;
}

.card-logo {
    display: flex;
    justify-content: center;
    margin: 0 0 18px;
}

.card-logo img {
    width: 82px;
    height: auto;
}

.card-symbol {
    color: var(--gold);
    font-size: 42px;
    margin: 4px 0 16px;
}

.card-symbol.bouquet {
    font-size: 46px;
}

.card-symbol.star {
    font-size: 50px;
}

.luxury-separator {
    color: var(--gold);
    font-size: 24px;
    margin: 18px auto 28px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 16px;
}

.luxury-separator:before,
.luxury-separator:after {
    content: "";
    width: 90px;
    height: 1px;
    background: rgba(200,168,107,.55);
}

.luxury-separator.bottom {
    margin-top: 28px;
    margin-bottom: 22px;
}

.location-photo {
    width: 100% !important;
    margin: 22px 0 24px !important;
    border-radius: 18px !important;
    overflow: hidden !important;
    border: 1px solid rgba(200,168,107,.45) !important;
    box-shadow: 0 14px 32px rgba(0,0,0,.12) !important;
}

.location-photo img {
    width: 100% !important;
    height: 230px !important;
    display: block !important;
    object-fit: cover !important;
}

.luxury-time-block {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 18px;
    margin: 18px auto 22px;
    color: var(--night);
}

.luxury-time-block .time-icon {
    font-size: 34px;
    color: var(--gold);
}

.luxury-time-block strong {
    font-size: 24px;
    color: var(--night);
}

.luxury-time-block span {
    font-size: 18px;
    color: #5f6675;
}

.hebrew-blessing-svg {
    width: 100%;
    max-width: 760px;
    margin: 0 auto 4px;
    overflow: visible;
}

.hebrew-blessing-svg svg {
    display: block;
    width: 100%;
    height: auto;
    overflow: visible;
}

.blessing-text {
    font-family: "Noto Serif Hebrew", serif;
    font-size: 42px;
    font-weight: 700;
    fill: #172033;
    letter-spacing: .2px;
}

.map-button img,
.waze-button img {
    width: 24px !important;
    height: 24px !important;
    max-width: 24px !important;
    max-height: 24px !important;
    object-fit: contain !important;
}

@media (max-width:760px) {
    .card-logo img {
        width: 72px;
    }

    .card-symbol {
        font-size: 38px;
    }

    .card-symbol.star {
        font-size: 44px;
    }

    .location-photo img {
        height: 185px !important;
    }

    .blessing-text {
        font-size: 34px;
    }

    .hebrew-blessing-svg {
        max-width: 390px;
    }

    .luxury-separator:before,
  .luxury-separator:after {
        width: 60px;
    }
}

.civil-card-inner {
    background: linear-gradient(rgba(255,255,255,.82), rgba(255,255,255,.9)),
    radial-gradient(circle at center, rgba(200,168,107,.08), transparent 65%);
    text-align: center;
}

.civil-title {
    font-size: 34px !important;
    letter-spacing: 2px;
    margin: 10px 0 26px !important;
}

.civil-bouquet {
    font-size: 54px;
    color: var(--night);
    margin-bottom: 20px;
}

.civil-small {
    font-family: "Cormorant Garamond",serif;
    font-size: 18px !important;
    margin: 0 0 8px !important;
}

.civil-names {
    font-family: "Cormorant Garamond",serif;
    font-size: 34px !important;
    font-style: italic;
    color: var(--night);
    margin: 0 0 8px !important;
}

.civil-text {
    font-family: "Cormorant Garamond",serif;
    font-size: 25px !important;
    line-height: 1.4 !important;
    margin: 0 0 20px !important;
}

.civil-text span {
    font-style: italic;
    font-size: 30px;
}

.civil-date,
.civil-time,
.civil-place,
.civil-address,
.civil-note {
    font-family: "Cormorant Garamond",serif;
    color: var(--night);
    font-size: 21px !important;
    line-height: 1.55 !important;
    margin: 12px 0 !important;
}

.civil-note {
    margin-top: 28px !important;
}

.civil-buttons {
    margin-top: 32px;
}

.civil-small {
    display: none !important;
}

.civil-card-inner .luxury-time-block {
    margin-top: 18px !important;
    margin-bottom: 34px !important;
}

.civil-card-inner .luxury-text {
    margin-top: 20px !important;
    font-size: 27px !important;
    line-height: 1.55 !important;
}

.civil-card-inner .map-button span {
    white-space: nowrap;
}

@media (max-width:760px) {
    .civil-card-inner .luxury-text {
        font-size: 24px !important;
    }
}

.civil-description {
    font-family: "Cormorant Garamond", serif;
    font-size: 34px;
    font-weight: 500;
    line-height: 1.45;
    color: #172033;
    text-align: center;
    max-width: 78%;
    margin: 42px auto;
}

@media (max-width:760px) {
    .civil-description {
        font-size: 26px;
        line-height: 1.5;
        max-width: 84%;
    }
}

.hero {
    align-items: flex-end !important;
    padding-bottom: 115px !important;
    background: linear-gradient(to bottom, rgba(23,32,51,.10) 0%, rgba(23,32,51,.25) 45%, rgba(23,32,51,.72) 100%),
    url("nous.png") center/cover no-repeat !important;
}

.hero-content {
    transform: translateY(70px);
}

.hero-ornament {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 14px;
    margin: 0 auto 10px;
    color: #d6b56d;
}

.hero-ornament span {
    width: 82px;
    height: 1px;
    background: #d6b56d;
}

.hero-ornament strong {
    font-size: 22px;
    line-height: 1;
}

.hebrew-line {
    margin: 12px auto 18px;
}

.hebrew-line p {
    margin: 0;
    color: #d6b56d !important;
}

@media (max-width:760px) {
    .hero {
        align-items: flex-end !important;
        padding-bottom: 110px !important;
    }

    .hero h1 {
        font-size: 62px !important;
    }

    .hero-ornament span {
        width: 56px;
    }
}

.ceremony-description {
    font-family: "Cormorant Garamond", serif;
    font-size: 2.05rem;
    line-height: 1.65;
    font-weight: 400;
    color: #1f2437;
    max-width: 650px;
    margin: 60px auto;
    text-align: center;
}

/* CORRECTIONS FINALES HERO + ESPACES + TEXTE CIVIL */

.hero {
    min-height: 82vh !important;
    align-items: flex-end !important;
    padding-top: 96px !important;
    padding-bottom: 35px !important;
}

.hero-content {
    transform: translateY(85px) !important;
    margin-bottom: 0 !important;
}

@media (max-width:760px) {
    .hero {
        min-height: 78vh !important;
        padding-bottom: 28px !important;
    }

    .hero-content {
        transform: translateY(115px) !important;
    }
}

/* Réduit les grands espaces après la photo */

.countdown-section {
    padding: 26px 18px 28px !important;
}

.celebrations-section {
    padding-top: 28px !important;
}

/* Texte civil plus cohérent */

.ceremony-description,
.civil-description {
    font-family: "Cormorant Garamond", Georgia, serif !important;
    font-size: 24px !important;
    line-height: 1.55 !important;
    font-weight: 500 !important;
    color: #172033 !important;
    max-width: 82% !important;
    margin: 34px auto 38px !important;
    text-align: center !important;
}

@media (max-width:760px) {
    .ceremony-description,
  .civil-description {
        font-size: 23px !important;
        line-height: 1.55 !important;
        max-width: 86% !important;
    }
}

/* Réglage final hero mobile */

.hero {
    min-height: 84vh !important;
    padding-bottom: 55px !important;
}

.hero-content {
    transform: translateY(85px) !important;
}

@media (max-width:760px) {
    .hero {
        min-height: 82vh !important;
        padding-bottom: 50px !important;
    }

    .hero-content {
        transform: translateY(80px) !important;
    }
}

/* ===========================================
   HERO FINAL - VERSION DEFINITIVE
   =========================================== */

/* Desktop */

.hero {
    min-height: 90vh !important;
    padding-bottom: 55px !important;
}

.hero-content {
    transform: translateY(75px) !important;
}

/* Mobile */

@media (max-width:760px) {
    .hero {
        min-height: 82vh !important;
        padding-bottom: 50px !important;
    }

    .hero-content {
        transform: translateY(110px) !important;
    }
}

/* HERO - laisser apparaître Maisons-Alfort */

.hero {
    min-height: 94vh !important;
    padding-bottom: 95px !important;
}

.hero-content {
    transform: translateY(60px) !important;
}

.countdown-section {
    padding-top: 55px !important;
    margin-top: 0 !important;
}

@media (max-width:760px) {
    .hero {
        min-height: 88vh !important;
        padding-bottom: 105px !important;
    }

    .hero-content {
        transform: translateY(75px) !important;
    }

    .countdown-section {
        padding-top: 58px !important;
    }
}

/* Compte à rebours premium intégré au Hero */

.hero-countdown {
    display: flex;
    justify-content: center;
    gap: 10px;
    margin-top: 24px;
}

.hero-countdown-card {
    width: 74px;
    padding: 11px 6px;
    border-radius: 18px;
    background: rgba(255,255,255,.16);
    border: 1px solid rgba(228,207,155,.75);
    backdrop-filter: blur(10px);
    box-shadow: 0 12px 30px rgba(0,0,0,.18);
}

.hero-countdown-card span {
    display: block;
    font-size: 30px;
    font-weight: 800;
    color: #fff;
    line-height: 1;
}

.hero-countdown-card small {
    display: block;
    margin-top: 6px;
    font-size: 10px;
    text-transform: uppercase;
    letter-spacing: 1px;
    color: #e4cf9b;
}

/* on désactive l’ancien compteur si jamais il reste dans le HTML */

.countdown-section {
    display: none !important;
}

@media (max-width:760px) {
    .hero-countdown {
        gap: 7px;
        margin-top: 22px;
    }

    .hero-countdown-card {
        width: 66px;
        padding: 10px 4px;
        border-radius: 16px;
    }

    .hero-countdown-card span {
        font-size: 27px;
    }

    .hero-countdown-card small {
        font-size: 9px;
    }
}

.map-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 14px;
}

.map-btn i {
    font-size: 1.25rem;
    color: #d6b56d;
}

.map-button {
    background: #172033;
    color: white;
    border: 2px solid #d6b56d;
}

.map-button i {
    color: #d6b56d;
}

.map-button:hover {
    background: #1d2942;
    box-shadow: 0 12px 28px rgba(214,181,109,.35);
}

.map-actions .map-button {
    background: linear-gradient(180deg,#E2CCA0 0%,#D6B56D 100%) !important;
    color: #172033 !important;
    border: 1px solid #C7A861 !important;
}

.map-actions .map-button i {
    color: #172033 !important;
}

.map-actions .map-button:hover {
    background: linear-gradient(180deg,#E9D6AE 0%,#DEBF7A 100%) !important;
    color: #172033 !important;
}

.hero {
    position: relative;
    overflow: hidden;
}

.hero-bg {
    position: absolute;
    inset: -5%;
    background: linear-gradient(to bottom,
      rgba(23,32,51,.10),
      rgba(23,32,51,.30),
      rgba(23,32,51,.72)),
      url("nous.png") center/cover;
    transform: translateY(0) scale(1.08);
    will-change: transform;
    z-index: 0;
}

.hero-content {
    position: relative;
    z-index: 2;
}

.map-button {
    position: relative !important;
    overflow: hidden !important;
}

.map-button::after {
    content: "";
    position: absolute;
    top: -40%;
    left: -80%;
    width: 45%;
    height: 180%;
    background: linear-gradient(
    120deg,
    transparent 0%,
    rgba(255,255,255,.55) 50%,
    transparent 100%
  );
    transform: rotate(18deg);
    animation: buttonShine 7s ease-in-out infinite;
    pointer-events: none;
}

@keyframes buttonShine {
    0% {
        left: -80%;
    }

    12% {
        left: 130%;
    }

    100% {
        left: 130%;
    }
}

.luxury-card {
    position: relative !important;
    overflow: hidden !important;
}

.luxury-card::after {
    content: "";
    position: absolute;
    inset: 0;
    border-radius: 34px;
    pointer-events: none;
    border: 1px solid rgba(228,207,155,.25);
    animation: goldBorderGlow 6s ease-in-out infinite;
}

@keyframes goldBorderGlow {
    0%,100% {
        box-shadow: 0 0 0 rgba(228,207,155,0);
        opacity: .45;
    }

    50% {
        box-shadow: 0 0 22px rgba(228,207,155,.42);
        opacity: 1;
    }
}

/* ==========================================
   Texture papier ivoire premium
   ========================================== */

body {
    background-color: #fbfaf7 !important;
    background-image: radial-gradient(rgba(200,168,107,.035) 0.6px, transparent 0.6px),
        radial-gradient(rgba(23,32,51,.02) 0.5px, transparent 0.5px),
        linear-gradient(
            180deg,
            rgba(255,255,255,.35),
            rgba(250,247,240,.35)
        );
    background-size: 14px 14px,
        22px 22px,
        100% 100%;
    background-position: 0 0,
        8px 8px,
        0 0;
}


body::after{
    content:"";
    position:fixed;
    inset:0;
    pointer-events:none;
    z-index:9999;

    background:
        radial-gradient(circle at 20% 20%, rgba(255,255,255,.18), transparent 35%),
        radial-gradient(circle at 80% 70%, rgba(214,181,109,.04), transparent 40%);

    mix-blend-mode:soft-light;
}

/* ==========================================
   LOGO A&E PREMIUM
   ========================================== */

.top-logo-bar img,
.card-logo img,
.countdown-logo,
.site-logo img{
    animation:logoFloat 6s ease-in-out infinite;
    filter:
        drop-shadow(0 3px 8px rgba(23,32,51,.10))
        drop-shadow(0 0 10px rgba(214,181,109,.16));
}

@keyframes logoFloat{
    0%,100%{
        transform:translateY(0);
    }
    50%{
        transform:translateY(-3px);
    }
}

/* halo doré subtil */
.top-logo-bar,
.card-logo,
.site-logo{
    position:relative;
}

.top-logo-bar::after,
.card-logo::after,
.site-logo::after{
    content:"";
    position:absolute;
    left:50%;
    top:50%;
    width:76px;
    height:76px;
    transform:translate(-50%,-50%);
    background:radial-gradient(circle, rgba(214,181,109,.16), transparent 70%);
    filter:blur(10px);
    pointer-events:none;
    z-index:-1;
}

/* reflet très discret sur le logo */
.top-logo-bar img,
.card-logo img,
.site-logo img{
    transition:.35s ease;
}

@media(hover:hover){
    .top-logo-bar img:hover,
    .card-logo img:hover,
    .site-logo img:hover{
        transform:scale(1.05) rotate(-2deg);
    }
}

/* petit soulignement doré élégant */
.card-logo::before,
.site-logo::before{
    content:"";
    display:block;
    width:46px;
    height:1px;
    background:#d6b56d;
    opacity:.45;
    margin:0 auto 8px;
}


/* ==========================================
   FINITIONS PREMIUM CARTONS + LOGO
   ========================================== */

/* Logo A&E plus discret dans les cartons */
.card-logo img{
  max-width:105px !important;
  opacity:.86 !important;
  filter:
    drop-shadow(0 2px 5px rgba(23,32,51,.08))
    drop-shadow(0 0 5px rgba(214,181,109,.10)) !important;
}

/* Réduit le halo du logo dans les cartes */
.card-logo::after{
  width:44px !important;
  height:44px !important;
  opacity:.35 !important;
  filter:blur(8px) !important;
}

/* Supprime la petite ligne dorée isolée */
.card-logo::before,
.site-logo::before{
  display:none !important;
}

/* Effet papier imprimé / embossage subtil */
.luxury-card{
  box-shadow:
    0 22px 50px rgba(23,32,51,.08),
    0 4px 12px rgba(23,32,51,.04),
    inset 0 1px 0 rgba(255,255,255,.75),
    inset 0 -1px 0 rgba(200,168,107,.10) !important;
}

/* Contour intérieur plus fin et plus chic */
.luxury-card-inner{
  box-shadow:
    inset 0 0 0 1px rgba(214,181,109,.22),
    inset 0 8px 28px rgba(255,255,255,.45) !important;
}

/* Apparition douce des cartes */
.luxury-card.reveal,
.luxury-card{
  opacity:0;
  transform:translateY(24px);
  transition:
    opacity .75s ease,
    transform .75s ease,
    box-shadow .35s ease;
}

.luxury-card.visible,
.reveal.visible .luxury-card,
.luxury-card.reveal.visible{
  opacity:1;
  transform:translateY(0);
}

/* Reflet très lent sur le monogramme A&E */
.card-logo{
  position:relative;
  overflow:hidden;
  display:inline-block;
}

.card-logo::before{
  content:"";
  position:absolute;
  top:-40%;
  left:-90%;
  width:45%;
  height:180%;
  background:linear-gradient(
    120deg,
    transparent 0%,
    rgba(255,255,255,.55) 50%,
    transparent 100%
  );
  transform:rotate(18deg);
  animation:logoShine 14s ease-in-out infinite;
  pointer-events:none;
  z-index:3;
}

@keyframes logoShine{
  0%{ left:-90%; }
  8%{ left:130%; }
  100%{ left:130%; }
}

/* Mobile : logo encore plus discret */
@media(max-width:760px){
  .card-logo img{
    max-width:96px !important;
  }
}

/* ==========================================
   UNIFICATION THEME CARTON MAIRIE
   Houp­pa + RSVP
   ========================================== */

/* Même style papier luxe pour le 2e carton */
.luxury-card,
.rsvp-form,
.premium-rsvp{
  background:
    linear-gradient(rgba(255,253,247,.88),rgba(255,253,247,.88)),
    url("pap.png") center/700px auto repeat !important;

  border:1px solid rgba(214,181,109,.55) !important;
  border-radius:34px !important;

  box-shadow:
    0 22px 50px rgba(23,32,51,.08),
    0 4px 12px rgba(23,32,51,.04),
    inset 0 1px 0 rgba(255,255,255,.75),
    inset 0 -1px 0 rgba(200,168,107,.10) !important;
}

/* Intérieur identique au carton mairie */
.luxury-card-inner,
.rsvp-form-inner{
  background:rgba(255,253,247,.72) !important;
  border:1px solid rgba(214,181,109,.32) !important;
  border-radius:28px !important;
}

/* RSVP : supprimer l’effet trop sombre si présent */
.rsvp-section{
  background:
    linear-gradient(rgba(23,32,51,.88),rgba(23,32,51,.88)),
    url("pap.png") center/800px auto repeat !important;
}

/* Cartes de choix RSVP en style ivoire */
.rsvp-event-card,
.event-choice,
.rsvp-card{
  background:
    linear-gradient(rgba(255,253,247,.90),rgba(255,253,247,.90)),
    url("pap.png") center/650px auto repeat !important;

  border:1px solid rgba(214,181,109,.35) !important;
  border-radius:26px !important;

  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.65),
    0 10px 26px rgba(23,32,51,.05) !important;
}

/* Titres RSVP harmonisés */
.rsvp-section h2,
.rsvp-form h3,
.premium-rsvp h3{
  font-family:'Cormorant Garamond', Georgia, serif !important;
  color:#172033 !important;
}

/* Labels et textes RSVP */
.rsvp-form label,
.premium-rsvp label,
.rsvp-form p,
.premium-rsvp p{
  color:#172033 !important;
}

/* Bouton principal RSVP en doré champagne */
#rsvpSubmit,
.rsvp-submit{
  background:linear-gradient(180deg,#E7D8B5 0%,#D5B87A 100%) !important;
  color:#172033 !important;
  border:1px solid #C7A861 !important;
  border-radius:999px !important;
  box-shadow:
    0 12px 28px rgba(199,168,97,.32),
    inset 0 1px 0 rgba(255,255,255,.55) !important;
}

/* Mobile */
@media(max-width:760px){
  .luxury-card,
  .rsvp-form,
  .premium-rsvp{
    border-radius:30px !important;
  }

  .luxury-card-inner,
  .rsvp-form-inner{
    border-radius:24px !important;
  }
}

/* ==========================================================
   RSVP PREMIUM
========================================================== */

.rsvp-section{
    padding:90px 20px;
}

.rsvp-shell{

    max-width:900px;
    margin:auto;

    background:
        url("pap.png"),
        linear-gradient(#fffdfa,#fdf8ef);

    background-size:420px,cover;

    border:1px solid rgba(214,181,109,.45);

    border-radius:36px;

    box-shadow:
        0 25px 70px rgba(0,0,0,.08),
        0 2px 10px rgba(214,181,109,.15);

    padding:55px;
    position:relative;

    overflow:hidden;

}


/* effet papier */

.rsvp-shell::before{

    content:"";

    position:absolute;
    inset:18px;

    border:1px solid rgba(214,181,109,.25);

    border-radius:28px;

    pointer-events:none;

}


/* ==========================================================
   TITRES
========================================================== */

.rsvp-heading{

    text-align:center;
    margin-bottom:45px;

}

.rsvp-kicker{

    display:inline-block;

    color:#c8a86b;

    letter-spacing:4px;

    text-transform:uppercase;

    font-size:13px;

    font-weight:700;

    margin-bottom:14px;

}

.rsvp-heading h2{

    font-family:"Cormorant Garamond",serif;

    font-size:clamp(44px,5vw,62px);

    color:#172033;

    margin-bottom:15px;

}

.rsvp-heading p{

    color:#666;

    font-size:18px;

}


/* ==========================================================
   CHAMPS
========================================================== */

.field-block{

    margin-bottom:28px;

}

.field-block label{

    display:block;

    margin-bottom:10px;

    color:#172033;

    font-weight:600;

}

.field-block input,
.field-block textarea{

    width:100%;

    border:1px solid rgba(214,181,109,.45);

    border-radius:16px;

    padding:16px 18px;

    background:rgba(255,255,255,.82);

    font-size:16px;

    transition:.25s;

}

.field-block input:focus,
.field-block textarea:focus{

    outline:none;

    border-color:#c8a86b;

    box-shadow:0 0 0 4px rgba(214,181,109,.18);

}


/* ==========================================================
   CARTES RSVP
========================================================== */

.rsvp-event-card{

    background:
        url("pap.png"),
        linear-gradient(#fffdfa,#fdf8ef);

    background-size:300px,cover;

    border:1px solid rgba(214,181,109,.45);

    border-radius:24px;

    padding:28px;

    margin-bottom:28px;

    box-shadow:
        0 10px 30px rgba(0,0,0,.05);

}

.event-tag{

    display:inline-block;

    background:#efe4c4;

    color:#8a6724;

    padding:6px 14px;

    border-radius:999px;

    font-size:13px;

    font-weight:700;

    margin-bottom:10px;

}

.rsvp-event-text h3{

    font-family:"Cormorant Garamond",serif;

    color:#172033;

    font-size:34px;

    margin-bottom:12px;

}


/* ==========================================================
   OUI / NON
========================================================== */

.choice-row{

    display:flex;

    gap:15px;

    margin-top:22px;

    flex-wrap:wrap;

}

.choice-pill{

    flex:1;

    cursor:pointer;

}

.choice-pill span{

    display:block;

    padding:14px;

    border-radius:999px;

    text-align:center;

    background:white;

    border:1px solid rgba(214,181,109,.4);

    transition:.25s;

    font-weight:600;

}

.choice-pill input{

    display:none;

}

.choice-pill input:checked+span{

    background:#d6b56d;

    color:#172033;

    border-color:#c8a86b;

    box-shadow:
        0 10px 20px rgba(214,181,109,.28);

}


/* ==========================================================
   STEPPER
========================================================== */

.stepper{

    display:flex;

    align-items:center;

    justify-content:center;

    gap:15px;

    margin-top:18px;

}

.stepper button{

    width:42px;

    height:42px;

    border-radius:50%;

    border:none;

    background:#d6b56d;

    color:#172033;

    font-size:22px;

    cursor:pointer;

    transition:.25s;

}

.stepper button:hover{

    transform:scale(1.08);

}

.stepper input{

    width:70px;

    text-align:center;

    font-weight:700;

    border:1px solid rgba(214,181,109,.4);

    border-radius:14px;

    padding:10px;

}


/* ==========================================================
   BOUTON ENVOI
========================================================== */

.rsvp-submit{

    width:100%;

    display:flex;

    justify-content:center;

    align-items:center;

    gap:14px;

    margin-top:35px;

    padding:18px 28px;

    background:linear-gradient(180deg,#EFD18B,#D6B56D);

    color:#172033;

    border:none;

    border-radius:999px;

    font-size:18px;

    font-weight:700;

    cursor:pointer;

    box-shadow:
        0 18px 36px rgba(214,181,109,.30);

    transition:.25s;

}

.rsvp-submit:hover{

    transform:translateY(-3px);

    box-shadow:
        0 24px 46px rgba(214,181,109,.38);

}

.rsvp-submit i{

    font-size:22px;

}


/* ==========================================================
   MERCI
========================================================== */

.rsvp-thanks{

    text-align:center;

    padding:70px 20px;

}

.rsvp-thanks h3{

    font-family:"Cormorant Garamond",serif;

    font-size:48px;

    color:#172033;

}

.rsvp-thanks p{

    color:#666;

    font-size:18px;

}


/* ==========================================================
   MOBILE
========================================================== */

@media(max-width:760px){

.rsvp-shell{

    padding:34px 22px;

}

.rsvp-heading h2{

    font-size:42px;

}

.rsvp-event-text h3{

    font-size:28px;

}

.choice-row{

    flex-direction:column;

}

.rsvp-submit{

    font-size:17px;

    padding:17px;

}

}

/* ==========================================================
   ALIGNEMENT TYPO CARTON MAIRIE -> HOUPPA + RSVP
========================================================== */

/* Titres principaux comme le carton Mairie */
.religious-invitation-card .invitation-title,
.rsvp-heading h2,
.rsvp-event-text h3{
  font-family:"Cormorant Garamond", Georgia, serif !important;
  color:#172033 !important;
  font-weight:600 !important;
  line-height:.95 !important;
  letter-spacing:0 !important;
  text-transform:none !important;
}

.religious-invitation-card .invitation-title{
  font-size:clamp(54px,10vw,72px) !important;
}

.rsvp-heading h2{
  font-size:clamp(48px,9vw,66px) !important;
}

.rsvp-event-text h3{
  font-size:clamp(38px,7vw,52px) !important;
}

/* Dates comme le 1er carton */
.religious-invitation-card .invitation-date,
.rsvp-kicker,
.event-tag{
  font-family:"Cormorant Garamond", Georgia, serif !important;
  color:#172033 !important;
  background:none !important;
  padding:0 !important;
  border-radius:0 !important;
  letter-spacing:0 !important;
  text-transform:none !important;
  font-size:clamp(25px,5vw,32px) !important;
  font-weight:500 !important;
}

/* Lieux et adresses comme le 1er carton */
.religious-invitation-card .invitation-place,
.religious-invitation-card .invitation-address,
.rsvp-heading p,
.field-block label,
.count-panel p{
  font-family:"Cormorant Garamond", Georgia, serif !important;
  color:#172033 !important;
  font-size:clamp(24px,5vw,32px) !important;
  font-weight:500 !important;
  line-height:1.35 !important;
}

/* Boutons Oui / Non plus cohérents */
.choice-pill span{
  font-family:"Cormorant Garamond", Georgia, serif !important;
  color:#172033 !important;
  font-size:26px !important;
  font-weight:600 !important;
}

/* Texte message + champs */
.field-block input,
.field-block textarea{
  font-family:"Cormorant Garamond", Georgia, serif !important;
  color:#172033 !important;
  font-size:24px !important;
}

/* Bouton RSVP */
.rsvp-submit{
  font-family:"Inter", sans-serif !important;
  font-size:18px !important;
  font-weight:800 !important;
}

/* ==========================================================
   RSVP V8 — premium, sans carton, cohérent avec les faire-part
========================================================== */

.rsvp-premium-section{
  position:relative;
  overflow:hidden;
  padding:96px 20px 110px;
  background:
    radial-gradient(circle at 18% 8%, rgba(214,181,109,.22), transparent 30%),
    radial-gradient(circle at 90% 78%, rgba(214,181,109,.10), transparent 34%),
    linear-gradient(135deg,#101827 0%,#172033 55%,#22304a 100%);
}

.rsvp-premium-section::before{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  opacity:.16;
  background:
    linear-gradient(rgba(255,255,255,.08),rgba(255,255,255,.08)),
    url("pap.png") center/760px auto repeat;
  mix-blend-mode:soft-light;
}

.rsvp-premium-wrap{
  position:relative;
  z-index:2;
  max-width:820px;
  margin:0 auto;
}

.rsvp-intro{
  text-align:center;
  color:#fff;
  margin:0 auto 34px;
}

.rsvp-logo{
  width:92px;
  height:auto;
  display:block;
  margin:0 auto 22px;
  opacity:.94;
  filter:
    drop-shadow(0 8px 18px rgba(0,0,0,.18))
    drop-shadow(0 0 14px rgba(214,181,109,.18));
}

.rsvp-kicker{
  display:block;
  font-family:"Cormorant Garamond", Georgia, serif;
  font-size:clamp(25px,5vw,32px);
  font-weight:500;
  color:#d6b56d;
  letter-spacing:.08em;
  margin-bottom:8px;
}

.rsvp-intro h2{
  font-family:"Cormorant Garamond", Georgia, serif;
  font-size:clamp(54px,11vw,82px);
  font-weight:600;
  line-height:.95;
  color:#fff;
  margin:0 0 14px;
}

.rsvp-intro p{
  max-width:680px;
  margin:0 auto;
  font-family:"Inter",sans-serif;
  font-size:clamp(18px,4vw,22px);
  line-height:1.55;
  color:rgba(255,255,255,.86);
}

.rsvp-intro strong{
  color:#fff;
}

.rsvp-premium-section .premium-rsvp{
  background:
    linear-gradient(rgba(255,253,247,.92),rgba(255,253,247,.92)),
    url("pap.png") center/720px auto repeat !important;
  border:1px solid rgba(214,181,109,.62) !important;
  border-radius:36px !important;
  padding:42px 34px !important;
  box-shadow:
    0 34px 90px rgba(0,0,0,.34),
    0 8px 26px rgba(0,0,0,.12),
    inset 0 1px 0 rgba(255,255,255,.78) !important;
  backdrop-filter:blur(8px);
}

.rsvp-premium-section .field-block{
  margin-bottom:28px;
}

.rsvp-premium-section .field-block label,
.rsvp-premium-section .count-panel p{
  display:block;
  margin:0 0 12px;
  font-family:"Cormorant Garamond", Georgia, serif !important;
  font-size:clamp(26px,5vw,34px) !important;
  font-weight:500 !important;
  color:#172033 !important;
  line-height:1.15 !important;
}

.rsvp-premium-section input[type="text"],
.rsvp-premium-section textarea{
  width:100%;
  border:1px solid rgba(214,181,109,.42) !important;
  border-radius:22px !important;
  background:rgba(255,255,255,.84) !important;
  color:#172033 !important;
  font-family:"Cormorant Garamond", Georgia, serif !important;
  font-size:clamp(25px,5vw,34px) !important;
  font-weight:500 !important;
  padding:18px 22px !important;
  box-shadow:
    inset 0 1px 4px rgba(23,32,51,.04),
    0 10px 24px rgba(23,32,51,.04);
}

.rsvp-premium-section textarea{
  min-height:150px;
  resize:vertical;
}

.rsvp-premium-section input:focus,
.rsvp-premium-section textarea:focus{
  outline:none;
  border-color:#c8a86b !important;
  box-shadow:
    0 0 0 4px rgba(214,181,109,.16),
    inset 0 1px 4px rgba(23,32,51,.04) !important;
}

.rsvp-premium-section .rsvp-event-card{
  position:relative;
  margin:28px 0;
  padding:30px 26px;
  border-radius:30px;
  background:
    linear-gradient(rgba(255,253,247,.92),rgba(255,253,247,.92)),
    url("pap.png") center/620px auto repeat !important;
  border:1px solid rgba(214,181,109,.42) !important;
  box-shadow:
    0 16px 36px rgba(23,32,51,.08),
    inset 0 1px 0 rgba(255,255,255,.72) !important;
}

.rsvp-premium-section .rsvp-event-card::before{
  content:"";
  position:absolute;
  inset:14px;
  border-radius:23px;
  border:1px solid rgba(214,181,109,.18);
  pointer-events:none;
}

.rsvp-event-head,
.rsvp-event-card > .event-tag,
.rsvp-event-card > h3{
  position:relative;
  z-index:1;
}

.rsvp-premium-section .event-tag{
  display:block;
  margin:0 0 12px;
  background:none !important;
  padding:0 !important;
  border-radius:0 !important;
  font-family:"Cormorant Garamond", Georgia, serif !important;
  font-size:clamp(24px,4.6vw,31px) !important;
  font-weight:500 !important;
  color:#172033 !important;
  letter-spacing:0 !important;
  text-transform:none !important;
}

.rsvp-premium-section .rsvp-event-card h3{
  margin:0 0 24px !important;
  font-family:"Cormorant Garamond", Georgia, serif !important;
  font-size:clamp(40px,8vw,58px) !important;
  font-weight:600 !important;
  line-height:.95 !important;
  color:#172033 !important;
  letter-spacing:0 !important;
}

.rsvp-premium-section .choice-row{
  position:relative;
  z-index:1;
  display:flex;
  gap:14px;
  margin-top:20px;
}

.rsvp-premium-section .choice-pill{
  flex:1;
  cursor:pointer;
}

.rsvp-premium-section .choice-pill input{
  display:none;
}

.rsvp-premium-section .choice-pill span{
  display:flex;
  align-items:center;
  justify-content:center;
  min-height:58px;
  padding:14px 18px;
  border-radius:999px;
  background:rgba(255,255,255,.78) !important;
  border:1px solid rgba(214,181,109,.40) !important;
  color:#172033 !important;
  font-family:"Cormorant Garamond", Georgia, serif !important;
  font-size:clamp(26px,5vw,34px) !important;
  font-weight:600 !important;
  line-height:1;
  box-shadow:0 8px 22px rgba(23,32,51,.05);
  transition:transform .18s ease, background .22s ease, box-shadow .22s ease, border-color .22s ease;
}

.rsvp-premium-section .choice-pill input:checked + span{
  background:linear-gradient(180deg,#E7D8B5 0%,#D5B87A 100%) !important;
  border-color:#c7a861 !important;
  box-shadow:
    0 14px 26px rgba(199,168,97,.28),
    inset 0 1px 0 rgba(255,255,255,.55);
}

.rsvp-premium-section .choice-pill span:active{
  transform:scale(.98);
}

.rsvp-premium-section .count-panel{
  position:relative;
  z-index:1;
  display:none;
  margin-top:22px;
  text-align:center;
}

.rsvp-premium-section .count-panel.is-visible{
  display:block;
}

.rsvp-premium-section .stepper{
  display:flex;
  justify-content:center;
  align-items:center;
  gap:16px;
}

.rsvp-premium-section .stepper button{
  width:48px;
  height:48px;
  border:none;
  border-radius:50%;
  background:linear-gradient(180deg,#E7D8B5 0%,#D5B87A 100%);
  color:#172033;
  font-size:28px;
  line-height:1;
  font-weight:700;
  box-shadow:0 10px 22px rgba(199,168,97,.24);
}

.rsvp-premium-section .stepper input{
  width:82px;
  height:48px;
  text-align:center;
  border:1px solid rgba(214,181,109,.38);
  border-radius:16px;
  background:white;
  color:#172033;
  font-family:"Inter",sans-serif;
  font-size:22px;
  font-weight:800;
}

.rsvp-error{
  min-height:24px;
  text-align:center;
  color:#9f2d2d !important;
  font-family:"Inter",sans-serif !important;
  font-size:15px !important;
  font-weight:700 !important;
}

.rsvp-premium-section .rsvp-submit{
  width:100%;
  display:flex;
  justify-content:center;
  align-items:center;
  gap:14px;
  margin-top:26px;
  padding:18px 24px;
  border-radius:999px !important;
  border:1px solid #c7a861 !important;
  background:linear-gradient(180deg,#E7D8B5 0%,#D5B87A 100%) !important;
  color:#172033 !important;
  font-family:"Inter",sans-serif !important;
  font-size:18px !important;
  font-weight:800 !important;
  cursor:pointer;
  box-shadow:
    0 18px 42px rgba(199,168,97,.34),
    inset 0 1px 0 rgba(255,255,255,.55) !important;
  transition:transform .18s ease, box-shadow .24s ease;
}

.rsvp-premium-section .rsvp-submit i{
  font-size:21px;
  color:#172033 !important;
}

.rsvp-premium-section .rsvp-submit:active{
  transform:scale(.98);
}

.rsvp-premium-section .rsvp-submit.is-loading{
  opacity:.78;
  pointer-events:none;
}

.rsvp-thanks-premium{
  display:none;
  text-align:center;
  margin:0 auto;
  padding:58px 30px;
  border-radius:36px;
  background:
    linear-gradient(rgba(255,253,247,.92),rgba(255,253,247,.92)),
    url("pap.png") center/700px auto repeat;
  border:1px solid rgba(214,181,109,.62);
  box-shadow:
    0 34px 90px rgba(0,0,0,.34),
    inset 0 1px 0 rgba(255,255,255,.76);
}

.thanks-logo{
  width:92px;
  display:block;
  margin:0 auto 18px;
}

.thanks-heart{
  color:#d6b56d;
  font-size:32px;
  margin-bottom:10px;
}

.rsvp-thanks-premium h3{
  font-family:"Cormorant Garamond", Georgia, serif;
  font-size:clamp(58px,12vw,82px);
  font-weight:600;
  color:#172033;
  margin:0 0 14px;
}

.rsvp-thanks-premium p{
  color:#172033;
  font-family:"Inter",sans-serif;
  font-size:19px;
  line-height:1.6;
}

.rsvp-thanks-premium .thanks-signature{
  margin-top:22px;
  font-family:"Cormorant Garamond", Georgia, serif;
  font-size:40px;
  color:#172033;
}

.rsvp-thanks-premium .thanks-hebrew{
  font-family:"Noto Serif Hebrew", serif;
  color:#c8a86b;
  font-size:28px;
  font-weight:700;
}

#confettiLayer{
  pointer-events:none;
  position:fixed;
  inset:0;
  z-index:99999;
  overflow:hidden;
}

.confetti{
  position:absolute;
  top:-30px;
  width:9px;
  height:16px;
  border-radius:2px;
  opacity:.95;
  animation:confettiFall 2.9s cubic-bezier(.16,.84,.44,1) forwards;
}

.confetti.round{
  width:9px;
  height:9px;
  border-radius:50%;
}

@keyframes confettiFall{
  0%{
    transform:translate3d(0,-20px,0) rotate(0deg);
    opacity:1;
  }
  100%{
    transform:translate3d(var(--x-drift),105vh,0) rotate(var(--spin));
    opacity:0;
  }
}

@media(max-width:760px){
  .rsvp-premium-section{
    padding:78px 16px 92px;
  }

  .rsvp-premium-section .premium-rsvp{
    padding:32px 20px !important;
    border-radius:32px !important;
  }

  .rsvp-premium-section .rsvp-event-card{
    padding:28px 20px;
    border-radius:28px;
  }

  .rsvp-premium-section .choice-row{
    flex-direction:column;
  }

  .rsvp-premium-section .choice-pill span{
    min-height:58px;
  }

  .rsvp-premium-section input[type="text"],
  .rsvp-premium-section textarea{
    padding:16px 18px !important;
  }
}

.rsvp-intro{
    text-align:center;
    margin-bottom:45px;
}

.rsvp-logo{
    width:120px;
    display:block;
    margin:0 auto 28px;
}

.rsvp-title-line{
    display:flex;
    align-items:center;
    justify-content:center;
    gap:18px;
    margin-bottom:22px;
}

.rsvp-title-line span:first-child,
.rsvp-title-line span:last-child{
    width:90px;
    height:1px;
    background:linear-gradient(to right,
        transparent,
        #d5b46a,
        transparent);
}

.rsvp-kicker{
    color:#d5b46a;
    font-family:'Cormorant Garamond',serif;
    font-size:34px;
    letter-spacing:8px;
    font-weight:600;
    text-transform:uppercase;
    text-shadow:
        0 0 8px rgba(213,180,106,.25),
        0 0 20px rgba(213,180,106,.15);
}

.rsvp-intro h2{
    color:#fff;
    font-family:'Cormorant Garamond',serif;
    font-size:72px;
    line-height:.95;
    font-weight:600;
    margin:0 0 22px;
}

.rsvp-intro p{
    color:rgba(255,255,255,.92);
    font-size:31px;
    line-height:1.45;
    max-width:720px;
    margin:auto;
}

.rsvp-intro strong{
    color:#fff;
    font-weight:700;
}

@media(max-width:768px){

.rsvp-logo{
    width:90px;
    margin-bottom:22px;
}

.rsvp-title-line{
    gap:12px;
    margin-bottom:18px;
}

.rsvp-title-line span:first-child,
.rsvp-title-line span:last-child{
    width:55px;
}

.rsvp-kicker{
    font-size:22px;
    letter-spacing:5px;
}

.rsvp-intro h2{
    font-size:58px;
}

.rsvp-intro p{
    font-size:18px;
}

}

.rsvp-intro{
  text-align:center;
  margin-bottom:34px;
}

.rsvp-logo,
.rsvp-title-line{
  display:none !important;
}

.rsvp-kicker{
  display:inline-block;
  margin-bottom:14px;
  color:#d6b56d !important;
  font-family:"Inter", sans-serif !important;
  font-size:13px !important;
  font-weight:800 !important;
  letter-spacing:3px !important;
  text-transform:uppercase !important;
}

.rsvp-intro h2{
  margin:0 0 16px;
  color:#fff !important;
  font-family:"Cormorant Garamond", Georgia, serif !important;
  font-size:clamp(42px,9vw,64px) !important;
  font-weight:600 !important;
  line-height:1 !important;
}

.rsvp-intro p{
  max-width:620px;
  margin:0 auto;
  color:rgba(255,255,255,.86) !important;
  font-family:"Inter", sans-serif !important;
  font-size:clamp(17px,4vw,21px) !important;
  line-height:1.55 !important;
}

.rsvp-intro strong{
  color:#fff !important;
  font-weight:800 !important;
}

.rsvp-intro.rsvp-minimal{
  margin:0 auto 28px !important;
  padding:0 18px !important;
  text-align:center !important;
}

.rsvp-intro.rsvp-minimal .rsvp-mini-line{
  display:block;
  width:64px;
  height:1px;
  margin:0 auto 18px;
  background:linear-gradient(90deg,transparent,#d6b56d,transparent);
}

.rsvp-intro.rsvp-minimal .rsvp-small-title{
  margin:0 0 12px !important;
  color:#d6b56d !important;
  font-family:"Inter",sans-serif !important;
  font-size:13px !important;
  font-weight:800 !important;
  letter-spacing:4px !important;
  text-transform:uppercase !important;
}

.rsvp-intro.rsvp-minimal .rsvp-small-text{
  max-width:560px;
  margin:0 auto !important;
  color:rgba(255,255,255,.86) !important;
  font-family:"Inter",sans-serif !important;
  font-size:18px !important;
  line-height:1.55 !important;
}

.rsvp-intro.rsvp-minimal .rsvp-small-text strong{
  color:#fff !important;
  font-weight:800 !important;
}

.rsvp-intro.rsvp-minimal h2,
.rsvp-intro.rsvp-minimal .rsvp-kicker,
.rsvp-intro.rsvp-minimal .rsvp-logo{
  display:none !important;
}

@media(max-width:760px){
  .rsvp-premium-section{
    padding-top:46px !important;
  }

  .rsvp-intro.rsvp-minimal{
    margin-bottom:24px !important;
  }

  .rsvp-intro.rsvp-minimal .rsvp-small-text{
    font-size:16px !important;
  }
}
