/* ==========================================================================
   Index
   1. Typography & pills
   2. Home Page: Fullscreen Video Background
   3. Shared Overlay And Fullscreen Shells
   4. Header / Topbar
   5. Hero Backgrounds
   6. Mobile Adjustments
   7. Sidebar Menu
   8. Header Sections
   9. Module Layouts & Cards
   10. Contact / RSContact
   11. Buttons / utility module layouts
   12. Booking / Tiny House sections
   13. Directions / article content styling
   14. About Pages
   ========================================================================== */

/* ==========================================================================
   Typography & pills
   Encode Sans: body / UI. Forum: headings & buttons. Pill: border-radius 30px.
   ========================================================================== */

   @import url('https://fonts.googleapis.com/css2?family=Encode+Sans:wght@300;400;500;600;700&family=Forum&display=swap');

   /* Reference theme: html * { font-family: 'Encode Sans'; } body,html { letter-spacing: 1px; } */
   html,
   body {
       letter-spacing: 1px;
   }
   
   body,
   p,
   .navbar,
   .form-control,
   input,
   textarea,
   select,
   label {
       font-family: 'Encode Sans', sans-serif;
       -webkit-font-smoothing: antialiased;
       -moz-osx-font-smoothing: grayscale;
   }
   
   /* Reference: h1–h6, .button → Forum 400 */
   h1, h2, h3, h4, h5, h6 {
       font-family: 'Forum', cursive;
       font-weight: 400;
   }
   
   /* Reference: p { font-size: 17px; line-height: 1.6; } */
   p {
       font-weight: 400;
       font-size: 17px;
       line-height: 1.6;
   }
   
   .container-topbar .nav-item a {
       font-family: 'Encode Sans', sans-serif;
       font-size: 15px;
   }
   
   #mod-menu118 .nav-item > a {
       font-family: 'Encode Sans', sans-serif;
       font-weight: 500;
   }
   
   /* --------------------------------------------------------------------------
      Pill buttons (theme: #page .button — border-radius 30px, green bg, dark text)
      -------------------------------------------------------------------------- */
   .home-overlay,
   .about-menu-btn,
   .read-more-btn,
   .btn,
   .btn-primary,
   button[type="submit"],
   .rscontact .btn-primary,
   #mod-rscontact-container-119 .btn-primary {
       font-family: 'Forum', cursive !important;
       font-weight: 400 !important;
       border-radius: 30px !important;
       border: none !important;
       text-align: center;
       text-decoration: none !important;
       display: inline-block;
       box-sizing: border-box;
       transition: background-color 0.3s ease, color 0.3s ease, transform 0.3s ease, box-shadow 0.3s ease;
   }
   
   /* Default pill: mint green on dark text (same as .greenbg + default .button) */
   .home-overlay,
   .about-menu-btn,
   .read-more-btn,
   .rscontact .btn-primary,
   .btn-primary {
       background-color: #C1E6B8 !important;
       color: #293425 !important;
       text-shadow: none !important;
       padding: 19px 40px;
       min-height: auto;
       line-height: 1.2;
       font-size: 1.125rem;
   }
   
   .home-overlay:hover,
   .home-overlay:focus,
   .about-menu-btn:hover,
   .about-menu-btn:focus,
   .read-more-btn:hover,
   .read-more-btn:focus,
   .rscontact .btn-primary:hover,
   .btn-primary:hover {
       background-color: #293425 !important;
       color: #C1E6B8 !important;
       transform: translateY(-2px);
       box-shadow: 0 4px 12px rgba(0, 0, 0, 0.2);
   }
   
   /* Contact hero: pill still mint/dark; hover matches theme */
   #mod-rscontact-container-119 .btn-primary {
       background-color: #C1E6B8 !important;
       color: #293425 !important;
       border: none !important;
       padding: 0.75rem 2rem !important;
       width: 100%;
       max-width: 500px;
       font-size: 1rem !important;
   }
   
   #mod-rscontact-container-119 .btn-primary:hover {
       background-color: #293425 !important;
       color: #C1E6B8 !important;
       transform: translateY(-2px);
       box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3);
   }
   
   /* ==========================================================================
      2. Home Page: Fullscreen Video Background
      ========================================================================== */
   .video-hero {
       position: fixed;
       inset: 0;
       width: 100vw;
       height: 100vh;
       z-index: -1;
       overflow: hidden;
       background: linear-gradient(to bottom, rgba(0,0,0,0.45), rgba(0,0,0,0.25)),
                   url("/media/videos/hero.jpg") center / cover no-repeat;
       opacity: 0;
       animation: fadeInVideo 1.5s forwards;
   }
   
   .video-hero video {
       width: 100%;
       height: 100%;
       object-fit: cover;
   }
   
   .site-grid,
   .site-grid > * {
       position: relative;
       z-index: 1;
   }
   
   @keyframes fadeInVideo { to { opacity: 1; } }
   
/* ==========================================================================
   3. Shared Overlay And Fullscreen Shells
   ========================================================================== */
.home-overlay {
      max-width: 1100px;
      margin: 10vh auto;
      padding: 0.75rem 2rem;
      min-width: 120px;
      text-align: center;
      transition: all 0.3s ease;
}

/* Fullscreen article-shell pages:
   `itemid-104` = `/pl`
   `itemid-105` = `/en`
   `itemid-103` = `/pl/o-nas`
   `itemid-102` = `/en/about-us` */
body.itemid-102,
body.itemid-103,
body.itemid-104,
body.itemid-105 {
      padding-top: 0 !important;
      overflow: hidden;
}

body.itemid-102 .site-grid,
body.itemid-102 .grid-child.container-component,
body.itemid-102 main,
body.itemid-102 .com-content-article.item-page,
body.itemid-103 .site-grid,
body.itemid-103 .grid-child.container-component,
body.itemid-103 main,
body.itemid-103 .com-content-article.item-page,
body.itemid-104 .site-grid,
body.itemid-104 .grid-child.container-component,
body.itemid-104 main,
body.itemid-104 .com-content-article.item-page,
body.itemid-105 .site-grid,
body.itemid-105 .grid-child.container-component,
body.itemid-105 main,
body.itemid-105 .com-content-article.item-page {
      min-height: 100vh;
}

/* Shared centered article shell for home/about article pages */
body.itemid-102 .com-content-article__body,
body.itemid-103 .com-content-article__body,
body.itemid-104 .com-content-article__body,
body.itemid-105 .com-content-article__body {
      min-height: 100vh;
      display: flex;
      align-items: center;
      justify-content: center;
      padding: 0 1rem;
      box-sizing: border-box;
}

/* Shared overlay card chrome for home/about pages */
body.itemid-102 .home-overlay,
body.itemid-103 .home-overlay,
body.itemid-104 .home-overlay,
body.itemid-105 .home-overlay {
      margin: 0 auto;
      padding: 1.5rem 1.75rem;
      border-radius: 24px !important;
      background: rgba(27, 37, 24, 0.56) !important;
      color: #f7f3ea !important;
      border: 1px solid rgba(255, 255, 255, 0.14) !important;
      box-shadow: 0 18px 50px rgba(0, 0, 0, 0.28);
      backdrop-filter: blur(10px);
      -webkit-backdrop-filter: blur(10px);
}

