/* Rollar Wolf Mobile Polish v1.1
   Only acts at tablet and phone widths. Intentionally does not change
   desktop layouts, Immich authentication, download logic or page content.
*/

@media (max-width: 1024px) {
  /* Keep long page content inside the screen without cropping images. */
  body.rwp-theme .rwp-home,
  body.rwp-theme.rwp-portfolio-layout .rwp-inner-page,
  .rwpap-full,
  .rwps-full,
  .rwcp-full { max-width: 100%; }

  body.rwp-theme .rwp-home :is(img, video, iframe),
  body.rwp-theme.rwp-portfolio-layout .rwp-inner-page :is(img, video, iframe),
  :is(.rwpap-full, .rwps-full, .rwcp-full) :is(img, video, iframe) { max-width: 100%; }

  /* Blocksy header: keep the logo readable and the hamburger easy to tap.
     Do not force desktop menu elements to appear on mobile. */
  body.rwp-theme .ct-header :is([data-id="trigger"], [data-id="search"]) :is(a, button) {
    min-width: 44px;
    min-height: 44px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
  }
  body.rwp-theme .ct-header .site-logo-container {
    margin-right: 8px;
  }
  body.rwp-theme :is(.ct-panel, .ct-drawer-canvas) .mobile-menu a {
    min-height: 46px;
    display: flex;
    align-items: center;
    line-height: 1.35;
  }

  /* Any user-supplied text and album titles can wrap naturally. */
  :is(.rwpap-full, .rwps-full, .rwcp-full, .rwp-portal) :is(h1, h2, h3, p, a),
  body.rwp-theme.rwp-portfolio-layout :is(.rwp-inner-title, .rwp-index-card-title),
  body.rwp-theme .rwp-home :is(.rwp-section-title, .rwp-hero-title) {
    overflow-wrap: break-word;
  }

  /* Portfolio mastheads become much less tall on tablets. */
  body.rwp-theme.rwp-portfolio-layout .rwp-page-masthead {
    box-sizing: border-box;
    padding: 52px 26px 48px !important;
  }
  body.rwp-theme.rwp-portfolio-layout .rwp-page-masthead > * { box-sizing: border-box; }
  body.rwp-theme.rwp-portfolio-layout .rwp-inner-title {
    font-size: clamp(2.15rem, 5.9vw, 3.75rem);
    line-height: 1.08;
  }
}

