/* =========================================================
   Blumen Floristik Marthashof — v2 (centered + boutique)
   Palette: cream · blush · rose · sage · ink
   Type:    Cormorant Garamond (display, italic) + Inter (body)
   ========================================================= */

:root {
    /* palette */
    --cream:      #f7f1ea;
    --cream-soft: #faf6f0;
    --blush:      #f1d8cc;
    --blush-soft: #f8e6dc;
    --rose:       #d99a87;
    --rose-deep:  #b76b58;
    --sage:       #c7d2c0;
    --sage-deep:  #8aa28a;
    --ink:        #221a17;
    --ink-soft:   #524540;
    --ink-mute:   #8a7d77;
    --line:       rgba(34, 26, 23, 0.12);

    /* whatsapp */
    --wa:        #1f8d5f;
    --wa-hover:  #166c47;

    /* fonts */
    --serif: 'Cormorant Garamond', 'Playfair Display', Georgia, serif;
    --serif-display: 'Italiana', 'Cormorant Garamond', serif;
    --sans:  'Inter', system-ui, -apple-system, sans-serif;

    /* layout */
    --maxw:     1180px;
    --maxw-narrow: 880px;
    --radius:   14px;
    --radius-lg:24px;

    --ease: cubic-bezier(.22, 1, .36, 1);
}

/* reset */
*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
    margin: 0;
    font-family: var(--sans);
    color: var(--ink);
    background: var(--cream);
    line-height: 1.65;
    -webkit-font-smoothing: antialiased;
    text-rendering: optimizeLegibility;
    overflow-x: hidden;
}
img { max-width: 100%; display: block; }
a { color: inherit; text-decoration: none; }
button { font: inherit; cursor: pointer; border: none; background: none; color: inherit; }
::selection { background: var(--blush); color: var(--ink); }

/* containers */
.container {
    width: 100%;
    max-width: var(--maxw);
    margin: 0 auto;
    padding: 0 28px;
}

/* ------ Grain / noise overlay (luxury depth) ------ */
.grain {
    position: absolute; inset: 0;
    pointer-events: none;
    opacity: .08;
    mix-blend-mode: multiply;
    background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='120' height='120'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 0  0 0 0 0 0  0 0 0 0 0  0 0 0 0.55 0'/></filter><rect width='120' height='120' filter='url(%23n)'/></svg>");
}

/* ============ NAV ============ */
.nav {
    position: fixed;
    top: 0; left: 0; right: 0;
    z-index: 50;
    backdrop-filter: blur(16px);
    -webkit-backdrop-filter: blur(16px);
    background: rgba(247, 241, 234, 0.75);
    border-bottom: 1px solid transparent;
    transition: background .3s var(--ease), border-color .3s var(--ease);
}
.nav.is-scrolled {
    background: rgba(247, 241, 234, 0.94);
    border-bottom-color: var(--line);
}
.nav__inner {
    max-width: var(--maxw);
    margin: 0 auto;
    padding: 16px 28px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
}
.nav__brand { display: flex; align-items: center; gap: 12px; }
.nav__brand-mark {
    width: 40px; height: 40px;
    border-radius: 50%;
    background: var(--ink);
    color: var(--blush);
    display: grid; place-items: center;
}
.nav__brand-mark .ic-bloom { color: var(--blush); }
.nav__brand-text { display: flex; flex-direction: column; line-height: 1; }
.nav__brand-name {
    font-family: var(--serif);
    font-style: italic;
    font-weight: 500;
    font-size: 20px;
    letter-spacing: -.01em;
    color: var(--ink);
}
.nav__brand-sub {
    font-size: 9px;
    letter-spacing: .28em;
    text-transform: uppercase;
    color: var(--ink-mute);
    margin-top: 5px;
}
.nav__links {
    display: flex; gap: 36px;
    font-size: 13px;
    letter-spacing: .04em;
    color: var(--ink-soft);
}
.nav__links a {
    position: relative;
    padding: 6px 0;
    transition: color .25s var(--ease);
}
.nav__links a::after {
    content: ''; position: absolute; left: 0; bottom: 0;
    height: 1px; width: 0; background: var(--rose-deep);
    transition: width .35s var(--ease);
}
.nav__links a:hover { color: var(--ink); }
.nav__links a:hover::after { width: 100%; }
.nav__actions { display: flex; align-items: center; gap: 14px; }