/* Shared overlay text formatting for home/about pages */
body.itemid-102 .home-overlay p,
body.itemid-103 .home-overlay p,
body.itemid-104 .home-overlay p,
body.itemid-105 .home-overlay p {
      margin: 0;
      color: inherit;
      line-height: 1.75;
      letter-spacing: 0.03em;
      text-shadow: 0 2px 14px rgba(0, 0, 0, 0.4);
}

/* Home pages: /pl and /en */
body.itemid-104 .home-overlay,
body.itemid-105 .home-overlay {
      max-width: min(92vw, 42rem);
      text-align: center;
      transform: translateY(-1.5rem);
}

body.itemid-104 .home-overlay p,
body.itemid-105 .home-overlay p {
      font-size: clamp(1.15rem, 1rem + 0.8vw, 1.55rem);
}

body.itemid-104 .home-overlay span,
body.itemid-105 .home-overlay span {
      font-size: inherit !important;
}

   /* ==========================================================================
      4. Header / Topbar
      ========================================================================== */
   .header.container-header {
       position: absolute;
       top: 0;
       left: 0;
       width: 100%;
       z-index: 3;
       background: rgba(0,0,0,0.35);
   }
   
   .container-topbar {
       display: flex;
       align-items: center;
       justify-content: space-between;
       gap: 1rem;
       flex-wrap: wrap;
       padding: 0 2rem;
   }
   
   .container-topbar #mod-menu111,
   .container-topbar #mod-menu112,
   .container-topbar .mod-languages {
       display: flex;
       align-items: center;
       gap: 1rem;
   }
   
   .container-topbar .nav-item a {
       display: flex;
       align-items: center;
       padding: 0.5rem 1rem;
   }
   