@media (max-width: 767px) {
  /* Home: shorten a tall splash, still allow extra height when copy wraps. */
  body.rwp-theme .rwp-home .rwp-hero-columns {
    min-height: clamp(440px, 69svh, 510px);
    height: auto;
    padding: 28px 20px 35px;
    align-items: flex-end;
  }
  body.rwp-theme .rwp-home .rwp-hero-left { min-width: 0; }
  body.rwp-theme .rwp-home .rwp-hero-title {
    font-size: clamp(2.05rem, 8.3vw, 3.05rem);
    line-height: 1.08;
    letter-spacing: -.035em;
    margin-bottom: 12px;
  }
  body.rwp-theme .rwp-home .rwp-hero-lede {
    max-width: 37rem;
    font-size: .95rem;
    line-height: 1.53;
    margin-bottom: 17px;
  }
  body.rwp-theme .rwp-home .rwp-hero-buttons { gap: 9px; }
  body.rwp-theme .rwp-home .rwp-hero-buttons .wp-block-button__link {
    min-height: 46px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 11px 14px;
    font-size: .92rem;
    text-align: center;
  }
  body.rwp-theme .rwp-home .rwp-section.rwp-categories {
    padding: 15px 14px 26px !important;
  }
  body.rwp-theme .rwp-home .rwp-category-grid {
    gap: 10px !important;
  }
  body.rwp-theme .rwp-home .rwp-category-card {
    min-height: 160px;
    padding: 0 10px 12px;
    border-radius: 12px;
  }
  body.rwp-theme .rwp-home .rwp-category-title {
    font-size: clamp(.79rem, 2.75vw, 1rem);
    line-height: 1.15;
  }
  body.rwp-theme .rwp-home .rwp-section.rwp-featured,
  body.rwp-theme .rwp-home .rwp-section.rwp-event,
  body.rwp-theme .rwp-home .rwp-section.rwp-about {
    padding-left: 18px;
    padding-right: 18px;
  }
  body.rwp-theme .rwp-home .rwp-featured-image { height: 170px; }
  body.rwp-theme .rwp-home .rwp-featured-caption {
    font-size: .8rem;
    line-height: 1.35;
    padding: 22px 10px 9px;
  }
  body.rwp-theme .rwp-home .rwp-about::after { font-size: 95px; opacity: .07; }
  body.rwp-theme .rwp-home .rwp-about-photo { max-height: 245px; }
  body.rwp-theme .rwp-home .rwp-contact .rwp-contact-buttons .wp-block-button__link {
    min-height: 48px;
  }

  /* About: place the introduction first, then a smaller portrait. */
  .rwpap-hero { padding: 34px 20px 37px; }
  .rwpap-hero-inner { grid-template-columns: minmax(0, 1fr); gap: 22px; }
  .rwpap-hero-art { grid-row: auto; min-height: 0; }
  .rwpap-portrait-ring { width: min(49vw, 190px); }
  .rwpap-hero-art::before { width: min(60vw, 225px); }
  .rwpap-full .rwpap-hero h1 {
    font-size: clamp(2.25rem, 8vw, 3rem);
    line-height: 1.08;
    margin-bottom: 15px !important;
  }
  .rwpap-lead { font-size: 1.05rem; line-height: 1.5; }
  .rwpap-buttons { margin-top: 16px; gap: 10px; }
  .rwpap-full .rwpap-button { min-height: 48px; }
  .rwpap-story-section,
  .rwpap-specialties-section,
  .rwpap-approach-section,
  .rwpap-contact-section { padding: 43px 20px; }
  .rwpap-story-photos { min-height: 230px; }
  .rwpap-specialties { gap: 11px; }
  .rwpap-specialty-card { padding: 20px; }
  .rwpap-approach-tiles > div { padding: 14px 15px; }
  .rwpap-contact-inner { gap: 17px; }

  /* Services: lead with the service explanation, not a tall decoration. */
  .rwps-hero { padding: 36px 20px 40px; }
  .rwps-hero-inner { grid-template-columns: minmax(0, 1fr); gap: 15px; }
  .rwps-hero-art { grid-row: auto; min-height: 150px; }
  .rwps-hero-photo-frame,
  .rwps-hero-illustration { width: min(42vw, 165px); }
  .rwps-hero-art::before { width: min(52vw, 195px); }
  .rwps-full .rwps-hero h1 {
    font-size: clamp(2.25rem, 8.2vw, 3rem) !important;
    line-height: 1.08;
  }
  .rwps-actions { gap: 10px; }
  .rwps-full .rwps-button { min-height: 48px; }
  .rwps-services-section,
  .rwps-ideas-section,
  .rwps-pricing-section,
  .rwps-process-section,
  .rwps-faq-section,
  .rwps-cta-section { padding: 44px 20px; }
  .rwps-service-visual { height: 190px; }
  .rwps-service-copy { padding: 19px; }
  .rwps-step { min-height: 0; padding: 19px; }
  .rwps-faq summary { min-height: 50px; padding: 14px 0; }
  .rwps-cta-layout { gap: 17px; }

  /* Contact: helpful intro above the photo, mobile keyboard-friendly form. */
  .rwcp-hero { padding: 34px 20px 39px; }
  .rwcp-hero-inner { grid-template-columns: minmax(0, 1fr); gap: 18px; }
  .rwcp-hero-visual { grid-row: auto; min-height: 145px; }
  .rwcp-hero-ring { width: min(44vw, 175px); }
  .rwcp-hero-visual::before { width: min(54vw, 208px); }
  .rwcp-full .rwcp-hero h1 {
    font-size: clamp(2.5rem, 9vw, 3.45rem) !important;
    line-height: 1.07;
    margin-bottom: 15px !important;
  }
  .rwcp-hero-actions { gap: 10px; }
  .rwcp-full .rwcp-button { min-height: 48px; }
  .rwcp-form-section,
  .rwcp-social-section,
  .rwcp-info-section,
  .rwcp-cta { padding: 44px 20px; }
  .rwcp-contact-layout { gap: 21px; }
  .rwcp-form { gap: 15px; }
  .rwcp-form :is(input:not([type="checkbox"]), select, textarea) {
    width: 100%;
    max-width: 100%;
    min-height: 46px;
    font-size: 16px; /* Avoid iOS form auto-zoom. */
  }
  .rwcp-form textarea { min-height: 130px; }
  .rwcp-side-card { padding: 22px; }
  .rwcp-social-grid { gap: 11px; }
  .rwcp-social-card { min-height: 56px; }

  /* Portfolio & gallery category pages: tighter heroes, readable cards. */
  body.rwp-theme.rwp-portfolio-layout .rwp-page-masthead {
    padding: 38px 20px 36px !important;
  }
  body.rwp-theme.rwp-portfolio-layout .rwp-inner-title {
    font-size: clamp(2.15rem, 8.2vw, 3rem);
    line-height: 1.09;
    margin-bottom: 11px;
  }
  body.rwp-theme.rwp-portfolio-layout .rwp-inner-intro {
    font-size: .98rem;
    line-height: 1.56;
  }
  body.rwp-theme.rwp-portfolio-layout .rwp-page-body {
    padding: 29px 18px 52px !important;
  }
  body.rwp-theme.rwp-portfolio-layout .rwp-index-grid {
    grid-template-columns: 1fr !important;
    gap: 14px;
  }
  body.rwp-theme.rwp-portfolio-layout .rwp-index-card {
    min-height: 0;
    border-radius: 14px;
  }
  body.rwp-theme.rwp-portfolio-layout .rwp-index-card-image { height: clamp(170px, 45vw, 230px); }
  body.rwp-theme.rwp-portfolio-layout .rwp-index-card-title { font-size: clamp(1.25rem, 4.4vw, 1.6rem); }
  body.rwp-theme.rwp-portfolio-layout .rwp-card-link .wp-block-button__link,
  body.rwp-theme.rwp-portfolio-layout .rwp-back-button .wp-block-button__link {
    min-height: 46px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
  }
  body.rwp-theme.rwp-portfolio-layout :is(.foogallery, .foogallery-container, .rwp-embedded-gallery) {
    max-width: 100%;
    min-width: 0;
  }

  /* Make footer links and third-party WPForms easier to interact with. */
  body.rwp-theme .ct-footer .ct-container { padding-left: 18px; padding-right: 18px; }
  body.rwp-theme .ct-footer :is(a, button) { min-height: 40px; }
  body.rwp-theme .wpforms-container :is(input:not([type="checkbox"]), select, textarea) {
    max-width: 100%;
    font-size: 16px;
  }
  body.rwp-theme .wpforms-container :is(button[type="submit"], input[type="submit"]) {
    min-height: 48px;
  }
}