.lang-toggle {
    display: inline-flex; align-items: center; gap: 6px;
    font-size: 11px; letter-spacing: .2em;
    color: var(--ink-mute);
    padding: 7px 12px;
    border-radius: 999px;
    border: 1px solid var(--line);
    transition: all .2s var(--ease);
}
.lang-toggle:hover { border-color: var(--ink); color: var(--ink); }
.lang-toggle__active { color: var(--ink); font-weight: 600; }

/* nav CTA — refined link, NOT loud */
.btn-link {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-size: 12px;
    letter-spacing: .22em;
    text-transform: uppercase;
    padding: 8px 16px;
    border-radius: 999px;
    border: 1px solid var(--ink);
    color: var(--ink);
    background: transparent;
    transition: background .25s var(--ease), color .25s var(--ease);
}
.btn-link:hover { background: var(--ink); color: var(--cream); }
.btn-link svg { color: currentColor; }

@media (max-width: 860px) {
    .nav__links { display: none; }
}

/* ============ BUTTONS (CTA — boutique) ============ */
.btn {
    --pad-y: 14px;
    --pad-x: 26px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    padding: var(--pad-y) var(--pad-x);
    border-radius: 999px;
    font-family: var(--sans);
    font-weight: 500;
    font-size: 13px;
    letter-spacing: .14em;
    text-transform: uppercase;
    transition: all .35s var(--ease);
    cursor: pointer;
    line-height: 1;
    white-space: nowrap;
    position: relative;
}
.btn--lg { --pad-y: 18px; --pad-x: 32px; font-size: 13px; }
.btn--block { width: 100%; }
.btn__icon {
    display: inline-grid; place-items: center;
    width: 26px; height: 26px;
    border-radius: 50%;
    background: rgba(255,255,255,.15);
    color: currentColor;
    transition: background .3s var(--ease);
}

.btn--primary {
    background: var(--ink);
    color: var(--cream);
    border: 1px solid var(--ink);
    box-shadow: 0 4px 0 -1px var(--rose-deep);
}
.btn--primary:hover {
    background: var(--rose-deep);
    border-color: var(--rose-deep);
    box-shadow: 0 8px 0 -2px var(--ink);
    transform: translateY(-2px);
}
.btn--primary .btn__icon { background: rgba(255,255,255,.18); }

.btn--ghost {
    background: transparent;
    color: var(--ink);
    border: 1px solid var(--ink);
}
.btn--ghost:hover {
    background: var(--ink);
    color: var(--cream);
    transform: translateY(-2px);
}

/* ============ HERO (centered, boutique) ============ */
.hero {
    position: relative;
    min-height: 100vh;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    padding: 140px 24px 100px;
    text-align: center;
}
.hero__bg { position: absolute; inset: 0; z-index: 0; }
.hero__bg img {
    width: 100%; height: 100%;
    object-fit: cover;
    filter: saturate(.92) contrast(1.02);
    transform: scale(1.06);
    animation: heroZoom 22s ease-in-out infinite alternate;
}
@keyframes heroZoom {
    from { transform: scale(1.06); }
    to { transform: scale(1.14); }
}
.hero__overlay {
    position: absolute; inset: 0;
    background:
        radial-gradient(80% 70% at 50% 50%, rgba(247, 241, 234, .55) 0%, rgba(247, 241, 234, .82) 70%, rgba(247, 241, 234, .92) 100%);
}

/* corner SVG florals */
.floral {
    position: absolute;
    z-index: 2;
    color: var(--rose-deep);
    opacity: .55;
    pointer-events: none;
}
.floral--tl { top: 90px; left: -20px; width: 220px; height: 220px; transform: rotate(-12deg); }
.floral--br { bottom: 0; right: -20px; width: 240px; height: 240px; transform: rotate(8deg); opacity: .45; }

@media (max-width: 860px) {
    .floral--tl { width: 130px; height: 130px; top: 80px; }
    .floral--br { width: 150px; height: 150px; }
}