/* ==========================================================================
   5. Hero Backgrounds
   ========================================================================== */
   .page-hero.page-hero--about,
   .page-hero.page-hero--tinyhouse {
       position: fixed;
       inset: 0;
       z-index: -1;
       display: flex;
       align-items: center;
       justify-content: center;
   }
   
   .page-hero--about {
       background: linear-gradient(to bottom, rgba(0,0,0,0.45), rgba(0,0,0,0.25)),
                   url("/images/heros/about-hero.jpg") center / cover no-repeat;
   }
   
   .page-hero--tinyhouse {
       background: linear-gradient(to bottom, rgba(0,0,0,0.45), rgba(0,0,0,0.25)),
                   url("/images/heros/tinyhouse_hero.jpg") center / cover no-repeat;
   }
   
   /* ==========================================================================
      6. Mobile Adjustments
      ========================================================================== */
   @media (max-width: 768px) {
       .container-topbar { flex-direction: column; align-items: center; }
       .container-topbar #mod-menu111,
       .container-topbar #mod-menu112 { flex-direction: column; }
      .home-overlay { padding: 2rem; }

      body.itemid-104 .grid-child.container-component,
      body.itemid-105 .grid-child.container-component,
      body.itemid-104 main,
      body.itemid-105 main,
      body.itemid-104 .com-content-article.item-page,
      body.itemid-105 .com-content-article.item-page,
      body.itemid-104 .com-content-article__body,
      body.itemid-105 .com-content-article__body {
          min-height: 100vh !important;
      }

      body.itemid-104 .com-content-article__body,
      body.itemid-105 .com-content-article__body {
          align-items: flex-start !important;
          justify-content: flex-start !important;
          padding-top: 8.5rem !important;
          padding-right: 0.85rem !important;
          padding-bottom: 1rem !important;
          padding-left: 0.85rem !important;
          box-sizing: border-box;
      }

      body.itemid-102 .home-overlay,
      body.itemid-103 .home-overlay,
      body.itemid-104 .home-overlay,
      body.itemid-105 .home-overlay {
          padding: 1.2rem 1.1rem;
          border-radius: 20px !important;
      }

      body.itemid-102 .home-overlay p,
      body.itemid-103 .home-overlay p,
      body.itemid-104 .home-overlay p,
      body.itemid-105 .home-overlay p {
          line-height: 1.65;
      }

      body.itemid-104 .home-overlay,
      body.itemid-105 .home-overlay {
          max-width: min(94vw, 32rem);
          margin-top: 0 !important;
          transform: none !important;
      }

      body.itemid-104 .home-overlay p,
      body.itemid-105 .home-overlay p {
          font-size: clamp(1.15rem, 1rem + 0.8vw, 1.55rem);
      }
   
       .module-image-text { flex-direction: column; }
       .module-image-text img { width: 100%; height: auto; }
       .module-image-text .module-text { width: 100%; text-align: center; margin-top: 1rem; }
       .about-menu-buttons {
           flex-direction: column;
           align-items: stretch;
           gap: 1rem;
           padding-left: 0.25rem;
           padding-right: 0.25rem;
           box-sizing: border-box;
       }
       .about-menu-btn {
           width: 100%;
           max-width: none;
           padding: 1rem 1.25rem;
           font-size: 1.2rem;
           text-align: center;
           box-sizing: border-box;
       }
   }
   
   /* ==========================================================================
      7. Sidebar Menu (mod-menu118)
      ========================================================================== */
   @media (min-width: 992px) {
       .site-grid > .container-sidebar-right {
           min-height: calc(100vh - 90px);
           margin-top: 90px;
           display: flex;
           align-items: center;
       }
       .container-sidebar-right .card-body {
           display: flex;
           justify-content: center;
           align-items: center;
           padding: 0;
       }
   }
   
   .container-sidebar-right .card {
       background: rgba(255,255,255,0.95);
       backdrop-filter: blur(6px);
       border: none;
       box-shadow: none;
       border-radius: 8px;
   }
   
   #mod-menu118 {
       text-align: center;
   }
   #mod-menu118 .nav {
       display: flex;
       flex-direction: column;
       align-items: center;
       justify-content: center;
   }
   #mod-menu118 .nav-item > a {
       color: #fff !important;
       padding: 0.5rem 0;
       display: block;
       text-decoration: none;
   }
   #mod-menu118 .nav-item > a:hover,
   #mod-menu118 .nav-item > a:focus {
       text-decoration: underline;
   }
   .header-section .card-body,
   .header-section-top .card-body,
   .header-section-bottom .card-body,
   .header-section .module-image-text,
   .header-section-top .module-image-text,
   .header-section-bottom .module-image-text,
   .main-bottom.card.header-section .card-body,
   .main-bottom.card.header-section-top .card-body,
   .main-bottom.card.header-section-bottom .card-body {
       background: transparent !important;
       box-shadow: none !important;
       border: none !important;
       padding: 0 !important;
       color: #fff !important;
       text-shadow: 0 2px 6px rgba(0,0,0,0.6) !important;
   }
   
   .header-section,
   .header-section-top,
   .header-section-bottom,
   .main-bottom.card.header-section,
   .main-bottom.card.header-section-top,
   .main-bottom.card.header-section-bottom {
       background: transparent !important;
       box-shadow: none !important;
       border: none !important;
       color: #fff !important;
       text-shadow: 0 2px 6px rgba(0,0,0,0.6) !important;
       display: flex;
       justify-content: center;
       align-items: center;
       position: relative;
       padding: 2.5rem 2rem 3.5rem !important;
       margin-bottom: 2rem;
       box-sizing: border-box;
   }
   
   /* Stack two header-section blocks with no gap between them */
   .header-section-top,
   .main-bottom.card.header-section-top {
       padding-bottom: 0 !important;
       margin-bottom: 0 !important;
   }

   .header-section-bottom,
   .main-bottom.card.header-section-bottom {
       padding-top: 0 !important;
       margin-top: 0 !important;
   }
   
   .header-section .module-image-text,
   .header-section-top .module-image-text,
   .header-section-bottom .module-image-text {
       display: flex;
       flex-direction: column;
       justify-content: center;
       align-items: center;
       width: 100%;
       height: 100%;
   }
   .header-section .module-text,
   .header-section-top .module-text,
   .header-section-bottom .module-text,
   .mod-custom.header-section h1,
   .mod-custom.header-section-top h1,
   .mod-custom.header-section-bottom h1,
   .mod-custom.header-section h2,
   .mod-custom.header-section-top h2,
   .mod-custom.header-section-bottom h2,
   .mod-custom.header-section p,
   .mod-custom.header-section-top p,
   .mod-custom.header-section-bottom p {
       color: #fff !important;
       text-shadow: 0 2px 6px rgba(0,0,0,0.6);
       text-align: center;
   }
   
   .mod-custom.header-section .module-image-text.left img,
   .mod-custom.header-section-top .module-image-text.left img,
   .mod-custom.header-section-bottom .module-image-text.left img { border-radius: 8px 0 0 8px; }
   .mod-custom.header-section .module-image-text.right img,
   .mod-custom.header-section-top .module-image-text.right img,
   .mod-custom.header-section-bottom .module-image-text.right img { border-radius: 0 8px 8px 0; }
   
   /* ==========================================================================
      9. Module Layouts & Cards
      ========================================================================== */
   .main-top.card,
   .main-bottom.card,
   .com-content-article__body > section,
   .rscontact,
   .page-section,
 .moduletable {
       background-color: rgba(181, 180, 174, 0.85) !important;
       color: #fff !important;
       box-shadow: 0 4px 12px rgba(0,0,0,0.1) !important;
       border-radius: 8px !important;
       border: none !important;
       font-family: 'Encode Sans', sans-serif;
       font-weight: 600;
       text-shadow: 0 1px 3px rgba(0,0,0,0.4);
   }


   
   /* Cassiopeia restores card borders under lg — keep cards borderless like desktop; use slightly reduced card-body padding */
   @media (max-width: 991.98px) {
       .site-grid .card.main-top,
       .site-grid .card.main-bottom,
       body.site main .card.main-top,
       body.site main .card.main-bottom {
           border: none !important;
       }
       .site-grid .card > .card-body,
       body.site main .card > .card-body {
           border: none !important;
           outline: none !important;
           padding: 0.5rem !important;
       }
       .main-top.card:not(.header-section):not(.header-section-top):not(.header-section-bottom) > .card-body,
       .main-bottom.card:not(.header-section):not(.header-section-top):not(.header-section-bottom):not(.contact-us):not(.guest-house-page-section) > .card-body,
       .main-bottom.card.header-section > .card-body,
       .main-bottom.card.header-section-top > .card-body,
       .main-bottom.card.header-section-bottom > .card-body,
       section.main-bottom.card.page-section > .card-body {
           padding: 0.5rem !important;
       }

       /* Google Reviews: remove only top inset; keep same horizontal/bottom as other cards */
       .main-top.card:not(.header-section):not(.header-section-top):not(.header-section-bottom) > .card-body:has(.gr-wrapper),
       .main-bottom.card:not(.header-section):not(.header-section-top):not(.header-section-bottom):not(.contact-us):not(.guest-house-page-section) > .card-body:has(.gr-wrapper) {
           padding-top: 0 !important;
           padding-left: 0.5rem !important;
           padding-right: 0.5rem !important;
           padding-bottom: 0.5rem !important;
       }

       .main-bottom.card.guest-house-page-section > .card-body,
       .main-bottom.card.guest-house-page-section > .card-body:has(.mod-articles-image.right.item-image) {
           padding: 0 !important;
       }
   
       /* Inset text when card-body has no padding — keep off image / card edges */
       .site-grid .main-bottom.card .card-body .mod-articles-item-content > p:not(.readmore),
       .site-grid .main-bottom.card .card-body .mod-articles-item-content > h3 {
           padding: 0.75rem 1rem 0.5rem;
       }
       .site-grid .main-bottom.card .card-body .mod-articles-item-content > p.readmore {
           padding: 0.5rem 1rem 1rem;
       }
       .site-grid .main-bottom.card:not(.header-section):not(.header-section-top):not(.header-section-bottom):not(.contact-us) .card-body .mod-custom .module-text {
           padding-left: 1rem;
           padding-right: 1rem;
       }
       /* Buttons: no extra inset — card-body is already narrow on tablet/mobile */
       .site-grid .main-bottom.card:not(.header-section):not(.header-section-top):not(.header-section-bottom):not(.contact-us) .card-body .mod-custom .about-menu-buttons,
       .site-grid .main-bottom.card.header-section .card-body .mod-custom .about-menu-buttons,
       .site-grid .main-bottom.card.header-section-top .card-body .mod-custom .about-menu-buttons,
       .site-grid .main-bottom.card.header-section-bottom .card-body .mod-custom .about-menu-buttons {
           padding-left: 0;
           padding-right: 0;
       }
       /* Slightly wider main column below lg (Cassiopeia grid-child padding) */
       .site-grid > .grid-child.container-component {
           padding-left: 0.75rem !important;
           padding-right: 0.75rem !important;
       }
   }
   
   /* Tablet: wider pills — two per row when space allows */
   @media (max-width: 991.98px) and (min-width: 769px) {
       .about-menu-buttons {
           flex-direction: row;
           flex-wrap: wrap;
           justify-content: center;
           align-items: stretch;
       }
       .about-menu-btn {
           flex: 1 1 calc(50% - 0.5rem);
           min-width: min(100%, 11rem);
           max-width: none;
       }
   }
   
   .main-top.card h1,
   .main-top.card h2,
   .main-top.card h3,
   .main-top.card h4,
   .main-top.card h5,
   .main-top.card h6,
   .main-bottom.card h1,
   .main-bottom.card h2,
   .main-bottom.card h3,
   .main-bottom.card h4,
   .main-bottom.card h5,
   .main-bottom.card h6,
   .moduletable h1,
   .moduletable h2,
   .moduletable h3,
   .moduletable h4,
   .moduletable h5,
   .moduletable h6 {
       font-family: 'Forum', cursive;
       font-weight: 400;
   }
   
   .module-image-text {
       display: flex;
       flex-wrap: wrap;
       align-items: center;
       justify-content: center;
       gap: 2rem;
   }
   .module-image-text img { width: 40%; height: 100%; object-fit: cover; border-radius: 8px; }
   .module-image-text.left img { order: 0; }
   .module-image-text.left .module-text { order: 1; }
   .module-image-text.right img { order: 1; }
   .module-image-text.right .module-text { order: 0; }
   .module-image-text .module-text { flex: 1; display: flex; flex-direction: column; justify-content: center; text-align: left; padding: 5px;}