@media (max-width: 430px) {
  body.rwp-theme .ct-header .site-logo-container {
    --logo-max-height: 82px !important;
    margin-right: 5px;
  }
  body.rwp-theme .ct-header .site-logo-container img {
    width: 116px !important;
    max-width: 116px !important;
    max-height: 82px !important;
  }
  body.rwp-theme .rwp-home .rwp-hero-columns { min-height: 465px; padding: 22px 17px 28px; }
  body.rwp-theme .rwp-home .rwp-hero-title { font-size: clamp(2rem, 8vw, 2.6rem); }
  body.rwp-theme .rwp-home .rwp-hero-buttons .wp-block-button { width: 100%; }
  body.rwp-theme .rwp-home .rwp-hero-buttons .wp-block-button__link { width: 100%; }
  body.rwp-theme .rwp-home .rwp-category-grid { gap: 8px !important; }
  body.rwp-theme .rwp-home .rwp-category-card { min-height: 145px; }
  body.rwp-theme .rwp-home .rwp-featured-image { height: 148px; }
  body.rwp-theme .rwp-home .rwp-section.rwp-contact .wp-block-buttons { width: 100%; }
  body.rwp-theme .rwp-home .rwp-contact .rwp-contact-buttons .wp-block-button { width: 100%; }
  .rwpap-buttons,
  .rwps-actions,
  .rwcp-hero-actions { flex-direction: column; align-items: stretch; }
  .rwpap-full .rwpap-button,
  .rwps-full .rwps-button,
  .rwcp-full .rwcp-button { width: 100%; justify-content: center; text-align: center; }
  .rwpap-portrait-ring { width: min(46vw, 175px); }
  .rwcp-social-grid { grid-template-columns: 1fr; }
  .rwps-service-visual { height: 195px; }
}

