.rc-product {
    --rp-ink: #182638;
    --rp-muted: #536174;
    --rp-accent: #126558;
    --rp-tint: #eef8f4;
    --rp-dark: #102b28;
    --rp-glow: #b5ead5;
    color: var(--rp-ink);
    background: #fff;
    font-family: 'ResearchCave Open Sans', system-ui, sans-serif;
    overflow-wrap: anywhere;
}
.rc-product *, .rc-product *::before, .rc-product *::after { box-sizing: border-box; }
.rc-product .rp-shell { width: min(1240px, calc(100% - 64px)); margin-inline: auto; }
.rc-product h1, .rc-product h2, .rc-product h3, .rc-product p, .rc-product ul, .rc-product figure { margin: 0; }
.rc-product h1, .rc-product h2, .rc-product h3 { color: var(--rp-ink); font-family: inherit; font-weight: 600; }
.rc-product p { color: var(--rp-muted); font-size: 16px; line-height: 1.85; }
.rc-product h1 { font-size: clamp(38px, 4.6vw, 65px); line-height: 1.12; letter-spacing: -.055em; }
.rc-product h1 em { display: block; color: var(--rp-accent); font-style: normal; }
.rc-product h2 { font-size: clamp(29px, 3.2vw, 44px); line-height: 1.2; letter-spacing: -.035em; }
.rc-product h3 { font-size: 21px; line-height: 1.35; letter-spacing: -.02em; }
.rc-product img { display: block; width: 100%; height: auto; }
.rc-product a { text-decoration: none; }
.rc-product a:focus-visible, .rc-product summary:focus-visible { outline: 3px solid var(--rp-accent); outline-offset: 5px; }
.rc-product [id] { scroll-margin-top: 110px; }
.rc-product .rp-label { color: var(--rp-accent); font-size: 11px; line-height: 1.5; font-weight: 700; letter-spacing: .15em; text-transform: uppercase; }
.rp-hero { position: relative; padding: 28px 0 82px; background: radial-gradient(ellipse at 86% 35%, #ffffff 0%, transparent 60%), var(--rp-tint); }
.rp-breadcrumb { display: flex; gap: 12px; align-items: center; flex-wrap: wrap; margin-bottom: 48px; font-size: 12px; color: var(--rp-muted); }
.rp-breadcrumb a { color: var(--rp-muted); }
.rp-breadcrumb a:hover { color: var(--rp-accent); }
.rp-hero-grid { display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); gap: clamp(28px, 4vw, 64px); align-items: center; }
.rp-intro .rp-label { margin-bottom: 18px; }
.rc-product .rp-product-name { color: var(--rp-ink); font-size: 17px; font-weight: 600; margin-bottom: 14px; }
.rc-product .rp-lead { margin-top: 24px; font-size: 18px; line-height: 1.8; max-width: 540px; }
.rp-actions { display: flex; align-items: center; gap: 24px; flex-wrap: wrap; margin-top: 32px; }
.rc-product .rp-button { display: inline-flex; align-items: center; justify-content: center; gap: 22px; min-height: 50px; padding: 14px 22px; border: 1px solid var(--rp-accent); border-radius: 8px; background: var(--rp-accent); color: #fff; font-size: 14px; font-weight: 600; line-height: 1.5; transition: transform .18s ease, box-shadow .18s ease; }
.rc-product .rp-button:hover { color: #fff; transform: translateY(-2px); box-shadow: 0 8px 20px #00000018; }
.rc-product .rp-text-link { display: inline-flex; align-items: center; gap: 12px; min-height: 44px; color: var(--rp-ink); font-size: 13px; font-weight: 600; }
.rc-product .rp-text-link:hover { color: var(--rp-accent); }
.rc-product .rp-chips { display: flex; flex-wrap: wrap; gap: 8px; list-style: none; padding: 0; margin-top: 30px; }
.rc-product .rp-chips li { padding: 5px 10px; border: 1px solid #53617430; border-radius: 5px; font-size: 11px; color: var(--rp-muted); line-height: 1.65; }
.rp-visual { min-width: 0; position: relative; }
.rp-screen { border: 1px solid #64748b35; border-radius: 14px; background: #101826; padding: 7px; box-shadow: 0 24px 65px #142c4b20; }
.rp-screen img { border-radius: 8px; }
.rc-product .rp-visual-note { display: flex; justify-content: space-between; gap: 16px; align-items: center; padding-top: 14px; font-size: 11px; color: var(--rp-muted); }
.rp-visual-note::before { content: ''; flex: 0 0 7px; width: 7px; height: 7px; border-radius: 50%; background: var(--rp-accent); }
.rp-visual-note span { flex: 1; }
.rp-visual-note a { color: inherit; text-decoration: underline; text-underline-offset: 3px; }
.rp-phone-pair { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; align-items: center; max-width: 500px; margin-inline: auto; padding: 16px 18px; }
.rp-phone-pair img { border: 6px solid #152523; border-radius: 22px; box-shadow: 0 20px 40px #10382b20; }
.rp-phone-pair a:nth-child(2) { margin-top: 54px; }
.rp-section-nav { border-bottom: 1px solid #e5e9ef; background: #fff; }
.rp-section-nav .rp-shell { display: flex; align-items: center; gap: 32px; min-height: 66px; flex-wrap: wrap; padding-block: 10px; }
.rc-product .rp-section-nav a { color: var(--rp-muted); font-size: 12px; padding-block: 10px; }
.rc-product .rp-section-nav a:hover { color: var(--rp-accent); }
.rp-section { padding: clamp(64px, 7.5vw, 108px) 0; }
.rp-heading { max-width: 700px; margin-bottom: 42px; }
.rp-heading .rp-label, .rp-story-copy .rp-label, .rp-mood-copy .rp-label { margin-bottom: 15px; }
.rp-heading > p:last-child { margin-top: 20px; max-width: 620px; }
.rp-features { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 32px; }
.rp-feature { padding-top: 24px; border-top: 1px solid #dce3e9; }
.rp-feature .rp-feature-number { display: block; color: var(--rp-accent); font-size: 12px; margin-bottom: 22px; font-weight: 700; }
.rp-feature h3 { margin-bottom: 13px; }
.rc-product .rp-feature p { font-size: 15px; }
.rp-story-band { background: var(--rp-tint); }
.rp-story { display: grid; grid-template-columns: minmax(0, 1.16fr) minmax(0, .84fr); gap: clamp(32px, 6vw, 84px); align-items: center; }
.rp-story + .rp-story { margin-top: 86px; }
.rp-story-reverse { grid-template-columns: minmax(0, .84fr) minmax(0, 1.16fr); }
.rp-story-reverse .rp-story-copy { order: -1; }
.rp-story-copy > p:not(.rp-label) { margin-top: 22px; }
.rc-product .rp-checks { margin-top: 24px; padding: 0; list-style: none; }
.rc-product .rp-checks li { color: var(--rp-ink); position: relative; padding: 10px 0 10px 25px; border-bottom: 1px solid #64748b25; font-size: 13px; line-height: 1.7; }
.rp-checks li::before { content: '↗'; position: absolute; left: 0; color: var(--rp-accent); }
.rp-art { overflow: hidden; border-radius: 16px; }
.rp-art img { max-height: 580px; object-fit: contain; }
.rp-mood { background: var(--rp-dark); }
.rp-mood-grid { display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); align-items: center; gap: 64px; }
.rc-product .rp-mood h2, .rc-product .rp-mood p { color: #fff; }
.rc-product .rp-mood .rp-label { color: var(--rp-glow); }
.rp-mood-copy > p:last-child { margin-top: 24px; color: #dde5ed; }
.rp-mood-figure { border-radius: 14px; overflow: hidden; }
.rp-mood-figure img { max-height: 380px; object-fit: cover; }
.rp-steps { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 36px; counter-reset: step; }
.rp-step { counter-increment: step; }
.rp-step::before { content: '0' counter(step); display: block; color: var(--rp-accent); font-size: 34px; line-height: 1; letter-spacing: -.04em; margin-bottom: 24px; }
.rp-step h3 { margin-bottom: 14px; }
.rc-product .rp-step p { font-size: 15px; }
.rp-faq-band { background: #f7f8fa; }
.rp-faq-grid { display: grid; grid-template-columns: minmax(0, .7fr) minmax(0, 1.3fr); gap: 70px; }
.rp-faq-grid .rp-heading { margin-bottom: 0; }
.rp-faq details { border-bottom: 1px solid #dce3e9; padding-block: 22px; }
.rp-faq details:first-child { border-top: 1px solid #dce3e9; }
.rp-faq summary { display: flex; justify-content: space-between; gap: 24px; list-style: none; cursor: pointer; font-size: 15px; line-height: 1.6; font-weight: 600; }
.rp-faq summary::-webkit-details-marker { display: none; }
.rp-faq summary::after { content: '+'; font-size: 23px; font-weight: 400; line-height: 1; color: var(--rp-accent); flex: 0 0 18px; }
.rp-faq details[open] summary::after { content: '−'; }
.rc-product .rp-faq details p { margin-top: 16px; font-size: 14px; }
.rp-cta { background: var(--rp-tint); }
.rp-cta-inner { display: flex; align-items: center; justify-content: space-between; gap: 40px; }
.rp-cta-copy { max-width: 760px; }
.rp-cta-copy p { margin-top: 16px; }
.rp-cta .rp-button { flex-shrink: 0; }
.rp-related { padding: 42px 0; border-top: 1px solid #e5e9ef; }
.rp-related .rp-label { margin-bottom: 20px; }
.rp-related-links { display: flex; flex-wrap: wrap; gap: 12px; }
.rc-product .rp-related-links a { display: inline-flex; gap: 20px; align-items: center; min-height: 44px; padding: 10px 15px; border: 1px solid #dce3e9; border-radius: 6px; font-size: 12px; color: var(--rp-ink); }
.rc-product .rp-related-links a:hover { border-color: var(--rp-accent); color: var(--rp-accent); }

.rp-royal { --rp-accent: #815417; --rp-tint: #f7f2e8; --rp-dark: #102033; --rp-glow: #e7c683; }
.rp-royal h1, .rp-royal h2 { font-family: Georgia, 'Times New Roman', serif; font-weight: 400; letter-spacing: -.035em; }
.rp-royal .rp-hero { background: radial-gradient(ellipse at 90% 10%, #253957, transparent 65%), #101f32; }
.rc-product.rp-royal .rp-hero h1, .rc-product.rp-royal .rp-product-name { color: #fff7e8; }
.rc-product.rp-royal .rp-hero h1 em, .rc-product.rp-royal .rp-hero .rp-label { color: #e7c683; }
.rc-product.rp-royal .rp-hero p, .rp-royal .rp-breadcrumb, .rp-royal .rp-breadcrumb a, .rp-royal .rp-hero .rp-visual-note, .rc-product.rp-royal .rp-hero .rp-text-link, .rc-product.rp-royal .rp-chips li { color: #ccd5e1; }
.rc-product.rp-royal .rp-hero .rp-button { background: #e7c683; border-color: #e7c683; color: #172234; }
.rp-royal .rp-screen { background: #243042; }
.rp-royal .rp-chips li { border-color: #ffffff30; }
.rp-royal .rp-hero-crest { width: 62px; height: auto; margin-bottom: 18px; }
.rp-royal .rp-art img { max-height: 470px; }
.rp-royal .rp-story-band { padding-bottom: 0; }
.rp-royal-guide {
    --mascot-padding-x: 0px;
    --mascot-padding-y: clamp(64px, 7.5vw, 108px);
    --mascot-zone: clamp(260px, 30vw, 440px);
    --mascot-size: 340px;
    --mascot-slot-min-height: 360px;
    --mascot-gap: clamp(32px, 6vw, 84px);
    margin-top: 64px;
}
.rp-royal .rp-royal-guide .mascot { width: min(100%, var(--mascot-size)); max-height: 510px; object-fit: contain; }
.rp-chat { --rp-accent: #225ccb; --rp-tint: #eff4fd; --rp-dark: #122344; --rp-glow: #a9c8ff; }
.rp-socials { --rp-accent: #6141a5; --rp-tint: #f4f1fa; --rp-dark: #251b3e; --rp-glow: #d9c5ff; }
.rp-socials .rp-hero-art { overflow: hidden; border-radius: 90px 12px 90px 12px; box-shadow: 0 22px 64px #35275220; }
.rp-socials .rp-wide-showcase { max-width: 1040px; margin-inline: auto; }
.rp-socials .rp-wide-showcase .rp-screen { padding: 8px; }
.rp-socials .rp-wide-showcase + .rp-features { margin-top: 48px; }
.rp-kewl { --rp-accent: #bd1759; --rp-tint: #fdf0f5; --rp-dark: #111827; --rp-glow: #ff93ba; }
.rp-kewl .rp-hero { background: radial-gradient(ellipse at 65% 10%, #3e1b38, transparent 60%), #111827; }
.rc-product.rp-kewl .rp-hero h1, .rc-product.rp-kewl .rp-product-name { color: #fff; }
.rc-product.rp-kewl .rp-hero h1 em, .rc-product.rp-kewl .rp-hero .rp-label { color: #ff93ba; }
.rc-product.rp-kewl .rp-hero p, .rp-kewl .rp-breadcrumb, .rp-kewl .rp-breadcrumb a, .rp-kewl .rp-hero .rp-visual-note, .rc-product.rp-kewl .rp-hero .rp-text-link, .rc-product.rp-kewl .rp-chips li { color: #cdd4e0; }
.rp-kewl .rp-chips li { border-color: #ffffff30; }
.rc-product.rp-kewl .rp-hero .rp-button { background: #ff93ba; border-color: #ff93ba; color: #261020; }
.rp-kewl .rp-logo { width: 58px; height: 58px; margin-bottom: 20px; }
.rp-kewl .rp-mobile-preview { max-width: 390px; margin-inline: auto; }
.rp-kewl .rp-mobile-preview img { max-height: 630px; object-fit: contain; }

@media (min-width: 1800px) { .rp-hero { padding-bottom: 100px; } }
@media (max-width: 991px) {
    .rp-hero-grid { grid-template-columns: minmax(0, 1fr); gap: 44px; }
    .rp-intro { max-width: 720px; }
    .rc-product .rp-lead { max-width: 660px; }
    .rp-visual { max-width: 760px; width: 100%; margin-inline: auto; }
    .rp-socials .rp-hero-art { max-width: 560px; margin-inline: auto; }
    .rp-story, .rp-story-reverse, .rp-mood-grid, .rp-faq-grid { grid-template-columns: minmax(0, 1fr); gap: 36px; }
    .rp-story .rp-story-copy { order: -1; max-width: 700px; }
    .rp-story + .rp-story { margin-top: 64px; }
    .rp-mood-figure { max-width: 760px; }
    .rp-faq-grid .rp-heading { max-width: 650px; }
    .rp-cta-inner { align-items: flex-start; flex-direction: column; gap: 28px; }
}
@media (max-width: 767px) {
    .rc-product .rp-shell { width: calc(100% - 40px); }
    .rp-breadcrumb { margin-bottom: 36px; }
    .rp-hero { padding-bottom: 52px; }
    .rp-features, .rp-steps { grid-template-columns: minmax(0, 1fr); gap: 28px; }
    .rp-feature { padding-top: 20px; }
    .rp-feature .rp-feature-number { margin-bottom: 12px; }
    .rp-heading { margin-bottom: 32px; }
    .rp-section-nav .rp-shell { gap: 20px; }
    .rp-phone-pair { gap: 12px; padding: 0; max-width: 430px; }
    .rp-phone-pair img { border-width: 4px; border-radius: 15px; }
    .rp-phone-pair a:nth-child(2) { margin-top: 32px; }
    .rc-product .rp-lead { font-size: 16px; }
    .rp-mood-grid { gap: 32px; }
    .rp-step { padding-top: 24px; border-top: 1px solid #dce3e9; }
    .rp-step::before { margin-bottom: 15px; font-size: 28px; }
    .rp-socials .rp-hero-art { border-radius: 52px 10px 52px 10px; }
    .rp-visual-note { flex-wrap: wrap; }
}
@media (max-width: 380px) {
    .rc-product .rp-shell { width: calc(100% - 32px); }
    .rc-product h1 { font-size: 35px; }
    .rp-actions { gap: 14px; }
    .rc-product .rp-button { width: 100%; }
    .rp-section-nav .rp-shell { gap: 16px; }
}
@media (prefers-reduced-motion: reduce) { .rc-product .rp-button { transition: none; } .rc-product .rp-button:hover { transform: none; } }