.module-text.location-address {
    text-align: center;
    align-items: center;
    color: #fff;
}
.module-text.location-address a {
    color: #fff;
}
.module-text.location-address a:hover,
.module-text.location-address a:focus {
    color: rgba(255, 255, 255, 0.85);
}
   
   .mod-custom .card-body { padding: 0 !important; }
   
   /* ==========================================================================
      10. Contact Form / RSContact / Contact Icons
      ========================================================================== */
   .rscontact input,
   .rscontact textarea,
   .rscontact select {
       background-color: rgba(255,255,255,0.95) !important;
       color: #333 !important;
       border: 1px solid rgba(0,0,0,0.2);
       border-radius: 4px;
       padding: 0.5rem;
       font-family: 'Encode Sans', sans-serif;
   }
   
   .rscontact input::placeholder,
   .rscontact textarea::placeholder { color: rgba(0,0,0,0.5) !important; }
   
   .rscontact input:focus,
   .rscontact textarea:focus,
   .rscontact select:focus { outline: 2px solid rgba(0,0,0,0.4); background-color: #fff; }
   
   .rscontact .form-check { background-color: rgba(255,255,255,0.95); padding: 0.5rem 0.75rem; border-radius: 4px; margin-bottom: 1rem; }
   .rscontact .form-check-input { accent-color: #333; }
   /* ==========================================================================
      11. About / Read More Menu Buttons
      ========================================================================== */
   .about-menu-buttons {
       display: flex;
       flex-wrap: wrap;
       justify-content: center;
       gap: 1rem;
       margin-top: 1.5rem;
       width: 100%;
       max-width: 100%;
       min-width: 0;
       box-sizing: border-box;
   }
   
   /* ==========================================================================
      12. Desktop padding fix
      ========================================================================== */
   @media (min-width: 992px) {
       body { padding-top: 150px; }
   }
   
   /* ===========================
      Contact Us → Transparent Hero Overlay
      Module-id-specific: `#mod-rscontact-container-119`
      If the Joomla module is recreated, update this selector block.
      =========================== */
   #mod-rscontact-container-119,
   #mod-rscontact-container-119 .rscontact,
   #mod-rscontact-container-119 form,
   #mod-rscontact-container-119 fieldset,
   #mod-rscontact-container-119 .control-group,
   #mod-rscontact-container-119 .controls,
   #mod-rscontact-container-119 .form-check {
       background: transparent !important;
       box-shadow: none !important;
       border: none !important;
       padding: 0 !important;
       color: #fff !important;
   }
   
   #mod-rscontact-container-119 input,
   #mod-rscontact-container-119 textarea,
   #mod-rscontact-container-119 select {
       border-radius: 8px;
       padding: 0.75rem 1rem;
       width: 100%;
       max-width: 400px;
       margin: 0.5rem 0;
       font-family: 'Encode Sans', sans-serif;
   }
   #mod-rscontact-container-119 .mod-rscontact-post-text {
       margin-top: 0.5rem;
   }
   
   #mod-rscontact-container-119 .contact-icons {
       gap: 0.5rem;
   }
   
   #mod-rscontact-container-119 {
       min-height: 500px;
       display: flex;
       flex-direction: column;
       justify-content: center;
       align-items: center;
       text-align: center;
       width: 100%;
       box-sizing: border-box;
   }
   
   @media (max-width: 768px) {
       #mod-rscontact-container-119 input,
       #mod-rscontact-container-119 textarea,
       #mod-rscontact-container-119 select {
           max-width: 100%;
       }
   }
   
   .main-bottom.card.contact-us,
   .main-bottom.card.contact-us .card-body {
       background: transparent !important;
       box-shadow: none !important;
       border: none !important;
       padding: 0 !important;
   }
   
   .hidden-text {
display: inline;
   }

