/* =====================================================================
   mumbaibeautiess.com - "rosy" look
   Soft pink + ink black, light pages. Fraunces for headings, Nunito Sans
   for text (both self-hosted). Utilities live in rosy-base.css.
   ===================================================================== */

/* ---------- fonts ---------- */
@font-face {
    font-family: 'Fraunces';
    font-style: normal;
    font-weight: 600 700;
    font-display: swap;
    src: url('../fonts/fraunces-600-700.woff2') format('woff2');
    unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
    font-family: 'Fraunces';
    font-style: normal;
    font-weight: 600 700;
    font-display: swap;
    src: url('../fonts/fraunces-rupee.woff2') format('woff2');
    unicode-range: U+20B9;
}
@font-face {
    font-family: 'Nunito Sans';
    font-style: normal;
    font-weight: 400 800;
    font-display: swap;
    src: url('../fonts/nunito-sans-400-800.woff2') format('woff2');
    unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
    font-family: 'Nunito Sans';
    font-style: normal;
    font-weight: 400 800;
    font-display: swap;
    src: url('../fonts/nunito-sans-rupee.woff2') format('woff2');
    unicode-range: U+20B9;
}

/* ---------- tokens ---------- */
:root {
    --rsy-ink: #151114;
    --rsy-ink-2: #2B2328;
    --rsy-text: #3A3137;
    --rsy-muted: #6B5D65;
    --rsy-line: #EEDFE6;
    --rsy-line-2: #E3CBD6;
    --rsy-paper: #FFFFFF;
    --rsy-blush-0: #FFF8FA;
    --rsy-blush-1: #FDEEF3;
    --rsy-blush-2: #F9D9E4;
    --rsy-pink: #F4B6CB;
    --rsy-pink-2: #EC96B4;
    --rsy-rose: #B83A6B;
    --rsy-rose-dk: #962C57;
    --rsy-wa: #17843F;
    --rsy-wa-dk: #116C33;
    --rsy-radius: 18px;
    --rsy-radius-sm: 12px;
    --rsy-shadow: 0 1px 2px rgba(21, 17, 20, .05), 0 12px 32px -18px rgba(86, 28, 52, .28);
    --rsy-shadow-lg: 0 2px 6px rgba(21, 17, 20, .06), 0 26px 50px -26px rgba(86, 28, 52, .38);
    --rsy-head: 'Fraunces', Georgia, 'Times New Roman', serif;
    --rsy-body: 'Nunito Sans', system-ui, -apple-system, 'Segoe UI', Roboto, Arial, sans-serif;
    --rsy-bar-h: 56px;

    /* the older theme hooks used across the views, pointed at this palette */
    --theme-50: #FFF3F7;  --theme-rgb-50: 255, 243, 247;
    --theme-100: #FDE6EE; --theme-rgb-100: 253, 230, 238;
    --theme-200: #F9CCDC; --theme-rgb-200: 249, 204, 220;
    --theme-300: #F3A9C2; --theme-rgb-300: 243, 169, 194;
    --theme-400: #E97FA3; --theme-rgb-400: 233, 127, 163;
    --theme-500: #B83A6B; --theme-rgb-500: 184, 58, 107;
    --theme-600: #151114; --theme-rgb-600: 21, 17, 20;
    --theme-700: #2B2328; --theme-rgb-700: 43, 35, 40;
    --theme-800: #1B1519; --theme-rgb-800: 27, 21, 25;
    --theme-900: #151114; --theme-rgb-900: 21, 17, 20;
    --theme-950: #0E0B0D; --theme-rgb-950: 14, 11, 13;
    --theme-primary: #B83A6B; --theme-rgb-primary: 184, 58, 107;
}

/* ---------- base ---------- */
html { scroll-padding-top: calc(var(--rsy-bar-h) + 12px); -webkit-text-size-adjust: 100%; }
body.rsy-body {
    margin: 0;
    background: var(--rsy-paper);
    color: var(--rsy-text);
    font-family: var(--rsy-body);
    font-size: 16px;
    line-height: 1.65;
    overflow-x: hidden;
}
@media (min-width: 768px) { body.rsy-body { font-size: 17px; } }
:where(.rsy-body) :where(h1, h2, h3) {
    font-family: var(--rsy-head);
    font-weight: 650;
    letter-spacing: -0.012em;
    line-height: 1.18;
    color: var(--rsy-ink);
    font-synthesis: none;
    text-wrap: balance;
}
:where(.rsy-body) :where(h1, h2, h3).font-black, :where(.rsy-body) :where(h1, h2, h3).font-extrabold { font-weight: 700; }
:where(.rsy-body) :where(h4, h5) { color: var(--rsy-ink); }
:where(.rsy-body) :where(strong, b) { color: var(--rsy-ink-2); }
.rsy-body p { text-wrap: pretty; }
.rsy-body a { text-underline-offset: 3px; }
.rsy-body ::selection { background: var(--rsy-pink); color: var(--rsy-ink); }
.rsy-body :focus-visible { outline: 2px solid var(--rsy-rose); outline-offset: 2px; border-radius: 6px; }
.rsy-body img { max-width: 100%; }
.rsy-sprite { position: absolute; width: 0; height: 0; overflow: hidden; }
.rsy-ico { width: 1.15em; height: 1.15em; flex: none; display: inline-block; vertical-align: -0.18em; }
.rsy-wrap { width: 100%; max-width: 1240px; margin-inline: auto; padding-inline: 16px; }
@media (min-width: 640px) { .rsy-wrap { padding-inline: 24px; } }
@media (min-width: 1024px) { .rsy-wrap { padding-inline: 32px; } }

