/* =============================================================================
   extras.css — Public site overrides (project-specific)
   Loaded by layouts/public.blade.php.  NOT loaded in admin panel.

   Sections:
     • Marketing sections (for-whom, solo, safety, camp calculator, etc.)
     • Inquiry / booking form + thanks page (public)
     • Static pages (regulamin, polityka prywatności…)
     • WhatsApp FAB (floating action button)
     • Public menu renderer (.rk-menu--inline, .rk-menu--stacked, mobile drawer)

   ============================================================================= */

/* For whom (4-col) =========================================================== */
.rk-forwhom {
    max-width: 1200px;
    margin: 0 auto;
    padding: 64px 32px;
    background: var(--rk-yellow-50);
    border-radius: 32px;
}
.rk-forwhom-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 28px;
    margin-top: 32px;
}
.rk-forwhom-item {
    background: #fff;
    border: 1px solid var(--rk-border);
    border-radius: 18px;
    padding: 24px;
    display: flex; flex-direction: column; gap: 10px;
}
.rk-forwhom-icon {
    width: 44px; height: 44px;
    border-radius: 999px;
    background: var(--rk-yellow-500);
    color: var(--rk-navy-900);
    display: inline-flex; align-items: center; justify-content: center;
    margin-bottom: 4px;
}
.rk-forwhom-icon i { width: 22px; height: 22px; stroke-width: 2; }
.rk-forwhom-title {
    font-family: var(--rk-font-display);
    font-weight: 700; font-size: 17px;
    color: var(--rk-navy-900);
    margin: 0;
    line-height: 1.2;
}
.rk-forwhom-body {
    font-size: 13.5px; line-height: 1.55;
    color: var(--rk-fg-muted);
    margin: 0;
}
@media (max-width: 1000px) { .rk-forwhom-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 600px)  { .rk-forwhom-grid { grid-template-columns: 1fr; } }

/* Solo block ================================================================ */
.rk-solo {
    background: var(--rk-navy-900);
    color: #fff;
}
.rk-solo-inner {
    max-width: 1200px;
    margin: 0 auto;
    padding: 64px 32px;
    display: grid;
    grid-template-columns: 1.4fr 0.6fr;
    gap: 48px;
    align-items: center;
}
.rk-solo-text { display: flex; flex-direction: column; gap: 16px; align-items: flex-start; }
.rk-solo-text .rk-eyebrow { color: var(--rk-yellow-500); }
.rk-solo-title {
    font-family: var(--rk-font-display);
    font-weight: 800; font-size: clamp(28px, 4vw, 42px);
    line-height: 1.1;
    letter-spacing: -0.02em;
    color: #fff;
    margin: 0;
}
.rk-solo-title em { font-style: italic; color: var(--rk-yellow-500); }
.rk-solo-body {
    font-size: 16px; line-height: 1.65;
    color: rgba(255,255,255,0.85);
    max-width: 640px;
    margin: 0;
}
.rk-solo-visual {
    display: flex; align-items: center; justify-content: center;
    width: 240px; height: 240px;
    margin: 0 auto;
    border-radius: 999px;
    background: radial-gradient(circle, var(--rk-yellow-500) 0%, var(--rk-yellow-700) 100%);
    color: var(--rk-navy-900);
    box-shadow: var(--rk-shadow-yellow);
}
.rk-solo-visual i { width: 100px; height: 100px; stroke-width: 1.5; }
@media (max-width: 820px) {
    .rk-solo-inner { grid-template-columns: 1fr; }
    .rk-solo-visual { width: 160px; height: 160px; }
    .rk-solo-visual i { width: 70px; height: 70px; }
}

/* Home FAQ ================================================================== */
.rk-home-faq-list {
    max-width: 820px;
    margin: 0 auto;
    display: flex; flex-direction: column; gap: 8px;
}
.rk-home-faq-item {
    background: #fff;
    border: 1px solid var(--rk-border);
    border-radius: 14px;
    padding: 0;
    transition: box-shadow 220ms;
}
.rk-home-faq-item[open] {
    border-color: var(--rk-yellow-500);
    box-shadow: 0 0 0 3px rgba(255,199,0,0.15);
}
.rk-home-faq-item summary {
    list-style: none;
    cursor: pointer;
    padding: 18px 22px;
    font-family: var(--rk-font-display);
    font-weight: 700;
    font-size: 17px;
    color: var(--rk-navy-900);
    display: flex; justify-content: space-between; align-items: center; gap: 16px;
}
.rk-home-faq-item summary::-webkit-details-marker { display: none; }
.rk-home-faq-item summary::after {
    content: '+';
    font-family: var(--rk-font-display);
    font-weight: 800;
    font-size: 24px;
    color: var(--rk-yellow-700);
    transition: transform 220ms;
    flex-shrink: 0;
}
.rk-home-faq-item[open] summary::after { content: '−'; }
.rk-home-faq-item p {
    padding: 0 22px 20px;
    margin: 0;
    font-size: 15px;
    line-height: 1.6;
    color: var(--rk-fg-muted);
}

/* Safety strip ============================================================== */
.rk-safety {
    background: var(--rk-yellow-500);
    padding: 48px 32px;
}
.rk-safety-inner {
    max-width: 1100px;
    margin: 0 auto;
    display: grid;
    grid-template-columns: auto 1fr;
    gap: 28px;
    align-items: center;
}
.rk-safety-icon {
    width: 88px; height: 88px;
    border-radius: 22px;
    background: var(--rk-navy-900);
    color: var(--rk-yellow-500);
    display: inline-flex; align-items: center; justify-content: center;
    flex-shrink: 0;
}
.rk-safety-icon i { width: 44px; height: 44px; stroke-width: 2; }
.rk-safety-text { display: flex; flex-direction: column; gap: 6px; align-items: flex-start; }
.rk-safety-text .rk-eyebrow { color: var(--rk-navy-900); }
.rk-safety-title {
    font-family: var(--rk-font-display);
    font-weight: 800; font-size: 26px;
    color: var(--rk-navy-900);
    margin: 0;
    letter-spacing: -0.01em;
}
.rk-safety-body {
    font-size: 15px; line-height: 1.55;
    color: var(--rk-navy-900);
    margin: 0;
    opacity: 0.85;
}
.rk-safety-badge {
    margin-top: 8px;
    padding: 6px 14px;
    background: var(--rk-navy-900);
    color: var(--rk-yellow-500);
    border-radius: 999px;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.04em;
}
@media (max-width: 600px) {
    .rk-safety-inner { grid-template-columns: 1fr; text-align: center; }
    .rk-safety-icon { margin: 0 auto; }
    .rk-safety-text { align-items: center; }
}