.hero__content {
    position: relative; z-index: 3;
    max-width: 760px;
    margin: 0 auto;
    animation: fadeUp 1.2s var(--ease) both;
}
.hero__eyebrow {
    display: inline-flex; align-items: center; gap: 10px;
    font-size: 10px;
    letter-spacing: .36em;
    text-transform: uppercase;
    color: var(--ink);
    padding: 8px 18px;
    border: 1px solid var(--ink);
    border-radius: 999px;
    background: rgba(247, 241, 234, .65);
    margin-bottom: 36px;
}
.hero__eyebrow-dot {
    width: 6px; height: 6px; border-radius: 50%;
    background: var(--rose-deep);
    animation: blink 2.4s ease-in-out infinite;
}
@keyframes blink { 0%, 100% { opacity: 1; } 50% { opacity: .35; } }

.hero__title {
    font-family: var(--serif);
    font-weight: 400;
    font-size: clamp(3rem, 7.4vw, 6rem);
    line-height: 1;
    letter-spacing: -.015em;
    color: var(--ink);
    margin: 0 0 28px;
}
.hero__title em {
    font-style: italic;
    font-family: var(--serif);
    color: var(--rose-deep);
}

/* small ornamental rule under H1 */
.hero__rule {
    display: flex; align-items: center; justify-content: center; gap: 16px;
    color: var(--rose-deep);
    margin: 0 auto 28px;
    max-width: 360px;
}
.hero__rule span {
    flex: 1; height: 1px;
    background: linear-gradient(90deg, transparent, var(--rose-deep), transparent);
    opacity: .55;
}
.hero__rule svg { color: var(--rose-deep); }

.hero__sub {
    font-size: clamp(1rem, 1.3vw, 1.15rem);
    color: var(--ink-soft);
    max-width: 540px;
    margin: 0 auto 44px;
    line-height: 1.7;
}
.hero__cta {
    display: flex; gap: 16px; flex-wrap: wrap;
    justify-content: center;
    margin-bottom: 56px;
}
.hero__meta {
    display: inline-flex; align-items: center; gap: 12px; flex-wrap: wrap;
    justify-content: center;
    font-size: 11px;
    letter-spacing: .2em;
    text-transform: uppercase;
    color: var(--ink-mute);
}
.hero__meta-sep { color: var(--rose-deep); }

/* scroll indicator */
.hero__scroll {
    position: absolute; left: 50%; bottom: 28px;
    z-index: 3;
    transform: translateX(-50%);
    width: 26px; height: 42px;
    border: 1px solid var(--ink-mute);
    border-radius: 14px;
    display: grid; place-items: center;
}
.hero__scroll span {
    width: 2px; height: 8px;
    background: var(--ink-soft);
    border-radius: 2px;
    animation: scrollDot 1.8s ease-in-out infinite;
}
@keyframes scrollDot {
    0% { transform: translateY(-6px); opacity: 0; }
    50% { opacity: 1; }
    100% { transform: translateY(6px); opacity: 0; }
}

@keyframes fadeUp {
    from { opacity: 0; transform: translateY(28px); }
    to   { opacity: 1; transform: translateY(0); }
}

/* floating petals — more & varied */
.petals {
    position: absolute; inset: 0;
    pointer-events: none;
    z-index: 2;
}
.petal {
    position: absolute;
    width: 22px; height: 22px;
    background: radial-gradient(circle at 30% 30%, var(--blush-soft) 0%, var(--rose) 70%, transparent 72%);
    border-radius: 60% 40% 60% 40% / 50% 60% 40% 50%;
    opacity: .55;
    filter: blur(.3px);
    animation: floatPetal 14s linear infinite;
}
.petal--1 { top: 14%; left: 8%;  animation-duration: 18s; animation-delay: -2s; transform: scale(1.4); }
.petal--2 { top: 70%; left: 14%; animation-duration: 21s; animation-delay: -7s; opacity: .35; }
.petal--3 { top: 18%; left: 78%; animation-duration: 16s; animation-delay: -1s; transform: scale(1.6); opacity: .45; }
.petal--4 { top: 55%; left: 88%; animation-duration: 22s; animation-delay: -10s; transform: scale(.9); }
.petal--5 { top: 85%; left: 60%; animation-duration: 19s; animation-delay: -4s; opacity: .4; }
.petal--6 { top: 40%; left: 45%; animation-duration: 24s; animation-delay: -8s; transform: scale(1.2); opacity: .28; }
.petal--7 { top: 30%; left: 30%; animation-duration: 17s; animation-delay: -5s; transform: scale(.8); opacity: .5; }
.petal--8 { top: 60%; left: 70%; animation-duration: 20s; animation-delay: -12s; transform: scale(1.1); opacity: .3; }
@keyframes floatPetal {
    0%   { transform: translate(0, 0) rotate(0deg); }
    50%  { transform: translate(40px, -30px) rotate(180deg); }
    100% { transform: translate(0, 0) rotate(360deg); }
}