.hidden-placeholder {
opacity: 0.75;
filter: blur(0.18em);
font-style: italic;
user-select: none;
}
   
   .contact-icon-item:focus-within .hidden-text,
   .contact-icon-item:active .hidden-text {
display: inline;
   }
   
   .contact-icon-item:focus-within .contact-text,
   .contact-icon-item:active .contact-text {
     max-height: 4em;
   }
   
   .contact-icon-item {
     outline: none;
   }
   #mod-rscontact-container-119 input::placeholder,
   #mod-rscontact-container-119 textarea::placeholder {
       color: #000 !important;
       opacity: 1 !important;
       font-weight: normal;
   }
   
   #mod-rscontact-container-119 input[type="text"],
   #mod-rscontact-container-119 input[type="email"],
   #mod-rscontact-container-119 textarea {
       width: 100% !important;
       max-width: 500px !important;
       box-sizing: border-box;
   }
   
   #mod-rscontact-container-119 .controls {
       display: flex;
       flex-direction: column;
       align-items: center;
       gap: 0.5rem;
   }
   
   #mod-rscontact-counter-119 {
       display: none;
   }
   
   #mod-rscontact-container-119 {
       display: flex;
       flex-direction: column;
       align-items: center;
       gap: 0.5rem;
   }
   
   #mod-rscontact-container-119 .control-group {
       margin-bottom: 0;
       width: 100%;
       max-width: 500px;
   }
   
   #mod-rscontact-container-119 .controls {
       margin-bottom: 0.25rem;
       width: 100%;
   }
   
   #mod-rscontact-container-119 input,
   #mod-rscontact-container-119 textarea,
   #mod-rscontact-container-119 .cf-turnstile {
       width: 100%;
       max-width: 500px;
       margin-bottom: 0.25rem;
   }
   
   #mod-rscontact-container-119 textarea {
       margin-bottom: 0.25rem;
   }
   
   #mod-rscontact-container-119 .control-group .checkbox {
       flex-direction: row;
       align-items: flex-start;
       gap: 8px;
       margin-bottom: 0.25rem;
   }
   
   #mod-rscontact-container-119 .control-group .checkbox input[type="checkbox"] {
       width: 20px;
       height: 20px;
       margin-top: 2px;
   }
   
   @media (max-width: 600px) {
       #mod-rscontact-container-119 .contact-icons {
           display: flex;
           flex-wrap: wrap;
           justify-content: center;
           gap: 0.75rem;
       }
   
       #mod-rscontact-container-119 .contact-icon-link,
       #mod-rscontact-container-119 .contact-icon-item {
           display: flex;
           align-items: center;
           white-space: nowrap;
           flex: 0 0 auto;
       }
   }
   .module-image-text.left img {
       border-radius: 8px 0 0 8px;
   }
   
   .module-image-text.right img {
       border-radius: 0 8px 8px 0;
   }
   
   @media (max-width: 768px) {
       .module-image-text {
           flex-direction: column;
           gap: 0;
       }
   
       .module-image-text img {
           width: 100%;
           height: auto;
           border-radius: 12px 12px 0 0 !important;
           object-fit: cover;
           margin-bottom: 1rem;
       }
   
       .module-image-text .module-text {
           width: 100%;
           text-align: center;
       }
   }
   
   #mod-rscontact-email-119-error,
   #mod-rscontact-error-msg-119 {
       background-color: rgba(0, 0, 0, 0.7) !important;
       color: #fff !important;
       padding: 0.5rem 1rem;
       border-radius: 6px;
       margin-top: 0.5rem;
       display: inline-block;
       max-width: 100%;
       font-size: 0.95rem;
       font-family: 'Encode Sans', sans-serif;
   }
   
   @media (max-width: 768px) {
       #language_picker_des_110 + .mod-languages__list {
           display: flex;
           justify-content: center;
           gap: 1rem;
           flex-wrap: wrap;
       }
   
       #language_picker_des_110 + .mod-languages__list li a {
           padding: 0.5rem 1rem;
           font-size: 0.95rem;
       }
   
       #language_picker_des_110 + .mod-languages__list li a img {
           width: 24px;
           height: auto;
           display: inline-block;
       }
   }
   
   #language_picker_des_110 + .mod-languages__list li.lang-active a,
   .mod-languages__list li.lang-active a {
       background-color: rgba(255, 255, 255, 0.2) !important;
       border-radius: 0.5rem !important;
       padding: 0.3rem 0.75rem !important;
       display: inline-flex !important;
       align-items: center !important;
       justify-content: center !important;
       gap: 0.25rem !important;
       text-decoration: none !important;
       color: #fff !important;
       font-weight: 500 !important;
       font-family: 'Encode Sans', sans-serif;
   }
   
   #language_picker_des_110 + .mod-languages__list li.lang-active a img,
   .mod-languages__list li.lang-active a img {
       filter: none !important;
       width: 24px !important;
       height: auto !important;
       display: inline-block !important;
   }
   
   #language_picker_des_110 + .mod-languages__list li.lang-active a .lang-counter,
   .mod-languages__list li.lang-active a .lang-counter {
       color: #fff !important;
       font-weight: 600 !important;
   }
   
   #language_picker_des_110 + .mod-languages__list li a:not(.lang-active):hover,
   .mod-languages__list li a:not(.lang-active):hover {
       background-color: rgba(255, 255, 255, 0.15) !important;
       border-radius: 0.5rem !important;
       text-decoration: none !important;
       color: #fff !important;
   }
   
   /* == Google Maps == */
   .location-wrapper {
       display: flex !important;
       flex-direction: row !important;
       justify-content: space-between;
       align-items: center;
       gap: 2rem;
       width: 100%;
   }
   
   .location-address {
       flex: 0 0 35%;
       max-width: 35%;
       display: flex;
       flex-direction: column;
       justify-content: center;
       align-items: center;
       text-align: center;
   }
   
   .location-map {
       flex: 0 0 60%;
       max-width: 60%;
   }
   
   .location-map iframe {
       width: 100%;
       height: 420px;
       border: 0;
       display: block;
       border-radius: 0 8px 8px 0;
   }
   
   @media (max-width: 768px) {
       .location-wrapper {
           flex-direction: column !important;
           align-items: center;
       }
   
       .location-address,
       .location-map {
           width: 100% !important;
           max-width: none !important;
           flex: 0 0 100%;
       }
   
       .location-map iframe {
           height: 300px;
           border-radius: 0 0 12px 12px !important;
       }
   }
   
   /* Transparent background for card that contains iCal first-page form */
   .card-body:has(.ical-booking-form-first) {
       background: transparent !important;
       box-shadow: none !important;
       border: none !important;
       padding: 0 !important;
       color: #fff !important;
       text-shadow: 0 2px 6px rgba(0,0,0,0.6) !important;
   }
   
   .card:has(.ical-booking-form-first) {
       background: transparent !important;
       box-shadow: none !important;
       border: none !important;
       padding: 0 !important;
   }
   
   .ical-booking-form-first .ical-booking-form-first-row {
       display: flex !important;
       flex-direction: row !important;
       flex-wrap: nowrap !important;
       justify-content: center;
       align-items: center;
       gap: 0.5rem 0.75rem;
   }
   
   .ical-booking-form-first .ical-booking-form-first-row > label,
   .ical-booking-form-first .ical-booking-form-first-row > input,
   .ical-booking-form-first .ical-booking-form-first-row > button {
       flex-shrink: 0;
       font-family: 'Encode Sans', sans-serif;
   }
   
   .ical-booking-form-first .ical-booking-form-first-row button {
       font-family: 'Forum', cursive !important;
       font-weight: 400 !important;
       border-radius: 30px !important;
       background-color: #C1E6B8 !important;
       color: #293425 !important;
       border: none !important;
       padding: 12px 28px;
   }
   
   .ical-booking-form-first .ical-booking-form-first-row button:hover {
       background-color: #293425 !important;
       color: #C1E6B8 !important;
   }
   
   @media (max-width: 768px) {
       .ical-booking-form-first .ical-booking-form-first-row {
           flex-direction: column !important;
           flex-wrap: wrap;
       }
   }
   
   body {
       background-color: lightgray;
   }
   
   /* ==========================
      Guest House section layout
      ========================== */
   
   /* Clip flush images to the card’s rounded corners */
   .main-bottom.card.guest-house-page-section {
       overflow: hidden;
   }
   
   .main-bottom.card.guest-house-page-section h1,
   .main-bottom.card.guest-house-page-section h2,
   .main-bottom.card.guest-house-page-section h3,
   .main-bottom.card.guest-house-page-section h4,
   .main-bottom.card.guest-house-page-section h5,
   .main-bottom.card.guest-house-page-section h6 {
       font-family: 'Forum', cursive;
       font-weight: 400;
   }
   
   .main-bottom.card.guest-house-page-section ol,
   .main-bottom.card.guest-house-page-section ul,
   .main-bottom.card.guest-house-page-section dl {
       margin-bottom: 0;
   }
   
   /* Teaser card: no padding on image edges (vertical + flush side); text column gets its own block padding below — desktop only */
   @media (min-width: 992px) {
       .main-bottom.card.guest-house-page-section > .card-body {
           padding-top: 0;
           padding-bottom: 0;
           padding-left: 0;
           padding-right: 1.25rem !important;
       }
   
       .main-bottom.card.guest-house-page-section > .card-body:has(.mod-articles-image.right.item-image) {
           padding-left: 1.25rem !important;
           padding-right: 0 !important;
       }
   }
   
   /* Remove list chrome so the teaser grid can sit flush to the card top */
   .main-bottom.card.guest-house-page-section > .card-body > ul.mod-articles-items {
       margin: 0;
       padding: 0;
       list-style: none;
   }
   
   .main-bottom.card.guest-house-page-section > .card-body > ul.mod-articles-items > li {
       margin: 0;
       padding: 0;
   }
   
   .main-bottom.card.guest-house-page-section .mod-articles-item {
       margin: 0;
   }
   
   /* Default: image left, text right (when .right is not set on the figure) */
   .main-bottom.card.guest-house-page-section .mod-articles-item-content {
       display: grid;
       grid-template-columns: minmax(160px, 0.82fr) minmax(0, 1.15fr);
       /* Row 1 grows with teaser height so intro can sit vertically centred above readmore */
       grid-template-rows: minmax(0, 1fr) auto;
       column-gap: 1.25rem;
       row-gap: 0.35rem;
       align-items: stretch;
       min-height: clamp(220px, 30vw, 300px);
   }
   
   /* Explicit .right on figure: image on the right, text on the left */
   .main-bottom.card.guest-house-page-section .mod-articles-item-content:has(.mod-articles-image.right.item-image) {
       grid-template-columns: minmax(0, 1.15fr) minmax(160px, 0.82fr);
   }
   
   /* Same image box on every teaser (viewport-based height is identical for all cards at a given width) */
   .main-bottom.card.guest-house-page-section .mod-articles-image.item-image {
       margin: 0;
       min-width: 0;
       width: 100%;
       align-self: start;
       height: clamp(220px, 30vw, 300px);
       overflow: hidden;
   }
   
   .main-bottom.card.guest-house-page-section .mod-articles-image.item-image img {
       width: 100%;
       height: 100%;
       object-fit: cover;
       display: block;
   }
   
   .main-bottom.card.guest-house-page-section .mod-articles-item-content > p:not(.readmore) {
       grid-row: 1;
       grid-column: 2;
       align-self: center;
       padding-top: 0;
       font-size: 0.9375rem;
       line-height: 1.5;
       font-weight: 500;
   }
   
   .main-bottom.card.guest-house-page-section .mod-articles-item-content > p.readmore {
       grid-row: 2;
       grid-column: 2;
       align-self: end;
       padding-bottom: 1.15rem;
   }
   
   /* .right figure: text in column 1 */
   .main-bottom.card.guest-house-page-section .mod-articles-item-content:has(.mod-articles-image.right.item-image) > p:not(.readmore),
   .main-bottom.card.guest-house-page-section .mod-articles-item-content:has(.mod-articles-image.right.item-image) > p.readmore {
       grid-column: 1;
   }
   
   .main-bottom.card.guest-house-page-section .mod-articles-image.right.item-image {
       grid-row: 1 / 3;
       grid-column: 2;
       float: none !important;
       /* Subpixel seam between image column and card edge — pull 1px past the grid track */
       width: calc(100% + 1px);
       margin-right: -1px;
       max-width: none;
   }
   .main-bottom.card.guest-house-page-section .mod-articles-image.right.item-image img {
       border-radius: 0 8px 8px 0;
   }
   
   .main-bottom.card.guest-house-page-section .mod-articles-image.left.item-image {
       grid-row: 1 / 3;
       grid-column: 1;
       float: none !important;
   }
   .main-bottom.card.guest-house-page-section .mod-articles-image.left.item-image img {
       border-radius: 8px 0 0 8px;
   }
   
   /* No .right on figure: image left (default). Add class "right" on figure for image on the right. */
   .main-bottom.card.guest-house-page-section .mod-articles-item-content > .mod-articles-image.item-image:not(.right) {
       grid-row: 1 / 3;
       grid-column: 1;
       float: none !important;
   }
   
   .main-bottom.card.guest-house-page-section .mod-articles-item-content > .mod-articles-image.item-image:not(.right) img {
       border-radius: 8px 0 0 8px;
   }
   
   /* Intro can be <p> or <h3> — text column 2 when image is left (default / .left) */
   .main-bottom.card.guest-house-page-section .mod-articles-item-content > h3 {
       grid-row: 1;
       grid-column: 2;
       align-self: center;
       padding-top: 0;
       margin: 0;
       font-size: clamp(1.05rem, 1.9vw, 1.2rem);
       line-height: 1.35;
   }
   
   .main-bottom.card.guest-house-page-section .mod-articles-item-content:has(.mod-articles-image.right.item-image) > h3 {
       grid-column: 1;
   }
   
   /* Read more — match pill theme (Cassiopeia .btn-secondary is weak on taupe) */
   .main-bottom.card.guest-house-page-section .readmore .btn,
   .main-bottom.card.guest-house-page-section .readmore .btn-secondary {
       font-family: 'Forum', cursive !important;
       font-weight: 400 !important;
       border-radius: 30px !important;
       border: none !important;
       background-color: #C1E6B8 !important;
       color: #293425 !important;
       text-shadow: none !important;
       padding: 0.65rem 1.35rem !important;
       font-size: 0.95rem !important;
       margin-top: 0.35rem;
   }
   
   .main-bottom.card.guest-house-page-section .readmore .btn:hover,
   .main-bottom.card.guest-house-page-section .readmore .btn:focus {
       background-color: #293425 !important;
       color: #C1E6B8 !important;
   }
   
   @media (max-width: 768px) {
       .main-bottom.card.guest-house-page-section .mod-articles-item-content {
           display: block;
       }
   
       .main-bottom.card.guest-house-page-section .mod-articles-image.item-image {
           height: auto;
           aspect-ratio: 16 / 10;
           max-height: 240px;
           border-radius: 8px 8px 0 0;
           overflow: hidden;
       }
   
       /* Override desktop side-radius rules — stacked: round top only (match card 8px), flat bottom into text */
       .main-bottom.card.guest-house-page-section .mod-articles-item-content > .mod-articles-image.item-image img,
       .main-bottom.card.guest-house-page-section .mod-articles-item-content > .mod-articles-image.right.item-image img,
       .main-bottom.card.guest-house-page-section .mod-articles-item-content > .mod-articles-image.left.item-image img,
       .main-bottom.card.guest-house-page-section .mod-articles-item-content > .mod-articles-image.item-image:not(.right) img {
           height: 100%;
           width: 100%;
           object-fit: cover;
           border-radius: 0 !important;
           margin-bottom: 1rem;
       }
   
       .main-bottom.card.guest-house-page-section .mod-articles-item-content > p.readmore {
           margin-top: 0.75rem;
       }
   }
   
   /* --------------------------------------------------------------------------
      Contact: icon row (horizontal on desktop — Encode Sans)
      -------------------------------------------------------------------------- */
   .contact-icons {
       display: flex;
       flex-wrap: wrap;
       justify-content: center;
       gap: 2rem;
       margin-top: 2rem;
       align-items: center;
   }
   
   .contact-icon-link,
   .contact-icon-item {
       display: flex;
       align-items: center;
       gap: 0.75rem;
       text-decoration: none;
       color: #fff;
       font-family: 'Encode Sans', sans-serif;
       font-weight: 500;
       font-size: 1rem;
       transition: transform 0.3s ease, opacity 0.3s ease;
   }
   
   .contact-icon-link:hover {
       transform: translateY(-2px);
       opacity: 0.85;
   }
   
   .contact-icon {
       width: 40px;
       height: 40px;
       object-fit: contain;
       cursor: pointer;
       filter: brightness(0) invert(1);
       display: block;
       margin: 0 auto;
   }
   
   .contact-text {
       text-shadow: 0 2px 6px rgba(0,0,0,0.6);
       color: #fff;
       display: block;
       text-align: center;
       font-family: 'Encode Sans', sans-serif;
       overflow: hidden;
       max-height: 1.2em;
       transition: max-height 0.4s ease, opacity 0.4s ease;
       opacity: 1;
   }
   
   @media (max-width: 768px) {
       .contact-icons {
           gap: 1rem;
       }
       .contact-text {
           font-size: 0.95rem;
       }
   }

   /* ==========================================================================
      Article: directions (map-link, note-winter, bus-links) — Tiny House / guest info
      Links: dark green on light grey / taupe; mint reserved for hovers & dark callout box.
      ========================================================================== */
   
   .com-content-article__body hr.readmore,
   .com-content-article__body hr#system-readmore,
   .moduletable hr.readmore,
   .moduletable hr#system-readmore {
       border: none;
       border-top: 1px dashed rgba(255, 255, 255, 0.45);
       margin: 1.25rem 0 1.75rem;
       background: transparent;
       height: 0;
   }
   
   .com-content-article__body .map-link,
   .moduletable .map-link {
       margin: 0.5rem 0 0.25rem;
   }
   
   .com-content-article__body .map-link a,
   .moduletable .map-link a {
       color: #243524 !important;
       font-weight: 600;
       text-decoration: underline;
       text-underline-offset: 2px;
   }
   
   .com-content-article__body .map-link a:hover,
   .com-content-article__body .map-link a:focus,
   .moduletable .map-link a:hover,
   .moduletable .map-link a:focus {
       color: #0f1f14 !important;
   }
   
   .com-content-article__body .note-winter,
   .moduletable .note-winter {
       background: rgba(41, 52, 37, 0.4);
       border-left: 4px solid #C1E6B8;
       padding: 0.85rem 1rem 1rem;
       margin: 1rem 0;
       border-radius: 0 8px 8px 0;
   }
   
   .com-content-article__body .note-winter p,
   .moduletable .note-winter p {
       margin: 0.5rem 0;
   }
   
   .com-content-article__body .note-winter p:first-child,
   .moduletable .note-winter p:first-child {
       margin-top: 0;
   }
   
   .com-content-article__body .note-winter p:last-child,
   .moduletable .note-winter p:last-child {
       margin-bottom: 0;
   }
   
   .com-content-article__body .note-winter a,
   .moduletable .note-winter a {
       color: #f0fdf4 !important;
       font-weight: 600;
       text-decoration: underline;
       text-underline-offset: 2px;
   }
   
   .com-content-article__body .note-winter a:hover,
   .com-content-article__body .note-winter a:focus,
   .moduletable .note-winter a:hover,
   .moduletable .note-winter a:focus {
       color: #C1E6B8 !important;
   }
   
   .com-content-article__body ul.bus-links,
   .moduletable ul.bus-links {
       margin: 0.5rem 0 0.75rem;
       padding-left: 1.25rem;
   }
   
   .com-content-article__body ul.bus-links li,
   .moduletable ul.bus-links li {
       margin: 0.35rem 0;
   }
   
   .com-content-article__body ul.bus-links a,
   .moduletable ul.bus-links a {
       color: #243524 !important;
       font-weight: 600;
       text-decoration: underline;
       text-underline-offset: 2px;
   }
   
   .com-content-article__body ul.bus-links a:hover,
   .com-content-article__body ul.bus-links a:focus,
   .moduletable ul.bus-links a:hover,
   .moduletable ul.bus-links a:focus {
       color: #0f1f14 !important;
   }
   
   /* Inline links in paragraphs (e.g. Parking B) — same readable green; .note-winter a stays lighter */
   .com-content-article__body p a,
   .moduletable p a {
       color: #243524 !important;
       font-weight: 600;
       text-decoration: underline;
       text-underline-offset: 2px;
   }
   
   .com-content-article__body p a:hover,
   .com-content-article__body p a:focus,
   .moduletable p a:hover,
   .moduletable p a:focus {
       color: #0f1f14 !important;
   }
   
   /* ==========================================================================
      14. Vertical rhythm — space between header sections & content (less cramped)
      ========================================================================== */
   
   .main-bottom.card.header-section + .main-bottom.card.header-section,
   .main-bottom.card.header-section + .main-bottom.card.header-section-top,
   .main-bottom.card.header-section + .main-bottom.card.header-section-bottom,
   .main-bottom.card.header-section-top + .main-bottom.card.header-section,
   .main-bottom.card.header-section-top + .main-bottom.card.header-section-top,
   .main-bottom.card.header-section-top + .main-bottom.card.header-section-bottom,
   .main-bottom.card.header-section-bottom + .main-bottom.card.header-section,
   .main-bottom.card.header-section-bottom + .main-bottom.card.header-section-top,
   .header-section + .header-section,
   .header-section + .header-section-top,
   .header-section + .header-section-bottom,
   .header-section-top + .header-section,
   .header-section-top + .header-section-top,
   .header-section-top + .header-section-bottom,
   .header-section-bottom + .header-section,
   .header-section-bottom + .header-section-top {
       margin-top: 1.5rem;
   }
   
   .main-top.card:not(.header-section):not(.header-section-top):not(.header-section-bottom),
   .main-bottom.card:not(.header-section):not(.header-section-top):not(.header-section-bottom):not(.contact-us) {
       margin-bottom: 2rem;
   }
   
   .site-grid .main-top.card:last-child,
   .site-grid .main-bottom.card:last-child,
   .blog-items .blog-item:last-child .main-bottom.card {
       margin-bottom: 0;
   }
   
   @media (min-width: 992px) {
       .main-top.card:not(.header-section):not(.header-section-top):not(.header-section-bottom) > .card-body,
       .main-bottom.card:not(.header-section):not(.header-section-top):not(.header-section-bottom):not(.contact-us):not(.guest-house-page-section) > .card-body {
           padding: .75rem !important;
       }
       /* Google Reviews: flush to top of card only; keep side/bottom padding like other cards */
       .main-top.card:not(.header-section):not(.header-section-top):not(.header-section-bottom) > .card-body:has(.gr-wrapper),
       .main-bottom.card:not(.header-section):not(.header-section-top):not(.header-section-bottom):not(.contact-us):not(.guest-house-page-section) > .card-body:has(.gr-wrapper) {
           padding-top: 0 !important;
           padding-left: 0.75rem !important;
           padding-right: 0.75rem !important;
           padding-bottom: 0.75rem !important;
       }
   }
   
   .moduletable:not(:last-child) {
       margin-bottom: 2rem;
   }
   
   .module-image-text .module-text {
       padding: 1.25rem 1.5rem !important;
   }
   
   /* Single article: intro + full article image (figure.item-image beside text, class from Image Class field) */
   .com-content-article.item-page {
       display: flow-root;
   }
   
   .com-content-article.item-page > figure.item-image {
       max-width: min(100%, 30rem);
       width: auto;
       margin-top: 0;
       margin-bottom: 1rem;
   }
   
   .com-content-article.item-page > figure.item-image.left {
       float: left;
       margin-right: 1.25rem;
   }
   
   .com-content-article.item-page > figure.item-image.right {
       float: right;
       margin-left: 1.25rem;
   }
   
   .com-content-article.item-page > figure.item-image img {
       max-width: 100%;
       width: auto;
       height: auto;
       display: block;
       border-radius: 8px;
   }
   
   .com-content-article__body {
       padding-top: 0.25rem;
       padding-bottom: 0.5rem;
   }
   
   .com-content-article__body h2 {
       margin-top: 1.85rem;
       margin-bottom: 0.75rem;
   }
   
   .com-content-article__body h2:first-child {
       margin-top: 0;
   }
   
   .com-content-article__body p {
       margin-bottom: 1rem;
   }
   
   .com-content-article__body p:last-child {
       margin-bottom: 0;
   }
   
   .com-content-article__body .note-winter {
       margin: 1.25rem 0 1.5rem;
   }
   
   .com-content-article__body hr.readmore,
   .com-content-article__body hr#system-readmore {
       margin: 1.75rem 0 2rem;
   }
   
   @media (max-width: 768px) {
       /* Hero text blocks only — keep side padding for readability */
       .header-section:not(.header-section-bottom),
       .header-section-top {
           min-height: 220px;
           padding: 2rem 1.25rem 2.5rem;
           margin-bottom: 1.5rem;
       }
   
       /* Intro nav pills: section had 1.25rem + grid 0.75rem — too narrow; flush buttons to edges */
       .main-bottom.card.header-section-bottom {
           min-height: 0;
           padding-left: max(0.35rem, env(safe-area-inset-left, 0px)) !important;
           padding-right: max(0.35rem, env(safe-area-inset-right, 0px)) !important;
           padding-top: 0.75rem !important;
           padding-bottom: 1.25rem !important;
           margin-bottom: 1rem !important;
           box-sizing: border-box;
       }
   
       .main-bottom.card.header-section-bottom .card-body,
       .main-bottom.card.header-section-bottom .mod-custom {
           width: 100%;
           max-width: none;
       }
   
       .site-grid > .grid-child.container-component {
           padding-left: max(0.5rem, env(safe-area-inset-left, 0px)) !important;
           padding-right: max(0.5rem, env(safe-area-inset-right, 0px)) !important;
       }
   
       .com-content-article.item-page > figure.item-image {
           float: none !important;
           max-width: 100%;
           margin-left: 0 !important;
           margin-right: 0 !important;
       }
   }