/* Testimonial category label ================================================ */
.rk-testimonial-cat {
    display: block;
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: var(--rk-yellow-500);
    margin-bottom: 14px;
}

/* Camp detail page + calculator */

.rk-camp-hero {
    width: 100%;
}
.rk-camp-hero-img {
    min-height: 460px;
    background-size: cover;
    background-position: center;
    background-color: var(--rk-navy-900);
    display: flex;
    align-items: flex-end;
}
.rk-camp-hero-inner {
    max-width: 1200px;
    margin: 0 auto;
    width: 100%;
    padding: 64px 32px 48px;
    color: #fff;
    display: flex;
    flex-direction: column;
    gap: 14px;
}
.rk-camp-hero-title {
    font-family: var(--rk-font-display);
    font-weight: 800;
    font-size: clamp(36px, 5vw, 64px);
    line-height: 1.05;
    letter-spacing: -0.02em;
    color: #fff;
    margin: 0;
}
.rk-camp-hero-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 18px;
    font-size: 14px;
    color: rgba(255,255,255,0.92);
    margin: 0;
}
.rk-camp-hero-meta span {
    display: inline-flex;
    align-items: center;
    gap: 6px;
}
.rk-camp-hero-meta i {
    width: 16px; height: 16px; stroke-width: 2;
}

/* Mobile: center the entire camp-hero block horizontally, shrink the title
   from clamp's 36px lower bound (which is too big at 400px viewport — wraps
   to 2 lines and pushes the meta line off the visible area), drop the
   460px min-height so the unused dark area at the top doesn't dominate the
   first scroll. The inline `align-self:flex-start` on the promo pill is
   defeated with !important since it's set per-element in the Blade view. */
@media (max-width: 600px) {
    .rk-camp-hero-img { min-height: 360px; background-position: center; }
    .rk-camp-hero-inner {
        padding: 32px 20px 28px;
        align-items: center;
        text-align: center;
        gap: 12px;
    }
    .rk-camp-hero-title { font-size: 30px; }
    .rk-camp-hero-meta { justify-content: center; gap: 10px 16px; font-size: 13px; }
    .rk-camp-hero-inner .rk-trip-promo { align-self: center !important; }
}

.rk-camp-body { padding-top: 48px; padding-bottom: 64px; }
.rk-camp-grid {
    display: grid;
    grid-template-columns: 1.5fr 1fr;
    gap: 56px;
    align-items: start;
}
.rk-camp-content { display: flex; flex-direction: column; gap: 18px; }
.rk-camp-lede {
    font-family: var(--rk-font-display);
    font-weight: 600;
    font-size: 22px;
    line-height: 1.3;
    color: var(--rk-navy-900);
    margin: 0;
    letter-spacing: -0.01em;
}
.rk-camp-prose p {
    font-size: 16px;
    line-height: 1.7;
    color: var(--rk-fg-muted);
    margin: 0 0 14px;
}
.rk-camp-prose h2 {
    font-family: var(--rk-font-display);
    font-weight: 800;
    font-size: 22px;
    color: var(--rk-navy-900);
    letter-spacing: -0.02em;
    margin: 28px 0 10px;
    line-height: 1.2;
}
.rk-camp-prose h3 {
    font-family: var(--rk-font-display);
    font-weight: 700;
    font-size: 17px;
    color: var(--rk-navy-900);
    letter-spacing: -0.01em;
    margin: 22px 0 8px;
    line-height: 1.3;
}
.rk-camp-prose h4 {
    font-family: var(--rk-font-sans);
    font-weight: 700;
    font-size: 15px;
    color: var(--rk-navy-900);
    margin: 18px 0 6px;
}
.rk-camp-prose h2:first-child,
.rk-camp-prose h3:first-child,
.rk-camp-prose h4:first-child { margin-top: 0; }
.rk-camp-prose strong { color: var(--rk-navy-900); font-weight: 700; }
.rk-camp-prose em { font-style: italic; }
.rk-camp-prose ul,
.rk-camp-prose ol {
    font-size: 16px;
    line-height: 1.7;
    color: var(--rk-fg-muted);
    margin: 0 0 14px;
    padding-left: 22px;
}
.rk-camp-prose ul { list-style: disc; }
.rk-camp-prose ol { list-style: decimal; }
.rk-camp-prose li { margin-bottom: 4px; }
.rk-camp-prose li strong { color: var(--rk-navy-900); }
.rk-camp-prose a {
    color: var(--rk-navy-900);
    font-weight: 600;
    text-decoration: underline;
    text-underline-offset: 3px;
}
.rk-camp-prose a:hover { color: var(--rk-yellow-700); }
.rk-camp-back {
    display: inline-block;
    margin-top: 12px;
    color: var(--rk-navy-900);
    font-weight: 700;
    font-size: 14px;
    text-decoration: none;
}
.rk-camp-back:hover { color: var(--rk-yellow-700); }

/* "What's included" checklist — sits in the left content column under the
   description prose. Admin-edited per camp, one bullet per line. Renders as
   a 2-column grid on desktop, single column on mobile. Combined with the
   sticky calculator on the right (already set below), this fills the visual
   gap on long calculator+description rows.

   Check icon: palm-green (semantic "included / yes") matching the
   palette from the check_list section type. */
