:root {
    --rb-bg: #fbf7f2;
    --rb-paper: #fffdf9;
    --rb-taupe: #bba7a1;
    --rb-taupe-dark: #8f7e7b;
    --rb-rose: #e9cec9;
    --rb-rose-deep: #d9aab3;
    --rb-sage: #95aa9b;
    --rb-sage-dark: #6f8977;
    --rb-cream: #faf5e7;
    --rb-ink: #4f4647;
    --rb-muted: #756b6c;
    --rb-line: rgba(79,70,71,.13);
    --rb-shadow: 0 24px 70px rgba(83, 66, 66, .10);
    --rb-radius: 30px;
    --rb-radius-sm: 18px;
    --rb-container: 1180px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; font-size: 16px; }
body {
    margin: 0;
    background: var(--rb-bg);
    color: var(--rb-ink);
    font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    font-size: 17px;
    line-height: 1.7;
    -webkit-font-smoothing: antialiased;
}
body.menu-open { overflow: hidden; }
img { max-width: 100%; height: auto; display: block; }
a { color: inherit; text-decoration: none; }
button, input, textarea, select { font: inherit; }
.screen-reader-text { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; }
.skip-link { position: fixed; top: -100px; left: 20px; z-index: 9999; background: #fff; padding: 12px 16px; border-radius: 10px; }
.skip-link:focus { top: 20px; }

.rb-container { width: min(calc(100% - 40px), var(--rb-container)); margin-inline: auto; }
.content-narrow { width: min(100%, 820px); }
.section { padding: 96px 0; position: relative; }
.section--soft { background: linear-gradient(180deg, rgba(233,206,201,.25), rgba(250,245,231,.55)); }
.section--article { padding-top: 48px; }

h1,h2,h3,h4,h5,h6 {
    margin: 0 0 .65em;
    color: var(--rb-ink);
    font-family: Georgia, "Times New Roman", serif;
    font-weight: 500;
    line-height: 1.08;
    letter-spacing: -.02em;
}
h1 { font-size: clamp(58px, 7vw, 96px); }
h2 { font-size: clamp(40px, 4.5vw, 64px); }
h3 { font-size: clamp(25px, 2vw, 30px); }
p { margin: 0 0 1.2em; }

.eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 9px;
    margin-bottom: 20px;
    color: var(--rb-sage-dark);
    font-size: .76rem;
    font-weight: 700;
    letter-spacing: .16em;
    text-transform: uppercase;
}
.eyebrow::before { content: ""; width: 32px; height: 1px; background: currentColor; }

.btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 52px;
    padding: 12px 24px;
    border: 1px solid transparent;
    border-radius: 999px;
    font-weight: 650;
    transition: transform .2s ease, box-shadow .2s ease, background .2s ease;
}
.btn:hover { transform: translateY(-2px); }
.btn--primary { background: var(--rb-ink); color: #fff; box-shadow: 0 14px 34px rgba(79,70,71,.18); }
.btn--primary:hover { background: var(--rb-sage-dark); }
.btn--ghost { border-color: var(--rb-line); background: rgba(255,255,255,.45); }
.btn--ghost:hover { background: #fff; }
.btn--light { background: var(--rb-paper); color: var(--rb-ink); }
.text-link { color: var(--rb-sage-dark); font-weight: 700; }

.site-header {
    position: sticky;
    top: 0;
    z-index: 50;
    background: rgba(251,247,242,.86);
    border-bottom: 1px solid transparent;
    backdrop-filter: blur(14px);
    transition: box-shadow .2s ease, border-color .2s ease;
}
.site-header.is-scrolled { border-color: var(--rb-line); box-shadow: 0 10px 35px rgba(79,70,71,.06); }
.site-header__inner { min-height: 92px; display: flex; align-items: center; justify-content: space-between; gap: 28px; }
.site-brand { display: inline-flex; align-items: center; gap: 13px; flex-shrink: 0; }
.site-brand img { width: 58px; height: 58px; object-fit: cover; border-radius: 50%; box-shadow: 0 8px 24px rgba(79,70,71,.12); }
.site-brand__text { display: grid; line-height: 1.2; }
.site-brand__text strong { font-family: Georgia, serif; font-size: 1.15rem; font-weight: 500; }
.site-brand__text small { margin-top: 4px; color: var(--rb-muted); font-size: .71rem; text-transform: uppercase; letter-spacing: .12em; }
.site-nav__list { list-style: none; margin: 0; padding: 0; display: flex; align-items: center; gap: 28px; }
.site-nav__list a { position: relative; display: block; padding: 11px 0; font-size: .92rem; font-weight: 600; color: var(--rb-muted); }
.site-nav__list a::after { content: ""; position: absolute; left: 0; bottom: 5px; width: 0; height: 1px; background: var(--rb-ink); transition: width .2s ease; }
.site-nav__list a:hover, .site-nav__list .current-menu-item > a { color: var(--rb-ink); }
.site-nav__list a:hover::after, .site-nav__list .current-menu-item > a::after { width: 100%; }
.menu-toggle { display: none; width: 46px; height: 46px; border: 0; border-radius: 50%; background: var(--rb-paper); padding: 0; align-items: center; justify-content: center; flex-direction: column; gap: 5px; }
.menu-toggle > span:not(.screen-reader-text) { display: block; width: 20px; height: 1.5px; background: var(--rb-ink); transition: transform .2s ease, opacity .2s ease; }

.hero { min-height: 760px; display: flex; align-items: center; overflow: hidden; position: relative; background: radial-gradient(circle at 88% 20%, rgba(233,206,201,.55), transparent 28%), radial-gradient(circle at 8% 95%, rgba(149,170,155,.20), transparent 24%), linear-gradient(135deg, #fbf7f2 0%, #f8f0ed 55%, #faf5e7 100%); }
.hero__grid { display: grid; grid-template-columns: 1.05fr .95fr; gap: 72px; align-items: center; position: relative; z-index: 2; }
.hero__content p { max-width: 670px; color: var(--rb-muted); font-size: clamp(1.06rem, 1.5vw, 1.25rem); }
.hero__actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 34px; }
.hero__mini-list { display: flex; flex-wrap: wrap; gap: 22px; margin-top: 38px; color: var(--rb-muted); font-size: .88rem; }
.hero__mini-list span { display: inline-flex; align-items: center; gap: 8px; }
.hero__mini-list span::before { content: "✦"; color: var(--rb-rose-deep); font-size: .8rem; }
.hero__visual { display: flex; justify-content: center; }
.hero-card { position: relative; width: min(100%, 470px); aspect-ratio: 1/1; padding: 48px; border-radius: 50%; background: rgba(255,255,255,.35); border: 1px solid rgba(255,255,255,.8); box-shadow: 0 40px 100px rgba(121,93,91,.13); display: grid; place-items: center; }
.hero-card img { width: 82%; aspect-ratio: 1/1; object-fit: cover; border-radius: 50%; box-shadow: 0 30px 80px rgba(95,71,72,.18); position: relative; z-index: 2; }
.hero-card__ring { position: absolute; border: 1px solid rgba(149,170,155,.5); border-radius: 50%; }
.hero-card__ring--1 { inset: 13%; }
.hero-card__ring--2 { inset: -6%; border-style: dashed; opacity: .55; animation: rbSpin 30s linear infinite; }
.hero__orb { position: absolute; border-radius: 50%; filter: blur(1px); }
.hero__orb--one { width: 220px; height: 220px; right: -70px; top: 80px; background: rgba(233,206,201,.32); }
.hero__orb--two { width: 160px; height: 160px; left: -50px; bottom: 45px; background: rgba(149,170,155,.16); }
@keyframes rbSpin { to { transform: rotate(360deg); } }

.intro-grid { display: grid; grid-template-columns: .9fr 1.1fr; gap: 80px; align-items: start; }
.prose--lead { font-size: 1.14rem; color: var(--rb-muted); }
.prose { color: var(--rb-muted); }
.prose > *:first-child { margin-top: 0; }
.prose h2, .prose h3, .prose h4 { margin-top: 1.4em; color: var(--rb-ink); }
.prose a { color: var(--rb-sage-dark); text-decoration: underline; text-underline-offset: 3px; }
.prose ul, .prose ol { padding-left: 1.25em; }
.prose blockquote { margin: 2em 0; padding: 24px 28px; border-left: 3px solid var(--rb-rose-deep); background: rgba(233,206,201,.2); color: var(--rb-ink); }
.prose img { border-radius: var(--rb-radius-sm); }

.section-heading { max-width: 760px; margin-bottom: 44px; }
.section-heading p { color: var(--rb-muted); font-size: 1.05rem; }
.section-heading--row { max-width: none; display: flex; justify-content: space-between; align-items: end; gap: 24px; }

.service-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; }
.service-card { position: relative; min-height: 350px; padding: 34px; border: 1px solid var(--rb-line); border-radius: var(--rb-radius); background: rgba(255,255,255,.62); box-shadow: 0 12px 35px rgba(79,70,71,.04); transition: transform .25s ease, box-shadow .25s ease, background .25s ease; overflow: hidden; }
.service-card::before { content: ""; position: absolute; width: 170px; height: 170px; border-radius: 50%; right: -75px; bottom: -70px; background: rgba(233,206,201,.26); transition: transform .3s ease; }
.service-card:nth-child(2)::before { background: rgba(149,170,155,.22); }
.service-card:nth-child(3)::before { background: rgba(250,245,231,.9); }
.service-card:hover { transform: translateY(-7px); box-shadow: var(--rb-shadow); background: var(--rb-paper); }
.service-card:hover::before { transform: scale(1.15); }
.service-card__number { color: var(--rb-taupe-dark); font-size: .72rem; letter-spacing: .14em; }
.service-card__icon { width: 56px; height: 56px; margin: 48px 0 28px; border-radius: 50%; display: grid; place-items: center; background: var(--rb-cream); color: var(--rb-sage-dark); font-size: 1.3rem; }
.service-card h3 { margin-bottom: 14px; }
.service-card p { color: var(--rb-muted); font-size: .96rem; }
.service-card__link { position: absolute; left: 34px; bottom: 30px; color: var(--rb-sage-dark); font-size: .92rem; font-weight: 700; }
.service-card--static { min-height: 320px; }

.matrix-feature { overflow: hidden; }
.matrix-feature__grid { display: grid; grid-template-columns: .9fr 1.1fr; gap: 90px; align-items: center; }
.matrix-feature__visual { display: grid; place-items: center; }
.matrix-motif { position: relative; width: min(440px, 88vw); aspect-ratio: 1/1; border-radius: 50%; border: 1px solid rgba(149,170,155,.55); display: grid; place-items: center; background: radial-gradient(circle, rgba(250,245,231,.9) 0 24%, transparent 25%), repeating-radial-gradient(circle, transparent 0 44px, rgba(233,206,201,.4) 45px 46px); box-shadow: var(--rb-shadow); }
.matrix-motif::before, .matrix-motif::after { content: ""; position: absolute; inset: 14%; border: 1px solid rgba(233,206,201,.7); transform: rotate(45deg); }
.matrix-motif::after { transform: rotate(0deg); }
.matrix-motif__center { position: relative; z-index: 3; width: 120px; height: 120px; border-radius: 50%; display: grid; place-items: center; background: var(--rb-ink); color: #fff; font-family: Georgia, serif; font-size: 2.25rem; box-shadow: 0 16px 50px rgba(79,70,71,.18); }
.matrix-motif--small { width: 300px; }
.matrix-motif--small .matrix-motif__center { width: 88px; height: 88px; font-size: 1.8rem; }
.dot { position: absolute; width: 28px; height: 28px; border-radius: 50%; border: 5px solid var(--rb-bg); background: var(--rb-rose-deep); z-index: 4; }
.dot--1 { top: 7%; left: 46%; }
.dot--2 { top: 28%; right: 8%; background: var(--rb-sage); }
.dot--3 { right: 17%; bottom: 18%; background: var(--rb-cream); }
.dot--4 { bottom: 6%; left: 42%; background: var(--rb-rose); }
.dot--5 { left: 8%; bottom: 29%; background: var(--rb-sage); }
.dot--6 { left: 14%; top: 22%; background: var(--rb-cream); }
.matrix-feature__content p { color: var(--rb-muted); font-size: 1.07rem; }
.check-list { list-style: none; padding: 0; margin: 30px 0 34px; display: grid; gap: 12px; }
.check-list li { display: flex; align-items: center; gap: 12px; }
.check-list li::before { content: "✦"; color: var(--rb-sage-dark); }

.final-cta { padding-top: 40px; }
.final-cta__inner { padding: 72px; border-radius: 40px; text-align: center; color: #fff; background: linear-gradient(135deg, var(--rb-taupe-dark), #857278 60%, var(--rb-sage-dark)); box-shadow: var(--rb-shadow); }
.final-cta__inner h2, .final-cta__inner .eyebrow { color: #fff; }
.final-cta__inner p { max-width: 650px; margin: 0 auto 28px; color: rgba(255,255,255,.82); }

.page-hero { position: relative; overflow: hidden; padding: 110px 0 90px; background: radial-gradient(circle at 80% 20%, rgba(233,206,201,.42), transparent 28%), linear-gradient(135deg, #fbf7f2, #f8f0ed); }
.page-hero::after { content: ""; position: absolute; width: 320px; height: 320px; border-radius: 50%; border: 1px solid rgba(149,170,155,.25); right: -90px; bottom: -160px; }
.page-hero__inner { max-width: 900px; position: relative; z-index: 2; }
.page-hero__inner h1 { font-size: clamp(54px, 6vw, 88px); }
.page-hero__inner p, .page-hero__grid p { max-width: 700px; color: var(--rb-muted); font-size: 1.12rem; }
.page-hero__grid { display: grid; grid-template-columns: 1.15fr .85fr; align-items: center; gap: 70px; position: relative; z-index: 2; }
.page-hero__symbol { display: grid; place-items: center; }
.page-hero--compatibility { background: radial-gradient(circle at 78% 25%, rgba(233,206,201,.6), transparent 26%), linear-gradient(135deg, #fbf7f2, #f6eeee); }
.page-hero--blog { padding-bottom: 70px; }

.compatibility-symbol { position: relative; width: 340px; height: 280px; margin: auto; }
.compatibility-symbol__circle { position: absolute; top: 30px; width: 220px; height: 220px; border-radius: 50%; display: grid; place-items: center; font-family: Georgia, serif; font-size: 2rem; border: 1px solid rgba(79,70,71,.12); box-shadow: var(--rb-shadow); }
.compatibility-symbol__circle--a { left: 0; background: rgba(233,206,201,.74); }
.compatibility-symbol__circle--b { right: 0; background: rgba(149,170,155,.62); }

.feature-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; }
.feature-card { padding: 28px; border-radius: 22px; border: 1px solid var(--rb-line); background: rgba(255,255,255,.65); }
.feature-card > span { display: block; margin-bottom: 30px; color: var(--rb-rose-deep); font-size: .75rem; letter-spacing: .13em; }
.feature-card p { color: var(--rb-muted); font-size: .94rem; }

.calculator-shell { padding: 58px; border-radius: 34px; background: var(--rb-paper); border: 1px solid var(--rb-line); box-shadow: var(--rb-shadow); }
.calculator-shell--rose { background: linear-gradient(145deg, #fffdf9, #fbf2f1); }
.calculator-shell__heading { max-width: 700px; margin-bottom: 34px; }
.calculator-shell__heading p { color: var(--rb-muted); }
.calculator-shell__content { padding-top: 32px; border-top: 1px solid var(--rb-line); }
.split-section__grid { display: grid; grid-template-columns: .9fr 1.1fr; gap: 80px; }
.services-content { max-width: 900px; }

.posts-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.post-card { overflow: hidden; border: 1px solid var(--rb-line); border-radius: 26px; background: var(--rb-paper); transition: transform .25s ease, box-shadow .25s ease; }
.post-card:hover { transform: translateY(-5px); box-shadow: var(--rb-shadow); }
.post-card__image { display: block; aspect-ratio: 16 / 10; overflow: hidden; background: linear-gradient(135deg, var(--rb-rose), var(--rb-cream)); }
.post-card__image img { width: 100%; height: 100%; object-fit: cover; transition: transform .35s ease; }
.post-card:hover .post-card__image img { transform: scale(1.035); }
.post-card__placeholder { width: 100%; height: 100%; display: grid; place-items: center; color: rgba(79,70,71,.55); font-size: 2.1rem; }
.post-card__body { padding: 26px; }
.post-card__body h2 { font-size: 1.55rem; }
.post-card__body h2 a:hover { color: var(--rb-sage-dark); }
.post-card__body p { color: var(--rb-muted); font-size: .94rem; }
.post-meta { display: flex; flex-wrap: wrap; gap: 10px 16px; margin-bottom: 14px; color: var(--rb-taupe-dark); font-size: .78rem; text-transform: uppercase; letter-spacing: .08em; }
.pagination-wrap { margin-top: 48px; }
.nav-links { display: flex; flex-wrap: wrap; gap: 8px; }
.page-numbers { min-width: 40px; height: 40px; padding: 0 12px; display: inline-grid; place-items: center; border-radius: 999px; background: var(--rb-paper); border: 1px solid var(--rb-line); }
.page-numbers.current { background: var(--rb-ink); color: #fff; }

.single-post__header { padding: 100px 0 50px; background: linear-gradient(180deg, rgba(233,206,201,.16), transparent); }
.single-post__header .content-narrow { margin-inline: auto; text-align: center; }
.single-post__header h1 { font-size: clamp(50px, 6vw, 80px); }
.single-post__header .post-meta { justify-content: center; }
.single-post__excerpt { color: var(--rb-muted); font-size: 1.12rem; }
.single-post__image { max-width: 1060px; }
.single-post__image img { width: 100%; max-height: 620px; object-fit: cover; border-radius: 32px; }
.single-post__footer { margin-bottom: 90px; display: flex; justify-content: space-between; gap: 24px; border-top: 1px solid var(--rb-line); padding-top: 24px; }
.post-tags a { display: inline-block; margin: 4px; padding: 7px 11px; border-radius: 999px; background: var(--rb-paper); border: 1px solid var(--rb-line); font-size: .82rem; }

.contact-grid { display: grid; grid-template-columns: .8fr 1.2fr; gap: 42px; align-items: start; }
.contact-panel, .contact-form-shell { padding: 38px; border-radius: 28px; background: var(--rb-paper); border: 1px solid var(--rb-line); box-shadow: 0 18px 55px rgba(79,70,71,.06); }
.contact-link { display: grid; gap: 3px; padding: 16px 0; border-bottom: 1px solid var(--rb-line); }
.contact-link span { color: var(--rb-muted); font-size: .8rem; text-transform: uppercase; letter-spacing: .1em; }
.contact-link strong { font-weight: 600; }
.entry-content input:not([type="submit"]), .entry-content textarea, .entry-content select { width: 100%; border: 1px solid var(--rb-line); border-radius: 14px; background: #fff; padding: 13px 15px; color: var(--rb-ink); }
.entry-content textarea { min-height: 150px; }
.entry-content input[type="submit"], .entry-content button[type="submit"] { border: 0; border-radius: 999px; background: var(--rb-ink); color: #fff; padding: 13px 22px; cursor: pointer; }

.empty-state, .error-page__inner { text-align: center; padding: 70px 0; margin-inline: auto; }
.empty-state__icon { display: inline-grid; place-items: center; width: 72px; height: 72px; border-radius: 50%; background: var(--rb-rose); margin-bottom: 24px; }
.error-page__inner .hero__actions { justify-content: center; }

.site-footer { margin-top: 60px; padding: 68px 0 26px; background: #51494b; color: rgba(255,255,255,.78); }
.site-footer__grid { display: grid; grid-template-columns: 1.25fr .75fr .75fr; gap: 60px; }
.site-footer__brand { display: flex; gap: 18px; align-items: flex-start; }
.site-footer__brand img { width: 74px; height: 74px; object-fit: cover; border-radius: 50%; }
.site-footer__brand strong, .site-footer h3 { color: #fff; font-family: Georgia, serif; font-weight: 500; }
.site-footer__brand p { max-width: 380px; margin: 6px 0 0; font-size: .9rem; }
.site-footer h3 { font-size: 1.1rem; margin-bottom: 18px; }
.footer-menu, .site-footer__nav .site-nav__list { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.site-footer__nav .site-nav__list a { padding: 0; color: rgba(255,255,255,.72); }
.site-footer__nav .site-nav__list a::after { display: none; }
.site-footer__contact { display: grid; align-content: start; gap: 8px; }
.site-footer__contact a:hover, .footer-menu a:hover { color: #fff; }
.site-footer__bottom { margin-top: 52px; padding-top: 22px; border-top: 1px solid rgba(255,255,255,.12); display: flex; justify-content: space-between; gap: 20px; font-size: .78rem; }

/* WooCommerce basic integration */
.woocommerce .products ul, .woocommerce ul.products { display: grid; grid-template-columns: repeat(3,1fr); gap: 24px; }
.woocommerce ul.products li.product { width: auto !important; margin: 0 !important; padding: 22px; border-radius: 22px; background: var(--rb-paper); border: 1px solid var(--rb-line); }
.woocommerce ul.products li.product a img { border-radius: 16px; }
.woocommerce ul.products li.product .button, .woocommerce a.button, .woocommerce button.button, .woocommerce input.button { border-radius: 999px; background: var(--rb-ink); color: #fff; font-weight: 600; }

@media (max-width: 980px) {
    .site-header__inner { min-height: 78px; }
    .site-brand img { width: 50px; height: 50px; }
    .menu-toggle { display: inline-flex; position: relative; z-index: 53; }
    .site-nav { position: fixed; inset: 0; padding: 110px 28px 40px; background: rgba(251,247,242,.98); transform: translateX(100%); transition: transform .25s ease; z-index: 52; }
    .menu-open .site-nav { transform: translateX(0); }
    .site-nav__list { flex-direction: column; align-items: flex-start; gap: 8px; }
    .site-nav__list a { font-family: Georgia, serif; font-size: 1.7rem; color: var(--rb-ink); }
    .menu-open .menu-toggle > span:nth-child(1) { transform: translateY(6.5px) rotate(45deg); }
    .menu-open .menu-toggle > span:nth-child(2) { opacity: 0; }
    .menu-open .menu-toggle > span:nth-child(3) { transform: translateY(-6.5px) rotate(-45deg); }

    .hero { min-height: auto; padding: 80px 0; }
    .hero__grid, .intro-grid, .matrix-feature__grid, .page-hero__grid, .split-section__grid, .contact-grid { grid-template-columns: 1fr; gap: 46px; }
    .hero__visual { order: -1; }
    .hero-card { width: min(380px, 86vw); }
    .hero__content { text-align: center; }
    .hero__content .eyebrow { justify-content: center; }
    .hero__actions, .hero__mini-list { justify-content: center; }
    .service-grid, .posts-grid, .feature-grid { grid-template-columns: repeat(2, 1fr); }
    .page-hero__symbol { order: -1; }
    .compatibility-symbol { margin-inline: auto; }
    .site-footer__grid { grid-template-columns: 1fr 1fr; }
    .site-footer__brand { grid-column: 1 / -1; }
}

@media (max-width: 680px) {
    body { font-size: 16px; }
    .rb-container { width: min(calc(100% - 28px), var(--rb-container)); }
    .section { padding: 68px 0; }
    h1 { font-size: clamp(44px, 14vw, 64px); }
    h2 { font-size: clamp(34px, 10vw, 48px); }
    .site-brand__text small { display: none; }
    .hero { padding: 56px 0 70px; }
    .hero-card { padding: 28px; }
    .hero__mini-list { gap: 10px 18px; }
    .service-grid, .posts-grid, .feature-grid, .site-footer__grid { grid-template-columns: 1fr; }
    .service-card { min-height: 320px; }
    .section-heading--row { align-items: flex-start; flex-direction: column; }
    .final-cta__inner, .calculator-shell, .contact-panel, .contact-form-shell { padding: 34px 24px; border-radius: 26px; }
    .page-hero { padding: 78px 0 62px; }
    .page-hero__inner h1 { font-size: clamp(44px, 13vw, 64px); }
    .matrix-motif { width: min(340px, 86vw); }
    .compatibility-symbol { width: 290px; height: 240px; }
    .compatibility-symbol__circle { width: 185px; height: 185px; }
    .single-post__header { padding-top: 70px; }
    .single-post__footer, .site-footer__bottom { flex-direction: column; }
    .site-footer__brand { grid-column: auto; }
    .woocommerce .products ul, .woocommerce ul.products { grid-template-columns: 1fr; }
}

@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; scroll-behavior: auto !important; transition-duration: .01ms !important; }
}

/* =========================================================
   SOBRE MÍ
========================================================= */
.rb-about {
    overflow: hidden;
}

.rb-about em {
    color: var(--rb-sage-dark);
    font-style: italic;
    font-weight: inherit;
}

.rb-about-hero {
    position: relative;
    overflow: hidden;
    padding: 108px 0 120px;
    background:
        radial-gradient(circle at 8% 15%, rgba(233,206,201,.40), transparent 27%),
        radial-gradient(circle at 92% 92%, rgba(149,170,155,.18), transparent 26%),
        linear-gradient(135deg, #fbf7f2 0%, #f8f0ed 100%);
}

.rb-about-hero__grid {
    position: relative;
    z-index: 2;
    display: grid;
    grid-template-columns: minmax(360px,.9fr) minmax(430px,1fr);
    align-items: center;
    gap: clamp(56px,8vw,120px);
}

.rb-about-portrait {
    position: relative;
    width: min(100%,560px);
    margin-inline: auto;
    padding: 0 22px 22px 0;
}

.rb-about-portrait__backdrop {
    position: absolute;
    inset: 32px 0 0 28px;
    border-radius: 49% 51% 45% 55% / 43% 49% 51% 57%;
    background: linear-gradient(145deg, var(--rb-rose), #e2bfc0);
}

.rb-about-portrait img {
    position: relative;
    z-index: 2;
    width: 100%;
    aspect-ratio: 4 / 5;
    object-fit: cover;
    object-position: center top;
    border-radius: 49% 51% 46% 54% / 43% 47% 53% 57%;
    box-shadow: 0 35px 80px rgba(79,70,71,.12);
}

.rb-about-portrait__mark {
    position: absolute;
    right: -4px;
    bottom: 64px;
    z-index: 3;
    width: 92px;
    height: 92px;
    display: grid;
    place-items: center;
    border: 1px solid rgba(255,255,255,.72);
    border-radius: 50%;
    background: rgba(149,170,155,.96);
    color: #fff;
    font-size: 2rem;
    box-shadow: 0 18px 40px rgba(79,70,71,.12);
}

.rb-about-hero__copy h1 {
    margin-bottom: 30px;
    font-size: clamp(64px,7.4vw,108px);
    line-height: .88;
    letter-spacing: -.055em;
}

.rb-about-lead {
    max-width: 640px;
    margin-bottom: 20px;
    color: var(--rb-ink);
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(25px,2.25vw,34px);
    line-height: 1.34;
}

.rb-about-hero__copy > p:not(.rb-about-lead) {
    max-width: 600px;
    margin-bottom: 34px;
    color: var(--rb-muted);
    font-size: 1.05rem;
}

.rb-about-orb {
    position: absolute;
    border: 1px solid rgba(187,167,161,.24);
    border-radius: 50%;
}

.rb-about-orb::before,
.rb-about-orb::after {
    content: "";
    position: absolute;
    border: 1px solid rgba(187,167,161,.18);
    border-radius: 50%;
}

.rb-about-orb--one {
    top: -150px;
    right: -130px;
    width: 420px;
    height: 420px;
}
.rb-about-orb--one::before { inset: 64px; }
.rb-about-orb--one::after { inset: 132px; }

.rb-about-orb--two {
    left: -90px;
    bottom: -95px;
    width: 250px;
    height: 250px;
}

.rb-about-quote {
    padding: 105px 0;
    background: var(--rb-ink);
    color: #fff;
}

.rb-about-quote__inner {
    width: min(calc(100% - 40px), 920px);
    text-align: center;
}

.rb-about-quote__inner > span {
    display: block;
    margin-bottom: 24px;
    color: var(--rb-rose);
    font-size: 2rem;
}

.rb-about-quote blockquote {
    margin: 0;
    color: var(--rb-cream);
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(38px,4.7vw,66px);
    line-height: 1.08;
    font-weight: 400;
}

.rb-about-story {
    padding-top: 128px;
    padding-bottom: 128px;
}

.rb-about-story__grid {
    display: grid;
    grid-template-columns: 1fr .82fr;
    gap: clamp(60px,8vw,110px);
    align-items: start;
}

.rb-about-story__grid h2 {
    max-width: 660px;
}

.rb-about-story__text {
    padding-top: 46px;
    color: var(--rb-muted);
}

.rb-about-story__text p {
    margin-bottom: 24px;
}

.rb-about-areas {
    padding-top: 124px;
    padding-bottom: 124px;
    background: linear-gradient(180deg, #f2e9e4 0%, #f6efeb 100%);
}

.rb-about-heading {
    max-width: 760px;
    margin: 0 auto 62px;
    text-align: center;
}

.rb-about-heading .eyebrow {
    justify-content: center;
}

.rb-about-heading .eyebrow::before {
    display: none;
}

.rb-about-heading p {
    max-width: 620px;
    margin-inline: auto;
}

.rb-about-cards {
    display: grid;
    grid-template-columns: repeat(3,1fr);
    gap: 18px;
}

.rb-about-card {
    position: relative;
    min-height: 330px;
    padding: 38px 34px 34px;
    border: 1px solid rgba(79,70,71,.10);
    border-radius: 26px;
    background: rgba(255,253,249,.70);
    box-shadow: 0 16px 38px rgba(79,70,71,.035);
    transition: transform .25s ease, box-shadow .25s ease, background .25s ease;
}

.rb-about-card:hover {
    transform: translateY(-6px);
    background: var(--rb-paper);
    box-shadow: var(--rb-shadow);
}

.rb-about-card__number {
    position: absolute;
    top: 29px;
    right: 30px;
    color: var(--rb-taupe-dark);
    font-size: .72rem;
    letter-spacing: .15em;
}

.rb-about-card__icon {
    width: 58px;
    height: 58px;
    display: grid;
    place-items: center;
    margin-bottom: 42px;
    border: 1px solid var(--rb-sage);
    border-radius: 50%;
    color: var(--rb-sage-dark);
    font-size: 1.25rem;
}

.rb-about-card h3 {
    font-size: 1.75rem;
}

.rb-about-card p {
    margin: 0;
    color: var(--rb-muted);
    font-size: .94rem;
}

.rb-about-card--accent {
    border-color: transparent;
    background: var(--rb-sage);
}

.rb-about-card--accent:hover {
    background: var(--rb-sage-dark);
}

.rb-about-card--accent h3,
.rb-about-card--accent p,
.rb-about-card--accent .rb-about-card__number,
.rb-about-card--accent .rb-about-card__icon {
    color: #fff;
}

.rb-about-card--accent .rb-about-card__icon {
    border-color: rgba(255,255,255,.45);
}

.rb-about-method {
    padding-top: 128px;
    padding-bottom: 128px;
}

.rb-about-method__box {
    display: grid;
    grid-template-columns: 1.1fr .72fr;
    gap: clamp(55px,8vw,100px);
    padding: clamp(48px,7vw,88px);
    border: 1px solid var(--rb-line);
    border-radius: 34px;
    background:
        radial-gradient(circle at 95% 5%, rgba(233,206,201,.46), transparent 32%),
        var(--rb-paper);
    box-shadow: 0 20px 60px rgba(79,70,71,.05);
}

.rb-about-method__box h2 {
    margin: 0;
}

.rb-about-method__copy {
    padding-top: 40px;
    color: var(--rb-muted);
}

.rb-about-method__copy p:last-child {
    margin-bottom: 0;
}

.rb-about-cta {
    position: relative;
    overflow: hidden;
    padding: 124px 0;
    background: var(--rb-rose);
    text-align: center;
}

.rb-about-cta__inner {
    position: relative;
    z-index: 2;
    width: min(calc(100% - 40px), 900px);
}

.rb-about-cta .eyebrow {
    justify-content: center;
    color: var(--rb-taupe-dark);
}

.rb-about-cta .eyebrow::before {
    display: none;
}

.rb-about-cta h2 {
    margin-bottom: 24px;
}

.rb-about-cta p {
    max-width: 620px;
    margin: 0 auto 34px;
    color: rgba(79,70,71,.82);
}

.rb-about-cta .hero__actions {
    justify-content: center;
}

.rb-about-cta__ring {
    position: absolute;
    border: 1px solid rgba(255,255,255,.42);
    border-radius: 50%;
}

.rb-about-cta__ring--one {
    top: -220px;
    left: -210px;
    width: 500px;
    height: 500px;
}

.rb-about-cta__ring--two {
    right: -150px;
    bottom: -180px;
    width: 370px;
    height: 370px;
}

/* =========================================================
   CONTACTO
========================================================= */
.rb-contact-page {
    overflow: hidden;
}

.rb-contact-hero {
    position: relative;
    overflow: hidden;
    padding: 112px 0 94px;
    background:
        radial-gradient(circle at 8% 12%, rgba(149,170,155,.16), transparent 25%),
        radial-gradient(circle at 92% 15%, rgba(233,206,201,.55), transparent 27%),
        linear-gradient(135deg, #fbf7f2, #f8f0ed);
}

.rb-contact-hero__inner {
    position: relative;
    z-index: 2;
    max-width: 880px;
    text-align: center;
}

.rb-contact-hero .eyebrow {
    justify-content: center;
}

.rb-contact-hero .eyebrow::before {
    display: none;
}

.rb-contact-hero h1 {
    margin-bottom: 20px;
    font-size: clamp(68px,8vw,112px);
    letter-spacing: -.055em;
}

.rb-contact-hero p {
    max-width: 720px;
    margin: 0 auto;
    color: var(--rb-muted);
    font-size: clamp(1.05rem,1.6vw,1.2rem);
}

.rb-contact-hero__ring {
    position: absolute;
    border: 1px solid rgba(187,167,161,.28);
    border-radius: 50%;
}

.rb-contact-hero__ring--one {
    width: 320px;
    height: 320px;
    top: -160px;
    left: -90px;
}

.rb-contact-hero__ring--two {
    width: 430px;
    height: 430px;
    right: -210px;
    bottom: -250px;
}

.rb-contact-main {
    padding-top: 108px;
    padding-bottom: 118px;
}

.rb-contact-grid {
    display: grid;
    grid-template-columns: .82fr 1.18fr;
    gap: clamp(34px,5vw,72px);
    align-items: start;
}

.rb-contact-info {
    position: sticky;
    top: 125px;
}

.rb-contact-info h2,
.rb-contact-form-card h2 {
    font-size: clamp(38px,4vw,56px);
}

.rb-contact-info > p {
    max-width: 500px;
    color: var(--rb-muted);
}

.rb-contact-channels {
    margin-top: 38px;
    border-top: 1px solid var(--rb-line);
}

.rb-contact-channel {
    display: grid;
    grid-template-columns: 50px 1fr auto;
    gap: 15px;
    align-items: center;
    padding: 18px 0;
    border-bottom: 1px solid var(--rb-line);
    transition: color .2s ease, transform .2s ease;
}

.rb-contact-channel:hover {
    color: var(--rb-sage-dark);
    transform: translateX(4px);
}

.rb-contact-channel__icon {
    width: 44px;
    height: 44px;
    display: grid;
    place-items: center;
    border-radius: 50%;
    background: rgba(233,206,201,.34);
    color: var(--rb-sage-dark);
}

.rb-contact-channel small,
.rb-contact-channel strong {
    display: block;
}

.rb-contact-channel small {
    margin-bottom: 2px;
    color: var(--rb-muted);
    font-size: .72rem;
    letter-spacing: .10em;
    text-transform: uppercase;
}

.rb-contact-channel strong {
    font-size: .94rem;
    font-weight: 650;
    overflow-wrap: anywhere;
}

.rb-contact-channel b {
    font-size: 1.2rem;
    font-weight: 400;
}

.rb-contact-tip {
    margin-top: 22px;
    padding: 22px;
    border-radius: 18px;
    background: rgba(233,206,201,.24);
}

.rb-contact-tip p {
    margin: 8px 0 0;
    color: var(--rb-muted);
    font-size: .9rem;
}

.rb-contact-note {
    display: flex;
    gap: 14px;
    margin-top: 34px;
    padding: 24px;
    border-radius: 22px;
    background: rgba(149,170,155,.12);
}

.rb-contact-note > span {
    color: var(--rb-sage-dark);
}

.rb-contact-note p {
    margin: 0;
    color: var(--rb-muted);
    font-size: .88rem;
}

.rb-contact-form-card {
    padding: clamp(34px,5vw,58px);
    border: 1px solid var(--rb-line);
    border-radius: 32px;
    background: var(--rb-paper);
    box-shadow: var(--rb-shadow);
}

.rb-contact-form-card h2 {
    margin-bottom: 34px;
}

.rb-contact-form {
    display: grid;
    gap: 22px;
}

.rb-contact-form__row {
    display: grid;
    grid-template-columns: repeat(2,1fr);
    gap: 18px;
}

.rb-contact-form label:not(.rb-contact-consent):not(.rb-contact-honeypot) {
    display: grid;
    gap: 8px;
}

.rb-contact-form label > span:first-child {
    color: var(--rb-ink);
    font-size: .8rem;
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.rb-contact-form input[type="text"],
.rb-contact-form input[type="email"],
.rb-contact-form select,
.rb-contact-form textarea {
    width: 100%;
    min-height: 54px;
    padding: 14px 16px;
    border: 1px solid var(--rb-line);
    border-radius: 15px;
    outline: 0;
    background: #fff;
    color: var(--rb-ink);
    transition: border-color .2s ease, box-shadow .2s ease;
}

.rb-contact-form textarea {
    min-height: 170px;
    resize: vertical;
}

.rb-contact-form input:focus,
.rb-contact-form select:focus,
.rb-contact-form textarea:focus {
    border-color: var(--rb-sage);
    box-shadow: 0 0 0 4px rgba(149,170,155,.12);
}

.rb-contact-consent {
    display: flex;
    gap: 10px;
    align-items: flex-start;
    color: var(--rb-muted);
    font-size: .82rem;
    cursor: pointer;
}

.rb-contact-consent input {
    width: 16px;
    height: 16px;
    margin-top: 3px;
    accent-color: var(--rb-sage-dark);
}

.rb-contact-consent span {
    font-size: inherit !important;
    font-weight: 400 !important;
    letter-spacing: 0 !important;
    text-transform: none !important;
}

.rb-contact-submit {
    justify-self: start;
    border: 0;
    cursor: pointer;
}

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

.rb-form-message {
    margin: -8px 0 28px;
    padding: 15px 18px;
    border-radius: 14px;
    font-size: .9rem;
}

.rb-form-message--success {
    background: rgba(149,170,155,.18);
    color: #526b59;
}

.rb-form-message--error {
    background: rgba(233,206,201,.42);
    color: #855d64;
}

.rb-contact-bottom {
    padding: 105px 0;
    background: var(--rb-ink);
    color: #fff;
}

.rb-contact-bottom__inner {
    width: min(calc(100% - 40px), 850px);
    text-align: center;
}

.rb-contact-bottom__inner > span {
    display: block;
    margin-bottom: 20px;
    color: var(--rb-rose);
    font-size: 2rem;
}

.rb-contact-bottom h2 {
    color: var(--rb-cream);
}

.rb-contact-bottom .text-link {
    color: var(--rb-rose);
}

@media (max-width: 980px) {
    .rb-about-hero__grid,
    .rb-about-story__grid,
    .rb-about-method__box,
    .rb-contact-grid {
        grid-template-columns: 1fr;
    }

    .rb-about-hero {
        padding-top: 72px;
    }

    .rb-about-portrait {
        width: min(100%,500px);
    }

    .rb-about-hero__copy {
        max-width: 720px;
        margin-inline: auto;
        text-align: center;
    }

    .rb-about-hero__copy .eyebrow,
    .rb-about-hero__copy .hero__actions {
        justify-content: center;
    }

    .rb-about-story__text,
    .rb-about-method__copy {
        padding-top: 0;
    }

    .rb-about-cards {
        grid-template-columns: repeat(2,1fr);
    }

    .rb-contact-info {
        position: static;
    }
}

@media (max-width: 680px) {
    .rb-about-hero,
    .rb-about-story,
    .rb-about-areas,
    .rb-about-method,
    .rb-about-cta,
    .rb-contact-main {
        padding-top: 72px;
        padding-bottom: 72px;
    }

    .rb-about-hero__copy h1,
    .rb-contact-hero h1 {
        font-size: clamp(54px,17vw,76px);
    }

    .rb-about-portrait {
        padding-right: 10px;
        padding-bottom: 10px;
    }

    .rb-about-portrait__backdrop {
        inset: 18px 0 0 18px;
    }

    .rb-about-portrait__mark {
        right: -2px;
        bottom: 34px;
        width: 72px;
        height: 72px;
        font-size: 1.5rem;
    }

    .rb-about-quote,
    .rb-contact-bottom {
        padding: 72px 0;
    }

    .rb-about-cards,
    .rb-contact-form__row {
        grid-template-columns: 1fr;
    }

    .rb-about-card {
        min-height: 295px;
    }

    .rb-about-method__box {
        padding: 38px 24px;
        border-radius: 26px;
    }

    .rb-contact-hero {
        padding: 76px 0 64px;
    }

    .rb-contact-form-card {
        padding: 32px 22px;
        border-radius: 24px;
    }
}