/* body copy on light areas: calmer greys, readable measure */
.rsy-body .text-gray-600, .rsy-body .text-gray-500 { color: var(--rsy-muted); }
.rsy-body .text-gray-700 { color: var(--rsy-text); }
.rsy-body .text-gray-900, .rsy-body .text-gray-800 { color: var(--rsy-ink); }
.rsy-body p.leading-relaxed { line-height: 1.7; }
.rsy-body p.max-w-3xl, .rsy-body p.max-w-2xl, .rsy-body .max-w-xl { max-width: 68ch; }

/* softer brand shadows and rounder corners everywhere */
.rsy-body .shadow-md, .rsy-body .shadow-lg, .rsy-body .shadow { box-shadow: var(--rsy-shadow); }
.rsy-body .shadow-xl, .rsy-body .shadow-2xl, .rsy-body .hover\:shadow-xl:hover, .rsy-body .hover\:shadow-2xl:hover { box-shadow: var(--rsy-shadow-lg); }
.rsy-body .shadow-inner { box-shadow: inset 0 1px 3px rgba(86, 28, 52, .12); }
.rsy-body .rounded-3xl { border-radius: 24px; }
.rsy-body .rounded-2xl { border-radius: var(--rsy-radius); }
.rsy-body .border-gray-100, .rsy-body .border-gray-200 { border-color: var(--rsy-line); }

/* decorative bits of the old theme that only added weight */
.rsy-body .blur-3xl, .rsy-body .blur-2xl, .rsy-body .animate-spin-slow { display: none !important; }
.rsy-body .animate-bounce { animation: none; }
@media (prefers-reduced-motion: reduce) {
    .rsy-body *, .rsy-body *::before, .rsy-body *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; scroll-behavior: auto !important; }
}