@media (prefers-reduced-motion: reduce) {
  body.rwp-theme .rwp-home *,
  :is(.rwpap-full, .rwps-full, .rwcp-full) * {
    scroll-behavior: auto !important;
    animation-duration: .01ms !important;
    transition-duration: .01ms !important;
  }
}

/* v1.1: mobile behavior is deliberately more compact and easier to recognize. */
@media (max-width: 767px) {
  /* Shorter but content-safe home hero. */
  body.rwp-theme .rwp-home .rwp-hero-columns {
    min-height: clamp(370px, 56svh, 455px) !important;
    height: auto !important;
    padding: 24px 18px 29px !important;
  }
  body.rwp-theme .rwp-home .rwp-hero-title {
    font-size: clamp(1.95rem, 7.6vw, 2.55rem) !important;
    line-height: 1.1 !important;
  }
  body.rwp-theme .rwp-home .rwp-hero-lede {font-size: .95rem !important; line-height:1.48 !important; margin-bottom: 14px !important;}
  body.rwp-theme .rwp-home .rwp-section.rwp-categories {padding-top: 14px !important;padding-bottom: 22px !important;}
  body.rwp-theme .rwp-home .rwp-category-grid {grid-template-columns:repeat(2,minmax(0,1fr)) !important;gap:9px !important;}
  body.rwp-theme .rwp-home .rwp-section.rwp-featured {padding-top:18px !important;}
  /* These pages formerly showed the decorative portraits before the headline. */
  .rwpap-hero-art,.rwps-hero-art,.rwcp-hero-visual {grid-row:2 !important;min-height:0 !important;}
  .rwpap-hero, .rwps-hero, .rwcp-hero {padding:30px 18px 33px !important;}
  .rwpap-hero-inner, .rwps-hero-inner, .rwcp-hero-inner {grid-template-columns:minmax(0,1fr) !important;gap:16px !important;}
  .rwpap-portrait-ring {width:min(42vw,165px) !important;}
  .rwps-hero-photo-frame,.rwps-hero-illustration {width:min(42vw,165px) !important;}
  .rwcp-hero-ring {width:min(42vw,165px) !important;}
  .rwpap-full .rwpap-hero h1,.rwps-full .rwps-hero h1,.rwcp-full .rwcp-hero h1 {font-size:clamp(2.1rem,8.1vw,2.8rem) !important;}
  .rwpap-hero-art::before,.rwps-hero-art::before,.rwcp-hero-visual::before {width:min(52vw,200px) !important;}
  body.rwp-theme.rwp-portfolio-layout .rwp-page-masthead {padding:30px 18px 33px !important;}
  body.rwp-theme.rwp-portfolio-layout .rwp-page-body {padding-top:22px !important;}
  /* Turn the check green only when the responsive stylesheet actually runs. */
  #rwp-mobile-css-check {background:#086e69 !important;}
  #rwp-mobile-css-check .rwp-mobile-css-check-fallback {display:none !important;}
  #rwp-mobile-css-check .rwp-mobile-css-check-success {display:inline !important;}
}
@media (min-width:768px) {
  #rwp-mobile-css-check .rwp-mobile-css-check-success {display:inline !important;}
  #rwp-mobile-css-check .rwp-mobile-css-check-fallback {display:none !important;}
  #rwp-mobile-css-check {background:#354a65 !important;}
}

/* v1.2: Real-homepage mobile correction, based on the live phone screenshot.
   Keep the existing desktop styling and all other plugin pages untouched. */