/* Anchor-only custom modules: keep scroll target, hide card chrome */
.main-bottom.card:has(> .card-body > .mod-custom.custom > [id$="_anchor"]) {
      background: transparent !important;
      box-shadow: none !important;
      border: 0 !important;
      margin: 0 !important;
      min-height: 0 !important;
}

.main-bottom.card:has(> .card-body > .mod-custom.custom > [id$="_anchor"]) > .card-body {
      padding: 0 !important;
      min-height: 0 !important;
}

.main-bottom.card:has(> .card-body > .mod-custom.custom > [id$="_anchor"]) .mod-custom.custom {
      margin: 0 !important;
      padding: 0 !important;
      min-height: 0 !important;
}

/* ==========================================================================
   About Pages: Text Card With Right Image
   ========================================================================== */
/* `itemid-103` = `/pl/o-nas`, `itemid-102` = `/en/about-us` */
body.itemid-102 .com-content-article.item-page > figure.item-image,
body.itemid-103 .com-content-article.item-page > figure.item-image {
      display: none;
}

body.itemid-102 .home-overlay,
body.itemid-103 .home-overlay {
      max-width: min(96vw, 62rem);
      text-align: left;
      transform: translateY(-1.5rem);
      display: grid;
      grid-template-columns: minmax(0, 1.2fr) minmax(220px, 0.8fr);
      gap: 1.5rem;
      align-items: center;
}