/* ---------- old theme hooks, new meaning ---------- */
.theme-bg { background-color: var(--rsy-ink); }
.theme-bg-dark, .theme-bg-darker { background-color: var(--rsy-ink); }
.theme-bg-hover:hover, .hover\:theme-bg:hover { background-color: var(--rsy-rose); color: #fff; }
.theme-text { color: var(--rsy-rose); }
.theme-text-light { color: var(--rsy-pink); }
.group:hover .group-hover\:theme-text { color: var(--rsy-rose); }
.group:hover .group-hover\:theme-text-light { color: var(--rsy-pink); }
.theme-border { border-color: var(--rsy-pink); }
.theme-border-light { border-color: var(--rsy-blush-2); }
.header-theme { background: var(--rsy-ink); }
.btn-glow { box-shadow: 0 10px 24px -14px rgba(21, 17, 20, .6); transition: transform .2s ease, background-color .2s ease; }
.btn-glow:hover { transform: translateY(-2px); background-color: var(--rsy-rose); }
.btn-whatsapp-glow { box-shadow: 0 10px 24px -14px rgba(23, 132, 63, .7); }
.hero-overlay { background: linear-gradient(180deg, rgba(21, 17, 20, .15), rgba(21, 17, 20, .7)); }
.theme-line { background: var(--rsy-pink); }
.text-gradient { color: var(--rsy-rose); background: none; -webkit-text-fill-color: currentColor; }
.theme-border-gradient { background: var(--rsy-pink); }
.theme-gradient { background: var(--rsy-ink); }
.theme-gradient-dark { background: var(--rsy-ink); }
.hover\:theme-ring:hover { box-shadow: 0 0 0 2px var(--rsy-pink); }
.theme-gradient-ring { background: var(--rsy-pink); }
.theme-gradient-subtle { background: var(--rsy-blush-0); }
.theme-bg\/5 { background-color: var(--rsy-blush-0); }
.theme-bg\/10 { background-color: var(--rsy-blush-1); }
.theme-bg\/20 { background-color: var(--rsy-blush-2); }
.theme-focus-ring:focus { outline: none; box-shadow: 0 0 0 3px rgba(184, 58, 107, .25); border-color: var(--rsy-rose); }
.theme-gradient-footer, .footer-gradient { background: var(--rsy-ink); }
.hide-scrollbar { -ms-overflow-style: none; scrollbar-width: none; }
.hide-scrollbar::-webkit-scrollbar { display: none; }
.pt-18 { padding-top: 4.5rem; }
@media (min-width: 640px) { .sm\:pt-18 { padding-top: 4.5rem; } }
.line-clamp-2 { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.line-clamp-3 { display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.animate-fade-in-up { animation: rsyRise .6s ease-out both; }
@keyframes rsyRise { from { opacity: 0; transform: translateY(14px); } to { opacity: 1; transform: none; } }
.animate-fade-in-up.opacity-0 { opacity: 1; }

/* buttons that call or open WhatsApp: ink and green, pink on hover */
.rsy-body a[href^="tel:"].theme-bg:hover, .rsy-body button.theme-bg:hover { background-color: var(--rsy-rose); }
.rsy-body .bg-green-500 { background-color: var(--rsy-wa); }
.rsy-body .hover\:bg-green-600:hover { background-color: var(--rsy-wa-dk); }

/* tabs (home "Best Escorts") */
.tab-button { color: var(--rsy-muted); }
.tab-button.active-tab { background: var(--rsy-ink); color: #fff; box-shadow: none; }

/* FAQ accordions */
.faq-answer { max-height: 0; overflow: hidden; transition: max-height .35s ease; }
.faq-item.active .faq-answer { max-height: 900px; }
.faq-icon { transition: transform .25s ease; }
.rotate-180 { transform: rotate(180deg); }
.faq-item.active > div { border-color: var(--rsy-pink); }

/* pink accents on the dark bands */
.bg-gray-900 .theme-text, .bg-gray-950 .theme-text, .bg-black .theme-text, .theme-gradient-dark .theme-text, .theme-gradient .theme-text, .rsy-dark .theme-text { color: var(--rsy-pink); }

/* closing "ready to book" bands: soft pink paper, so they never run into the ink footer */
.rsy-body section.theme-gradient-dark { position: relative; background: var(--rsy-blush-1); border-top: 1px solid var(--rsy-blush-2); }
.rsy-body section.theme-gradient-dark::before { content: ""; position: absolute; left: 50%; top: -1px; width: 120px; height: 3px; transform: translateX(-50%); background: linear-gradient(90deg, var(--rsy-ink) 0 60%, var(--rsy-pink-2) 60% 100%); border-radius: 0 0 3px 3px; }
.rsy-body section.theme-gradient-dark .text-white { color: var(--rsy-ink); }
.rsy-body section.theme-gradient-dark .text-white\/70, .rsy-body section.theme-gradient-dark .text-white\/80 { color: var(--rsy-text); }
.rsy-body section.theme-gradient-dark .theme-text { color: var(--rsy-rose); }
.rsy-body section.theme-gradient-dark a.bg-white { background: var(--rsy-ink); color: #fff; border-radius: 999px; }
.rsy-body section.theme-gradient-dark a.bg-white:hover { background: var(--rsy-rose); }
.rsy-body section.theme-gradient-dark a.bg-green-500 { border-radius: 999px; }

/* cards: thin blush frame, calm lift on hover, pill buttons */
.rsy-body .rsy-card { border: 1px solid var(--rsy-line); box-shadow: 0 1px 2px rgba(21, 17, 20, .04); transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease; }
.rsy-body .rsy-card:hover { border-color: var(--rsy-pink); box-shadow: var(--rsy-shadow-lg); transform: translateY(-3px); }
.rsy-body .rsy-card:hover .group-hover\:scale-110, .rsy-body .rsy-card:hover .group-hover\:scale-105 { transform: scale(1.045); }
.rsy-body .rsy-card .aspect-\[3\/4\], .rsy-body .rsy-card > .relative:first-child { background: var(--rsy-blush-1); }
.rsy-body .rsy-card h3 { font-weight: 650; letter-spacing: 0; }
.rsy-body .rsy-card span.theme-bg.uppercase, .rsy-body .rsy-card .theme-bg.rounded-full.uppercase { background: rgba(21, 17, 20, .8); color: #fff; letter-spacing: .08em; box-shadow: none; }
.rsy-body .rsy-card .theme-gradient-subtle { background: #fff; }
.rsy-body .rsy-card a.theme-bg.rounded-xl, .rsy-body .rsy-card span.theme-bg.rounded-lg { border-radius: 999px; box-shadow: none; }
.rsy-body .rsy-card a.theme-bg.rounded-xl:hover, .rsy-body .rsy-card:hover span.theme-bg.rounded-lg { background: var(--rsy-rose); }
.rsy-kicker svg { display: none; }

/* forms */
.rsy-body input[type="text"], .rsy-body input[type="email"], .rsy-body input[type="tel"], .rsy-body textarea, .rsy-body select { border-color: var(--rsy-line-2); background-color: #fff; }
.rsy-body input:focus, .rsy-body textarea:focus, .rsy-body select:focus { outline: none; border-color: var(--rsy-rose); box-shadow: 0 0 0 3px rgba(184, 58, 107, .18); }

/* tables */
.rsy-body table thead tr { border-color: var(--rsy-line-2); }
.rsy-body table tbody tr:hover { background: var(--rsy-blush-0); }

/* ---------- shared pieces ---------- */
.rsy-btn {
    display: inline-flex; align-items: center; justify-content: center; gap: .6rem;
    min-height: 50px; padding: .8rem 1.5rem; border-radius: 999px;
    font-weight: 800; font-size: 1rem; line-height: 1.2; text-decoration: none;
    transition: background-color .2s ease, color .2s ease, transform .2s ease, box-shadow .2s ease;
}
.rsy-btn:hover { transform: translateY(-1px); }
.rsy-btn--ink { background: var(--rsy-ink); color: #fff; }
.rsy-btn--ink .rsy-ico { color: var(--rsy-pink); }
.rsy-btn--ink:hover { background: var(--rsy-rose); }
.rsy-btn--ink:hover .rsy-ico { color: #fff; }
.rsy-btn--wa { background: var(--rsy-wa); color: #fff; }
.rsy-btn--wa:hover { background: var(--rsy-wa-dk); }
.rsy-btn--pink { background: var(--rsy-pink); color: var(--rsy-ink); }
.rsy-btn--pink:hover { background: #fff; }
.rsy-btn--line { background: transparent; color: var(--rsy-ink); box-shadow: inset 0 0 0 1.5px var(--rsy-ink); }
.rsy-btn--line:hover { background: var(--rsy-ink); color: #fff; }

/* section headings: small pink label, serif title, short ink stroke */
.rsy-kicker {
    display: inline-flex; align-items: center; gap: .55rem; margin: 0 0 .8rem;
    font-family: var(--rsy-body); font-size: .78rem; font-weight: 800; letter-spacing: .14em; text-transform: uppercase;
    color: var(--rsy-rose);
}
.rsy-kicker::before { content: ""; width: 22px; height: 2px; border-radius: 2px; background: var(--rsy-pink-2); }
.rsy-rule { width: 56px; height: 3px; border-radius: 3px; margin: 1.4rem auto 0; background: linear-gradient(90deg, var(--rsy-ink) 0 60%, var(--rsy-pink) 60% 100%); }
.text-left > .rsy-rule, .lg\:text-left > .rsy-rule { margin-left: 0; }

/* ---------- brand row ---------- */
.rsy-top { background: var(--rsy-paper); border-bottom: 1px solid var(--rsy-line); }
.rsy-top__row { display: flex; align-items: center; justify-content: space-between; gap: 1rem; min-height: 76px; }
.rsy-top__brand { display: inline-flex; align-items: center; flex: none; }
.rsy-top__brand img { width: 214px; height: auto; display: block; }
@media (min-width: 768px) { .rsy-top__brand img { width: 262px; } .rsy-top__row { min-height: 88px; } }

/* brand row right side: a thin pink line and the adults-only mark */
.rsy-top__side { display: flex; align-items: center; gap: .9rem; flex: 1; justify-content: flex-end; min-width: 0; }
.rsy-top__line { display: none; flex: 1; max-width: 520px; height: 1px; background: linear-gradient(90deg, transparent, var(--rsy-pink) 40%, var(--rsy-pink)); }
.rsy-top__adult { display: inline-flex; align-items: center; gap: .45rem; font-size: .78rem; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; color: var(--rsy-muted); white-space: nowrap; }
.rsy-top__adult b { display: grid; place-items: center; width: 34px; height: 34px; border-radius: 50%; border: 1.5px solid var(--rsy-ink); color: var(--rsy-ink); font: 700 .8rem/1 var(--rsy-head); letter-spacing: 0; }
@media (max-width: 420px) { .rsy-top__adult { font-size: 0; gap: 0; } .rsy-top__adult b { font-size: .8rem; } }
@media (min-width: 900px) { .rsy-top__line { display: block; } }

/* ---------- sticky menu bar ---------- */
.rsy-bar { position: sticky; top: 0; z-index: 60; background: var(--rsy-ink); color: #fff; box-shadow: 0 8px 20px -16px rgba(0, 0, 0, .6); }
.rsy-bar__row { display: flex; align-items: center; gap: .75rem; height: var(--rsy-bar-h); }
.rsy-bar__burger {
    display: inline-flex; align-items: center; gap: .45rem; height: 40px; padding: 0 .9rem 0 .7rem;
    border: 1px solid rgba(255, 255, 255, .22); border-radius: 999px; background: transparent; color: #fff;
    font: 700 .92rem/1 var(--rsy-body); cursor: pointer;
}
.rsy-bar__burger .rsy-ico { width: 22px; height: 22px; color: var(--rsy-pink); }
.rsy-bar__links { display: none; list-style: none; margin: 0; padding: 0; gap: .15rem; }
.rsy-bar__links a {
    position: relative; display: block; padding: .55rem .62rem; color: rgba(255, 255, 255, .82);
    font-size: .9rem; font-weight: 700; text-decoration: none; white-space: nowrap; border-radius: 8px;
}
.rsy-bar__links a:hover { color: #fff; background: rgba(255, 255, 255, .07); }
.rsy-bar__links a.is-here { color: #fff; }
.rsy-bar__links a.is-here::after { content: ""; position: absolute; left: .62rem; right: .62rem; bottom: .18rem; height: 2px; border-radius: 2px; background: var(--rsy-pink); }
.rsy-bar__actions { margin-left: auto; display: flex; align-items: center; gap: .5rem; }
.rsy-call {
    display: inline-flex; align-items: center; gap: .45rem; height: 40px; padding: 0 .95rem 0 .8rem; border-radius: 999px;
    background: var(--rsy-pink); color: var(--rsy-ink); font-weight: 800; font-size: .9rem; text-decoration: none; white-space: nowrap;
}
.rsy-call:hover { background: #fff; }
.rsy-wa {
    display: inline-flex; align-items: center; justify-content: center; gap: .4rem; height: 40px; min-width: 40px; padding: 0 .7rem;
    border-radius: 999px; background: var(--rsy-wa); color: #fff; font-weight: 800; font-size: .9rem; text-decoration: none;
}
.rsy-wa:hover { background: var(--rsy-wa-dk); }
.rsy-wa .rsy-ico, .rsy-call .rsy-ico { width: 20px; height: 20px; }
.rsy-wa__txt { display: none; }
@media (max-width: 380px) { .rsy-bar__burger span { display: none; } .rsy-bar__burger { padding: 0 .6rem; } .rsy-call { padding: 0 .75rem 0 .6rem; font-size: .86rem; } }
@media (min-width: 640px) { .rsy-wa__txt { display: inline; } .rsy-wa { padding: 0 1rem 0 .8rem; } }
@media (min-width: 1280px) {
    .rsy-bar__burger { display: none; }
    .rsy-bar__links { display: flex; }
}

/* ---------- phone menu ---------- */
.rsy-drawer { position: fixed; inset: 0; z-index: 90; }
.rsy-drawer__shade { position: absolute; inset: 0; background: rgba(21, 17, 20, .55); opacity: 0; transition: opacity .25s ease; }
.rsy-drawer__panel {
    position: absolute; top: 0; bottom: 0; left: 0; width: min(86vw, 340px); background: var(--rsy-paper);
    display: flex; flex-direction: column; transform: translateX(-102%); transition: transform .28s ease; overflow-y: auto;
    border-right: 4px solid var(--rsy-pink);
}
.rsy-drawer.is-open .rsy-drawer__shade { opacity: 1; }
.rsy-drawer.is-open .rsy-drawer__panel { transform: none; }
.rsy-drawer__head { display: flex; align-items: center; justify-content: space-between; padding: 1rem 1rem .9rem 1.1rem; border-bottom: 1px solid var(--rsy-line); }
.rsy-drawer__head img { width: 190px; height: auto; }
.rsy-drawer__x { width: 42px; height: 42px; border-radius: 50%; border: 1px solid var(--rsy-line); background: var(--rsy-blush-0); color: var(--rsy-ink); display: grid; place-items: center; cursor: pointer; }
.rsy-drawer__x .rsy-ico { width: 22px; height: 22px; }
.rsy-drawer__links { list-style: none; margin: 0; padding: .6rem .7rem 1.4rem; }
.rsy-drawer__links a {
    display: flex; align-items: center; justify-content: space-between; padding: .85rem .8rem; border-radius: 12px;
    color: var(--rsy-ink); font-family: var(--rsy-head); font-size: 1.2rem; font-weight: 600; text-decoration: none;
}
.rsy-drawer__links a::after { content: ""; width: 7px; height: 7px; border-top: 2px solid var(--rsy-pink-2); border-right: 2px solid var(--rsy-pink-2); transform: rotate(45deg); }
.rsy-drawer__links a:hover, .rsy-drawer__links a.is-here { background: var(--rsy-blush-1); }
.rsy-drawer__links a.is-here { color: var(--rsy-rose); }
body.rsy-locked { overflow: hidden; }

/* ---------- page banner ---------- */
.rsy-hero { position: relative; background: linear-gradient(180deg, var(--rsy-blush-1) 0%, var(--rsy-blush-0) 72%, var(--rsy-paper) 100%); overflow: hidden; }
.rsy-hero::before {
    content: ""; position: absolute; right: -120px; top: -160px; width: 420px; height: 420px; border-radius: 50%;
    border: 1px solid var(--rsy-pink); opacity: .7; pointer-events: none;
}
.rsy-hero__grid { position: relative; display: grid; gap: 1.6rem; padding-block: 1.4rem 2.6rem; }
.rsy-hero__pic { order: -1; margin: 0; position: relative; }
.rsy-hero__pic img { display: block; width: 100%; height: auto; aspect-ratio: 16 / 10; object-fit: cover; border-radius: 20px; background: var(--rsy-blush-2); }
.rsy-hero__pic::after { content: ""; position: absolute; left: 14px; right: -8px; top: 14px; bottom: -8px; border-radius: 22px; border: 1.5px solid var(--rsy-pink-2); z-index: -1; }
.rsy-hero__tag {
    display: inline-flex; align-items: center; gap: .5rem; margin: 0 0 .9rem; padding: .35rem .8rem; border-radius: 999px;
    background: #fff; border: 1px solid var(--rsy-line-2); color: var(--rsy-ink-2); font-size: .82rem; font-weight: 700;
}
.rsy-hero__dot { width: 8px; height: 8px; border-radius: 50%; background: var(--rsy-wa); box-shadow: 0 0 0 3px rgba(23, 132, 63, .18); }
.rsy-body .rsy-hero__title { margin: 0; font-size: clamp(2rem, 7.4vw, 3.6rem); line-height: 1.06; font-weight: 700; color: var(--rsy-ink); }
.rsy-hero__lead { margin: 1rem 0 0; max-width: 58ch; color: var(--rsy-text); font-size: 1.04rem; line-height: 1.7; }
.rsy-hero__cta { display: flex; flex-wrap: wrap; gap: .7rem; margin-top: 1.4rem; }
.rsy-hero__cta .rsy-btn { flex: 1 1 200px; }
.rsy-hero__scroll { display: inline-flex; align-items: center; gap: .35rem; margin-top: 1.2rem; color: var(--rsy-muted); font-size: .8rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; text-decoration: none; }
.rsy-hero__scroll:hover { color: var(--rsy-rose); }
@media (min-width: 640px) { .rsy-hero__cta .rsy-btn { flex: 0 0 auto; } }
@media (min-width: 1024px) {
    .rsy-hero__grid { grid-template-columns: minmax(0, 1.02fr) minmax(0, 1fr); align-items: center; gap: 3.5rem; padding-block: 3.2rem 4rem; }
    .rsy-hero__pic { order: 0; }
    .rsy-hero__pic img { aspect-ratio: 5 / 4; border-radius: 28px 28px 120px 28px; }
    .rsy-hero__pic::after { left: 22px; right: -18px; top: 22px; bottom: -18px; border-radius: 30px 30px 128px 30px; }
    .rsy-hero__lead { font-size: 1.12rem; }
}

/* ---------- footer ---------- */
.rsy-foot { background: var(--rsy-ink); color: rgba(255, 255, 255, .78); font-size: .95rem; }
.rsy-foot a:not(.rsy-btn) { color: inherit; text-decoration: none; }
.rsy-foot a:not(.rsy-btn):hover { color: #fff; }
.rsy-foot__call { border-bottom: 1px solid rgba(255, 255, 255, .1); }
.rsy-foot__call .rsy-wrap { display: grid; gap: 1.2rem; padding-block: 2.2rem; }
.rsy-foot__intro img { width: 236px; height: auto; display: block; margin-bottom: .9rem; }
.rsy-foot__intro p { margin: 0; max-width: 46ch; color: rgba(255, 255, 255, .72); line-height: 1.6; }
.rsy-foot__btns { display: flex; flex-wrap: wrap; gap: .7rem; }
.rsy-foot__btns .rsy-btn { flex: 1 1 160px; }
@media (min-width: 900px) {
    .rsy-foot__call .rsy-wrap { grid-template-columns: 1fr auto; align-items: center; }
    .rsy-foot__btns .rsy-btn { flex: 0 0 auto; }
}
.rsy-foot__grid { display: grid; gap: 2rem 1.5rem; grid-template-columns: repeat(2, minmax(0, 1fr)); padding-block: 2.4rem 1.6rem; }
.rsy-foot__col--hours, .rsy-foot__col--reach { grid-column: 1 / -1; }
@media (min-width: 768px) {
    .rsy-foot__grid { grid-template-columns: 1.25fr 1fr .8fr .8fr; }
    .rsy-foot__col--hours, .rsy-foot__col--reach { grid-column: auto; }
}
.rsy-foot h3, .rsy-foot__h {
    margin: 0 0 1rem; font-family: var(--rsy-body); font-size: .76rem; font-weight: 800; letter-spacing: .16em; text-transform: uppercase; color: var(--rsy-pink);
}
.rsy-foot ul { list-style: none; margin: 0; padding: 0; }
.rsy-foot__links li + li { margin-top: .55rem; }
.rsy-foot__links a { display: inline-flex; align-items: center; gap: .5rem; padding: .1rem 0; }
.rsy-foot__links a::before { content: ""; width: 5px; height: 5px; border-radius: 50%; background: rgba(244, 182, 203, .55); }
.rsy-foot__hours { display: grid; gap: .45rem; margin: 0 0 .9rem; }
.rsy-foot__hours > div { display: flex; justify-content: space-between; gap: 1rem; padding-bottom: .45rem; border-bottom: 1px dashed rgba(255, 255, 255, .14); }
.rsy-foot__hours dt { color: #fff; font-weight: 700; }
.rsy-foot__hours dd { margin: 0; white-space: nowrap; }
.rsy-foot__note { margin: 0; font-size: .85rem; color: rgba(255, 255, 255, .6); }
.rsy-foot__hours-line { margin: 0 0 .8rem; font-size: .85rem; color: rgba(255, 255, 255, .72); }
.rsy-foot__reach li + li { margin-top: .75rem; }
.rsy-foot__reach a, .rsy-foot__reach div { display: flex; align-items: center; gap: .7rem; }
.rsy-foot__reach .rsy-ico { width: 34px; height: 34px; padding: 8px; border-radius: 10px; background: rgba(255, 255, 255, .07); color: var(--rsy-pink); }
.rsy-foot__reach small { display: block; font-size: .72rem; color: rgba(255, 255, 255, .55); letter-spacing: .04em; }
.rsy-foot__reach strong { color: #fff; font-weight: 700; word-break: break-word; }
.rsy-foot__base { border-top: 1px solid rgba(255, 255, 255, .1); }
.rsy-foot__base .rsy-wrap { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .8rem 1.4rem; padding-block: 1.1rem 1.4rem; font-size: .85rem; }
.rsy-foot__social { display: flex; align-items: center; gap: .5rem; color: rgba(255, 255, 255, .55); font-size: .76rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.rsy-foot__social a { width: 34px; height: 34px; display: grid; place-items: center; border-radius: 50%; border: 1px solid rgba(255, 255, 255, .16); color: rgba(255, 255, 255, .8); }
.rsy-foot__social a:hover { border-color: var(--rsy-pink); color: var(--rsy-pink); }
.rsy-foot__social svg { width: 15px; height: 15px; }
.rsy-foot__adult { display: inline-flex; align-items: center; gap: .5rem; padding: .35rem .8rem .35rem .35rem; border-radius: 999px; background: rgba(244, 182, 203, .12); color: var(--rsy-pink); font-weight: 800; font-size: .8rem; }
.rsy-foot__adult b { display: grid; place-items: center; min-width: 30px; height: 24px; padding: 0 6px; border-radius: 999px; background: var(--rsy-pink); color: var(--rsy-ink); font-size: .74rem; }
.rsy-foot__legal { background: #0E0B0D; }
.rsy-foot__legal .rsy-wrap { display: flex; flex-wrap: wrap; justify-content: space-between; gap: .4rem 1.2rem; padding-block: .9rem; font-size: .8rem; color: rgba(255, 255, 255, .6); }
.rsy-foot__legal strong { color: #fff; }

/* back to top */
.rsy-up {
    position: fixed; right: 16px; bottom: 18px; z-index: 50; width: 44px; height: 44px; border-radius: 14px; border: 0;
    background: var(--rsy-ink); color: var(--rsy-pink); display: grid; place-items: center; cursor: pointer;
    box-shadow: 0 10px 24px -12px rgba(0, 0, 0, .5); opacity: 0; visibility: hidden; transform: translateY(8px); transition: all .25s ease;
}
.rsy-up.is-on { opacity: 1; visibility: visible; transform: none; }
.rsy-up svg { width: 20px; height: 20px; transform: rotate(180deg); }

/* ---------- 18+ check (sheet from the bottom) ---------- */
.rsy-age { position: fixed; inset: 0; z-index: 9999; display: flex; align-items: flex-end; justify-content: center; }
.rsy-age[hidden] { display: none; }
.rsy-age__shade { position: absolute; inset: 0; background: rgba(21, 17, 20, .62); backdrop-filter: blur(3px); }
.rsy-age__sheet {
    position: relative; width: 100%; max-width: 560px; margin: 0 auto; background: var(--rsy-paper); color: var(--rsy-text);
    border-radius: 26px 26px 0 0; padding: 1.2rem 1.4rem calc(1.4rem + env(safe-area-inset-bottom, 0px));
    box-shadow: 0 -20px 50px -20px rgba(0, 0, 0, .45); animation: rsySheet .35s ease-out both;
}
.rsy-age__sheet::before { content: ""; display: block; width: 44px; height: 4px; margin: 0 auto 1rem; border-radius: 4px; background: var(--rsy-line-2); }
@media (min-width: 640px) { .rsy-age { align-items: center; padding: 1rem; } .rsy-age__sheet { border-radius: 26px; padding: 1.6rem 2rem 1.8rem; } .rsy-age__sheet::before { display: none; } }
@keyframes rsySheet { from { transform: translateY(40px); opacity: 0; } to { transform: none; opacity: 1; } }
.rsy-age__top { display: flex; align-items: center; gap: .9rem; margin-bottom: .8rem; }
.rsy-age__badge { flex: none; width: 58px; height: 58px; border-radius: 50%; display: grid; place-items: center; background: var(--rsy-ink); color: var(--rsy-pink); font: 700 1.25rem/1 var(--rsy-head); box-shadow: inset 0 0 0 3px var(--rsy-ink), inset 0 0 0 5px var(--rsy-pink); }
.rsy-body .rsy-age h2 { margin: 0; font-size: 1.55rem; }
.rsy-age p { margin: .4rem 0 0; font-size: .95rem; }
.rsy-age__small { color: var(--rsy-muted); font-size: .86rem !important; line-height: 1.55; }
.rsy-age__btns { display: grid; grid-template-columns: 1.4fr 1fr; gap: .6rem; margin-top: 1.2rem; }
.rsy-age__btns button { min-height: 50px; border-radius: 14px; border: 0; font: 800 1rem/1.1 var(--rsy-body); cursor: pointer; }
.rsy-age__yes { background: var(--rsy-ink); color: #fff; }
.rsy-age__yes:hover { background: var(--rsy-rose); }
.rsy-age__no { background: var(--rsy-blush-1); color: var(--rsy-ink); }
.rsy-age__no:hover { background: var(--rsy-blush-2); }

/* ink buttons sitting on the ink bands turn pink */
.rsy-body .bg-gray-900 a.theme-bg, .rsy-body .bg-black a.theme-bg { background: var(--rsy-pink); color: var(--rsy-ink); }
.rsy-body .bg-gray-900 a.theme-bg:hover, .rsy-body .bg-black a.theme-bg:hover { background: #fff; }
.rsy-body .bg-gray-900 .w-2.h-2.theme-bg, .rsy-body .bg-black .w-2.h-2.theme-bg { background: var(--rsy-pink); }

/* ---------- blog, videos: reading pages on pink paper ---------- */
.rsy-sheet { background: linear-gradient(180deg, var(--rsy-paper) 0, var(--rsy-blush-0) 100%); }
.rsy-ink { color: var(--rsy-ink); }
.rsy-body .rsy-page-h2 { margin: 0 0 1.6rem; font-size: clamp(1.6rem, 3.4vw, 2.3rem); }
.rsy-post-grid { display: grid; gap: 2rem; align-items: start; }
@media (min-width: 1024px) { .rsy-post-grid { grid-template-columns: minmax(0, 1fr) 320px; gap: 2.6rem; } }
.rsy-post { background: #fff; border: 1px solid var(--rsy-line); border-radius: 24px; padding: 1.1rem; }
@media (min-width: 768px) { .rsy-post { padding: 2rem 2.4rem; } }
.rsy-post__cover { margin: 0 0 1.8rem; border-radius: 18px; overflow: hidden; background: var(--rsy-blush-1); }
.rsy-post__cover img { display: block; }
.rsy-post__body, .rsy-prose { color: var(--rsy-text); line-height: 1.75; }
.rsy-post__body > *, .rsy-prose > * { max-width: 75ch; }
.rsy-post__body .container { padding: 0 !important; max-width: none; }
.rsy-post__body h2, .rsy-post__body h3, .rsy-prose h2 { color: var(--rsy-ink) !important; margin: 1.8rem 0 .7rem; }
.rsy-post__body h2 { font-size: clamp(1.45rem, 3vw, 1.95rem); }
.rsy-post__body h3 { font-size: 1.3rem; }
.rsy-post__body p { margin: 0 0 1rem; }
.rsy-post__body .text-white, .rsy-post__body .text-gray-300, .rsy-post__body .text-gray-200 { color: var(--rsy-text) !important; }
.rsy-post__body [class*="text-yellow-"], .rsy-post__body [class*="text-red-"], .rsy-post__body [class*="text-blue-"] { color: var(--rsy-rose) !important; }
.rsy-post__body a { color: var(--rsy-rose); text-decoration: underline; }
.rsy-post__body ul { list-style: none; padding-left: 0; }
.rsy-post__body ul li { position: relative; padding-left: 1.3rem; margin: .35rem 0; }
.rsy-post__body ul li::before { content: ""; position: absolute; left: .15rem; top: .72em; width: 7px; height: 7px; border-radius: 50%; background: var(--rsy-pink-2); }
.rsy-post__body ol { padding-left: 1.3rem; list-style: decimal; }
.rsy-post__body img { border-radius: 16px; border-color: var(--rsy-line) !important; margin-inline: auto; }
.rsy-post__meta { display: flex; flex-wrap: wrap; gap: .6rem 1.4rem; margin: 2rem 0 0; padding: 1rem 0; border-top: 1px solid var(--rsy-line); border-bottom: 1px solid var(--rsy-line); color: var(--rsy-muted); font-size: .92rem; }
.rsy-post__meta-item { display: inline-flex; align-items: center; gap: .45rem; }
.rsy-post__meta .rsy-ico { color: var(--rsy-rose); }
.rsy-post__share { display: flex; flex-wrap: wrap; align-items: center; gap: .55rem; margin-top: 1.2rem; font-size: .92rem; color: var(--rsy-muted); }
.rsy-post__share a { display: inline-flex; align-items: center; gap: .4rem; padding: .45rem 1rem; border-radius: 999px; border: 1px solid var(--rsy-line-2); color: var(--rsy-ink); font-weight: 700; text-decoration: none; }
.rsy-post__share a:hover { border-color: var(--rsy-ink); }
.rsy-post__share a.is-wa { background: var(--rsy-wa); border-color: var(--rsy-wa); color: #fff; }
.rsy-side-box { background: #fff; border: 1px solid var(--rsy-line); border-radius: 22px; padding: 1.3rem; }
@media (min-width: 1024px) { .rsy-post-side .rsy-side-box { position: sticky; top: calc(var(--rsy-bar-h) + 18px); } }
.rsy-body .rsy-side-box__title { margin: 0 0 1rem; padding-bottom: .8rem; font-size: 1.35rem; border-bottom: 2px solid var(--rsy-blush-2); }
.rsy-side-list { list-style: none; margin: 0; padding: 0; display: grid; gap: .9rem; }
.rsy-side-item { display: grid; grid-template-columns: 92px 1fr; gap: .8rem; align-items: center; }
.rsy-side-item img { width: 92px; height: 70px; object-fit: cover; border-radius: 12px; background: var(--rsy-blush-1); }
.rsy-body .rsy-side-item h3, .rsy-body .rsy-side-link h3 { margin: 0; font-size: .98rem; line-height: 1.3; }
.rsy-side-item h3 a { color: var(--rsy-ink); text-decoration: none; }
.rsy-side-item h3 a:hover { color: var(--rsy-rose); }
.rsy-side-item p, .rsy-side-link p { margin: .2rem 0 0; font-size: .78rem; color: var(--rsy-muted); }
.rsy-side-link { display: block; padding: .75rem .9rem; border-radius: 14px; background: var(--rsy-blush-0); border: 1px solid var(--rsy-line); text-decoration: none; }
.rsy-side-link:hover { border-color: var(--rsy-pink); background: #fff; }
.rsy-blog-grid { display: grid; gap: 1.2rem; }
@media (min-width: 768px) { .rsy-blog-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.rsy-blog-card { display: flex; flex-direction: column; background: #fff; border-radius: 22px; overflow: hidden; text-decoration: none; }
.rsy-blog-card__pic { position: relative; aspect-ratio: 16 / 10; overflow: hidden; background: var(--rsy-blush-1); }
.rsy-blog-card__pic img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s ease; }
.rsy-blog-card:hover .rsy-blog-card__pic img { transform: scale(1.04); }
.rsy-blog-card__when { position: absolute; left: .8rem; top: .8rem; padding: .25rem .65rem; border-radius: 999px; background: rgba(255, 255, 255, .92); color: var(--rsy-ink); font-size: .72rem; font-weight: 800; }
.rsy-blog-card__body { display: flex; flex-direction: column; gap: .35rem; padding: 1.1rem 1.2rem 1.3rem; flex: 1; }
.rsy-body .rsy-blog-card__title { margin: 0; font-size: 1.25rem; line-height: 1.25; }
.rsy-blog-card__sub { color: var(--rsy-rose); font-size: .85rem; font-weight: 700; }
.rsy-blog-card__text { margin: .2rem 0 0; color: var(--rsy-muted); font-size: .92rem; line-height: 1.6; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.rsy-blog-card__more { margin-top: auto; padding-top: .7rem; display: inline-flex; align-items: center; gap: .4rem; color: var(--rsy-ink); font-weight: 800; font-size: .9rem; }
.rsy-blog-card__more::after { content: ""; width: 22px; height: 2px; background: var(--rsy-pink-2); transition: width .2s ease; }
.rsy-blog-card:hover .rsy-blog-card__more::after { width: 34px; }
.rsy-prose--intro { max-width: 900px; margin-inline: auto; }
.rsy-prose--intro p { margin: 0 0 1rem; }
.rsy-body .rsy-prose--intro h2 { font-size: clamp(1.45rem, 3vw, 2rem); margin-top: 2.2rem; }
.rsy-body .rsy-prose--intro h2:first-child { margin-top: 0; }
.rsy-divider { display: flex; justify-content: center; margin: 1.5rem 16px 2rem; overflow: hidden; opacity: .75; }
.rsy-video-grid { display: grid; gap: 1rem; grid-template-columns: repeat(2, minmax(0, 1fr)); }
@media (min-width: 640px) { .rsy-video-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.3rem; } }
@media (min-width: 1024px) { .rsy-video-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
.rsy-video-card { display: block; background: #fff; border-radius: 18px; overflow: hidden; text-decoration: none; }
.rsy-video-card__pic { position: relative; aspect-ratio: 4 / 3; overflow: hidden; background: var(--rsy-blush-1); }
.rsy-video-card__pic img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s ease; }
.rsy-video-card__play { position: absolute; right: .6rem; bottom: .6rem; width: 40px; height: 40px; border-radius: 50%; display: grid; place-items: center; background: rgba(21, 17, 20, .82); color: var(--rsy-pink); }
.rsy-video-card__play svg { width: 18px; height: 18px; }
.rsy-video-card:hover .rsy-video-card__play { background: var(--rsy-rose); color: #fff; }
.rsy-video-card__body { padding: .7rem .85rem .85rem; }
.rsy-body .rsy-video-card__title { margin: 0; font-family: var(--rsy-body); font-size: .9rem; font-weight: 800; letter-spacing: .02em; text-transform: uppercase; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.rsy-video-card__more { display: block; margin-top: .15rem; color: var(--rsy-rose); font-size: .8rem; font-weight: 700; }
.rsy-player { border-radius: 22px; overflow: hidden; background: var(--rsy-ink); border: 1px solid var(--rsy-line); margin-bottom: 1.5rem; }
.rsy-player__head { background: #fff; padding: 1.1rem 1.3rem; border-bottom: 3px solid var(--rsy-pink); }
.rsy-body .rsy-player__title { margin: 0; font-size: clamp(1.35rem, 3vw, 2rem); }
.rsy-player video { display: block; width: 100%; aspect-ratio: 16 / 9; object-fit: cover; }
.rsy-player__empty { display: grid; place-items: center; aspect-ratio: 16 / 9; color: rgba(255, 255, 255, .7); }
.rsy-side-video { display: flex; align-items: center; gap: .8rem; padding: .5rem; border-radius: 14px; text-decoration: none; }
.rsy-side-video:hover { background: var(--rsy-blush-1); }
.rsy-body .rsy-side-video h3 { margin: 0; font-size: .95rem; line-height: 1.3; }