/* ============ MARQUEE (italic flower names) ============ */
.marquee {
    background: var(--cream);
    overflow: hidden;
    padding: 28px 0;
    border-top: 1px solid var(--line);
    border-bottom: 1px solid var(--line);
    position: relative;
    -webkit-mask-image: linear-gradient(90deg, transparent 0, #000 8%, #000 92%, transparent 100%);
            mask-image: linear-gradient(90deg, transparent 0, #000 8%, #000 92%, transparent 100%);
}
.marquee__track {
    display: inline-flex; align-items: center; gap: 36px;
    white-space: nowrap;
    font-family: var(--serif);
    font-style: italic;
    font-size: clamp(1.6rem, 3vw, 2.6rem);
    color: var(--rose-deep);
    animation: scrollX 38s linear infinite;
    padding-left: 36px;
}
.marquee__dot { color: var(--ink-mute); font-style: normal; font-size: .6em; }
@keyframes scrollX {
    from { transform: translateX(0); }
    to { transform: translateX(-50%); }
}

/* ============ SECTIONS ============ */
.section {
    position: relative;
    padding: clamp(90px, 13vw, 160px) 0;
    overflow: hidden;
}
.section--cream { background: var(--cream); }
.section--blush { background: var(--blush); }
.section--ink   { background: var(--ink); color: var(--cream); }

.section__floral {
    position: absolute;
    z-index: 0;
    color: var(--rose-deep);
    opacity: .12;
    pointer-events: none;
}
.section__floral--tl { top: 30px;  left: -40px;  width: 240px; height: 240px; }
.section__floral--tr { top: 30px;  right: -40px; width: 240px; height: 240px; }
.section__floral--br { bottom: -20px; right: -40px; width: 280px; height: 280px; }
.opacity-low { opacity: .08; }
.section--ink .section__floral { color: var(--blush); opacity: .15; }

.section__head {
    max-width: var(--maxw-narrow);
    margin: 0 auto 80px;
    text-align: center;
    position: relative;
    z-index: 2;
}
.eyebrow {
    display: inline-block;
    font-family: var(--serif);
    font-style: italic;
    font-size: 14px;
    letter-spacing: .12em;
    color: var(--rose-deep);
    margin-bottom: 22px;
}
.eyebrow--light { color: var(--blush); }

.section__title {
    font-family: var(--serif);
    font-weight: 400;
    font-size: clamp(2.4rem, 5vw, 4rem);
    line-height: 1.05;
    letter-spacing: -.02em;
    color: var(--ink);
    margin: 0 0 22px;
}
.section__title em {
    font-style: italic;
    color: var(--rose-deep);
}
.section__title--left { text-align: left; }
.section__title--light { color: var(--cream); }
.section__title--light em { color: var(--blush); }

.section__lede {
    color: var(--ink-soft);
    font-size: clamp(.98rem, 1.18vw, 1.08rem);
    margin: 0;
    max-width: 600px;
    margin-left: auto;
    margin-right: auto;
}
.section__lede--light { color: rgba(247, 241, 234, .7); }

/* ============ BOUQUETS GRID ============ */
.bouquet-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(290px, 1fr));
    gap: 36px;
    position: relative; z-index: 2;
}
.bouquet {
    background: var(--cream-soft);
    border-radius: var(--radius-lg);
    overflow: hidden;
    transition: transform .5s var(--ease), box-shadow .5s var(--ease);
    box-shadow: 0 1px 0 rgba(34,26,23,.04);
    border: 1px solid var(--line);
}
.bouquet:hover {
    transform: translateY(-8px);
    box-shadow: 0 28px 60px -28px rgba(34,26,23,.22);
}
.bouquet__media {
    position: relative;
    aspect-ratio: 4 / 5;
    overflow: hidden;
}
.bouquet__media img {
    width: 100%; height: 100%;
    object-fit: cover;
    transition: transform 1s var(--ease);
}
.bouquet:hover .bouquet__media img { transform: scale(1.07); }
.bouquet__tag {
    position: absolute; top: 18px; left: 18px;
    background: var(--cream-soft);
    color: var(--ink);
    font-family: var(--serif);
    font-style: italic;
    font-size: 12px;
    padding: 6px 14px;
    border-radius: 999px;
}
.bouquet__tag--alt { background: var(--ink); color: var(--cream); }
.bouquet__body {
    padding: 32px 28px;
    display: flex; flex-direction: column; gap: 14px;
}
.bouquet__num {
    font-family: var(--serif);
    font-style: italic;
    color: var(--rose-deep);
    font-size: 13px;
    letter-spacing: .14em;
}
.bouquet__name {
    font-family: var(--serif);
    font-size: 1.65rem;
    font-weight: 500;
    margin: 0;
    color: var(--ink);
    letter-spacing: -.01em;
}
.bouquet__desc {
    margin: 0 0 6px;
    color: var(--ink-soft);
    font-size: .95rem;
}