.rk-camp-included {
    background: var(--rk-yellow-50, #fffbe6);
    border: 1px solid var(--rk-yellow-200, #ffe680);
    border-radius: 16px;
    padding: 20px 22px;
    margin-top: 4px;
}
.rk-camp-included-title {
    font-family: var(--rk-font-display);
    font-size: 18px;
    font-weight: 800;
    color: var(--rk-navy-900);
    margin: 0 0 14px;
    letter-spacing: -0.01em;
}
.rk-camp-included-list {
    list-style: none;
    margin: 0; padding: 0;
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 10px 24px;
}
.rk-camp-included-list li {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    font-size: 15px;
    line-height: 1.45;
    color: var(--rk-fg);
}
.rk-camp-included-list li i,
.rk-camp-included-list li svg {
    width: 18px; height: 18px;
    flex-shrink: 0;
    padding: 2px;
    color: var(--rk-palm-700, #1f6028);
    background: var(--rk-palm-100, #d8f0db);
    border-radius: 50%;
    box-sizing: content-box;
    margin-top: 1px;
    stroke-width: 2.5;
}
@media (max-width: 600px) {
    .rk-camp-included-list { grid-template-columns: 1fr; }
}

/* Calculator */
.rk-calculator {
    background: #fff;
    border: 1px solid var(--rk-border);
    border-radius: 22px;
    padding: 28px;
    box-shadow: var(--rk-shadow-md);
    display: flex;
    flex-direction: column;
    gap: 18px;
    /* Sticky on desktop so the calculator follows the user as they scroll
       through long descriptions / sections. 92px top clears the sticky header
       (~72px) + 20px breathing room. Mobile override below sets static. */
    position: sticky;
    top: 92px;
}
.rk-calc-title {
    font-family: var(--rk-font-display);
    font-weight: 800;
    font-size: 22px;
    color: var(--rk-navy-900);
    margin: 0;
    letter-spacing: -0.01em;
}
.rk-calc-row {
    display: grid;
    grid-template-columns: 1fr auto;
    grid-template-rows: auto auto;
    align-items: center;
    gap: 6px 12px;
    padding-bottom: 14px;
    border-bottom: 1px solid var(--rk-border);
}
.rk-calc-row label {
    font-weight: 700;
    color: var(--rk-navy-900);
    font-size: 15px;
}
.rk-calc-stepper {
    display: inline-flex;
    align-items: center;
    border: 1px solid var(--rk-border);
    border-radius: 999px;
    overflow: hidden;
    background: var(--rk-yellow-50);
}
.rk-calc-stepper button {
    background: transparent;
    border: 0;
    width: 36px;
    height: 36px;
    font-size: 18px;
    font-weight: 700;
    color: var(--rk-navy-900);
    cursor: pointer;
    line-height: 1;
}
.rk-calc-stepper button:hover { background: var(--rk-yellow-100); }
.rk-calc-stepper input {
    width: 44px;
    border: 0;
    text-align: center;
    font-family: var(--rk-font-display);
    font-weight: 700;
    font-size: 16px;
    color: var(--rk-navy-900);
    background: transparent;
    -moz-appearance: textfield;
}
.rk-calc-stepper input::-webkit-outer-spin-button,
.rk-calc-stepper input::-webkit-inner-spin-button {
    -webkit-appearance: none;
    margin: 0;
}
.rk-calc-line {
    grid-column: 1 / -1;
    font-size: 12px;
    color: var(--rk-fg-muted);
}

.rk-calc-options {
    display: flex;
    flex-direction: column;
    gap: 10px;
    padding-bottom: 14px;
    border-bottom: 1px solid var(--rk-border);
}
.rk-calc-options h3 {
    font-family: var(--rk-font-sans);
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--rk-fg-muted);
    margin: 0 0 4px;
}
.rk-calc-option {
    display: flex;
    align-items: center;
    gap: 10px;
    cursor: pointer;
    padding: 8px 10px;
    border-radius: 12px;
    transition: background 140ms;
}
.rk-calc-option:hover { background: var(--rk-yellow-50); }
.rk-calc-option input[type="checkbox"] { width: 18px; height: 18px; accent-color: var(--rk-yellow-500); cursor: pointer; flex-shrink: 0; }
.rk-calc-option-label { flex: 1; font-size: 14px; color: var(--rk-navy-900); }
.rk-calc-option-price {
    font-family: var(--rk-font-display);
    font-weight: 700;
    font-size: 14px;
    color: var(--rk-navy-700);
}
/* Quantity-select variant */
.rk-calc-option--qty {
    cursor: default;
    flex-wrap: wrap;
    gap: 6px 10px;
}
.rk-calc-option--qty:hover { background: var(--rk-yellow-50); }
.rk-calc-option-price--unit {
    font-weight: 600;
    font-size: 12px;
    color: var(--rk-fg-muted);
    font-family: var(--rk-font-sans);
}
.rk-calc-option-select {
    margin-left: auto;
    font-family: var(--rk-font-sans);
    font-size: 13px;
    font-weight: 600;
    color: var(--rk-navy-900);
    background: #fff;
    border: 1.5px solid var(--rk-border);
    border-radius: 8px;
    padding: 5px 8px;
    cursor: pointer;
    accent-color: var(--rk-yellow-500);
    width: auto;
    max-width: 90px;
}
.rk-calc-option-select:focus {
    outline: none;
    border-color: var(--rk-yellow-500);
    box-shadow: 0 0 0 3px rgba(255,199,0,0.2);
}

/* Discount code row — shown between options and total when a valid code is loaded */
.rk-calc-discount {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 8px 12px;
    margin-bottom: 4px;
    background: var(--rk-palm-50, #edfaf3);
    border: 1.5px solid var(--rk-palm-300, #6fcf97);
    border-radius: 10px;
    gap: 8px;
}
.rk-calc-discount span {
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: 13px;
    font-weight: 700;
    color: var(--rk-palm-700, #219653);
}
.rk-calc-discount span i {
    width: 14px; height: 14px; flex-shrink: 0;
    stroke: var(--rk-palm-600, #27ae60);
}
.rk-calc-discount-amount {
    font-size: 16px;
    font-weight: 800;
    font-family: var(--rk-font-display);
    color: var(--rk-palm-700, #219653);
    white-space: nowrap;
}

.rk-calc-total {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    padding-top: 4px;
}
.rk-calc-total span {
    font-size: 13px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: var(--rk-fg-muted);
}
.rk-calc-total strong {
    font-family: var(--rk-font-display);
    font-weight: 800;
    font-size: 32px;
    color: var(--rk-navy-900);
    letter-spacing: -0.02em;
}

#calc-book {
    width: 100%;
    justify-content: center;
    text-align: center;
}

.rk-calc-actions {
    display: flex;
    flex-direction: column;
    gap: 10px;
}
.rk-calc-actions .rk-btn {
    width: 100%;
    justify-content: center;
}

/* Overflow warning (group too large) */
.rk-calc-overflow {
    gap: 12px;
    align-items: flex-start;
    background: var(--rk-coral-300);
    background: linear-gradient(135deg, var(--rk-coral-300), var(--rk-yellow-200));
    border: 1px solid var(--rk-coral-500);
    border-radius: 14px;
    padding: 14px 16px;
    color: var(--rk-navy-900);
}
.rk-calc-overflow:not([hidden]) { display: flex; }

/* Universal — make sure [hidden] always wins, even on flex/inline-flex elements. */
[hidden] { display: none !important; }
.rk-calc-overflow i {
    width: 22px; height: 22px;
    flex-shrink: 0;
    margin-top: 2px;
    color: var(--rk-coral-600);
}
.rk-calc-overflow p {
    margin: 0;
    font-size: 13px;
    line-height: 1.5;
    font-weight: 600;
}

@media (max-width: 900px) {
    .rk-camp-grid { grid-template-columns: 1fr; gap: 32px; }
    .rk-calculator { position: static; }
}

/* ==================== INQUIRY (booking form + thanks) ==================== */
.rk-inquiry {
    max-width: 1100px;
    margin: 0 auto;
    padding: 56px 32px 80px;
}
.rk-inquiry-grid {
    display: grid;
    grid-template-columns: 0.8fr 1fr;
    gap: 40px;
    align-items: start;
}
.rk-inquiry-back {
    display: inline-block;
    color: var(--rk-fg-muted);
    text-decoration: none;
    font-size: 13px;
    font-weight: 600;
    margin-bottom: 18px;
}
.rk-inquiry-back:hover { color: var(--rk-navy-900); }

.rk-inquiry-summary {
    background: var(--rk-yellow-50);
    border: 1px solid var(--rk-yellow-200);
    border-radius: 18px;
    padding: 28px;
    position: sticky;
    top: 90px;
}
.rk-inquiry-summary-title {
    font-family: var(--rk-font-display);
    font-weight: 800;
    font-size: 24px;
    color: var(--rk-navy-900);
    letter-spacing: -0.02em;
    margin: 0 0 18px;
    line-height: 1.2;
}
/* Waiting-list notice on the booking form of a sold-out camp. Coral-tinted so
   it reads as "heads up" without competing with the yellow primary CTA. */
.rk-inquiry-waitlist-notice {
    display: flex;
    gap: 10px;
    align-items: flex-start;
    background: #FFF1EC;
    border: 1px solid var(--rk-coral-300);
    border-radius: 12px;
    padding: 14px 16px;
    color: var(--rk-navy-900);
}
.rk-inquiry-waitlist-notice i {
    width: 18px; height: 18px; flex: 0 0 18px; margin-top: 2px;
    color: var(--rk-coral-600);
}

.rk-inquiry-summary-camp {
    font-size: 15px;
    line-height: 1.5;
    color: var(--rk-navy-900);
    margin: 0 0 22px;
    padding-bottom: 18px;
    border-bottom: 1px solid var(--rk-yellow-200);
}
.rk-inquiry-summary-camp strong {
    font-family: var(--rk-font-display);
    font-size: 17px;
    font-weight: 700;
    display: block;
    margin-bottom: 6px;
}
.rk-inquiry-summary-meta {
    color: var(--rk-fg-muted);
    font-size: 13px;
    line-height: 1.5;
    display: flex;
    flex-direction: column;
    gap: 6px;
    margin-top: 6px;
}
.rk-inquiry-summary-meta span {
    display: inline-flex;
    align-items: center;
    gap: 8px;
}
.rk-inquiry-summary-meta i {
    width: 14px; height: 14px;
    stroke-width: 2;
    flex-shrink: 0;
}

.rk-inquiry-summary-block {
    margin-bottom: 18px;
}
.rk-inquiry-summary-block h3 {
    font-family: var(--rk-font-sans);
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    color: var(--rk-fg-muted);
    margin: 0 0 10px;
}
.rk-inquiry-line {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    gap: 12px;
    padding: 6px 0;
    font-size: 14px;
    color: var(--rk-navy-900);
}
.rk-inquiry-line strong {
    font-family: var(--rk-font-display);
    font-weight: 700;
    color: var(--rk-navy-900);
    white-space: nowrap;
}
.rk-inquiry-empty {
    font-size: 13px;
    color: var(--rk-coral-600);
    margin: 0;
}
.rk-inquiry-summary-total {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    padding-top: 14px;
    margin-top: 14px;
    border-top: 2px solid var(--rk-yellow-300);
}
.rk-inquiry-summary-total span {
    font-size: 13px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    color: var(--rk-fg-muted);
}
.rk-inquiry-summary-total strong {
    font-family: var(--rk-font-display);
    font-weight: 800;
    font-size: 28px;
    color: var(--rk-navy-900);
    letter-spacing: -0.02em;
}

.rk-inquiry-form {
    background: #fff;
    border: 1px solid var(--rk-border);
    border-radius: 18px;
    padding: 32px;
    box-shadow: var(--rk-shadow-card, 0 1px 3px rgba(33,28,67,0.04));
}
.rk-inquiry-form-title {
    font-family: var(--rk-font-display);
    font-weight: 800;
    font-size: 26px;
    color: var(--rk-navy-900);
    letter-spacing: -0.02em;
    margin: 0 0 8px;
}
.rk-inquiry-form-lede {
    font-size: 14px;
    line-height: 1.6;
    color: var(--rk-fg-muted);
    margin: 0 0 24px;
}
.rk-inquiry-error {
    background: var(--rk-coral-50, #fef2f0);
    border: 1px solid var(--rk-coral-300, #f4b8a8);
    border-radius: 10px;
    padding: 12px 14px;
    margin-bottom: 18px;
    font-size: 13px;
    color: var(--rk-coral-700, #a13a1f);
}
.rk-inquiry-error ul {
    margin: 6px 0 0 18px;
    padding: 0;
}
.rk-inquiry-row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 14px;
    margin-bottom: 14px;
}
.rk-inquiry-form label,
.rk-inquiry-message {
    display: flex;
    flex-direction: column;
    gap: 6px;
    margin-bottom: 14px;
}
.rk-inquiry-form label > span {
    font-size: 12px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--rk-fg-muted);
}
.rk-inquiry-form input,
.rk-inquiry-form textarea {
    width: 100%;
    font-family: var(--rk-font-sans);
    font-size: 15px;
    color: var(--rk-navy-900);
    background: #fff;
    border: 1.5px solid var(--rk-border);
    border-radius: 10px;
    padding: 12px 14px;
    transition: border-color 140ms, box-shadow 140ms;
}
.rk-inquiry-form input:focus,
.rk-inquiry-form textarea:focus {
    outline: none;
    border-color: var(--rk-yellow-500);
    box-shadow: 0 0 0 3px rgba(255,199,0,0.18);
}
.rk-inquiry-form textarea { resize: vertical; min-height: 100px; }
.rk-inquiry-billing {
    margin-top: 8px;
    padding-top: 18px;
    border-top: 1px solid var(--rk-border);
}
.rk-inquiry-form-subtitle {
    font-family: var(--rk-font-display);
    font-size: 18px;
    font-weight: 700;
    color: var(--rk-navy-900);
    margin: 0 0 4px;
}
.rk-inquiry-row--address { grid-template-columns: 1fr 1.4fr 1fr; }
.rk-inquiry-form [data-company-fields][hidden] { display: none; }

.rk-inquiry-disclaimer {
    font-size: 12px;
    line-height: 1.6;
    color: var(--rk-fg-muted);
    margin: 0 0 16px;
}

/* Pre-contract acknowledgements on the booking form. Required by law, so they
   read as normal body copy rather than fine print nobody notices. */
.rk-inquiry-consents {
    display: grid;
    gap: 10px;
    margin: 0 0 18px;
    padding: 16px;
    border: 1px solid var(--rk-border);
    border-radius: 14px;
    background: var(--rk-surface-muted, #faf9fc);
}
.rk-consent {
    display: flex;
    gap: 10px;
    align-items: flex-start;
    font-size: 14px;
    line-height: 1.55;
    color: var(--rk-navy-900);
    cursor: pointer;
}
.rk-consent input[type="checkbox"] {
    margin-top: 3px;
    width: 18px;
    height: 18px;
    flex: 0 0 auto;
    accent-color: var(--rk-navy-900);
}
.rk-consent a { color: inherit; text-decoration: underline; }
.rk-consent-error {
    margin: -4px 0 0 28px;
    font-size: 13px;
    color: var(--rk-coral, #d4482f);
}

/* Customer details form (billing + participants) */
.rk-details {
    max-width: 920px;
    margin: 0 auto;
    padding: 64px 32px 88px;
}
.rk-details-heading {
    text-align: center;
    margin: 0 auto 30px;
    max-width: 720px;
}
.rk-details-kicker {
    display: inline-block;
    margin-bottom: 12px;
    color: var(--rk-coral-600);
    font-size: 12px;
    font-weight: 800;
    letter-spacing: .1em;
    text-transform: uppercase;
}
.rk-details-heading h1 {
    margin: 0 0 10px;
    color: var(--rk-navy-900);
    font-family: var(--rk-font-display);
    font-size: clamp(32px, 5vw, 48px);
    line-height: 1.05;
    letter-spacing: -.035em;
}
.rk-details-heading > p {
    margin: 0;
    color: var(--rk-fg-muted);
    font-size: 16px;
    line-height: 1.6;
}
.rk-details-camp {
    display: inline-flex;
    gap: 10px;
    align-items: center;
    margin-top: 18px;
    padding: 9px 14px;
    border-radius: 999px;
    background: var(--rk-yellow-50);
    color: var(--rk-navy-900);
    font-size: 13px;
}
.rk-details-camp span {
    color: var(--rk-fg-muted);
}
.rk-details-success {
    display: flex;
    gap: 14px;
    align-items: flex-start;
    margin-bottom: 20px;
    padding: 16px 18px;
    border: 1px solid var(--rk-palm-300, #9fd4a6);
    border-radius: 14px;
    background: var(--rk-palm-50, #effaf1);
    color: var(--rk-palm-800, #185323);
}
.rk-details-success i {
    width: 24px;
    height: 24px;
    flex: 0 0 auto;
}
.rk-details-success strong,
.rk-details-success span {
    display: block;
}
.rk-details-success span {
    margin-top: 3px;
    font-size: 13px;
}
.rk-details-form {
    display: grid;
    gap: 22px;
}
.rk-details-card {
    margin: 0;
    padding: 30px;
    border: 1px solid var(--rk-border);
    border-radius: 20px;
    background: #fff;
    box-shadow: var(--rk-shadow-card, 0 2px 10px rgba(33,28,67,.04));
}
.rk-details-card legend {
    display: flex;
    gap: 10px;
    align-items: center;
    padding: 0 10px;
    color: var(--rk-navy-900);
    font-family: var(--rk-font-display);
    font-size: 21px;
    font-weight: 800;
}
.rk-details-card legend span {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 28px;
    height: 28px;
    border-radius: 50%;
    background: var(--rk-yellow-500);
    font-family: var(--rk-font-sans);
    font-size: 13px;
}
.rk-details-card-lede {
    margin: 0 0 18px;
    color: var(--rk-fg-muted);
    font-size: 13px;
    line-height: 1.55;
}
.rk-details-card label {
    display: flex;
    flex-direction: column;
    gap: 6px;
    margin-bottom: 14px;
}
.rk-details-card label > span:first-child {
    color: var(--rk-fg-muted);
    font-size: 11px;
    font-weight: 800;
    letter-spacing: .055em;
    text-transform: uppercase;
}
.rk-details-card input,
.rk-details-card select {
    width: 100%;
    min-height: 46px;
    padding: 11px 13px;
    border: 1.5px solid var(--rk-border);
    border-radius: 10px;
    outline: none;
    background: #fff;
    color: var(--rk-navy-900);
    font: 500 14px/1.35 var(--rk-font-sans);
}
.rk-details-card input:focus,
.rk-details-card select:focus {
    border-color: var(--rk-yellow-500);
    box-shadow: 0 0 0 3px rgba(255,199,0,.18);
}
.rk-details-row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 14px;
}
.rk-details-address-row {
    display: grid;
    grid-template-columns: 150px 1fr 1fr;
    gap: 14px;
}
.rk-details-type {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 12px;
    margin-bottom: 20px;
}
.rk-details-type label {
    margin: 0;
    cursor: pointer;
}
.rk-details-type input {
    position: absolute;
    opacity: 0;
    pointer-events: none;
}
.rk-details-type label > span {
    display: flex;
    gap: 10px;
    align-items: center;
    justify-content: center;
    min-height: 52px;
    padding: 12px 16px;
    border: 1.5px solid var(--rk-border);
    border-radius: 12px;
    color: var(--rk-navy-900);
    font-size: 14px;
    font-weight: 700;
    letter-spacing: 0;
    text-transform: none;
}
.rk-details-type label > span i {
    width: 18px;
    height: 18px;
}
.rk-details-type input:checked + span {
    border-color: var(--rk-yellow-500);
    background: var(--rk-yellow-50);
    box-shadow: inset 0 0 0 1px var(--rk-yellow-500);
}
.rk-details-participants {
    display: grid;
    gap: 14px;
    margin-bottom: 16px;
}
.rk-details-participant {
    padding: 20px;
    border: 1px solid var(--rk-border);
    border-radius: 14px;
    background: var(--rk-bg, #fafafa);
}
.rk-details-participant-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 14px;
    color: var(--rk-navy-900);
}
.rk-details-participant-head button {
    display: inline-flex;
    gap: 5px;
    align-items: center;
    padding: 5px;
    border: 0;
    background: transparent;
    color: var(--rk-coral-600);
    cursor: pointer;
    font: 700 12px var(--rk-font-sans);
}
.rk-details-participant-head button i {
    width: 14px;
    height: 14px;
}
.rk-details-submit {
    display: flex;
    gap: 20px;
    align-items: center;
    justify-content: space-between;
    padding: 8px 4px 0;
}
.rk-details-submit p {
    display: flex;
    gap: 8px;
    align-items: center;
    margin: 0;
    color: var(--rk-fg-muted);
    font-size: 12px;
    line-height: 1.45;
}
.rk-details-submit p i {
    width: 18px;
    height: 18px;
    flex: 0 0 auto;
    color: var(--rk-palm-600, #2a8138);
}

.rk-details-card textarea {
    width: 100%;
    padding: 11px 13px;
    border: 1.5px solid var(--rk-border);
    border-radius: 10px;
    outline: none;
    background: #fff;
    color: var(--rk-navy-900);
    font: 500 14px/1.45 var(--rk-font-sans);
    resize: vertical;
}
.rk-details-card textarea:focus {
    border-color: var(--rk-yellow-500);
    box-shadow: 0 0 0 3px rgba(255,199,0,.18);
}
/* Flight section — "Mam już zaplanowany lot" toggle + two flight legs */
.rk-details-card label.rk-details-check {
    flex-direction: row;
    gap: 12px;
    align-items: flex-start;
    padding: 14px 16px;
    border: 1.5px solid var(--rk-border);
    border-radius: 12px;
    cursor: pointer;
}
.rk-details-card label.rk-details-check:has(input:checked) {
    border-color: var(--rk-yellow-500);
    background: var(--rk-yellow-50);
    box-shadow: inset 0 0 0 1px var(--rk-yellow-500);
}
.rk-details-card .rk-details-check input[type="checkbox"] {
    flex: 0 0 auto;
    width: 20px;
    height: 20px;
    min-height: 0;
    margin: 1px 0 0;
    padding: 0;
    accent-color: var(--rk-navy-900);
}
.rk-details-check span {
    display: flex;
    flex-direction: column;
    gap: 2px;
    color: var(--rk-navy-900);
    font-size: 14px;
}
.rk-details-check small {
    color: var(--rk-fg-muted);
    font-size: 12px;
}
.rk-details-flight {
    display: grid;
    gap: 14px;
    margin-bottom: 14px;
}
.rk-details-flight-leg {
    padding: 20px 20px 6px;
    border: 1px solid var(--rk-border);
    border-radius: 14px;
    background: var(--rk-bg, #fafafa);
}
.rk-details-flight-leg h3 {
    display: flex;
    flex-wrap: wrap;
    gap: 2px 8px;
    align-items: center;
    margin: 0 0 14px;
    color: var(--rk-navy-900);
    font-family: var(--rk-font-display);
    font-size: 17px;
    font-weight: 800;
}
.rk-details-flight-leg h3 i {
    width: 20px;
    height: 20px;
}
.rk-details-flight-leg h3 small {
    white-space: nowrap;
    color: var(--rk-fg-muted);
    font-family: var(--rk-font-sans);
    font-size: 13px;
    font-weight: 600;
}
.rk-details-hint {
    display: flex;
    gap: 8px;
    align-items: flex-start;
    margin: 0;
    color: var(--rk-fg-muted);
    font-size: 12px;
    line-height: 1.5;
}
.rk-details-hint i {
    width: 16px;
    height: 16px;
    flex: 0 0 auto;
    color: var(--rk-sea-600);
}

@media (max-width: 680px) {
    .rk-details { padding: 42px 18px 64px; }
    .rk-details-card { padding: 22px 18px; }
    .rk-details-row,
    .rk-details-address-row { grid-template-columns: 1fr; gap: 0; }
    .rk-details-type { grid-template-columns: 1fr; }
    .rk-details-camp { flex-direction: column; gap: 1px; border-radius: 14px; }
    .rk-details-submit { align-items: stretch; flex-direction: column; }
    .rk-details-submit .rk-btn { justify-content: center; }
}

/* THANK-YOU page */
.rk-inquiry-thanks {
    max-width: 640px;
    margin: 0 auto;
    padding: 80px 32px;
}
.rk-inquiry-thanks-card {
    background: #fff;
    border: 1px solid var(--rk-border);
    border-radius: 24px;
    padding: 56px 40px;
    text-align: center;
    box-shadow: 0 4px 16px rgba(33,28,67,0.04);
}
.rk-inquiry-thanks-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 72px; height: 72px;
    background: var(--rk-palm-100, #d8f0db);
    color: var(--rk-palm-600, #2a8138);
    border-radius: 50%;
    margin-bottom: 18px;
}
.rk-inquiry-thanks-icon i { width: 36px; height: 36px; stroke-width: 2; }
.rk-inquiry-thanks h1 {
    font-family: var(--rk-font-display);
    font-weight: 800;
    font-size: 32px;
    color: var(--rk-navy-900);
    letter-spacing: -0.02em;
    margin: 0 0 6px;
    line-height: 1.15;
}
.rk-inquiry-thanks-ref {
    font-family: var(--rk-font-mono, ui-monospace, monospace);
    font-size: 13px;
    color: var(--rk-fg-muted);
    margin: 0 0 18px;
}
.rk-inquiry-thanks-lede {
    font-size: 16px;
    line-height: 1.6;
    color: var(--rk-fg-muted);
    margin: 0 0 28px;
}
.rk-inquiry-thanks-summary {
    background: var(--rk-yellow-50);
    border-radius: 14px;
    padding: 18px 24px;
    text-align: left;
    margin-bottom: 24px;
}
.rk-inquiry-thanks-summary .rk-inquiry-line { padding: 4px 0; }
.rk-inquiry-line--discount {
    background: var(--rk-palm-50, #edfaf3);
    border: 1px solid var(--rk-palm-200, #b7ebc9);
    border-radius: 8px;
    padding: 6px 10px !important;
    color: var(--rk-palm-700, #219653);
    font-size: 13px;
}
.rk-inquiry-line--discount span {
    display: flex;
    align-items: center;
    gap: 6px;
    font-weight: 700;
    color: var(--rk-palm-700, #219653);
}
.rk-inquiry-line--discount span i {
    width: 13px; height: 13px; flex-shrink: 0;
}
.rk-inquiry-line--discount strong {
    font-weight: 800;
    color: var(--rk-palm-700, #219653);
}

.rk-inquiry-line--total {
    border-top: 1px solid var(--rk-yellow-300);
    padding-top: 10px !important;
    margin-top: 6px;
}
.rk-inquiry-line--total strong {
    font-size: 22px;
    color: var(--rk-navy-900);
}
.rk-inquiry-thanks-note {
    font-size: 13px;
    line-height: 1.6;
    color: var(--rk-fg-muted);
    margin: 0 0 24px;
}
.rk-inquiry-thanks-actions {
    display: flex;
    justify-content: center;
    gap: 10px;
}

@media (max-width: 820px) {
    .rk-inquiry-grid { grid-template-columns: 1fr; gap: 28px; }
    .rk-inquiry-summary { position: static; }
    .rk-inquiry-row { grid-template-columns: 1fr; }
    .rk-inquiry-row--address { grid-template-columns: 1fr; }
    .rk-inquiry-form { padding: 24px; }
    .rk-inquiry-thanks-card { padding: 40px 24px; }
}

/* ==================== STATIC PAGES (regulamin, polityka prywatności…) ==================== */
.rk-static-page { background: var(--rk-bg); }
.rk-static-header {
    background: var(--rk-yellow-50);
    padding: 56px 0 40px;
    border-bottom: 1px solid var(--rk-yellow-200);
}
.rk-static-header-inner {
    max-width: 880px;
    margin: 0 auto;
    padding: 0 32px;
}
.rk-static-title {
    font-family: var(--rk-font-display);
    font-weight: 800;
    font-size: clamp(32px, 5vw, 52px);
    line-height: 1.05;
    letter-spacing: -0.025em;
    color: var(--rk-navy-900);
    margin: 0;
}
.rk-static-body {
    max-width: 760px;
    margin: 0 auto;
    padding: 56px 32px 80px;
}
.rk-static-prose {
    font-size: 16px;
    line-height: 1.75;
    color: var(--rk-fg);
}
.rk-static-prose h2 {
    font-family: var(--rk-font-display);
    font-weight: 800; font-size: 26px;
    color: var(--rk-navy-900);
    letter-spacing: -0.02em;
    margin: 40px 0 14px;
}
.rk-static-prose h3 {
    font-family: var(--rk-font-display);
    font-weight: 700; font-size: 19px;
    color: var(--rk-navy-900);
    letter-spacing: -0.01em;
    margin: 28px 0 10px;
}
.rk-static-prose h4 {
    font-family: var(--rk-font-sans);
    font-weight: 700; font-size: 16px;
    color: var(--rk-navy-900);
    margin: 22px 0 8px;
}
.rk-static-prose p { margin: 0 0 16px; }
.rk-static-prose ul, .rk-static-prose ol { margin: 0 0 16px 22px; padding: 0; }
.rk-static-prose li { margin-bottom: 6px; }
.rk-static-prose strong { color: var(--rk-navy-900); font-weight: 700; }
.rk-static-prose a { color: var(--rk-navy-900); font-weight: 600; text-decoration: underline; text-underline-offset: 3px; }
.rk-static-prose a:hover { color: var(--rk-yellow-700); }
.rk-static-prose img { max-width: 100%; height: auto; border-radius: 12px; margin: 18px 0; }
.rk-static-prose blockquote {
    margin: 18px 0;
    padding: 14px 18px;
    background: var(--rk-yellow-50);
    border-left: 4px solid var(--rk-yellow-500);
    border-radius: 8px;
}
.rk-static-prose table {
    width: 100%;
    border-collapse: collapse;
    margin: 18px 0;
    font-size: 14px;
}
.rk-static-prose th, .rk-static-prose td {
    padding: 10px 14px;
    border-bottom: 1px solid var(--rk-border);
    text-align: left;
}
.rk-static-prose th { background: var(--rk-yellow-50); font-weight: 700; }

/* ==================== WHATSAPP FAB (floating action button) ==================== */
/* Bottom-right floating CTA → opens wa.me/<number> in WhatsApp app or web.
   Brand colour is the official WhatsApp green (#25D366). Designed to NOT clash
   with the brand yellow — sits visually as a separate utility, not part of the
   site's design language. */
.rk-wa-fab {
    position: fixed;
    right: 22px;
    bottom: 22px;
    z-index: 100;
    width: 60px;
    height: 60px;
    border-radius: 50%;
    background: #25D366;          /* official WhatsApp green */
    color: #fff;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    text-decoration: none;
    box-shadow: 0 8px 24px rgba(37, 211, 102, 0.4),
                0 2px 6px rgba(0, 0, 0, 0.18);
    transition: transform 180ms cubic-bezier(.2,.7,.2,1),
                box-shadow 180ms;
    /* Pulse ring uses a pseudo-element layered behind. See ::before below. */
    position: fixed;
}
.rk-wa-fab::before {
    content: '';
    position: absolute;
    inset: 0;
    border-radius: 50%;
    background: #25D366;
    opacity: 0.55;
    z-index: -1;
    animation: rk-wa-pulse 2.4s cubic-bezier(.2,.7,.2,1) infinite;
}
.rk-wa-fab:hover,
.rk-wa-fab:focus-visible {
    transform: translateY(-2px) scale(1.05);
    box-shadow: 0 12px 32px rgba(37, 211, 102, 0.5),
                0 4px 8px rgba(0, 0, 0, 0.2);
    color: #fff;
}
.rk-wa-fab:focus-visible {
    outline: 3px solid rgba(37, 211, 102, 0.4);
    outline-offset: 4px;
}
.rk-wa-fab i {
    width: 28px;
    height: 28px;
    stroke-width: 2.2;     /* slightly bolder than default for icon clarity at this size */
}

@keyframes rk-wa-pulse {
    0%   { transform: scale(1);   opacity: 0.55; }
    70%  { transform: scale(1.6); opacity: 0;    }
    100% { transform: scale(1.6); opacity: 0;    }
}

/* Mobile — slightly smaller + tighter to corner; respects safe-area insets so
   the button doesn't sit under iPhone home-indicator / Android nav bar. */
@media (max-width: 720px) {
    .rk-wa-fab {
        right:  max(16px, env(safe-area-inset-right));
        bottom: max(16px, env(safe-area-inset-bottom));
        width:  56px;
        height: 56px;
    }
    .rk-wa-fab i { width: 26px; height: 26px; }
}

/* Reduced-motion: kill the pulse ring for users who opted out. */
@media (prefers-reduced-motion: reduce) {
    .rk-wa-fab::before { animation: none; opacity: 0; }
    .rk-wa-fab { transition: none; }
}

/* ============================================================
   Admin-managed menus — public renderer styles
   Used by partials/menu.blade.php (key='header' / 'footer-info').
   Two variants:
     .rk-menu--inline  → desktop horizontal nav with hover dropdowns
     .rk-menu--stacked → vertical list (footer column, mobile drawer)
   Selectors are scoped under .rk-menu so they don't bleed into the
   admin tree editor (which uses .rk-menu-tree as its root container).
   ============================================================ */
.rk-menu {
    list-style: none;
    margin: 0;
    padding: 0;
}
.rk-menu .rk-menu-item {
    position: relative;
}
.rk-menu .rk-menu-link {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    text-decoration: none;
    color: inherit;
}
.rk-menu .rk-menu-link i { width: 16px; height: 16px; }
.rk-menu .rk-menu-caret { width: 12px !important; height: 12px !important; opacity: 0.65; transition: transform 160ms; }

/* ---------- inline (desktop nav) ---------- */
.rk-menu--inline {
    display: flex; gap: 28px;
    /* When used as the centred nav (.rk-nav), inherit absolute centring */
}
.rk-menu--inline > .rk-menu-item { display: inline-flex; align-items: center; }

/* Invisible hover-bridge — extends the parent <li>'s hover area DOWN into the
   visual gap between the link and the submenu. Without this, the cursor "falls
   out of :hover" the moment it crosses the gap and the submenu snaps shut.
   Bridge captures pointer events only when the parent is hovered/focused so it
   doesn't intercept clicks elsewhere on the page. */
.rk-menu--inline .rk-menu-item--has-children { position: relative; }
.rk-menu--inline .rk-menu-item--has-children::after {
    content: "";
    position: absolute;
    top: 100%;
    left: -8px;     /* widen slightly past the link so diagonal mouse paths stay inside */
    right: -8px;
    height: 16px;   /* covers the 14px submenu offset + a couple px slack */
    pointer-events: none;
    z-index: 99;
}
.rk-menu--inline .rk-menu-item--has-children:hover::after,
.rk-menu--inline .rk-menu-item--has-children:focus-within::after {
    pointer-events: auto;
}

.rk-menu--inline .rk-submenu {
    list-style: none;
    margin: 0; padding: 8px;
    position: absolute;
    top: calc(100% + 14px); left: 0;
    min-width: 220px;
    background: #fff;
    border: 1px solid var(--rk-border, #e8e6f0);
    border-radius: 12px;
    box-shadow: 0 12px 32px rgba(33, 28, 67, 0.10);
    opacity: 0;
    pointer-events: none;
    transform: translateY(-4px);
    visibility: hidden;
    /* CLOSE direction (default): 220ms grace delay so the cursor has time to
       enter the submenu without it snapping shut. Visibility waits for the fade
       to finish before going hidden (otherwise focus-within bugs occur). */
    transition: opacity 160ms 220ms, transform 160ms 220ms, visibility 0ms 380ms;
    z-index: 100;
}
.rk-menu--inline .rk-menu-item--has-children:hover > .rk-submenu,
.rk-menu--inline .rk-menu-item--has-children:focus-within > .rk-submenu {
    opacity: 1;
    pointer-events: auto;
    transform: none;
    visibility: visible;
    /* OPEN direction: no delay. Override CLOSE timings so reopening feels snappy. */
    transition: opacity 160ms 0ms, transform 160ms 0ms, visibility 0ms 0ms;
}
.rk-menu--inline .rk-menu-item--has-children:hover > .rk-menu-link .rk-menu-caret,
.rk-menu--inline .rk-menu-item--has-children:focus-within > .rk-menu-link .rk-menu-caret {
    transform: rotate(180deg);
}
.rk-menu--inline .rk-submenu .rk-menu-link {
    display: flex; align-items: center; gap: 8px;
    padding: 10px 12px; border-radius: 8px;
    font-size: 14px; font-weight: 600; color: var(--rk-fg);
    white-space: nowrap;
}
.rk-menu--inline .rk-submenu .rk-menu-link:hover {
    background: var(--rk-yellow-100, #fff5cc);
    color: var(--rk-navy-900, #211C43);
}
/* Sub-submenu (3rd level) opens to the side */
.rk-menu--inline .rk-submenu .rk-submenu {
    top: -8px; left: calc(100% + 8px);
}

/* ---------- stacked (footer + mobile drawer) ---------- */
.rk-menu--stacked {
    display: flex;
    flex-direction: column;
}
.rk-menu--stacked .rk-submenu {
    list-style: none;
    margin: 0;
    padding: 0 0 0 16px;
    max-height: 0;
    overflow: hidden;
    transition: max-height 240ms var(--rk-ease-out, ease);
}
.rk-menu--stacked .rk-menu-item--has-children.is-open > .rk-submenu {
    max-height: 800px;
}
.rk-menu--stacked .rk-menu-item--has-children > .rk-menu-link .rk-menu-caret {
    margin-left: auto;
    transition: transform 200ms;
}
.rk-menu--stacked .rk-menu-item--has-children.is-open > .rk-menu-link .rk-menu-caret {
    transform: rotate(180deg);
}
.rk-menu--stacked .rk-menu-link { width: 100%; }

/* ---------- mobile: collapse desktop nav into drawer ---------- */
@media (max-width: 1023px) {
    /* Hide the desktop horizontal menu inside .rk-header — already handled by
       site.css's .rk-nav { display:none } media query, but make sure the new
       inline-variant rule doesn't override it. */
    .rk-header .rk-menu--inline { display: none; }
}

/* ---------- override: when inline menu is used in mobile drawer (.rk-mobile-nav scope) ---------- */
.rk-mobile-menu .rk-menu--stacked .rk-menu-link {
    /* Inherit the existing .rk-mobile-nav-link look defined in site.css */
    font-family: var(--rk-font-display);
    font-size: clamp(28px, 8vw, 40px); font-weight: 800;
    color: rgba(255,255,255,0.82);
    padding: 14px 0;
    letter-spacing: -0.02em; line-height: 1.1;
    border-bottom: 1px solid rgba(255,255,255,0.07);
}
.rk-mobile-menu .rk-menu--stacked .rk-menu-link:hover,
.rk-mobile-menu .rk-menu--stacked .rk-menu-link:focus { color: var(--rk-yellow-400); outline: none; }
.rk-mobile-menu .rk-menu--stacked .rk-submenu .rk-menu-link {
    /* Children one notch smaller */
    font-size: clamp(20px, 5vw, 26px);
    padding: 10px 0 10px 12px;
}
