body {
    min-height: 100vh;
    background: var(--background);
    color: var(--text);
    font-family: var(--font-body);
    font-size: 16px;
    line-height: 1.7;
    -webkit-font-smoothing: antialiased;
}

body.menu-open {
    overflow: hidden;
}

::selection {
    background: var(--champagne);
    color: var(--white);
}

.container {
    width: min(calc(100% - 80px), var(--container));
    margin-inline: auto;
}

.page-shell {
    overflow: clip;
}

.section {
    padding: 125px 0;
}

.section--soft {
    background: var(--background-soft);
}

.section--dark {
    background: var(--dark);
    color: var(--white);
}

.eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    color: var(--champagne-dark);
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .24em;
    text-transform: uppercase;
}

.eyebrow::before {
    content: "";
    width: 34px;
    height: 1px;
    background: currentColor;
}

.eyebrow--light {
    color: var(--champagne);
}

.button {
    min-height: 54px;
    padding: 0 28px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 1px solid transparent;
    border-radius: var(--radius-pill);
    font-size: 13px;
    font-weight: 600;
    cursor: pointer;
    transition: var(--transition);
}

.button:hover {
    transform: translateY(-2px);
}

.button--primary {
    background: var(--dark);
    color: var(--white);
}

.button--primary:hover {
    background: var(--champagne-dark);
}

.button--outline {
    border-color: var(--champagne);
    color: var(--text);
}

.button--outline:hover {
    background: var(--champagne);
    color: var(--white);
}

.button--light {
    background: var(--white);
    color: var(--dark);
}

.button--small {
    min-height: 44px;
    padding-inline: 21px;
    font-size: 12px;
}

.button--wide {
    width: 100%;
}

.text-link {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    padding-bottom: 5px;
    border-bottom: 1px solid rgba(168, 135, 100, .45);
    color: var(--text);
    font-size: 13px;
    font-weight: 600;
}

.text-link span {
    transition: transform var(--transition);
}

.text-link:hover span {
    transform: translate(3px, -3px);
}

.site-header {
    position: fixed;
    inset: 0 0 auto;
    z-index: 1000;
    border-bottom: 1px solid transparent;
    transition: var(--transition);
}

.site-header.is-scrolled {
    background: rgba(248, 245, 241, .93);
    border-color: rgba(228, 221, 214, .8);
    box-shadow: 0 10px 40px rgba(68, 56, 47, .05);
    backdrop-filter: blur(18px);
}

.site-header__inner {
    min-height: 100px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 34px;
}

.brand {
    width: 150px;
    display: flex;
    flex-direction: column;
    line-height: .84;
}

.brand__name {
    font-family: var(--font-display);
    font-size: 31px;
    font-weight: 500;
    letter-spacing: -.04em;
}

.brand__script {
    margin-left: 35px;
    color: var(--champagne-dark);
    font-family: var(--font-display);
    font-size: 27px;
    font-style: italic;
}

.brand__caption {
    margin-top: 10px;
    color: var(--text-soft);
    font-size: 8px;
    font-weight: 700;
    letter-spacing: .28em;
    text-transform: uppercase;
}

.site-nav {
    display: flex;
    align-items: center;
    gap: 34px;
}

.site-nav a {
    position: relative;
    padding: 8px 0;
    color: var(--text-soft);
    font-size: 12px;
    font-weight: 600;
}

.site-nav a::after {
    content: "";
    position: absolute;
    left: 0;
    bottom: 2px;
    width: 0;
    height: 1px;
    background: var(--champagne-dark);
    transition: width var(--transition);
}

.site-nav a:hover,
.site-nav a.is-active {
    color: var(--text);
}

.site-nav a:hover::after,
.site-nav a.is-active::after {
    width: 100%;
}

.menu-toggle {
    width: 44px;
    height: 44px;
    display: none;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 7px;
    background: transparent;
    cursor: pointer;
}

.menu-toggle span {
    width: 24px;
    height: 1px;
    background: var(--text);
    transition: var(--transition);
}

.menu-toggle[aria-expanded="true"] span:first-child {
    transform: translateY(4px) rotate(45deg);
}

.menu-toggle[aria-expanded="true"] span:last-child {
    transform: translateY(-4px) rotate(-45deg);
}

.hero {
    min-height: 100svh;
    padding: 150px 0 80px;
    display: flex;
    align-items: center;
    background:
        radial-gradient(circle at 80% 22%, rgba(203, 176, 143, .16), transparent 29%),
        radial-gradient(circle at 6% 78%, rgba(168, 176, 160, .13), transparent 26%),
        var(--background);
}

.hero__grid {
    display: grid;
    grid-template-columns: .95fr 1.05fr;
    align-items: center;
    gap: clamp(50px, 7vw, 110px);
}

.hero__title {
    max-width: 690px;
    margin-top: 30px;
    font-family: var(--font-display);
    font-size: clamp(62px, 7vw, 112px);
    font-weight: 400;
    line-height: .86;
    letter-spacing: -.055em;
}

.hero__title em {
    display: block;
    margin-top: 14px;
    color: var(--champagne-dark);
    font-weight: 400;
}

.hero__lead {
    max-width: 560px;
    margin-top: 38px;
    color: var(--text-soft);
    font-size: 17px;
    line-height: 1.85;
}

.hero__actions {
    margin-top: 40px;
    display: flex;
    align-items: center;
    gap: 30px;
}

.hero__signature {
    margin-top: 72px;
    display: flex;
    align-items: center;
    gap: 15px;
    color: var(--text-faint);
    font-family: var(--font-display);
    font-size: 16px;
    font-style: italic;
}

.hero__signature-line {
    width: 46px;
    height: 1px;
    background: var(--line);
}

.hero__visual {
    position: relative;
    min-height: 650px;
}

.hero-card {
    position: absolute;
    inset: 0 3% 0 10%;
    overflow: hidden;
    border-radius: 320px 320px 38px 38px;
    background:
        linear-gradient(145deg, rgba(255,255,255,.3), transparent),
        linear-gradient(160deg, #e9dfd3 0%, #cbb69e 48%, #998b7d 100%);
    box-shadow: var(--shadow-soft);
}

.hero-card::after {
    content: "";
    position: absolute;
    inset: 18px;
    border: 1px solid rgba(255,255,255,.35);
    border-radius: inherit;
}

.hero-card__glow {
    position: absolute;
    width: 420px;
    height: 420px;
    right: -90px;
    top: -80px;
    border-radius: 50%;
    background: rgba(255,255,255,.34);
}

.hero-card__arch {
    position: absolute;
    inset: 0;
    z-index: 2;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-direction: column;
    color: rgba(255,255,255,.94);
    text-align: center;
}

.hero-card__small {
    margin-bottom: -10px;
    font-family: var(--font-display);
    font-size: 38px;
}

.hero-card__arch strong {
    font-family: var(--font-display);
    font-size: clamp(75px, 7vw, 116px);
    font-style: italic;
    font-weight: 400;
    line-height: .95;
}

.hero-card__caption {
    margin-top: 24px;
    font-size: 9px;
    font-weight: 700;
    letter-spacing: .35em;
    text-transform: uppercase;
}

.hero-note {
    position: absolute;
    z-index: 4;
    left: -10px;
    bottom: 50px;
    width: 225px;
    padding: 26px;
    background: rgba(255,255,255,.91);
    border: 1px solid rgba(228,221,214,.8);
    border-radius: var(--radius-md);
    box-shadow: var(--shadow-soft);
    backdrop-filter: blur(12px);
}

.hero-note__star {
    display: block;
    margin-bottom: 13px;
    color: var(--champagne-dark);
    font-size: 20px;
}

.hero-note p {
    font-family: var(--font-display);
    font-size: 20px;
    line-height: 1.35;
}

.manifest__grid,
.portfolio-story__inner {
    display: grid;
    grid-template-columns: .45fr 1.55fr;
    gap: 70px;
}

.manifest__intro {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
}

.manifest__number {
    color: var(--text-faint);
    font-family: var(--font-display);
    font-size: 46px;
}

.manifest__content h2,
.section-heading h2,
.care__top h2,
.final-cta h2,
.digital-invite__content h2,
.page-hero h1,
.about-story__content h2,
.service-detail__title h2,
.state-page h1 {
    font-family: var(--font-display);
    font-weight: 400;
    letter-spacing: -.04em;
}

.manifest__content h2 {
    font-size: clamp(48px, 5.4vw, 82px);
    line-height: 1;
}

.manifest__content h2 em {
    color: var(--champagne-dark);
    font-weight: 400;
}

.manifest__content > p {
    max-width: 690px;
    margin: 36px 0 30px;
    color: var(--text-soft);
}

.section-heading {
    margin-bottom: 70px;
    display: grid;
    grid-template-columns: 1.2fr .8fr;
    align-items: end;
    gap: 80px;
}

.section-heading h2 {
    max-width: 760px;
    margin-top: 18px;
    font-size: clamp(44px, 4.6vw, 72px);
    line-height: 1.02;
}

.section-heading > p {
    color: var(--text-soft);
}

.service-list {
    border-top: 1px solid rgba(168,135,100,.24);
}

.service-row {
    min-height: 150px;
    display: grid;
    grid-template-columns: 85px .8fr 1.1fr 50px;
    align-items: center;
    gap: 35px;
    border-bottom: 1px solid rgba(168,135,100,.24);
}

.service-row__number {
    color: var(--text-faint);
    font-family: var(--font-display);
    font-size: 24px;
}

.service-row__name {
    font-family: var(--font-display);
    font-size: clamp(34px, 3vw, 48px);
}

.service-row p {
    color: var(--text-soft);
    font-size: 14px;
}

.service-row__arrow {
    justify-self: end;
    color: var(--champagne-dark);
    font-size: 24px;
}

.section-action {
    margin-top: 45px;
    display: flex;
    justify-content: flex-end;
}

.care__top {
    max-width: 890px;
    margin-bottom: 70px;
}

.care__top h2 {
    margin-top: 22px;
    font-size: clamp(48px, 5vw, 78px);
    line-height: 1;
}

.care__grid,
.values__grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    border-top: 1px solid var(--line);
}

.care-card,
.value-card {
    min-height: 330px;
    padding: 35px 30px;
    border-right: 1px solid var(--line);
}

.care-card:first-child,
.value-card:first-child {
    padding-left: 0;
}

.care-card:last-child,
.value-card:last-child {
    border-right: 0;
}

.care-card > span,
.value-card > span {
    color: var(--text-faint);
    font-size: 11px;
}

.care-card h3,
.value-card h3 {
    margin-top: 80px;
    font-family: var(--font-display);
    font-size: 38px;
    font-weight: 400;
}

.care-card p,
.value-card p {
    margin-top: 18px;
    color: var(--text-soft);
    font-size: 14px;
}

.stories__grid,
.portfolio-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 34px;
}