@media (max-width: 767px) {
  body.home.rwp-theme .rwp-home .rwp-hero {
    position: relative !important;
    display: block !important;
    min-height: 0 !important;
    height: auto !important;
    overflow: hidden !important;
    background: #0c1429 !important;
  }
  body.home.rwp-theme .rwp-home .rwp-hero-columns {
    display: flex !important;
    flex-direction: column !important;
    align-items: stretch !important;
    justify-content: flex-start !important;
    gap: 0 !important;
    min-height: 0 !important;
    height: auto !important;
    padding: 0 !important;
    margin: 0 !important;
  }
  /* On phones the photo becomes an actual, short image area rather than a
     stretched background behind a long block of text. */
  body.home.rwp-theme .rwp-home .rwp-hero-right {
    position: relative !important;
    inset: auto !important;
    order: 0 !important;
    z-index: 0 !important;
    flex: 0 0 auto !important;
    align-self: stretch !important;
    width: 100% !important;
    max-width: 100% !important;
    height: clamp(155px, 43vw, 205px) !important;
    min-height: 0 !important;
    display: block !important;
    margin: 0 !important;
    overflow: hidden !important;
  }
  body.home.rwp-theme .rwp-home .rwp-hero-photo {
    width: 100% !important;
    height: 100% !important;
    aspect-ratio: auto !important;
    overflow: hidden !important;
    border: 0 !important;
    border-radius: 0 !important;
    margin: 0 !important;
    transform: none !important;
  }
  body.home.rwp-theme .rwp-home .rwp-hero-photo img {
    display: block !important;
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    object-position: center 45% !important;
    border-radius: 0 !important;
  }
  body.home.rwp-theme .rwp-home .rwp-hero-left {
    order: 1 !important;
    position: relative !important;
    z-index: 2 !important;
    display: block !important;
    flex: 0 0 auto !important;
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    padding: 20px 18px 27px !important;
    margin: 0 !important;
    background:
       radial-gradient(ellipse at 96% 0, rgba(168,85,247,.17), transparent 58%),
       #0d152c !important;
  }
  body.home.rwp-theme .rwp-home .rwp-hero-copy {
    max-width: 100% !important;
    padding: 0 !important;
  }
  body.home.rwp-theme .rwp-home .rwp-hero::before {
    display: none !important;
    content: none !important;
  }
  body.home.rwp-theme .rwp-home .rwp-hero::after {
    left: 0 !important;
    right: 0 !important;
    bottom: 0 !important;
    height: 3px !important;
    clip-path: none !important;
    filter: none !important;
    opacity: 1 !important;
  }
  body.home.rwp-theme .rwp-home .rwp-hero .rwp-eyebrow {
    margin: 0 0 9px !important;
    font-size: .68rem !important;
    letter-spacing: .075em !important;
    line-height: 1.45 !important;
  }
  body.home.rwp-theme .rwp-home .rwp-hero-title {
    margin: 0 0 13px !important;
    font-size: clamp(1.85rem, 8.0vw, 2.3rem) !important;
    line-height: 1.09 !important;
    letter-spacing: -.035em !important;
    text-wrap: pretty;
  }
  body.home.rwp-theme .rwp-home .rwp-hero-lede {
    max-width: 100% !important;
    margin: 0 0 17px !important;
    font-size: .95rem !important;
    line-height: 1.52 !important;
  }
  body.home.rwp-theme .rwp-home .rwp-hero-buttons {
    display: flex !important;
    flex-direction: column !important;
    align-items: stretch !important;
    gap: 9px !important;
    margin: 0 !important;
  }
  body.home.rwp-theme .rwp-home .rwp-hero-buttons .wp-block-button {
    width: 100% !important;
    margin: 0 !important;
  }
  body.home.rwp-theme .rwp-home .rwp-hero-buttons .wp-block-button__link {
    display: flex !important;
    justify-content: center !important;
    align-items: center !important;
    width: 100% !important;
    min-height: 46px !important;
    padding: 10px 14px !important;
    font-size: .95rem !important;
    line-height: 1.3 !important;
    box-sizing: border-box !important;
  }
  /* Start the photo categories immediately after the hero divider. */
  body.home.rwp-theme .rwp-home .rwp-section.rwp-categories {
    margin-top: 0 !important;
    padding: 13px 14px 24px !important;
  }
  body.home.rwp-theme .rwp-home .rwp-category-grid {
    margin: 0 auto !important;
    gap: 9px !important;
    grid-template-columns: repeat(2, minmax(0,1fr)) !important;
  }
  body.home.rwp-theme .rwp-home .rwp-category-card {
    min-height: 158px !important;
  }
}
/* Rollar Wolf Mobile Polish v1.3.0
 * Header and off-canvas navigation refinements only.
 * Blocksy retains control of open/close behavior and menu assignment.
 * Desktop remains unchanged. The v1.2 homepage mobile layout remains intact.
 */