/* ============ ABOUT ============ */
.about {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 88px;
    align-items: center;
    position: relative; z-index: 2;
}
@media (max-width: 860px) {
    .about { grid-template-columns: 1fr; gap: 56px; }
}
.about__media {
    position: relative;
    border-radius: var(--radius-lg);
    overflow: hidden;
    aspect-ratio: 4 / 5;
}
.about__media img { width: 100%; height: 100%; object-fit: cover; }
.about__badge {
    position: absolute;
    bottom: 24px; left: 24px;
    background: var(--cream-soft);
    border-radius: var(--radius);
    padding: 18px 22px;
    display: flex; flex-direction: column; align-items: flex-start;
    box-shadow: 0 22px 48px -20px rgba(34,26,23,.3);
}
.about__badge-num {
    font-family: var(--serif);
    font-size: 2.4rem;
    color: var(--rose-deep);
    line-height: 1;
    font-weight: 500;
}
.about__badge-plus {
    font-family: var(--serif);
    font-style: italic;
    font-size: 1.6rem;
    color: var(--rose);
}
.about__badge-label {
    font-size: 10px;
    letter-spacing: .18em;
    text-transform: uppercase;
    color: var(--ink-mute);
    margin-top: 6px;
}
.about__bloom {
    position: absolute;
    top: -28px; right: -28px;
    width: 140px; height: 140px;
    color: var(--ink);
    opacity: .12;
    transform: rotate(20deg);
    pointer-events: none;
}
.about__text {
    font-family: var(--serif);
    font-size: 1.18rem;
    line-height: 1.7;
    color: var(--ink-soft);
    margin: 24px 0 32px;
}
.about__list {
    list-style: none; padding: 0; margin: 0;
    display: flex; flex-direction: column; gap: 14px;
}
.about__list li {
    display: flex; align-items: center; gap: 14px;
    color: var(--ink);
    font-size: .98rem;
}
.about__list svg { color: var(--rose-deep); flex-shrink: 0; }

/* ============ GALLERY ============ */
.gallery {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    grid-auto-rows: 280px;
    gap: 18px;
    position: relative; z-index: 2;
}
@media (max-width: 860px) {
    .gallery { grid-template-columns: repeat(2, 1fr); grid-auto-rows: 200px; }
}
.gallery__item {
    margin: 0;
    overflow: hidden;
    border-radius: var(--radius);
    position: relative;
}
.gallery__item img {
    width: 100%; height: 100%;
    object-fit: cover;
    transition: transform .9s var(--ease), filter .5s var(--ease);
    filter: saturate(.95);
}
.gallery__item:hover img { transform: scale(1.07); filter: saturate(1.05); }
.gallery__item--tall { grid-row: span 2; }
.gallery__item--wide { grid-column: span 2; }