.story-card__media,
.portfolio-card__media {
    aspect-ratio: .82;
    overflow: hidden;
    background: linear-gradient(150deg, #e6d8c9, #bca891);
}

.story-card__media img,
.portfolio-card__media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.story-card__placeholder {
    width: 100%;
    height: 100%;
    min-height: 320px;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-direction: column;
    color: rgba(255,255,255,.9);
}

.story-card__placeholder span {
    font-family: var(--font-display);
    font-size: 27px;
}

.story-card__placeholder strong {
    font-family: var(--font-display);
    font-size: 48px;
    font-style: italic;
    font-weight: 400;
}

.story-card__content,
.portfolio-card__content {
    padding: 20px 0;
}

.story-card__content > span,
.portfolio-card__content > span {
    color: var(--champagne-dark);
    font-size: 9px;
    font-weight: 700;
    letter-spacing: .18em;
    text-transform: uppercase;
}

.story-card__content h3,
.portfolio-card__content h2 {
    margin-top: 8px;
    font-family: var(--font-display);
    font-size: 36px;
    font-weight: 400;
}

.story-card__content p,
.portfolio-card__content div {
    color: var(--text-soft);
    font-size: 12px;
}

.stories__editorial {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 24px;
}

.stories__editorial article {
    min-height: 430px;
    padding: 42px;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    background:
        linear-gradient(to top, rgba(41,37,35,.58), transparent 70%),
        linear-gradient(145deg, #d8c5b2, #9e8c79);
    color: var(--white);
}

.stories__editorial article:nth-child(2) {
    background:
        linear-gradient(to top, rgba(41,37,35,.58), transparent 70%),
        linear-gradient(145deg, #e4d4cf, #b6938c);
}

.stories__editorial article:nth-child(3) {
    background:
        linear-gradient(to top, rgba(41,37,35,.58), transparent 70%),
        linear-gradient(145deg, #cbd1c6, #7d8879);
}

.stories__editorial span {
    font-size: 10px;
    text-transform: uppercase;
}

.stories__editorial h3 {
    margin-top: 12px;
    font-family: var(--font-display);
    font-size: 38px;
    font-weight: 400;
    line-height: 1.05;
}

.stories__editorial p {
    margin-top: 18px;
    color: rgba(255,255,255,.75);
    font-size: 13px;
}

.digital-invite__grid,
.about-story__grid,
.form-page__grid,
.contact-page__grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    align-items: center;
    gap: 90px;
}

.digital-invite__content h2 {
    margin-top: 24px;
    font-size: clamp(50px, 5vw, 78px);
    line-height: .98;
}

.digital-invite__content h2 em {
    color: var(--champagne);
    font-weight: 400;
}

.digital-invite__content > p {
    margin-top: 30px;
    color: rgba(255,255,255,.65);
}

.feature-list {
    margin: 35px 0 40px;
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 14px;
}

.feature-list li {
    color: rgba(255,255,255,.8);
    font-size: 13px;
}

.phone-frame {
    width: min(330px, 100%);
    margin-inline: auto;
    padding: 12px;
    border-radius: 52px;
    background: #11100f;
}

.phone-frame__screen {
    min-height: 620px;
    padding: 60px 30px;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-direction: column;
    border-radius: 42px;
    background:
        radial-gradient(circle at top, rgba(203,176,143,.24), transparent 34%),
        #f6efe7;
    color: var(--text);
    text-align: center;
}

.phone-frame__mini {
    color: var(--champagne-dark);
    font-size: 9px;
    letter-spacing: .26em;
    text-transform: uppercase;
}

.phone-frame__screen strong {
    margin-top: 40px;
    font-family: var(--font-display);
    font-size: 57px;
    font-weight: 400;
    line-height: .86;
}

.phone-frame__screen strong i {
    display: block;
    color: var(--champagne-dark);
}

.phone-frame__date {
    margin-top: 34px;
    font-family: var(--font-display);
}

.phone-frame__divider {
    width: 1px;
    height: 70px;
    margin: 32px 0;
    background: var(--champagne);
}

.phone-frame__count {
    font-family: var(--font-display);
    font-size: 35px;
}

.final-cta__inner,
.state-page__inner {
    max-width: 940px;
    margin-inline: auto;
    text-align: center;
}

.final-cta .eyebrow,
.state-page .eyebrow {
    justify-content: center;
}

.final-cta h2,
.state-page h1 {
    margin-top: 25px;
    font-size: clamp(52px, 6vw, 90px);
    line-height: .95;
}

.final-cta h2 em {
    display: block;
    color: var(--champagne-dark);
    font-weight: 400;
}

.final-cta p,
.state-page p {
    max-width: 620px;
    margin: 30px auto 38px;
    color: var(--text-soft);
}

.state-page {
    min-height: 100svh;
    padding: 170px 0 100px;
    display: flex;
    align-items: center;
}

.state-page__icon {
    display: block;
    color: var(--champagne-dark);
    font-size: 30px;
}

.site-footer {
    padding: 90px 0 30px;
    background: var(--dark);
    color: rgba(255,255,255,.68);
}

.site-footer__top {
    display: grid;
    grid-template-columns: 1.5fr repeat(3, 1fr);
    gap: 60px;
}

.brand--footer {
    color: var(--white);
}

.brand--footer .brand__script {
    color: var(--champagne);
}

.site-footer__brand p {
    max-width: 370px;
    margin-top: 28px;
    color: rgba(255,255,255,.53);
    font-size: 13px;
}

.site-footer__column {
    display: flex;
    flex-direction: column;
    gap: 12px;
    font-size: 12px;
}

.site-footer__title {
    color: var(--white);
    font-size: 10px;
    font-weight: 700;
    letter-spacing: .18em;
    text-transform: uppercase;
}

.site-footer__bottom {
    margin-top: 70px;
    padding-top: 25px;
    display: flex;
    justify-content: space-between;
    border-top: 1px solid rgba(255,255,255,.1);
    color: rgba(255,255,255,.37);
    font-size: 10px;
}

.floating-contact {
    position: fixed;
    right: 25px;
    bottom: 25px;
    z-index: 900;
    min-height: 48px;
    padding: 0 18px;
    display: flex;
    align-items: center;
    gap: 10px;
    border: 1px solid var(--line);
    border-radius: var(--radius-pill);
    background: rgba(255,255,255,.94);
    box-shadow: 0 16px 45px rgba(68,56,47,.13);
    font-size: 11px;
    font-weight: 600;
}

.floating-contact__dot {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: var(--sage-dark);
}

.page-hero {
    padding: 190px 0 100px;
}

.page-hero__inner {
    max-width: 920px;
}

.page-hero h1 {
    margin-top: 28px;
    font-size: clamp(62px, 7vw, 104px);
    line-height: .92;
}

.page-hero p {
    max-width: 650px;
    margin-top: 30px;
    color: var(--text-soft);
}

.page-hero--center .page-hero__inner {
    margin-inline: auto;
    text-align: center;
}

.page-hero--center .eyebrow {
    justify-content: center;
}

.page-hero--center p {
    margin-inline: auto;
}

.editorial-arch {
    min-height: 610px;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-direction: column;
    border-radius: 300px 300px 28px 28px;
    background:
        radial-gradient(circle at 70% 20%, rgba(255,255,255,.34), transparent 32%),
        linear-gradient(160deg, #e5d7c8, #aa9681);
    color: rgba(255,255,255,.9);
}

.editorial-arch span {
    font-family: var(--font-display);
    font-size: 35px;
}

.editorial-arch strong {
    font-family: var(--font-display);
    font-size: 72px;
    font-style: italic;
    font-weight: 400;
}

.editorial-arch small {
    margin-top: 25px;
    font-size: 9px;
    letter-spacing: .3em;
    text-transform: uppercase;
}

.about-story__content h2 {
    margin-top: 25px;
    font-size: clamp(48px, 5vw, 76px);
    line-height: 1;
}

.about-story__content p {
    margin-top: 26px;
    color: var(--text-soft);
}

.about-story__content .button {
    margin-top: 32px;
}

.service-detail {
    min-height: 260px;
    padding: 45px 0;
    display: grid;
    grid-template-columns: 100px .8fr 1.1fr;
    gap: 60px;
    border-top: 1px solid var(--line);
}

.service-detail:last-child {
    border-bottom: 1px solid var(--line);
}

.service-detail__index {
    color: var(--text-faint);
    font-family: var(--font-display);
    font-size: 30px;
}

.service-detail__title h2 {
    font-size: clamp(38px, 4vw, 58px);
    line-height: 1;
}
.service-public-icon{margin-right:12px;display:inline-block;color:var(--accent);font-family:var(--font-body);font-size:.58em;vertical-align:.18em}.service-public-icon--hero{margin:24px 0 4px;display:block;font-size:38px}.service-photo-section{padding-top:30px}.service-photo-gallery{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.service-photo-gallery figure{margin:0}.service-photo-gallery img{width:100%;height:360px;display:block;object-fit:cover;background:var(--surface-warm)}.service-photo-gallery figure:nth-child(4n+1){grid-column:span 2}.service-photo-gallery figcaption{min-height:28px;padding-top:8px;color:var(--text-soft);font-size:10px}@media(max-width:800px){.service-photo-gallery{grid-template-columns:1fr 1fr}.service-photo-gallery figure:nth-child(4n+1){grid-column:auto}.service-photo-gallery img{height:280px}}@media(max-width:520px){.service-photo-gallery{grid-template-columns:1fr}.service-photo-gallery img{height:320px}}

.service-detail__title p,
.service-detail__description p {
    margin-top: 18px;
    color: var(--text-soft);
}

.portfolio-card__content > div {
    display: flex;
    gap: 20px;
}

.empty-editorial {
    max-width: 850px;
    margin-inline: auto;
    padding: 90px 50px;
    text-align: center;
    border: 1px solid var(--line);
    background: var(--surface-warm);
}

.empty-editorial h2 {
    margin-top: 20px;
    font-family: var(--font-display);
    font-size: 54px;
    font-weight: 400;
}

.empty-editorial p {
    margin: 22px 0 30px;
    color: var(--text-soft);
}

.portfolio-hero {
    padding: 190px 0 0;
}

.portfolio-hero__content h1 {
    margin-top: 25px;
    font-family: var(--font-display);
    font-size: clamp(66px, 8vw, 118px);
    font-weight: 400;
    line-height: .88;
    letter-spacing: -.05em;
}

.portfolio-hero__meta {
    margin-top: 28px;
    display: flex;
    gap: 25px;
    color: var(--text-soft);
    font-size: 12px;
}

.portfolio-hero__image {
    margin-top: 60px;
    max-height: 820px;
    overflow: hidden;
}

.portfolio-hero__image img {
    width: 100%;
    min-height: 640px;
    object-fit: cover;
}

.portfolio-story__text {
    font-family: var(--font-display);
    font-size: 30px;
    line-height: 1.5;
}

.gallery-masonry {
    columns: 2;
    column-gap: 28px;
}

.gallery-item {
    margin-bottom: 28px;
    break-inside: avoid;
}

.gallery-item img {
    width: 100%;
}

.gallery-item figcaption {
    margin-top: 10px;
    color: var(--text-soft);
    font-size: 11px;
}

.form-page,
.contact-page {
    padding: 180px 0 120px;
}

.form-page__grid,
.contact-page__grid {
    align-items: start;
}

.form-page__intro,
.contact-page__content {
    position: sticky;
    top: 150px;
}

.form-page__intro h1,
.contact-page__content h1 {
    margin-top: 25px;
    font-family: var(--font-display);
    font-size: clamp(56px, 5vw, 78px);
    font-weight: 400;
    line-height: .95;
}

.form-page__intro > p,
.contact-page__content > p {
    margin-top: 28px;
    color: var(--text-soft);
}

.form-page__aside,
.contact-page__notes {
    margin-top: 50px;
}

.form-page__aside ol,
.contact-page__notes {
    display: grid;
    gap: 15px;
}

.form-page__aside li {
    display: flex;
    gap: 14px;
    color: var(--text-soft);
    font-size: 12px;
}

.contact-page__notes div {
    padding-top: 16px;
    display: flex;
    flex-direction: column;
    border-top: 1px solid var(--line);
}

.contact-page__notes span {
    color: var(--text-faint);
    font-size: 9px;
    text-transform: uppercase;
}

.contact-page__notes strong {
    margin-top: 4px;
    font-family: var(--font-display);
    font-size: 20px;
    font-weight: 400;
}

.form-card {
    padding: 48px;
    background: var(--surface);
    border: 1px solid var(--line);
    border-radius: var(--radius-md);
    box-shadow: var(--shadow-soft);
}

.form-section {
    padding-bottom: 50px;
    margin-bottom: 50px;
    display: grid;
    grid-template-columns: 50px 1fr;
    gap: 24px;
    border-bottom: 1px solid var(--line);
}

.form-section:last-child {
    margin-bottom: 0;
    padding-bottom: 0;
    border-bottom: 0;
}

.form-section__number {
    color: var(--champagne-dark);
    font-family: var(--font-display);
    font-size: 22px;
}

.form-section h2 {
    margin-bottom: 28px;
    font-family: var(--font-display);
    font-size: 32px;
    font-weight: 400;
}

.choice-grid,
.form-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 16px;
}

.choice input {
    position: absolute;
    opacity: 0;
}

.choice span {
    min-height: 50px;
    padding: 0 18px;
    display: flex;
    align-items: center;
    justify-content: center;
    border: 1px solid var(--line);
    border-radius: var(--radius-pill);
    color: var(--text-soft);
    font-size: 12px;
    cursor: pointer;
}

.choice input:checked + span {
    border-color: var(--champagne-dark);
    background: var(--champagne-dark);
    color: var(--white);
}

.field {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.field--full {
    grid-column: 1 / -1;
}

.field > span,
.invite-field > span {
    color: var(--text-soft);
    font-size: 11px;
    font-weight: 600;
}

.field input,
.field textarea,
.field select,
.invite-field input,
.invite-field textarea,
.invite-field select {
    width: 100%;
    border: 1px solid var(--line);
    border-radius: 12px;
    background: var(--surface-warm);
    color: var(--text);
    outline: 0;
}

.field input,
.field select,
.invite-field input,
.invite-field select {
    min-height: 52px;
    padding: 0 15px;
}

.field textarea,
.invite-field textarea {
    padding: 14px 15px;
    resize: vertical;
}

.field-error {
    color: #a95454;
    font-size: 10px;
}

.honeypot {
    position: absolute !important;
    left: -99999px !important;
    width: 1px !important;
    height: 1px !important;
    overflow: hidden !important;
}

.alert {
    margin: 18px 0;
    padding: 14px 16px;
    border-radius: 10px;
    font-size: 12px;
}

.alert--success {
    background: #eef5ed;
    color: #496445;
}

.alert--error {
    background: #f8eeee;
    color: #8d4a4a;
}

.invitation-body {
    --invite-primary: #a78868;
    --invite-secondary: #cab49a;
    --invite-background: #f8f2eb;
    background: var(--invite-background);
}

.invitation {
    overflow: hidden;
}

.invite-hero {
    min-height: 100svh;
    padding: 70px 25px;
    display: flex;
    align-items: center;
    justify-content: center;
    background:
        radial-gradient(circle at top, color-mix(in srgb, var(--invite-secondary) 30%, transparent), transparent 40%),
        var(--invite-background);
    text-align: center;
}

.invite-hero__inner {
    max-width: 880px;
}

.invite-guest,
.invite-kicker {
    color: var(--invite-primary);
    font-size: 10px;
    font-weight: 700;
    letter-spacing: .24em;
    text-transform: uppercase;
}

.invite-hero h1 {
    margin-top: 40px;
    font-family: var(--font-display);
    font-size: clamp(72px, 11vw, 150px);
    font-weight: 400;
    line-height: .78;
    letter-spacing: -.055em;
}

.invite-date {
    margin-top: 50px;
    display: block;
    font-family: var(--font-display);
    font-size: 20px;
    letter-spacing: .18em;
}

.invite-hero p {
    max-width: 600px;
    margin: 30px auto 0;
    color: var(--text-soft);
    font-family: var(--font-display);
    font-size: 23px;
}

.invite-scroll {
    margin-top: 70px;
    display: inline-flex;
    align-items: center;
    gap: 12px;
    color: var(--text-faint);
    font-size: 8px;
    text-transform: uppercase;
}

.invite-scroll span {
    width: 42px;
    height: 1px;
    background: var(--invite-secondary);
}

.invite-countdown {
    padding: 60px 20px;
    background: var(--dark);
    color: var(--white);
    text-align: center;
}

.invite-countdown > span {
    color: var(--invite-secondary);
    font-size: 9px;
    text-transform: uppercase;
}

.countdown {
    max-width: 720px;
    margin: 28px auto 0;
    display: grid;
    grid-template-columns: repeat(4, 1fr);
}

.countdown div {
    border-right: 1px solid rgba(255,255,255,.12);
}

.countdown div:last-child {
    border-right: 0;
}

.countdown strong {
    display: block;
    font-family: var(--font-display);
    font-size: clamp(36px, 6vw, 62px);
    font-weight: 400;
}

.countdown small {
    color: rgba(255,255,255,.45);
    font-size: 8px;
    text-transform: uppercase;
}

.invite-section,
.invite-dress,
.invite-gifts,
.invite-rsvp {
    padding: 110px 24px;
}

.invite-section--soft,
.invite-gifts {
    background: color-mix(in srgb, var(--invite-secondary) 10%, var(--invite-background));
}

.invite-container {
    width: min(100%, 930px);
    margin-inline: auto;
    text-align: center;
}

.invite-container h2 {
    max-width: 760px;
    margin: 20px auto 0;
    font-family: var(--font-display);
    font-size: clamp(44px, 7vw, 70px);
    font-weight: 400;
    line-height: 1;
}

.invite-prose {
    max-width: 700px;
    margin: 35px auto 0;
    color: var(--text-soft);
    font-family: var(--font-display);
    font-size: 24px;
    line-height: 1.7;
}

.invite-timeline {
    max-width: 720px;
    margin: 60px auto 0;
    text-align: left;
}

.invite-timeline article {
    padding: 26px 0;
    display: grid;
    grid-template-columns: 90px 1fr;
    gap: 28px;
    border-top: 1px solid var(--line);
}

.invite-timeline time {
    color: var(--invite-primary);
    font-family: var(--font-display);
    font-size: 24px;
}

.invite-timeline h3 {
    font-family: var(--font-display);
    font-size: 26px;
    font-weight: 400;
}

.invite-timeline p {
    color: var(--text-soft);
    font-size: 12px;
}

.invite-locations {
    margin-top: 55px;
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 22px;
}

.invite-location-card {
    padding: 42px;
    border: 1px solid var(--line);
    background: rgba(255,255,255,.42);
}

.invite-location-card > span {
    color: var(--invite-primary);
    font-size: 9px;
    text-transform: uppercase;
}

.invite-location-card h3 {
    margin-top: 12px;
    font-family: var(--font-display);
    font-size: 34px;
    font-weight: 400;
}

.invite-location-card p {
    margin-top: 15px;
    color: var(--text-soft);
    font-size: 12px;
}

.invite-location-card strong,
.invite-location-card a {
    display: block;
    margin-top: 18px;
}

.invite-location-card a {
    color: var(--invite-primary);
    font-size: 10px;
    font-weight: 700;
}

.invite-dress {
    background: var(--invite-primary);
    color: var(--white);
    text-align: center;
}

.invite-dress .invite-kicker {
    color: rgba(255,255,255,.65);
}

.invite-dress p {
    max-width: 570px;
    margin: 25px auto 0;
    color: rgba(255,255,255,.7);
}

.invite-gallery {
    margin-top: 55px;
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 10px;
}

.invite-gallery figure {
    aspect-ratio: .8;
    overflow: hidden;
}

.invite-gallery img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.invite-gifts p,
.invite-rsvp > .invite-container > p {
    max-width: 590px;
    margin: 25px auto 0;
    color: var(--text-soft);
}

.invite-button {
    min-height: 50px;
    margin-top: 28px;
    padding: 0 26px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 1px solid var(--invite-primary);
    border-radius: var(--radius-pill);
    background: var(--invite-primary);
    color: var(--white);
    font-size: 11px;
    font-weight: 700;
    cursor: pointer;
}

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

.rsvp-choice {
    display: grid;
    gap: 10px;
}

.rsvp-choice legend {
    margin-bottom: 14px;
    font-size: 12px;
    font-weight: 700;
}

.rsvp-choice label {
    position: relative;
}

.rsvp-choice input {
    position: absolute;
    opacity: 0;
}

.rsvp-choice span {
    min-height: 52px;
    padding: 0 18px;
    display: flex;
    align-items: center;
    border: 1px solid var(--line);
    border-radius: 12px;
    background: rgba(255,255,255,.45);
    font-size: 12px;
}

.rsvp-choice input:checked + span {
    border-color: var(--invite-primary);
    box-shadow: inset 3px 0 0 var(--invite-primary);
}

.invite-field {
    margin-top: 20px;
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.invite-footer {
    padding: 65px 20px;
    display: flex;
    align-items: center;
    flex-direction: column;
    background: var(--dark);
    color: rgba(255,255,255,.5);
}

.invite-footer a {
    margin-top: 9px;
    color: var(--white);
    font-family: var(--font-display);
    font-size: 30px;
}

.invite-access {
    min-height: 100svh;
    padding: 40px 20px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--background);
}

.invite-access__card {
    width: min(100%, 510px);
    padding: 55px;
    border: 1px solid var(--line);
    background: rgba(255,255,255,.8);
    box-shadow: var(--shadow-soft);
    text-align: center;
}

.invite-access__mark {
    width: 65px;
    height: 65px;
    margin: 0 auto 28px;
    display: flex;
    align-items: center;
    justify-content: center;
    border: 1px solid var(--champagne);
    border-radius: 50%;
    color: var(--champagne-dark);
    font-family: var(--font-display);
    font-size: 23px;
}

.invite-access .eyebrow {
    justify-content: center;
}

.invite-access h1 {
    margin-top: 20px;
    font-family: var(--font-display);
    font-size: 50px;
    font-weight: 400;
}

.invite-access p {
    margin: 20px 0 30px;
    color: var(--text-soft);
    font-size: 13px;
}

.invite-access form {
    display: grid;
    gap: 15px;
    text-align: left;
}

.reveal {
    opacity: 0;
    transform: translateY(24px);
    transition: opacity 800ms ease, transform 800ms cubic-bezier(.2,.75,.25,1);
}

.reveal--delay {
    transition-delay: 130ms;
}

.reveal.is-visible {
    opacity: 1;
    transform: none;
}

@media (max-width: 1100px) {
    .site-nav,
    .site-header__cta {
        display: none;
    }

    .menu-toggle {
        display: flex;
    }

    .site-nav {
        position: fixed;
        inset: 100px 20px auto;
        padding: 35px;
        display: flex;
        align-items: flex-start;
        flex-direction: column;
        background: rgba(248,245,241,.98);
        border: 1px solid var(--line);
        opacity: 0;
        visibility: hidden;
        transform: translateY(-12px);
    }

    .site-nav.is-open {
        opacity: 1;
        visibility: visible;
        transform: none;
    }

    .site-nav a {
        width: 100%;
        font-family: var(--font-display);
        font-size: 28px;
        font-weight: 400;
    }

    .hero__grid,
    .digital-invite__grid,
    .about-story__grid,
    .form-page__grid,
    .contact-page__grid,
    .manifest__grid,
    .portfolio-story__inner {
        grid-template-columns: 1fr;
    }

    .form-page__intro,
    .contact-page__content {
        position: static;
    }

    .care__grid,
    .values__grid {
        grid-template-columns: repeat(2, 1fr);
    }

    .site-footer__top {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (max-width: 760px) {
    .container {
        width: min(calc(100% - 38px), var(--container));
    }

    .section {
        padding: 88px 0;
    }

    .site-header__inner {
        min-height: 82px;
    }

    .site-nav {
        inset: 82px 16px auto;
    }

    .hero {
        min-height: auto;
        padding: 135px 0 80px;
    }

    .hero__title {
        font-size: clamp(58px, 18vw, 84px);
    }

    .hero__actions {
        align-items: flex-start;
        flex-direction: column;
    }

    .hero__visual {
        min-height: 510px;
    }

    .hero-card {
        inset: 0;
        border-radius: 220px 220px 28px 28px;
    }

    .hero-note {
        left: 14px;
        bottom: 20px;
        width: 190px;
        padding: 20px;
    }

    .section-heading,
    .stories__editorial,
    .testimonial-track,
    .portfolio-grid,
    .choice-grid,
    .form-grid,
    .invite-locations {
        grid-template-columns: 1fr;
    }

    .section-heading {
        gap: 25px;
    }

    .service-row {
        padding: 28px 0;
        grid-template-columns: 45px 1fr 30px;
        gap: 14px;
    }

    .service-row p {
        grid-column: 2 / 4;
    }

    .care__grid,
    .values__grid {
        grid-template-columns: 1fr;
    }

    .care-card,
    .value-card,
    .care-card:first-child,
    .value-card:first-child {
        min-height: auto;
        padding: 30px 0;
        border-right: 0;
        border-bottom: 1px solid var(--line);
    }

    .care-card h3,
    .value-card h3 {
        margin-top: 30px;
    }

    .feature-list {
        grid-template-columns: 1fr;
    }

    .site-footer__top {
        grid-template-columns: 1fr;
    }

    .site-footer__bottom {
        align-items: flex-start;
        flex-direction: column;
        gap: 12px;
    }

    .floating-contact span:last-child {
        display: none;
    }

    .floating-contact {
        width: 48px;
        padding: 0;
        justify-content: center;
    }

    .page-hero {
        padding: 145px 0 70px;
    }

    .page-hero h1 {
        font-size: 60px;
    }

    .service-detail {
        grid-template-columns: 55px 1fr;
        gap: 20px;
    }

    .service-detail__description {
        grid-column: 2;
    }

    .gallery-masonry {
        columns: 1;
    }

    .form-page,
    .contact-page {
        padding: 135px 0 90px;
    }

    .form-card {
        padding: 28px 20px;
    }

    .form-section {
        grid-template-columns: 1fr;
    }

    .countdown {
        grid-template-columns: repeat(2, 1fr);
        gap: 20px 0;
    }

    .countdown div:nth-child(2) {
        border-right: 0;
    }

    .invite-section,
    .invite-dress,
    .invite-gifts,
    .invite-rsvp {
        padding: 85px 20px;
    }

    .invite-gallery {
        grid-template-columns: repeat(2, 1fr);
    }

    .invite-access__card {
        padding: 40px 24px;
    }
}

.quote-planning {
    margin-top: 22px;
    padding: 24px;
    border: 1px solid rgba(159, 116, 70, .22);
    border-radius: 22px;
    background: linear-gradient(145deg, rgba(250,247,242,.96), #fff);
    box-shadow: 0 18px 44px rgba(54, 45, 37, .08);
}
.quote-planning__head {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 18px;
    padding-bottom: 18px;
    border-bottom: 1px solid rgba(54,45,37,.1);
}
.quote-planning__head span {
    color: var(--champagne-dark);
    font-size: 9px;
    font-weight: 700;
    letter-spacing: .17em;
    text-transform: uppercase;
}
.quote-planning__head h3 {
    margin: 4px 0 0;
    font-family: var(--font-display);
    font-size: 30px;
    font-weight: 500;
    line-height: 1;
}
.quote-planning__head strong {
    padding: 8px 12px;
    border-radius: 999px;
    background: #2c2825;
    color: #fff;
    font-size: 9px;
    letter-spacing: .08em;
    white-space: nowrap;
    text-transform: uppercase;
}
.quote-planning__groups {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
    margin-top: 18px;
}
.quote-planning__groups section {
    padding: 15px 16px;
    border-radius: 15px;
    background: #fff;
    box-shadow: inset 0 0 0 1px rgba(54,45,37,.08);
}
.quote-planning__groups h4 {
    display: flex;
    align-items: center;
    gap: 8px;
    margin: 0 0 9px;
    color: #2c2825;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: .1em;
    text-transform: uppercase;
}
.quote-planning__groups h4 i {
    display: grid;
    width: 25px;
    height: 25px;
    place-items: center;
    border-radius: 50%;
    background: #ede3d8;
    color: #8a6242;
    font-style: normal;
    font-size: 9px;
}
.quote-planning__groups ul { display: grid; gap: 5px; margin: 0; padding: 0; list-style: none; }
.quote-planning__groups li { position: relative; padding-left: 14px; color: var(--text-soft); font-size: 12px; line-height: 1.5; }
.quote-planning__groups li::before { content: ''; position: absolute; left: 0; top: .62em; width: 5px; height: 5px; border-radius: 50%; background: var(--champagne-dark); }
.quote-planning__edit { display: inline-flex; margin-top: 17px; color: #7b583c; font-size: 10px; font-weight: 700; letter-spacing: .06em; text-decoration: underline; text-underline-offset: 4px; text-transform: uppercase; }
@media (max-width: 620px) {
    .quote-planning { padding: 18px; }
    .quote-planning__head { align-items: flex-start; flex-direction: column; gap: 10px; }
    .quote-planning__groups { grid-template-columns: 1fr; }
}

/* V3.0.1 — Meu Planejamento */
.plan-toggle{margin:18px 0 12px;padding:10px 15px;display:inline-flex;align-items:center;gap:9px;border:1px solid #cdbdad;border-radius:999px;background:#fff;color:#5e5045;font:600 9px var(--font-body);letter-spacing:.03em;cursor:pointer;transition:.2s ease}.plan-toggle__check{width:19px;height:19px;display:grid;place-items:center;border:1px solid #cdbdad;border-radius:50%;color:transparent;font-size:10px}.plan-toggle:hover{border-color:#8d7259;background:#faf6f1}.plan-toggle.is-selected{border-color:#342c27;background:#342c27;color:#fff}.plan-toggle.is-selected .plan-toggle__check{border-color:#fff;color:#fff}.artist-card__body .plan-toggle,.team-card__body .plan-toggle,.music-track-card__body .plan-toggle{width:100%;justify-content:center}.service-detail__description .plan-toggle{display:flex;width:max-content}
.plan-toggle.is-included-in-group,.plan-toggle.is-included-in-group:hover{border-color:#d9cec3;background:#f4eee8;color:#7e6b5c;cursor:not-allowed;opacity:.88;transform:none}.plan-toggle.is-included-in-group .plan-toggle__check{border-color:#9a795f;background:#9a795f;color:#fff}
.planning-builder { background: #f8f5f1; }
.planning-group { margin-top: 52px; }
.planning-group__heading { display:flex;align-items:end;justify-content:space-between;gap:20px;margin-bottom:20px;padding-bottom:14px;border-bottom:1px solid var(--line); }
.planning-group__heading h3 { font-family:var(--font-display);font-size:36px;font-weight:400; }
.planning-group__heading span { color:var(--text-faint);font-size:10px;letter-spacing:.08em;text-transform:uppercase; }
.planning-grid { display:grid;grid-template-columns:repeat(3,1fr);gap:14px; }
.planning-option { position:relative;min-height:155px;padding:28px;text-align:left;border:1px solid var(--line);border-radius:20px;background:#fff;color:var(--text);cursor:pointer;transition:.22s ease; }
.planning-option:hover { transform:translateY(-3px);border-color:#bda78f;box-shadow:0 16px 40px rgba(46,37,31,.08); }
.planning-option small { display:block;color:#9a7c60;font-size:8px;font-weight:700;letter-spacing:.16em;text-transform:uppercase; }
.planning-option strong { display:block;margin-top:12px;font-family:var(--font-display);font-size:27px;font-weight:400;line-height:1.05; }
.planning-option em { display:block;margin-top:10px;color:var(--text-soft);font-size:11px;font-style:normal;line-height:1.6; }
.planning-option__check { position:absolute;right:18px;top:18px;width:28px;height:28px;display:grid;place-items:center;border:1px solid var(--line);border-radius:50%;color:transparent;background:#fff; }
.planning-option.is-selected { border-color:#8d7259;background:#f1e8df;box-shadow:inset 0 0 0 1px #8d7259; }
.planning-option.is-selected .planning-option__check { color:#fff;background:#342c27;border-color:#342c27; }
.planning-tray { position:fixed;z-index:120;left:50%;bottom:22px;transform:translateX(-50%);width:min(760px,calc(100% - 28px));padding:12px 12px 12px 22px;display:flex;align-items:center;gap:18px;border:1px solid rgba(255,255,255,.15);border-radius:999px;background:rgba(43,36,32,.96);box-shadow:0 18px 55px rgba(0,0,0,.24);color:#fff;backdrop-filter:blur(14px); }
.planning-tray[hidden] { display:none; }.planning-tray div{margin-right:auto}.planning-tray small{display:block;color:rgba(255,255,255,.55);font-size:8px;letter-spacing:.12em;text-transform:uppercase}.planning-tray strong{font-size:12px}.planning-tray>button{border:0;background:transparent;color:rgba(255,255,255,.65);font-size:10px;cursor:pointer}.planning-tray .button{min-height:44px;padding:0 20px;background:#f6f0e8;color:#342c27;}
@media(max-width:900px){.planning-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:620px){.planning-grid{grid-template-columns:1fr}.planning-group__heading{align-items:start;flex-direction:column}.planning-tray{border-radius:22px;flex-wrap:wrap}.planning-tray .button{width:100%}.planning-tray>button{margin-left:auto}}

/* Controles públicos com o mesmo acabamento editorial */
.music-filters form { display:flex;flex-wrap:wrap;justify-content:flex-end;gap:9px;margin-bottom:12px; }
.music-filters select { min-height:44px;padding:0 42px 0 15px;border:1px solid #ddd2c7;border-radius:999px;background:#fff;color:#413832;font:500 11px var(--font-body);appearance:none;background-image:linear-gradient(45deg,transparent 50%,#806b59 50%),linear-gradient(135deg,#806b59 50%,transparent 50%);background-position:calc(100% - 17px) 19px,calc(100% - 12px) 19px;background-size:5px 5px;background-repeat:no-repeat; }
.music-filters form button { min-height:44px;padding:0 20px;border:1px solid #342c27;border-radius:999px;background:#342c27;color:#fff;font:600 10px var(--font-body);cursor:pointer; }
.music-filters select:focus { outline:2px solid rgba(167,136,104,.25);outline-offset:2px; }
@media(max-width:680px){.music-filters form{justify-content:stretch}.music-filters select,.music-filters form button{width:100%}}

/* Temas reais dos convites */
.invite-theme-romantic { --invite-primary:#9b6673;--invite-secondary:#e5cbd1;--invite-background:#fff7f8; }
.invite-theme-romantic .invite-hero { background:radial-gradient(circle at 15% 20%,rgba(219,167,181,.32),transparent 28%),radial-gradient(circle at 86% 70%,rgba(229,203,209,.48),transparent 30%),var(--invite-background); }
.invite-theme-romantic .invite-hero h1 { font-style:italic; }
.invite-theme-minimal { --invite-primary:#242424;--invite-secondary:#d9d9d6;--invite-background:#fafafa; }
.invite-theme-minimal .invite-hero { background:var(--invite-background); }.invite-theme-minimal .invite-hero h1{font-family:var(--font-body);font-weight:300;letter-spacing:-.07em}.invite-theme-minimal .invite-location-card{border-radius:0;background:transparent}
.invite-theme-garden { --invite-primary:#61725b;--invite-secondary:#cbd7bf;--invite-background:#f5f7ef; }
.invite-theme-garden .invite-hero { background:radial-gradient(ellipse at top left,rgba(121,148,106,.25),transparent 38%),radial-gradient(ellipse at bottom right,rgba(203,215,191,.6),transparent 42%),var(--invite-background); }
.invite-theme-garden .invite-location-card,.invite-theme-garden .invite-notice{border-radius:26px}
.invite-theme-luxury { --invite-primary:#c7a55b;--invite-secondary:#493d2e;--invite-background:#181614;color:#f7f1e7; }
.invite-theme-luxury .invite-hero,.invite-theme-luxury .invite-section,.invite-theme-luxury .invite-rsvp{background:#181614;color:#f7f1e7}.invite-theme-luxury .invite-section--soft,.invite-theme-luxury .invite-gifts{background:#211e1a}.invite-theme-luxury .invite-hero p,.invite-theme-luxury .invite-prose,.invite-theme-luxury .invite-gifts p{color:#bdb3a3}.invite-theme-luxury .invite-location-card{background:#211e1a;border-color:#554a39}
.invite-theme-modern { --invite-primary:#3e5d72;--invite-secondary:#b8d2dc;--invite-background:#f2f7f8; }
.invite-theme-modern .invite-hero h1{font-family:var(--font-body);font-weight:600;line-height:.86}.invite-theme-modern .invite-button,.invite-theme-modern .invite-location-card{border-radius:18px}
.invite-theme-fifteen { --invite-primary:#8d5ca6;--invite-secondary:#e4c8ef;--invite-background:#fcf6ff; }
.invite-theme-fifteen .invite-hero{background:radial-gradient(circle at 20% 25%,rgba(236,196,255,.5),transparent 28%),radial-gradient(circle at 80% 15%,rgba(255,220,235,.55),transparent 25%),var(--invite-background)}.invite-theme-fifteen .invite-hero h1{text-shadow:0 10px 45px rgba(141,92,166,.2)}
.invite-theme-celebration { --invite-primary:#b35f3d;--invite-secondary:#f0c57b;--invite-background:#fff9ed; }
.invite-theme-celebration .invite-hero{background:radial-gradient(circle at 20% 20%,rgba(240,197,123,.45),transparent 25%),radial-gradient(circle at 80% 65%,rgba(179,95,61,.18),transparent 30%),var(--invite-background)}


/* =========================================================
   MOMENTO PERFEITO V2.1 PREMIUM
========================================================= */

.invite-hero__actions {
    margin-top: 32px;
    display: flex;
    justify-content: center;
    gap: 10px;
    flex-wrap: wrap;
}

.invite-button--ghost {
    border-color: color-mix(in srgb, var(--invite-primary) 55%, transparent);
    background: transparent;
    color: var(--invite-primary);
}

.invite-post-event {
    padding: 95px 24px;
    background: var(--dark);
    color: var(--white);
    text-align: center;
}

.invite-post-event .invite-kicker {
    color: var(--invite-secondary);
}

.invite-post-event h2 {
    max-width: 760px;
    margin: 20px auto 0;
    font-family: var(--font-display);
    font-size: clamp(44px, 7vw, 72px);
    font-weight: 400;
    line-height: 1;
}

.invite-notices {
    padding: 36px 24px;
    background: color-mix(in srgb, var(--invite-secondary) 10%, var(--invite-background));
}

.invite-notice {
    max-width: 760px;
    margin: 12px auto;
    padding: 26px 30px;
    border: 1px solid color-mix(in srgb, var(--invite-primary) 25%, transparent);
    background: rgba(255,255,255,.5);
    text-align: left;
}

.invite-notice--important {
    border-left: 4px solid var(--invite-primary);
}

.invite-notice > span {
    color: var(--invite-primary);
    font-size: 8px;
    font-weight: 700;
    letter-spacing: .2em;
    text-transform: uppercase;
}

.invite-notice h2 {
    margin-top: 6px;
    font-family: var(--font-display);
    font-size: 30px;
    font-weight: 400;
}

.invite-notice p {
    margin-top: 8px;
    color: var(--text-soft);
    font-size: 12px;
}

.invite-recommendations {
    margin-top: 50px;
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 14px;
    text-align: left;
}

.invite-recommendations article {
    min-height: 230px;
    padding: 28px;
    display: flex;
    flex-direction: column;
    border: 1px solid var(--line);
    background: rgba(255,255,255,.5);
}

.invite-recommendations article > span {
    color: var(--invite-primary);
    font-size: 8px;
    font-weight: 700;
    letter-spacing: .18em;
    text-transform: uppercase;
}

.invite-recommendations h3 {
    margin-top: 8px;
    font-family: var(--font-display);
    font-size: 28px;
    font-weight: 400;
    line-height: 1;
}

.invite-recommendations p,
.invite-recommendations small {
    margin-top: 12px;
    color: var(--text-soft);
    font-size: 11px;
}

.invite-recommendations a {
    margin-top: auto;
    padding-top: 18px;
    color: var(--invite-primary);
    font-size: 10px;
    font-weight: 700;
}

.invite-gift-grid {
    margin-top: 55px;
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 18px;
    text-align: left;
}

.invite-gift-card {
    overflow: hidden;
    border: 1px solid var(--line);
    background: rgba(255,255,255,.72);
}

.invite-gift-card.is-unavailable {
    opacity: .62;
}

.invite-gift-card__media {
    min-height: 235px;
    display: flex;
    align-items: center;
    justify-content: center;
    background:
        radial-gradient(circle at top, rgba(255,255,255,.35), transparent 35%),
        color-mix(in srgb, var(--invite-secondary) 26%, #f7f2ec);
    color: var(--invite-primary);
    font-size: 36px;
}

.invite-gift-card__media img {
    width: 100%;
    height: 250px;
    object-fit: cover;
}

.invite-gift-card__body {
    padding: 24px;
}

.invite-gift-card__body > span {
    color: var(--invite-primary);
    font-size: 8px;
    font-weight: 700;
    letter-spacing: .15em;
    text-transform: uppercase;
}

.invite-gift-card h3 {
    margin-top: 8px;
    font-family: var(--font-display);
    font-size: 30px;
    font-weight: 400;
    line-height: 1;
}

.invite-gift-card p {
    min-height: 48px;
    margin-top: 12px;
    color: var(--text-soft);
    font-size: 11px;
}

.invite-gift-card strong {
    margin-top: 20px;
    display: block;
    font-family: var(--font-display);
    font-size: 25px;
    font-weight: 400;
}

.invite-gift-card .invite-button {
    width: 100%;
}

.invite-gift-card__unavailable {
    margin-top: 26px;
    display: block;
    color: var(--text-faint);
    font-size: 10px;
    font-weight: 700;
    text-transform: uppercase;
}

.invite-text-link {
    margin-top: 30px;
    display: inline-flex;
    color: var(--invite-primary);
    font-size: 10px;
    font-weight: 700;
}

.invite-section-copy {
    max-width: 580px;
    margin: 22px auto 0;
    color: var(--text-soft);
    font-size: 12px;
}

.invite-simple-form {
    width: min(100%, 620px);
    margin: 40px auto 0;
    text-align: left;
}

.invite-faq {
    max-width: 760px;
    margin: 50px auto 0;
    border-top: 1px solid var(--line);
    text-align: left;
}

.invite-faq details {
    border-bottom: 1px solid var(--line);
}

.invite-faq summary {
    position: relative;
    padding: 22px 42px 22px 0;
    cursor: pointer;
    list-style: none;
    font-family: var(--font-display);
    font-size: 24px;
}

.invite-faq summary::-webkit-details-marker {
    display: none;
}

.invite-faq summary::after {
    content: "+";
    position: absolute;
    right: 4px;
    top: 20px;
    color: var(--invite-primary);
    font-family: var(--font-body);
    font-size: 20px;
}

.invite-faq details[open] summary::after {
    content: "−";
}

.invite-faq p {
    padding: 0 0 24px;
    color: var(--text-soft);
    font-size: 12px;
}

.rsvp-members {
    margin-bottom: 28px;
    display: grid;
    gap: 12px;
}

.rsvp-member {
    padding: 20px;
    display: grid;
    grid-template-columns: 1fr auto;
    align-items: center;
    gap: 16px;
    border: 1px solid var(--line);
    background: rgba(255,255,255,.45);
}

.rsvp-member > div:first-child {
    display: flex;
    flex-direction: column;
}

.rsvp-member > div:first-child strong {
    font-family: var(--font-display);
    font-size: 24px;
    font-weight: 400;
}

.rsvp-member > div:first-child span {
    color: var(--text-soft);
    font-size: 9px;
}

.rsvp-member__choices {
    display: flex;
    gap: 7px;
}

.rsvp-member__choices label {
    position: relative;
}

.rsvp-member__choices input {
    position: absolute;
    opacity: 0;
}

.rsvp-member__choices span {
    min-width: 58px;
    min-height: 38px;
    display: flex;
    align-items: center;
    justify-content: center;
    border: 1px solid var(--line);
    border-radius: 999px;
    font-size: 10px;
    cursor: pointer;
}

.rsvp-member__choices input:checked + span {
    border-color: var(--invite-primary);
    background: var(--invite-primary);
    color: #fff;
}

.rsvp-member__companions {
    grid-column: 1 / -1;
    margin-top: 0;
}

.invite-my-qr {
    padding: 100px 24px;
    background: var(--dark);
    color: #fff;
    text-align: center;
}

.invite-my-qr .invite-kicker {
    color: var(--invite-secondary);
}

.invite-my-qr h2 {
    margin-top: 18px;
    font-family: var(--font-display);
    font-size: clamp(42px, 6vw, 68px);
    font-weight: 400;
}

.invite-my-qr p {
    max-width: 560px;
    margin: 20px auto 0;
    color: rgba(255,255,255,.6);
    font-size: 12px;
}

.invite-qr-card {
    width: min(100%, 340px);
    margin: 42px auto 0;
    padding: 30px;
    display: flex;
    align-items: center;
    flex-direction: column;
    background: #fff;
    color: var(--text);
}

.invite-qr-card [data-personal-qr] {
    padding: 12px;
    background: #fff;
}

.invite-qr-card strong {
    margin-top: 22px;
    font-family: var(--font-display);
    font-size: 27px;
    font-weight: 400;
}

.invite-qr-card span {
    color: var(--invite-primary);
    font-size: 10px;
    font-weight: 700;
    text-transform: uppercase;
}

.invite-gallery--guest {
    margin-top: 60px;
}

.invite-gallery--guest figure {
    position: relative;
}

.invite-gallery--guest figcaption {
    position: absolute;
    left: 10px;
    bottom: 10px;
    padding: 5px 8px;
    background: rgba(0,0,0,.5);
    color: #fff;
    font-size: 8px;
}

.save-date-page {
    min-height: 100svh;
    padding: 40px 20px;
    display: flex;
    align-items: center;
    justify-content: center;
    background:
        radial-gradient(circle at 50% 12%, rgba(203,176,143,.25), transparent 28%),
        var(--invite-background);
}

.save-date-card {
    width: min(100%, 700px);
    min-height: 820px;
    padding: 70px 45px;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-direction: column;
    border: 1px solid color-mix(in srgb, var(--invite-primary) 28%, transparent);
    background: rgba(255,255,255,.48);
    text-align: center;
}

.save-date-card h1 {
    max-width: 560px;
    margin-top: 55px;
    font-family: var(--font-display);
    font-size: clamp(70px, 11vw, 120px);
    font-weight: 400;
    line-height: .78;
    letter-spacing: -.05em;
}

.save-date-card > strong {
    margin-top: 50px;
    color: var(--invite-primary);
    font-family: var(--font-display);
    font-size: 24px;
    font-weight: 400;
    letter-spacing: .15em;
}

.save-date-card p {
    max-width: 500px;
    margin-top: 35px;
    color: var(--text-soft);
    font-family: var(--font-display);
    font-size: 23px;
}

.save-date-card__line {
    width: 1px;
    height: 75px;
    margin: 40px 0;
    background: var(--invite-primary);
}

.save-date-card > span:not(.invite-kicker) {
    font-family: var(--font-display);
    font-size: 28px;
}

.save-date-card > small {
    color: var(--text-faint);
    font-size: 8px;
    letter-spacing: .18em;
    text-transform: uppercase;
}

.gift-page {
    min-height: 100svh;
    padding: 45px 20px;
    display: flex;
    align-items: center;
    justify-content: center;
    background:
        radial-gradient(circle at top, rgba(203,176,143,.18), transparent 34%),
        var(--background);
}

.gift-page__card {
    width: min(100%, 1050px);
}

.gift-page__back {
    margin-bottom: 20px;
    display: inline-flex;
    color: var(--text-soft);
    font-size: 10px;
    font-weight: 700;
}

.gift-page__grid {
    display: grid;
    grid-template-columns: .9fr 1.1fr;
    background: #fff;
    border: 1px solid var(--line);
    box-shadow: var(--shadow-soft);
}

.gift-page__media {
    min-height: 620px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--background-soft);
    color: var(--champagne-dark);
    font-size: 50px;
}

.gift-page__media img {
    width: 100%;
    height: 100%;
    min-height: 620px;
    object-fit: cover;
}

.gift-page__content {
    padding: 55px;
}

.gift-page__content h1,
.gift-pix-card h1 {
    margin-top: 14px;
    font-family: var(--font-display);
    font-size: clamp(48px, 6vw, 72px);
    font-weight: 400;
    line-height: .95;
}

.gift-page__content > p {
    margin-top: 20px;
    color: var(--text-soft);
    font-size: 12px;
}

.gift-page__price {
    margin: 24px 0 10px;
    display: block;
    color: var(--champagne-dark);
    font-family: var(--font-display);
    font-size: 30px;
    font-weight: 400;
}

.gift-pix-card {
    width: min(100%, 650px);
    padding: 55px;
    background: #fff;
    border: 1px solid var(--line);
    box-shadow: var(--shadow-soft);
    text-align: center;
}

.gift-pix-card > p {
    margin-top: 24px;
    color: var(--text-soft);
}

.gift-pix-card__qr {
    width: 250px;
    margin: 35px auto;
    padding: 14px;
    background: #fff;
}

.gift-pix-card__copy {
    text-align: left;
}

.gift-pix-card > small {
    max-width: 470px;
    margin: 25px auto 0;
    display: block;
    color: var(--text-faint);
    font-size: 9px;
}

@media (max-width: 800px) {
    .invite-recommendations,
    .invite-gift-grid {
        grid-template-columns: 1fr;
    }

    .rsvp-member {
        grid-template-columns: 1fr;
    }

    .rsvp-member__choices {
        justify-content: flex-start;
    }

    .gift-page__grid {
        grid-template-columns: 1fr;
    }

    .gift-page__media,
    .gift-page__media img {
        min-height: 330px;
    }

    .gift-page__content,
    .gift-pix-card {
        padding: 34px 22px;
    }

    .save-date-card {
        min-height: 680px;
        padding: 50px 24px;
    }
}


/* =========================================================
   V2.5 — ARTISTAS + SEO PAGES
========================================================= */
.artists-hero { padding-bottom: 75px; }
.artist-filters { margin-bottom: 42px; display:flex; justify-content:center; gap:8px; flex-wrap:wrap; }
.artist-filters a { padding:9px 16px; border:1px solid var(--line); border-radius:999px; background:var(--surface); color:var(--text-soft); font-size:11px; font-weight:600; }
.artist-filters a.is-active, .artist-filters a:hover { background:var(--dark); color:var(--white); border-color:var(--dark); }
.artist-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:28px; }
.artist-card { overflow:hidden; border-bottom:1px solid var(--line); }
.artist-card__media { aspect-ratio:.82; display:flex; align-items:center; justify-content:center; overflow:hidden; background:linear-gradient(145deg,#e8ddd2,#c6ae94); color:#fff; font-family:var(--font-display); font-size:76px; }
.artist-card__media img { width:100%; height:100%; object-fit:cover; transition:transform .5s ease; }
.artist-card:hover .artist-card__media img { transform:scale(1.03); }
.artist-card__body { padding:22px 4px 28px; }
.artist-card__body > span { color:var(--champagne-dark); font-size:8px; font-weight:700; letter-spacing:.18em; text-transform:uppercase; }
.artist-card__body h2 { margin-top:7px; font-family:var(--font-display); font-size:38px; font-weight:400; line-height:1; }
.artist-card__body small { margin-top:7px; display:block; color:var(--text-faint); font-size:9px; text-transform:uppercase; letter-spacing:.1em; }
.artist-card__body p { min-height:55px; margin:14px 0; color:var(--text-soft); font-size:12px; }
.artist-profile-hero { padding:165px 0 80px; }
.artist-profile-hero__grid { display:grid; grid-template-columns:.85fr 1.15fr; align-items:center; gap:75px; }
.artist-profile-hero__content h1 { margin-top:20px; font-family:var(--font-display); font-size:clamp(62px,7vw,105px); font-weight:400; line-height:.88; letter-spacing:-.05em; }
.artist-profile-hero__genres { margin-top:25px; color:var(--champagne-dark); font-size:11px; font-weight:700; letter-spacing:.12em; text-transform:uppercase; }
.artist-profile-hero__location { margin-top:8px; display:block; color:var(--text-faint); font-size:10px; }
.artist-profile-hero__lead { margin-top:28px; color:var(--text-soft); font-size:15px; line-height:1.8; }
.artist-profile-hero__media { min-height:650px; overflow:hidden; border-radius:300px 300px 28px 28px; background:var(--background-soft); }
.artist-profile-hero__media img { width:100%; height:650px; object-fit:cover; }
.artist-profile-placeholder { min-height:650px; display:flex; align-items:center; justify-content:center; background:linear-gradient(145deg,#e7d9ca,#af9579); color:#fff; font-family:var(--font-display); font-size:180px; }
.artist-social-links { margin-top:30px; display:flex; gap:16px; flex-wrap:wrap; }
.artist-social-links a { color:var(--champagne-dark); font-size:10px; font-weight:700; }
.artist-about__grid, .service-seo-detail { display:grid; grid-template-columns:.45fr 1.55fr; gap:70px; }
.artist-about__grid h2, .service-seo-detail h2 { font-family:var(--font-display); font-size:clamp(42px,4.5vw,68px); font-weight:400; line-height:1; }
.artist-prose { margin-top:25px; color:var(--text-soft); font-family:var(--font-display); font-size:23px; line-height:1.65; }
.service-seo-detail__content > p { margin:28px 0; color:var(--text-soft); }
@media (max-width:1050px){ .artist-grid{grid-template-columns:repeat(2,1fr)} .artist-profile-hero__grid,.artist-about__grid,.service-seo-detail{grid-template-columns:1fr}.artist-profile-hero__media{min-height:520px}.artist-profile-hero__media img,.artist-profile-placeholder{height:520px;min-height:520px} }
@media (max-width:680px){ .artist-grid{grid-template-columns:1fr}.artist-profile-hero{padding-top:130px}.artist-profile-hero__media{min-height:430px}.artist-profile-hero__media img,.artist-profile-placeholder{height:430px;min-height:430px}.artist-card__body h2{font-size:32px} }

/* =========================================================
   V2.6 — EQUIPE + MUSICAS PARA CASAMENTO
========================================================= */
.site-nav { gap: 22px; }

.team-hero,
.music-hero { padding-bottom: 72px; }

.team-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 28px;
}

.team-card {
    overflow: hidden;
    border-bottom: 1px solid var(--line);
}

.team-card__media {
    aspect-ratio: .82;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    border-radius: 250px 250px 24px 24px;
    background: linear-gradient(145deg, #e9ded2, #bda98f);
    color: #fff;
    font-family: var(--font-display);
    font-size: 78px;
}

.team-card__media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform .5s ease;
}

.team-card:hover .team-card__media img { transform: scale(1.03); }
.team-card__body { padding: 24px 4px 30px; }
.team-card__body > span {
    color: var(--champagne-dark);
    font-size: 8px;
    font-weight: 700;
    letter-spacing: .18em;
    text-transform: uppercase;
}
.team-card__body h2 {
    margin-top: 8px;
    font-family: var(--font-display);
    font-size: 38px;
    font-weight: 400;
    line-height: 1;
}
.team-card__body small {
    margin-top: 8px;
    display: block;
    color: var(--text-faint);
    font-size: 9px;
    letter-spacing: .08em;
    text-transform: uppercase;
}
.team-card__body p {
    min-height: 55px;
    margin: 14px 0;
    color: var(--text-soft);
    font-size: 12px;
}

.team-profile-hero { padding: 165px 0 85px; }
.team-profile-hero__grid {
    display: grid;
    grid-template-columns: .85fr 1.15fr;
    align-items: center;
    gap: 75px;
}
.team-profile-hero__content h1 {
    margin-top: 20px;
    font-family: var(--font-display);
    font-size: clamp(62px, 7vw, 105px);
    font-weight: 400;
    line-height: .88;
    letter-spacing: -.05em;
}
.team-profile-hero__title {
    margin-top: 24px;
    color: var(--champagne-dark);
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .1em;
    text-transform: uppercase;
}
.team-profile-hero__location {
    margin-top: 8px;
    display: block;
    color: var(--text-faint);
    font-size: 10px;
}
.team-profile-hero__lead {
    margin-top: 28px;
    color: var(--text-soft);
    font-size: 15px;
    line-height: 1.8;
}
.team-profile-hero__media {
    min-height: 650px;
    overflow: hidden;
    border-radius: 300px 300px 28px 28px;
    background: var(--background-soft);
}
.team-profile-hero__media img {
    width: 100%;
    height: 650px;
    object-fit: cover;
}
.team-profile-placeholder {
    min-height: 650px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: linear-gradient(145deg, #e6d9ca, #ad9478);
    color: #fff;
    font-family: var(--font-display);
    font-size: 180px;
}
.team-about__grid,
.team-philosophy__grid,
.music-note__grid {
    display: grid;
    grid-template-columns: .45fr 1.55fr;
    gap: 70px;
}
.team-about__grid h2,
.team-philosophy__grid h2,
.music-note__grid h2 {
    font-family: var(--font-display);
    font-size: clamp(42px, 4.5vw, 68px);
    font-weight: 400;
    line-height: 1;
}
.team-philosophy__grid p,
.music-note__grid p {
    max-width: 690px;
    margin-top: 24px;
    color: var(--text-soft);
}

.music-library { padding-top: 70px; }
.music-library__head {
    margin-bottom: 42px;
    display: grid;
    grid-template-columns: 1fr .9fr;
    align-items: end;
    gap: 50px;
}
.music-library__head h2 {
    margin-top: 14px;
    max-width: 760px;
    font-family: var(--font-display);
    font-size: clamp(42px, 4vw, 64px);
    font-weight: 400;
    line-height: 1;
}
.music-filters {
    display: flex;
    justify-content: flex-end;
    gap: 7px;
    flex-wrap: wrap;
}
.music-filters a {
    padding: 8px 13px;
    border: 1px solid var(--line);
    border-radius: 999px;
    background: var(--surface);
    color: var(--text-soft);
    font-size: 9px;
    font-weight: 700;
}
.music-filters a:hover,
.music-filters a.is-active {
    border-color: var(--dark);
    background: var(--dark);
    color: #fff;
}

.music-track-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 22px;
}
.music-track-card {
    overflow: hidden;
    border: 1px solid var(--line);
    border-radius: 22px;
    background: var(--surface);
    box-shadow: 0 18px 50px rgba(64, 52, 43, .05);
    transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease;
}
.music-track-card:hover,
.music-track-card.is-playing {
    transform: translateY(-4px);
    border-color: color-mix(in srgb, var(--champagne-dark) 42%, var(--line));
    box-shadow: 0 28px 70px rgba(64, 52, 43, .10);
}
.music-track-card__play {
    position: relative;
    width: 100%;
    aspect-ratio: 1;
    padding: 0;
    display: block;
    overflow: hidden;
    border: 0;
    background: #ddd;
    cursor: pointer;
}
.music-track-card__play img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform .45s ease;
}
.music-track-card:hover .music-track-card__play img { transform: scale(1.04); }
.music-track-card__play::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(to top, rgba(32, 28, 25, .42), transparent 58%);
}
.music-track-card__play-icon {
    position: absolute;
    z-index: 2;
    left: 50%;
    top: 50%;
    width: 58px;
    height: 58px;
    display: flex;
    align-items: center;
    justify-content: center;
    transform: translate(-50%, -50%);
    border-radius: 50%;
    background: rgba(255,255,255,.92);
    color: var(--dark);
    font-size: 18px;
    box-shadow: 0 14px 38px rgba(0,0,0,.18);
}
.music-track-card.is-playing .music-track-card__play-icon { background: var(--champagne-dark); color: #fff; }
.music-track-card__category {
    position: absolute;
    z-index: 2;
    left: 14px;
    bottom: 14px;
    padding: 6px 9px;
    border-radius: 999px;
    background: rgba(255,255,255,.92);
    color: var(--text);
    font-size: 7px;
    font-weight: 700;
    letter-spacing: .12em;
    text-transform: uppercase;
}
.music-track-card__body { padding: 20px; }
.music-track-card__body h2 {
    font-family: var(--font-display);
    font-size: 27px;
    font-weight: 400;
    line-height: 1;
}
.music-track-card__body > strong {
    margin-top: 7px;
    display: block;
    color: var(--champagne-dark);
    font-size: 9px;
    font-weight: 700;
}
.music-track-card__body p {
    min-height: 50px;
    margin-top: 12px;
    color: var(--text-soft);
    font-size: 10px;
    line-height: 1.65;
}
.music-track-card__listen {
    margin-top: 16px;
    border: 0;
    background: transparent;
    cursor: pointer;
}

.wedding-music-player[hidden] { display: none; }
.wedding-music-player {
    position: fixed;
    z-index: 1200;
    left: 34px;
    right: 34px;
    bottom: 18px;
    min-height: 96px;
    padding: 12px 60px 12px 16px;
    display: grid;
    grid-template-columns: minmax(240px, .9fr) auto minmax(320px, 1.5fr) minmax(120px, .45fr);
    align-items: center;
    gap: 20px;
    border: 1px solid rgba(220, 212, 204, .9);
    border-radius: 26px;
    background: rgba(255,255,255,.97);
    box-shadow: 0 24px 85px rgba(55, 45, 37, .18);
    backdrop-filter: blur(18px);
}
.wedding-music-player__media {
    min-width: 0;
    display: flex;
    align-items: center;
    gap: 13px;
}
.wedding-music-player__media img {
    width: 68px;
    height: 68px;
    flex: 0 0 68px;
    border-radius: 13px;
    object-fit: cover;
}
.wedding-music-player__media div { min-width: 0; display: flex; flex-direction: column; }
.wedding-music-player__media span {
    color: var(--champagne-dark);
    font-size: 7px;
    font-weight: 700;
    letter-spacing: .12em;
    text-transform: uppercase;
}
.wedding-music-player__media strong {
    overflow: hidden;
    color: var(--text);
    font-size: 12px;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.wedding-music-player__media small {
    overflow: hidden;
    color: var(--text-faint);
    font-size: 8px;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.wedding-music-player__controls { display: flex; align-items: center; gap: 7px; }
.wedding-music-player__controls button {
    width: 38px;
    height: 38px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    background: var(--background-soft);
    color: var(--text);
    font-size: 20px;
    cursor: pointer;
}
.wedding-music-player__controls .is-main {
    width: 52px;
    height: 52px;
    background: var(--champagne-dark);
    color: #fff;
    font-size: 16px;
}
.wedding-music-player__timeline,
.wedding-music-player__volume {
    display: flex;
    align-items: center;
    gap: 9px;
    color: var(--text-faint);
    font-size: 8px;
}
.wedding-music-player input[type="range"] {
    width: 100%;
    accent-color: var(--champagne-dark);
}
.wedding-music-player__close {
    position: absolute;
    right: 15px;
    top: 50%;
    width: 34px;
    height: 34px;
    transform: translateY(-50%);
    border-radius: 50%;
    background: var(--background-soft);
    color: var(--text-soft);
    font-size: 20px;
    cursor: pointer;
}
.wedding-youtube-player {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    left: -9999px !important;
    overflow: hidden !important;
}
.wedding-music-page { padding-bottom: 95px; }

@media (max-width: 1200px) {
    .music-track-grid { grid-template-columns: repeat(3, 1fr); }
    .wedding-music-player { grid-template-columns: 1fr auto 1fr; }
    .wedding-music-player__volume { display: none; }
}
@media (max-width: 1050px) {
    .team-grid { grid-template-columns: repeat(2, 1fr); }
    .team-profile-hero__grid,
    .team-about__grid,
    .team-philosophy__grid,
    .music-note__grid,
    .music-library__head { grid-template-columns: 1fr; }
    .music-filters { justify-content: flex-start; }
    .team-profile-hero__media { min-height: 520px; }
    .team-profile-hero__media img,
    .team-profile-placeholder { height: 520px; min-height: 520px; }
}
@media (max-width: 820px) {
    .music-track-grid { grid-template-columns: repeat(2, 1fr); }
    .wedding-music-player {
        left: 12px;
        right: 12px;
        bottom: 10px;
        grid-template-columns: 1fr auto;
        gap: 12px;
        padding: 10px 48px 10px 10px;
    }
    .wedding-music-player__timeline { grid-column: 1 / -1; }
}
@media (max-width: 680px) {
    .team-grid,
    .music-track-grid { grid-template-columns: 1fr; }
    .team-profile-hero { padding-top: 130px; }
    .team-profile-hero__media { min-height: 430px; }
    .team-profile-hero__media img,
    .team-profile-placeholder { height: 430px; min-height: 430px; }
    .team-card__body h2 { font-size: 32px; }
    .wedding-music-player__media img { width: 54px; height: 54px; flex-basis: 54px; }
    .wedding-music-player__controls button:not(.is-main) { display: none; }
}

.home-discovery__grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 24px;
}
.home-discovery-card {
    min-height: 360px;
    padding: 44px;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    overflow: hidden;
    border-radius: 28px;
    background:
        radial-gradient(circle at 82% 18%, rgba(255,255,255,.38), transparent 26%),
        linear-gradient(145deg, #e9dfd5, #bea78e);
    color: #fff;
}
.home-discovery-card--music {
    background:
        radial-gradient(circle at 80% 20%, rgba(255,255,255,.34), transparent 25%),
        linear-gradient(145deg, #d9d6cd, #8e8a7c);
}
.home-discovery-card > span {
    font-size: 8px;
    font-weight: 700;
    letter-spacing: .2em;
    text-transform: uppercase;
}
.home-discovery-card h3 {
    max-width: 500px;
    margin-top: 12px;
    font-family: var(--font-display);
    font-size: clamp(40px, 4vw, 60px);
    font-weight: 400;
    line-height: .95;
}
.home-discovery-card p {
    max-width: 470px;
    margin-top: 16px;
    color: rgba(255,255,255,.76);
    font-size: 12px;
}
.home-discovery-card strong {
    margin-top: 26px;
    font-size: 10px;
}
@media (max-width: 760px) {
    .home-discovery__grid { grid-template-columns: 1fr; }
    .home-discovery-card { min-height: 320px; padding: 32px; }
}
.legal-prose{max-width:900px}.legal-prose>p{margin:0 0 24px;color:var(--text-soft);line-height:1.9}.legal-prose h2{margin:46px 0 14px;font-family:var(--font-display);font-size:34px;font-weight:400}.legal-prose h2:first-of-type{margin-top:20px}
.has-open-modal{overflow:hidden}.availability-modal{position:fixed;z-index:10000;inset:0;display:grid;place-items:center;padding:24px}.availability-modal__backdrop{position:absolute;inset:0;background:rgba(35,29,25,.72);backdrop-filter:blur(7px)}.availability-modal__card{position:relative;width:min(100%,620px);max-height:calc(100vh - 48px);overflow:auto;padding:46px;border-radius:24px;background:#fffaf6;box-shadow:0 30px 90px rgba(0,0,0,.25)}.availability-modal__icon{width:54px;height:54px;margin-bottom:22px;display:grid;place-items:center;border-radius:50%;background:#9b6a5e;color:#fff;font:500 28px var(--font-display)}.availability-modal__card h2{margin:9px 0 15px;font:500 clamp(34px,5vw,48px)/1 var(--font-display)}.availability-modal__card>p{color:var(--text-soft);line-height:1.7}.availability-modal__card ul{margin:23px 0;padding:0;display:grid;gap:8px;list-style:none}.availability-modal__card li{padding:13px 16px;border:1px solid #e5d5ce;border-radius:11px;background:#fff;color:#654941;font-weight:600}.availability-modal__help{font-size:12px}.availability-modal__actions{margin-top:28px;display:flex;flex-wrap:wrap;gap:10px}@media(max-width:560px){.availability-modal{padding:12px}.availability-modal__card{padding:32px 22px}.availability-modal__actions{flex-direction:column}.availability-modal__actions .button{width:100%}}
.public-agenda{background:#f8f4ef}.public-agenda__jump{display:inline-flex;gap:9px;align-items:center;margin-bottom:38px;color:#8e6f5b;font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.public-agenda__heading{max-width:700px}.public-agenda__heading h2{margin:10px 0 14px;font:400 clamp(42px,6vw,68px)/.98 var(--font-display)}.public-agenda__heading p{color:var(--text-soft);line-height:1.7}.public-agenda__months{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin-top:42px}.public-calendar{padding:25px;border:1px solid #e6dcd4;border-radius:20px;background:#fff;box-shadow:0 12px 36px rgba(69,50,38,.05)}.public-calendar h3{margin:0 0 20px;font:400 25px var(--font-display);text-align:center}.public-calendar__week,.public-calendar__days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px}.public-calendar__week{margin-bottom:7px}.public-calendar__week span{color:#9b8d84;font-size:9px;text-align:center;text-transform:uppercase}.public-calendar__day,.public-calendar__blank{min-height:48px;padding:7px 2px;border-radius:9px;text-align:center}.public-calendar__day b{display:block;font-size:11px}.public-calendar__day small{display:block;margin-top:3px;font-size:8px}.public-calendar__day.is-busy{background:#9b705d;color:#fff;box-shadow:0 5px 12px rgba(115,76,59,.2)}.public-calendar__day.is-past{opacity:.3}.public-agenda__note{display:flex;gap:8px;align-items:center;margin-top:18px;color:var(--text-soft);font-size:10px}.public-agenda__note i{width:12px;height:12px;border-radius:4px;background:#9b705d}@media(max-width:980px){.public-agenda__months{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:620px){.public-agenda__months{grid-template-columns:1fr}.public-calendar{padding:20px}.public-calendar__day,.public-calendar__blank{min-height:44px}}
.availability-response{padding:46px!important;border:1px solid #e5d8ce;border-radius:24px;background:#fffaf6!important;box-shadow:0 24px 70px rgba(68,48,35,.1)}.availability-response h1{margin:9px 0 14px;font:400 clamp(38px,6vw,56px)/1 var(--font-display)}.availability-response>p{color:var(--text-soft);line-height:1.7}.availability-response__summary{display:grid;grid-template-columns:1.4fr 1fr 1fr;margin-top:27px;border:1px solid #e7d9cf;border-radius:15px;background:#fff;overflow:hidden}.availability-response__summary div{padding:18px;border-right:1px solid #e7d9cf}.availability-response__summary div:last-child{border:0}.availability-response__summary span{display:block;margin-bottom:6px;color:#9a877b;font-size:9px;font-weight:700;letter-spacing:.1em;text-transform:uppercase}.availability-response__summary strong{font-size:15px}.availability-response__question{margin-top:26px;color:var(--text)!important;font-weight:600}.availability-response__actions{display:flex;gap:11px;margin-top:16px;flex-wrap:wrap}.availability-response__calendar{display:inline-block;margin-top:22px;color:#8d674f;font-size:12px;font-weight:700}.availability-response__note{margin-top:28px!important;font-size:11px}@media(max-width:620px){.availability-response{padding:30px 22px!important}.availability-response__summary{grid-template-columns:1fr}.availability-response__summary div{border-right:0;border-bottom:1px solid #e7d9cf}.availability-response__actions{flex-direction:column}.availability-response__actions .button{width:100%}}
.site-chat__rating{padding:18px;background:#fff7f1;border-top:1px solid #eadfd6}.site-chat__rating>strong,.site-chat__rating>span{display:block;text-align:center}.site-chat__rating>strong{font:500 22px var(--font-display)}.site-chat__rating>span{margin-top:3px;color:#8e8178;font-size:8px}.site-chat__rating form>div{margin:12px 0;display:flex;justify-content:center;gap:7px}.site-chat__rating [data-rating]{width:43px;height:43px;border:1px solid #e2d6cc;border-radius:50%;background:#fff;font-size:22px;cursor:pointer;transition:.18s}.site-chat__rating [data-rating].is-selected{border-color:#9b705d;background:#f0e1d5;transform:scale(1.12)}.site-chat__rating textarea{width:100%;padding:9px;border:1px solid #e1d7cf;border-radius:9px;font:9px var(--font-sans);resize:none}.site-chat__rating form>button[type=submit]{width:100%;margin-top:7px;padding:10px;border:0;border-radius:99px;background:#40362f;color:#fff;font-size:9px;font-weight:700}.site-chat__rating small{display:block;min-height:13px;margin-top:5px;color:#8a6254;font-size:8px;text-align:center}

.agreement-public{max-width:760px}.agreement-items{margin:25px 0;display:grid;gap:9px}.agreement-items article{padding:15px 18px;display:flex;justify-content:space-between;gap:20px;border:1px solid #e5d9cf;border-radius:12px;background:#fff}.agreement-mobile-required{padding:38px;border:1px solid #dfd2c8;border-radius:24px;background:#fff;text-align:center}.agreement-mobile-required>span{font-size:52px}.agreement-mobile-required h2{margin:12px 0;font:500 34px var(--font-display)}.agreement-mobile-required p{color:var(--text-soft);line-height:1.7}.agreement-mobile-required [data-signature-qr]{width:190px;margin:24px auto}.agreement-mobile-required small{color:#8d8077}.agreement-sign-form{margin-top:26px;display:grid;gap:18px}.agreement-sign-form>label>span,.agreement-sign-form legend{display:block;margin-bottom:8px;font-weight:700}.agreement-sign-form input[type=text],.agreement-sign-form input[name=document],.agreement-sign-form textarea{width:100%;padding:13px;border:1px solid #ded3ca;border-radius:10px;background:#fff}.agreement-sign-form fieldset{padding:18px;border:1px solid #ded3ca;border-radius:16px;background:#fff}.agreement-sign-form fieldset p{margin-bottom:12px;color:#82766d;font-size:13px}.agreement-sign-form fieldset small{display:block;margin-top:10px}.agreement-sign-form canvas{width:100%;height:auto;display:block;border:1px dashed #aa8d76;border-radius:10px;background:#fcfaf8;touch-action:none}.agreement-clear{margin-top:8px;border:0;background:transparent;color:#8f6550;text-decoration:underline}.agreement-consent{padding:16px;display:flex!important;gap:12px;align-items:flex-start;border-radius:12px;background:#f4eee8}.agreement-consent input{margin-top:3px}.agreement-consent span{margin:0!important;font-weight:400!important;line-height:1.55}.legal-copy{margin:22px 0;padding:22px;border-radius:14px;background:#faf7f4;line-height:1.75}@media(max-width:600px){.agreement-public{padding-left:18px;padding-right:18px}.agreement-sign-form .form-actions{display:grid}.agreement-sign-form .button{width:100%}}

/* CHAT PÚBLICO V3.9 */
.site-chat{position:fixed;z-index:9500;right:25px;bottom:25px;font-family:var(--font-sans)}.site-chat__launcher{position:relative;width:62px;height:62px;display:grid;place-items:center;border:0;border-radius:50%;background:#2f2925;color:#fff;box-shadow:0 15px 38px rgba(42,32,26,.3);cursor:pointer;transition:.2s}.site-chat__launcher:hover{transform:translateY(-3px)}.site-chat__launcher-icon{font:400 27px var(--font-display)}.site-chat__badge{position:absolute;right:-2px;top:-3px;min-width:22px;height:22px;padding:0 6px;border:3px solid #fff;border-radius:99px;background:#aa4e46;color:#fff;font-size:9px;font-weight:700;line-height:16px}.site-chat__panel{position:absolute;right:0;bottom:76px;width:min(390px,calc(100vw - 28px));height:min(620px,calc(100vh - 120px));overflow:hidden;border:1px solid #dfd4cb;border-radius:25px;background:#fff;box-shadow:0 28px 80px rgba(42,32,26,.28)}.site-chat__header{height:104px;padding:23px 25px;display:flex;justify-content:space-between;background:linear-gradient(135deg,#2f2925,#5c4b40);color:#fff}.site-chat__header span,.site-chat__header strong,.site-chat__header small{display:block}.site-chat__header span{font:400 18px var(--font-display)}.site-chat__header strong{margin-top:2px;font-size:12px}.site-chat__header small{margin-top:8px;color:#d9cdc5;font-size:9px}.site-chat__header small i{display:inline-block;width:7px;height:7px;margin-right:5px;border-radius:50%;background:#78a86c}.site-chat__header button{width:30px;height:30px;border:0;background:transparent;color:#fff;font-size:24px;cursor:pointer}.site-chat__identity{height:calc(100% - 104px);padding:28px;overflow:auto}.site-chat__identity h2{margin:7px 0 8px;font:400 32px/1 var(--font-display)}.site-chat__identity>p{color:var(--text-soft);font-size:11px;line-height:1.6}.site-chat__identity form{margin-top:24px;display:grid;gap:12px}.site-chat__identity label span{display:block;margin-bottom:6px;color:#74675e;font-size:8px;font-weight:700;text-transform:uppercase}.site-chat__identity input{width:100%;height:44px;padding:0 13px;border:1px solid #ded5ce;border-radius:10px;background:#fff;font:11px var(--font-sans);outline:0}.site-chat__identity input:focus{border-color:#a98966;box-shadow:0 0 0 3px rgba(169,137,102,.12)}.site-chat__contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px}.site-chat__identity form>small{min-height:16px;color:#a34f4f;font-size:9px}.site-chat__identity form>button{height:48px;border:0;border-radius:99px;background:#2f2925;color:#fff;font-weight:700;cursor:pointer}.site-chat__identity form>em{color:#978a81;font-size:8px;font-style:normal;text-align:center}.site-chat__conversation{height:calc(100% - 104px);display:grid;grid-template-rows:1fr auto auto}.site-chat__messages{padding:22px 17px;overflow:auto;background:#faf7f3}.site-chat__welcome{margin:0 auto 18px;padding:13px 16px;display:grid;gap:3px;border-radius:12px;background:#eee5dd;color:#62564e;font-size:10px;text-align:center}.site-chat__message{max-width:82%;margin:7px 0;padding:10px 12px;border-radius:14px;display:grid;gap:5px}.site-chat__message span{white-space:pre-wrap;font-size:11px;line-height:1.5}.site-chat__message small{font-size:7px;opacity:.68}.site-chat__message.is-me{margin-left:auto;border-bottom-right-radius:4px;background:#4a3d35;color:#fff}.site-chat__message.is-them{margin-right:auto;border:1px solid #e3dad2;border-bottom-left-radius:4px;background:#fff;color:#403832}.site-chat__typing{padding:7px 17px;background:#faf7f3;color:#95887f;font-size:8px}.site-chat__composer{padding:11px;display:grid;grid-template-columns:1fr 43px;gap:8px;border-top:1px solid #e8e0da;background:#fff}.site-chat__composer textarea{min-height:43px;max-height:100px;padding:13px;border:1px solid #dfd7d0;border-radius:13px;resize:none;font:11px var(--font-sans);outline:0}.site-chat__composer button{border:0;border-radius:13px;background:#9c795f;color:#fff;font-size:20px;cursor:pointer}.floating-contact{right:100px}@media(max-width:620px){.site-chat{right:12px;bottom:12px}.site-chat__panel{position:fixed;inset:8px;width:auto;height:auto;border-radius:20px}.site-chat__launcher{width:56px;height:56px}.site-chat__contact-grid{grid-template-columns:1fr}.floating-contact{display:none}}
.ceremony-group-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:24px;margin-top:30px}.ceremony-group-card{padding:28px;border:1px solid #ded4cb;border-radius:18px;background:#fff}.ceremony-group-card h3{margin:8px 0;font-family:var(--font-display);font-size:30px}.ceremony-group-members{display:flex;flex-wrap:wrap;gap:16px;margin:24px 0}.ceremony-group-members figure{width:76px;margin:0;text-align:center}.ceremony-group-members img,.ceremony-group-members figure>span{display:grid;place-items:center;width:58px;height:58px;margin:auto;border-radius:50%;object-fit:cover;background:#e9ded3;color:#6d5746}.ceremony-group-members figcaption{margin-top:6px;font-size:10px;line-height:1.3}.ceremony-group-card__actions{display:flex;flex-wrap:wrap;align-items:center;gap:14px;margin-top:18px}