@media (max-width: 999px) {
  /* Enough room for a larger logo without letting it overlap the menu button. */
  body.rwp-theme .ct-header [data-row="middle"] .ct-container,
  body.rwp-theme .ct-header [data-row="middle"] .ct-container-fluid {
    min-height: 99px !important;
    padding-inline: clamp(12px, 3.6vw, 25px) !important;
    column-gap: 10px !important;
    align-items: center !important;
  }
  body.rwp-theme .ct-header [data-id="logo"] {
    flex: 0 1 auto;
    min-width: 0;
    z-index: 2;
  }
  /* Override the old 116px child-theme/mobile-polish cap. */
  body.rwp-theme .ct-header .site-logo-container {
    --logo-max-height: 115px !important;
    margin: -5px 0 -12px 0 !important;
    transform: translateY(3px) !important;
    overflow: visible !important;
    max-width: 100%;
  }
  body.rwp-theme .ct-header .site-logo-container img {
    width: clamp(151px, 43vw, 184px) !important;
    max-width: min(43vw, 184px) !important;
    max-height: 115px !important;
    height: auto !important;
    object-fit: contain !important;
  }
  /* Keep the real Blocksy toggle above any decorative logo overlap. */
  body.rwp-theme .ct-header [data-id="trigger"] {
    position: relative;
    flex: 0 0 auto;
    z-index: 10;
    margin-inline-start: auto;
  }
  body.rwp-theme .ct-header [data-id="trigger"] :is(a, button),
  body.rwp-theme .ct-header :is(a.ct-header-trigger, button.ct-header-trigger) {
    box-sizing: border-box !important;
    min-width: 58px !important;
    min-height: 56px !important;
    padding: 11px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 6px;
    border: 1px solid rgba(0, 217, 245, .65) !important;
    border-radius: 13px !important;
    background: rgba(19, 37, 63, .96) !important;
    color: #30e3f5 !important;
    box-shadow: 0 0 0 1px rgba(0, 217, 245, .07);
    touch-action: manipulation;
    -webkit-tap-highlight-color: transparent;
  }
  body.rwp-theme .ct-header [data-id="trigger"] :is(.ct-icon, .ct-trigger-icon),
  body.rwp-theme .ct-header :is(a.ct-header-trigger, button.ct-header-trigger) :is(.ct-icon, .ct-trigger-icon) {
    width: 27px !important;
    height: 27px !important;
    color: #30e3f5 !important;
  }
  body.rwp-theme .ct-header [data-id="trigger"] :is(a, button):is(:hover, :active),
  body.rwp-theme .ct-header :is(a.ct-header-trigger, button.ct-header-trigger):is(:hover, :active) {
    background: #173b53 !important;
    border-color: #31e9f5 !important;
  }
  body.rwp-theme .ct-header [data-id="trigger"] :is(a, button):focus-visible,
  body.rwp-theme .ct-header :is(a.ct-header-trigger, button.ct-header-trigger):focus-visible,
  #offcanvas :is(a, button):focus-visible {
    outline: 3px solid #ffd46a !important;
    outline-offset: 3px !important;
  }
  /* Roomy navigation once Blocksy opens the real off-canvas panel. Do not
   * override panel visibility, position, transforms or Blocksy's scripts. */
  #offcanvas .ct-panel-inner,
  #offcanvas .ct-panel-content {
    background-color: #0d162b;
    color: #f1f7ff;
  }
  #offcanvas :is(.mobile-menu, .ct-menu-mobile) {
    width: 100%;
    --theme-link-initial-color: #f1f7ff;
    --theme-link-hover-color: #2ce0ef;
  }
  #offcanvas :is(.mobile-menu, .ct-menu-mobile) li > a {
    box-sizing: border-box;
    min-height: 54px !important;
    padding-block: 14px !important;
    padding-inline: 10px !important;
    display: flex;
    align-items: center;
    font-size: 16px !important;
    font-weight: 650;
    line-height: 1.35 !important;
    color: #f1f7ff !important;
    text-decoration: none;
    overflow-wrap: anywhere;
  }
  #offcanvas :is(.mobile-menu, .ct-menu-mobile) > ul > li {
    border-bottom: 1px solid rgba(132, 166, 205, .19);
  }
  #offcanvas :is(.mobile-menu, .ct-menu-mobile) :is(.sub-menu, .children) a {
    min-height: 48px !important;
    font-size: 15px !important;
    padding-inline-start: 24px !important;
    color: #c5def0 !important;
  }
  #offcanvas :is(.mobile-menu, .ct-menu-mobile) :is(.current-menu-item, .current_page_item) > a,
  #offcanvas :is(.mobile-menu, .ct-menu-mobile) a:hover {
    color: #36e4ef !important;
  }
  #offcanvas :is(.ct-toggle-dropdown, .child-indicator, .ct-sub-menu-toggle, .ct-dropdown-toggle) {
    min-width: 48px !important;
    min-height: 48px !important;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    touch-action: manipulation;
  }
  #offcanvas :is(.ct-toggle-close, .ct-panel-close, .ct-close-button) {
    min-width: 50px !important;
    min-height: 50px !important;
    touch-action: manipulation;
  }
}
@media (max-width: 390px) {
  body.rwp-theme .ct-header [data-row="middle"] .ct-container,
  body.rwp-theme .ct-header [data-row="middle"] .ct-container-fluid {
    min-height: 93px !important;
  }
  body.rwp-theme .ct-header .site-logo-container img {
    width: clamp(147px, 43vw, 167px) !important;
    max-width: min(43vw, 167px) !important;
  }
}