/* ============ CONTACT + MAP ============ */
.contact-grid {
    display: grid;
    grid-template-columns: 1.15fr 1fr;
    gap: 36px;
    align-items: stretch;
    position: relative; z-index: 2;
}
@media (max-width: 860px) {
    .contact-grid { grid-template-columns: 1fr; }
}

/* Map card */
.map-card {
    display: block;
    background: rgba(247, 241, 234, .04);
    border: 1px solid rgba(247, 241, 234, .15);
    border-radius: var(--radius-lg);
    overflow: hidden;
    transition: transform .35s var(--ease), border-color .35s var(--ease);
    color: var(--cream);
}
.map-card:hover {
    transform: translateY(-4px);
    border-color: rgba(247, 241, 234, .35);
}
.map-card__frame {
    position: relative;
    aspect-ratio: 4 / 3;
    overflow: hidden;
}
.map-card__frame iframe {
    position: absolute; inset: 0;
    width: 100%; height: 100%;
    border: 0;
    filter: grayscale(.6) contrast(1.05) saturate(.85);
    transition: filter .5s var(--ease);
}
.map-card:hover .map-card__frame iframe { filter: grayscale(0) saturate(1); }
.map-card__overlay {
    position: absolute; inset: 0;
    background: radial-gradient(60% 50% at 50% 60%, transparent 0%, rgba(34,26,23,.18) 100%);
    pointer-events: none;
}
.map-card__pin {
    position: absolute;
    top: 50%; left: 50%;
    transform: translate(-50%, -100%);
    width: 48px; height: 48px;
    border-radius: 50%;
    background: var(--blush);
    color: var(--ink);
    display: grid; place-items: center;
    box-shadow: 0 14px 28px -12px rgba(0,0,0,.55);
    pointer-events: none;
    animation: pinBounce 2.6s ease-in-out infinite;
}
@keyframes pinBounce {
    0%, 100% { transform: translate(-50%, -100%); }
    50%      { transform: translate(-50%, -110%); }
}
.map-card__caption {
    padding: 22px 26px;
    display: flex; flex-direction: column; gap: 4px;
    border-top: 1px solid rgba(247, 241, 234, .12);
}
.map-card__label {
    font-size: 10px;
    letter-spacing: .26em;
    text-transform: uppercase;
    color: var(--blush);
}
.map-card__addr {
    font-family: var(--serif);
    font-style: italic;
    font-size: 1.3rem;
    color: var(--cream);
}
.map-card__cta {
    margin-top: 6px;
    font-size: 12px;
    letter-spacing: .12em;
    color: rgba(247, 241, 234, .6);
    transition: color .25s var(--ease);
}
.map-card:hover .map-card__cta { color: var(--blush); }

/* contact info column */
.contact-info {
    display: flex; flex-direction: column; gap: 10px;
}
.contact-row {
    display: flex; align-items: center; gap: 16px;
    padding: 18px 22px;
    border-radius: var(--radius);
    background: rgba(247, 241, 234, .04);
    border: 1px solid rgba(247, 241, 234, .12);
    color: var(--cream);
    transition: background .25s var(--ease), border-color .25s var(--ease), transform .25s var(--ease);
}
.contact-row:hover {
    background: rgba(247, 241, 234, .08);
    border-color: rgba(247, 241, 234, .25);
    transform: translateX(4px);
}
.contact-row svg { color: var(--blush); flex-shrink: 0; }
.contact-row > div { display: flex; flex-direction: column; gap: 2px; flex: 1; }
.contact-row__label {
    font-size: 10px;
    letter-spacing: .24em;
    text-transform: uppercase;
    color: rgba(247, 241, 234, .55);
}
.contact-row__value {
    font-family: var(--serif);
    font-style: italic;
    font-size: 1.15rem;
    color: var(--cream);
}
.contact-row__arrow {
    font-family: var(--serif);
    color: var(--blush);
    font-size: 1.2rem;
    transition: transform .25s var(--ease);
}
.contact-row:hover .contact-row__arrow { transform: translateX(3px); }
.contact-row--static { cursor: default; }
.contact-row--static:hover { transform: none; background: rgba(247, 241, 234, .04); }