body.itemid-102 .home-overlay p,
body.itemid-103 .home-overlay p {
      margin: 0;
      color: inherit;
      font-size: clamp(1.1rem, 1rem + 0.6vw, 1.45rem);
      line-height: 1.75;
      letter-spacing: 0.03em;
      text-shadow: 0 2px 14px rgba(0, 0, 0, 0.4);
}

body.itemid-102 .home-overlay::after,
body.itemid-103 .home-overlay::after {
      content: "";
      display: block;
      width: 100%;
      aspect-ratio: 3 / 4;
      border-radius: 18px;
      background: url("/images/about_us.jpeg") center / cover no-repeat;
      box-shadow: 0 10px 26px rgba(0, 0, 0, 0.22);
      border: 1px solid rgba(255, 255, 255, 0.14);
}

@media (max-width: 768px) {
      body.itemid-102 .com-content-article__body,
      body.itemid-103 .com-content-article__body {
          justify-content: flex-start !important;
          padding: 4.5rem 0.85rem 1.5rem;
      }

      body.itemid-102 .home-overlay,
      body.itemid-103 .home-overlay {
          max-width: min(94vw, 32rem);
          transform: none;
          grid-template-columns: 1fr;
          text-align: center;
      }

      body.itemid-102 .home-overlay p,
      body.itemid-103 .home-overlay p {
          font-size: 1rem;
      }

      body.itemid-102 .home-overlay::after,
      body.itemid-103 .home-overlay::after {
          order: -1;
          max-width: min(100%, 18rem);
          margin: 0 auto 0.35rem;
      }
}

/* Booking rules text — white with drop shadow to match site style */
.ical-booking-info.ical-booking-rules,
.ical-booking-info.ical-booking-rules h3,
.ical-booking-info.ical-booking-rules p,
.ical-booking-info.ical-booking-rules li {
    color: #ffffff !important;
    text-shadow: 0 2px 6px rgba(0, 0, 0, 0.6) !important;
}

/* Frontend module edit form: hide all fields */
#modules-form .control-group,
#modules-form #options,
#modules-form hr {
    display: none;
}

/* Frontend article edit form: hide Options/Publishing tabs, title/alias, and URL fields */
button[aria-controls="options"],
button[aria-controls="publishing"],
joomla-tab-element#options,
joomla-tab-element#publishing,
.field-title,
.field-alias,
.field-urla,
.field-urlatext,
.field-urlb,
.field-urlbtext,
.field-urlc,
.field-urlctext,
.control-group:has(#jform_urls_targeta),
.control-group:has(#jform_urls_targetb),
.control-group:has(#jform_urls_targetc) {
    display: none !important;
}