/* v1.4: The Blocksy Off Canvas menu overlays the hero BELOW the mobile header.
 * Blocksy still owns open/close, focus, submenu controls and visibility.
 * Do not hide the panel with display:none or change data-state here.
 */
@media (max-width: 999.98px) {
  body.rwp-theme #offcanvas {
    position: fixed !important;
    top: var(--rwp-mobile-nav-top, 120px) !important;
    inset-block-start: var(--rwp-mobile-nav-top, 120px) !important;
    bottom: auto !important;
    inset-block-end: auto !important;
    left: 0 !important;
    right: 0 !important;
    inset-inline: 0 !important;
    width: 100% !important;
    max-width: 100vw !important;
    min-height: 0 !important;
    height: auto !important;
    max-height: calc(100dvh - var(--rwp-mobile-nav-top, 120px)) !important;
    overflow-x: hidden !important;
    overflow-y: auto !important;
    box-sizing: border-box !important;
    z-index: 99991 !important;
    background: #0c1429 !important;
    border-top: 2px solid #16d9ed !important;
    border-bottom: 2px solid #ab57ef !important;
    box-shadow: 0 22px 35px rgba(0, 0, 0, .55) !important;
    overscroll-behavior: contain;
  }
  body.rwp-theme #offcanvas .ct-panel-inner {
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
    justify-content: flex-start !important;
    align-items: stretch !important;
    background: #0c1429 !important;
    overflow: visible !important;
  }
  body.rwp-theme #offcanvas .ct-panel-content {
    height: auto !important;
    min-height: 0 !important;
    flex: 0 1 auto !important;
    justify-content: flex-start !important;
    padding-top: 10px !important;
    padding-bottom: 22px !important;
    overflow: visible !important;
  }
  body.rwp-theme #offcanvas .ct-panel-actions {
    min-height: 0 !important;
    padding-block: 9px !important;
  }
  body.rwp-theme #offcanvas :is(.mobile-menu, .ct-menu-mobile) {
    margin-top: 0 !important;
    padding-top: 0 !important;
  }
  body.rwp-theme #offcanvas :is(.mobile-menu, .ct-menu-mobile) li > a {
    min-height: 50px !important;
    padding-block: 12px !important;
  }
}