.section--ink .btn--primary {
    background: var(--blush);
    color: var(--ink);
    border-color: var(--blush);
    box-shadow: 0 4px 0 -1px var(--rose-deep);
}
.section--ink .btn--primary:hover {
    background: var(--cream);
    border-color: var(--cream);
    color: var(--ink);
    box-shadow: 0 8px 0 -2px var(--rose-deep);
}
.section--ink .btn--primary .btn__icon {
    background: rgba(34,26,23,.12);
    color: var(--ink);
}

/* ============ FOOTER ============ */
.footer {
    background: var(--cream-soft);
    color: var(--ink);
    padding: 64px 0 24px;
    border-top: 1px solid var(--line);
}
.footer__inner {
    display: flex;
    justify-content: space-between;
    gap: 48px;
    flex-wrap: wrap;
    margin-bottom: 48px;
}
.footer__brand { display: flex; align-items: center; gap: 14px; }
.footer__name {
    font-family: var(--serif);
    font-style: italic;
    font-size: 1.3rem;
    margin: 0 0 4px;
}
.footer__sub {
    color: var(--ink-mute);
    font-size: 13px;
    margin: 0;
}
.footer__cols { display: flex; gap: 56px; flex-wrap: wrap; }
.footer__cols h4 {
    font-family: var(--serif);
    font-style: italic;
    font-weight: 500;
    font-size: 14px;
    letter-spacing: .04em;
    margin: 0 0 12px;
    color: var(--ink);
}
.footer__cols p {
    margin: 4px 0;
    font-size: 14px;
    color: var(--ink-soft);
}
.footer__cols a:hover { color: var(--rose-deep); }

.footer__legal {
    max-width: var(--maxw);
    margin: 0 auto;
    padding: 24px 28px 0;
    border-top: 1px solid var(--line);
    display: flex;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 12px;
    font-size: 12px;
    color: var(--ink-mute);
    letter-spacing: .04em;
}
.footer__credit a {
    color: var(--rose-deep);
    border-bottom: 1px dotted var(--rose-deep);
    padding-bottom: 1px;
}
.footer__credit a:hover { color: var(--ink); border-color: var(--ink); }

/* ============ STICKY WHATSAPP (boutique) ============ */
.sticky-wa {
    position: fixed;
    bottom: 24px; right: 24px;
    z-index: 60;
    width: 60px; height: 60px;
    border-radius: 50%;
    background: var(--ink);
    color: var(--blush);
    display: grid; place-items: center;
    box-shadow: 0 16px 32px -10px rgba(0,0,0,.45);
    transition: all .3s var(--ease);
    border: 1px solid var(--blush);
}
.sticky-wa::before {
    content: '';
    position: absolute; inset: -4px;
    border-radius: 50%;
    border: 1px solid var(--blush);
    opacity: .35;
    animation: ringPulse 2.6s ease-in-out infinite;
}
@keyframes ringPulse {
    0%, 100% { transform: scale(1); opacity: .35; }
    50% { transform: scale(1.15); opacity: 0; }
}
.sticky-wa:hover {
    background: var(--rose-deep);
    color: var(--cream);
    transform: scale(1.06);
}

/* ============ REVEAL ON SCROLL ============ */
.reveal {
    opacity: 0;
    transform: translateY(28px);
    transition: opacity 1s var(--ease), transform 1s var(--ease);
}
.reveal.is-in {
    opacity: 1;
    transform: translateY(0);
}

@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after {
        animation-duration: .001s !important;
        transition-duration: .001s !important;
    }
}

/* small screens */
@media (max-width: 600px) {
    .nav__cta span { display: none; }
    .nav__cta { padding: 8px 12px; }
    .hero { padding: 130px 18px 80px; }
    .footer__inner { flex-direction: column; }
    .marquee { padding: 22px 0; }
}
