/* Public pages share the visual language established on News. */
body.front-page {
    --front-green: #184f3b;
    --front-ink: #233d31;
    --front-muted: #617064;
    --front-line: #e4e8df;
    --front-gold: #ba954b;
    --front-sage: #f0f2e9;
    --front-paper: #fafbf8;
    min-height: 100vh;
    height: auto;
    background: var(--front-paper);
    color: var(--front-ink);
    font-family: 'Open Sans', sans-serif;
    font-size: 14px;
    line-height: 1.8;
    scrollbar-color: #9eac9a var(--front-paper);
}
.front-page ::selection { background: #dce6cd; color: #153e30; }
.front-page [hidden] { display: none !important; }
.front-page :is(input, textarea) { caret-color: var(--front-green); }
.front-page :is(a, button, input, select, textarea, summary):focus-visible { outline: 3px solid var(--front-gold); outline-offset: 4px; }
.front-page a { color: var(--front-green); text-underline-offset: 4px; }
.front-page h1, .front-page h2, .front-page h3 { text-wrap: balance; }
.front-page .front-skip-link { position: fixed; left: 20px; top: -100px; z-index: 10000; padding: 10px 20px; background: white; border-radius: 6px; }
.front-page .front-skip-link:focus { top: 12px; }
.front-page #header { height: 96px; padding: 0; background: #153e30 !important; box-shadow: none; }
.front-page #header > .container-fluid { max-width: 1280px; height: 100%; padding: 0 32px !important; }
.front-page #nav-logo { position: static !important; width: 62px !important; flex: 0 0 62px; padding: 0; }
.front-page #nav-logo .wrapper { display: block; padding: 0; margin: 0; overflow: visible; }
.front-page #nav-logo img { width: 62px; height: 62px; object-fit: contain; }
.front-page #nav-text { transform: none; margin-left: 16px !important; padding: 0; letter-spacing: 0; }
.front-page #nav-text .title { max-width: 290px; font: 600 14px/1.5 'Open Sans', sans-serif; letter-spacing: .1px; }
.front-page #nav-text .subtitle { font-size: 10px !important; color: #c8d8c9; }
.front-page #navbar { padding: 0; flex-shrink: 0; }
.front-page #navbar:not(.navbar-mobile) a { padding-left: 19px; font-size: 13px; font-weight: 500; }
.front-page #navbar:not(.navbar-mobile) > ul > li > a { color: white; }
.front-page #navbar:not(.navbar-mobile) > ul > li > a:is(.active, :hover, :focus-visible) { color: #efd497; }
.front-page #navbar .dropdown ul a { color: var(--front-green); }
.front-page #navbar .active, .front-page #navbar > ul > li > a:hover { color: #efd497; }
.front-page #navbar.navbar-mobile { background: #153e30f5; position: fixed; }
.front-page #navbar.navbar-mobile a { color: var(--front-green); }
.front-page #navbar.navbar-mobile .active { color: #886020; }
.front-page #navbar .mobile-nav-toggle { font-size: 28px; border: 0; padding: 10px; background: transparent; min-width: 44px; min-height: 44px; }
.front-page #navbar .dropdown:focus-within > ul { opacity: 1; visibility: visible; top: 100%; }
.front-page #navbar .dropdown ul { border-radius: 8px; }
.front-main { padding-top: 96px; }
.front-container { max-width: 1200px; padding-left: 28px; padding-right: 28px; }
.front-masthead { background: var(--front-sage); border-bottom: 1px solid #e1e5d9; padding: 27px 0 33px; }
.front-breadcrumb { background: transparent; padding: 0; margin: 0 0 23px; font-size: 11px; }
.front-breadcrumb a, .front-breadcrumb .breadcrumb-item.active { color: var(--front-muted); text-decoration: none; }
.front-breadcrumb .breadcrumb-item + .breadcrumb-item::before { color: #798674; content: '/'; }
.front-masthead-inner { display: flex; align-items: end; justify-content: space-between; gap: 30px; }
.front-masthead h1 { color: var(--front-green); font: 600 clamp(30px, 3vw, 37px)/1.2 'Jost', sans-serif; letter-spacing: -.025em; margin: 0; }
.front-masthead h1 > span { color: var(--front-gold); }
.front-masthead-inner > p { max-width: 330px; margin: 0 0 3px; color: var(--front-muted); text-align: right; font-size: 12px; line-height: 1.8; }
.front-section { padding: 48px 0 70px; }
.front-section h2, .front-heading { font: 500 29px/1.3 'Jost', sans-serif; color: var(--front-ink); margin: 0 0 20px; letter-spacing: -.02em; }
.front-section p { color: var(--front-muted); }
.front-panel { background: white; border: 1px solid var(--front-line); border-radius: 12px; padding: 32px; }
.front-page .btn { font-size: 13px; font-weight: 600; border-radius: 6px; min-height: 44px; padding: 10px 20px; line-height: 1.65; }
.front-page .btn-success { background: var(--front-green); border-color: var(--front-green); color: white; }
.front-page .btn-success:hover { background: #103c2c; border-color: #103c2c; }
.front-page :is(.btn-outline-success, .btn-white) { background: transparent; color: var(--front-green); border: 1px solid #ccd7c6; }
.front-page :is(.btn-outline-success, .btn-white):hover { background: #edf2e7; border-color: #90a580; }
.front-page .btn:disabled { opacity: .55; cursor: not-allowed; }
.front-page .form-label { color: var(--front-ink); font-size: 13px; font-weight: 600; margin-bottom: 8px; }
.front-page :is(.form-control, .form-select) { min-height: 47px; background-color: white; border: 1px solid #cbd5c7; border-radius: 6px; color: var(--front-ink); font: 400 14px/1.6 'Open Sans', sans-serif; padding: 11px 13px; }
.front-page :is(.form-control, .form-select):focus { border-color: #67885c; box-shadow: 0 0 0 3px #e6eddf; }
.front-page .form-control::placeholder { color: #6c786c; opacity: 1; }
.front-page .form-check-input:checked { background-color: var(--front-green); border-color: var(--front-green); }
.front-page .invalid-feedback { font-size: 12px; }
.front-page .alert { border-radius: 6px; font-size: 13px; }
.front-page .alert ul { margin-bottom: 0; }
.front-intro { max-width: 75ch; margin-bottom: 32px; }
.front-details { border-top: 1px solid var(--front-line); margin-top: 28px; padding-top: 20px; color: var(--front-muted); font-size: 13px; }
.front-details summary { color: var(--front-green); cursor: pointer; font-weight: 600; padding: 5px 0; }
.front-details[open] summary { margin-bottom: 18px; }
.front-details h3 { font: 500 20px/1.4 'Jost', sans-serif; margin: 25px 0 10px; color: var(--front-ink); }
.front-details p { margin-bottom: 16px; }
.front-note { background: var(--front-sage); padding: 28px; border-radius: 12px; }
.front-note img { width: 58px; height: 58px; object-fit: contain; margin-bottom: 22px; }
.front-note h2 { font: 400 29px/1.25 Georgia, serif; margin-bottom: 18px; }
.front-note p { font-size: 13px; line-height: 1.9; }
.front-note a { font-size: 13px; }
.front-form-heading { padding-bottom: 23px; margin-bottom: 26px; border-bottom: 1px solid var(--front-line); }
.front-form-heading h2 { font: 400 28px/1.3 Georgia, serif; margin: 0 0 8px; }
.front-form-heading p { font-size: 12px; margin: 0; }
.front-form .row { --bs-gutter-x: 20px; --bs-gutter-y: 22px; }
.front-form .front-form-actions { border-top: 1px solid var(--front-line); margin-top: 28px; padding-top: 25px; }
.front-form .form-check { margin-bottom: 12px; }
.front-form .form-check-label { font-size: 12px; color: var(--front-muted); }
.front-fieldset { border: 0; padding: 0; margin: 0 0 30px; }
.front-fieldset legend { font: 500 19px/1.4 'Jost', sans-serif; float: none; margin-bottom: 18px; color: var(--front-green); }
.front-amount { position: relative; }
.front-amount > span { position: absolute; top: 11px; left: 15px; color: var(--front-muted); }
.front-amount input { padding-left: 36px !important; font-variant-numeric: tabular-nums; }
.front-form small, .front-form-help { display: block; font-size: 12px; color: var(--front-muted); margin: 8px 0 0; }
.front-about-layout { display: grid; grid-template-columns: minmax(0, 1fr) minmax(250px, .48fr); gap: 56px; align-items: start; }
.front-about-copy p { font-size: 15px; line-height: 1.95; margin-bottom: 23px; }
.front-objectives { padding-top: 35px; margin-top: 35px; border-top: 1px solid var(--front-line); }
.front-objectives ul { padding: 0; list-style: none; }
.front-objectives li { display: flex; gap: 14px; padding: 15px 0; border-bottom: 1px solid var(--front-line); color: var(--front-muted); font-size: 14px; line-height: 1.8; }
.front-objectives li i { color: #7d8c62; font-size: 18px; }
.front-directors { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 35px 26px; }
.front-director { min-width: 0; }
.front-director > a { display: block; border-radius: 12px; overflow: hidden; background: var(--front-sage); aspect-ratio: 3 / 4; }
.front-director img { display: block; width: 100%; height: 100%; object-fit: cover; }
.front-director h2 { font: 600 16px/1.5 'Jost', sans-serif; margin: 16px 0 3px; }
.front-director p { font-size: 12px; margin: 0; }
.front-home { --home-header-height: 96px; }
.front-home #main > section { min-block-size: calc(100vh - var(--home-header-height)); min-block-size: calc(100svh - var(--home-header-height)); display: flex; align-items: center; padding: clamp(24px, 4svh, 56px) 0; scroll-margin-top: var(--home-header-height); }
.front-home #main > section > .container { width: 100%; }
.front-home #hero { height: auto; background: var(--front-sage); }
.front-home #hero .container { padding-top: 0; }
.front-home #hero .carousel-item > .row { min-height: clamp(260px, 45svh, 410px); align-items: center; padding: 0 !important; --bs-gutter-x: 70px; }
.front-home #hero :is(h1, h2) { color: var(--front-green) !important; }
.front-home #hero :is(h1, .front-slide-title) { font: 400 clamp(34px, 3.4vw, 48px)/1.2 Georgia, serif; letter-spacing: -.025em; margin-bottom: 22px; max-width: 520px; }
.front-home #hero .front-slide-subtitle { font: 400 16px/1.6 'Open Sans', sans-serif; margin-bottom: 25px; }
.front-home #hero .hero-img img { display: block; width: auto !important; height: auto; max-width: 100%; max-height: clamp(180px, calc(100svh - var(--home-header-height) - 180px), 390px); margin-inline: auto; object-fit: contain; animation: none; }
.front-home .front-carousel-controls { display: flex; align-items: center; justify-content: space-between; margin-top: 28px; border-top: 1px solid #dce2d3; padding-top: 18px; }
.front-home .front-carousel-controls > a { font-size: 12px; text-decoration: none; }
.front-home .front-carousel-controls .btn { padding: 7px 14px; }
.front-home #cta { padding: 0; background: white; }
.front-home #cta img { display: block; max-width: 1200px; margin: auto; }
.front-home :is(#about, #services, #membership, #news) { background: var(--front-paper); }
.front-home #services { background: #edf1e5; }
.front-home .section-title { text-align: left; padding-bottom: 26px; }
.front-home .section-title h2 { font: 500 30px/1.3 'Jost', sans-serif; text-transform: none; color: var(--front-green) !important; margin: 0 0 14px; padding: 0; }
.front-home .section-title h2::before, .front-home .section-title h2::after { display: none; }
.front-home .section-title p { color: var(--front-muted) !important; font-size: 14px; line-height: 1.9; max-width: 80ch; }
.front-home #about .content { display: flex; justify-content: space-between; align-items: end; gap: 30px; margin: 0; }
.front-home #about .content > p { flex: 1; max-width: 76ch; color: var(--front-muted) !important; font-size: 15px !important; line-height: 1.85; text-align: left; padding: 0; }
.front-home #about .content > div { flex: 0 0 auto; width: auto; padding: 0; margin: 0 !important; }
.front-home .services .icon-box { width: 100%; background: transparent; box-shadow: none; padding: 18px 23px 20px 0; border-top: 1px solid #c9d4be; border-radius: 0; transform: none; }
.front-home .services .icon-box .icon { margin-bottom: 15px; }
.front-home .services .icon-box .icon i { color: #6c805a; font-size: 29px; }
.front-home .services .icon-box h4 { font: 500 21px/1.35 'Jost', sans-serif; }
.front-home .services .icon-box h4 a { color: var(--front-green); }
.front-home .services .icon-box p { color: var(--front-muted); font-size: 13px; line-height: 1.8; }
.front-home-services { --bs-gutter-y: 20px; }
.front-home-fees { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 20px; }
.front-home .pricing .box { display: flex; flex-direction: column; background: white; border: 1px solid var(--front-line); padding: clamp(16px, 2vw, 27px); border-radius: 12px; box-shadow: none; height: 100%; margin: 0; }
.front-home .pricing .box h3 { font: 500 21px/1.4 'Jost', sans-serif; color: var(--front-ink); min-height: 2.8em; margin: 0; overflow-wrap: anywhere; }
.front-home .pricing .front-fee-price { font: 400 35px/1.3 Georgia, serif; color: var(--front-green); font-variant-numeric: tabular-nums; margin: 16px 0 25px; }
.front-home .pricing .front-fee-price sup { font-size: 19px; }
.front-home .pricing .buy-btn { color: var(--front-green); border: 1px solid #ccd7c6; background: transparent; }
.front-fee-details { margin-top: 24px; color: var(--front-muted); font-size: 13px; }
.front-fee-details summary { width: fit-content; min-height: 44px; padding: 10px 0; color: var(--front-green); cursor: pointer; }
.front-fee-details p { max-width: 80ch; margin: 12px 0 0; }
.front-home #news { border-top: 1px solid var(--front-line); }
.front-home .front-home-stories { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 28px; }
.front-home .front-story { min-width: 0; border-top: 1px solid #cfd9c7; padding-top: 22px; }
.front-home .front-story h3 { overflow-wrap: anywhere; }
.front-home .front-story-image { aspect-ratio: 16 / 9; max-height: clamp(140px, 22svh, 220px); }
.front-story-image { display: block; position: relative; width: 100%; aspect-ratio: 16 / 10; border-radius: 12px; background: var(--front-sage); overflow: hidden; margin-bottom: 20px; }
.front-story-image img { width: 100%; height: 100%; object-fit: cover; position: relative; }
.front-story-image > i { position: absolute; inset: 0; display: grid; place-items: center; font-size: 32px; color: #859772; }
.front-story time { color: var(--front-muted); font-size: 11px; }
.front-story h3 { font: 400 25px/1.35 Georgia, serif; margin: 12px 0 14px; }
.front-story h3 a { color: var(--front-ink); text-decoration: none; }
.front-story p { font-size: 13px; color: var(--front-muted); }
.front-story > a:last-child { font-size: 12px; }
.front-facility-container, .front-facility-page .front-masthead .front-container { max-width: 1600px; padding-left: clamp(20px, 3vw, 48px); padding-right: clamp(20px, 3vw, 48px); }
.front-page .front-facility { padding: 40px 0 65px !important; background: transparent !important; height: auto; }
.front-facility > .row:first-child { max-width: 800px; width: auto !important; margin: 0 0 35px !important; padding: 0 !important; text-align: left !important; }
.front-facility > .row:first-child :is(h2, span, p) { text-align: left !important; padding-left: 0 !important; padding-right: 0 !important; }
.front-facility > .row:first-child h2 { font: 400 29px/1.3 Georgia, serif !important; color: var(--front-green) !important; margin-bottom: 16px; }
.front-facility > .row:first-child :is(span, p) { font-size: 14px !important; line-height: 1.9; color: var(--front-muted); }
.front-facility > .row { margin-left: 0 !important; margin-right: 0 !important; padding: 0 !important; }
.front-facility > .row > .col-lg-12 { padding: 0; }
.front-facility .product-detail { margin-bottom: 30px; }
.front-facility .product-detail > .ibox-content { border: 1px solid var(--front-line) !important; border-radius: 12px; background: white; padding: 28px; }
.front-facility .product-detail h3 { font: 400 27px/1.3 Georgia, serif; margin: 0 0 24px; color: var(--front-green); }
.front-facility .product-images { min-width: 0; margin: 0 0 24px; }
.front-facility .product-images .slick-dots { position: static; margin: 12px 0 0; }
.front-venue-info { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr); align-items: start; gap: 32px; }
.front-venue-info > p { max-width: 75ch; }
.front-venue-info > .btn-group { justify-content: end; margin-top: 0; }
.front-facility .product-detail .small { font-size: 14px !important; line-height: 1.9; color: var(--front-muted) !important; }
.front-facility hr { border-color: var(--front-line); opacity: 1; margin: 18px 0; }
.front-facility .btn-group { gap: 8px; margin-top: 6px; }
.front-facility .btn-group .btn { flex: 0 1 auto; border-radius: 6px !important; margin: 0 !important; font-size: 11px; padding: 9px 12px; }
.front-facility .btn.bg-green-grad { background: var(--front-green) !important; border-color: var(--front-green); }
.front-facility .btn.bg-green-grad:hover { background: #103c2c !important; }
.front-facility .image-imitation { background: var(--front-sage); padding: 0; min-height: 0; }
.front-facility .image-imitation img { display: block; width: 100%; height: auto; aspect-ratio: 16 / 9; object-fit: contain; border-radius: 8px; }
.front-facility .slick-dots li button::before { color: var(--front-green); }
.front-facility .slick-prev { left: 10px; z-index: 1; }
.front-facility .slick-next { right: 10px; }
.front-facility .slick-arrow { width: 44px; height: 44px; border-radius: 50%; background: #153e30e6; }
.front-facility .slick-arrow:is(:hover, :focus) { background: var(--front-green); }
.front-facility .slick-arrow::before { color: white !important; opacity: 1; }
.front-facility .tabs-container, .front-facility .tabs-left { padding: 0; width: 100%; }
.front-facility .tabs-left > .nav-tabs { float: none; width: 100%; margin: 0 0 25px; padding: 0; display: flex; flex-wrap: wrap; gap: 6px; border: 0; }
.front-facility .tabs-left .nav-tabs > li { float: none; width: auto; margin: 0; }
.front-facility .tabs-left .nav-tabs > li > a { border: 1px solid var(--front-line); border-radius: 6px; background: white; color: var(--front-green); font-size: 12px; padding: 10px 16px; min-height: 44px; margin: 0; }
.front-facility .tabs-left .nav-tabs > li > a.active { background: var(--front-green); color: white; border-color: var(--front-green); }
.front-facility .tabs-left .tab-content { margin-left: 0; width: 100%; }
.front-facility .tabs-container .panel-body { width: 100%; padding: 28px !important; border: 1px solid var(--front-line) !important; border-radius: 12px; background: white; box-shadow: none !important; margin: 0; }
.front-facility .tab-pane .ibox { width: 100%; border: 0; box-shadow: none !important; margin: 0; }
.front-facility .tab-pane .ibox-title { background: transparent !important; border: 0; color: var(--front-green); padding: 0 0 20px; min-height: 0; display: flex; align-items: start; justify-content: space-between; gap: 16px; }
.front-facility .tab-pane .ibox-title h5 { font: 400 25px/1.4 Georgia, serif !important; margin: 0; float: none; }
.front-facility .tab-pane .ibox-title h5 strong { font-weight: 400; }
.front-facility .ibox-tools { position: static; flex-shrink: 0; }
.front-facility .tab-pane .ibox-content { padding: 0; border: 0; }
.front-facility .tab-pane .carousel img { height: auto; aspect-ratio: 16 / 9; object-fit: contain; }
.front-facility .tab-pane .carousel { border-radius: 8px; overflow: hidden; margin-bottom: 16px; }
.front-facility .tab-pane .carousel-caption { display: none !important; }
.front-facility .tab-pane .row { row-gap: 24px; }
.front-room-gallery, .front-room-information { width: 100%; min-width: 0; }
.front-room-details { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px 32px; background: var(--front-sage); border-radius: 8px; padding: 26px; color: var(--front-muted); font-size: 13px; line-height: 1.8; }
.front-room-detail:first-child { grid-column: 1 / -1; max-width: 75ch; }
.front-room-detail p { margin-bottom: 12px !important; }
.front-room-detail p:last-child { margin-bottom: 0 !important; }
.front-room-detail > strong { display: block; color: var(--front-ink); margin-bottom: 12px; }
.front-facility .tab-pane .bg-green-150 { background: var(--front-sage) !important; color: var(--front-muted) !important; font-size: 13px !important; line-height: 1.8; border-radius: 8px; margin: 0; }
.front-facility .tab-pane .bg-green-150 p { margin-bottom: 13px !important; }
.front-facility .tab-pane .bg-green-150 br { display: none; }
.front-facility .tab-pane .card { border: 0; background: transparent; }
.front-page .modal-content { border: 0; border-radius: 12px; background: var(--front-paper); color: var(--front-ink); box-shadow: 0 18px 60px #12281e33; }
.front-page .modal-content.animated { animation: none; }
.front-page .modal-header { background: var(--front-sage); padding: 22px 26px; border-bottom: 1px solid var(--front-line); text-align: left !important; gap: 12px; }
.front-page .modal-header h4 { margin: 0; color: var(--front-green); font-size: 23px !important; }
.front-page .modal-header small { font: 500 20px/1.4 'Jost', sans-serif !important; }
.front-page .modal-body { padding: 26px; font-size: 14px; line-height: 1.8; }
.front-page .modal-body .fs-3 { font-size: 19px !important; }
.front-page .modal-body .fs-4 { font-size: 14px !important; }
.front-page .modal-footer { border-color: var(--front-line); }
.front-login-layout { display: grid; grid-template-columns: .85fr 1fr; gap: 80px; max-width: 920px; margin: 0 auto; align-items: center; }
.front-login-aside h2 { font: 400 37px/1.3 Georgia, serif; margin: 0 0 22px; }
.front-login-aside img { display: block; width: 85px; height: 85px; margin-bottom: 30px; }
.front-login-aside p { line-height: 1.9; font-size: 14px; max-width: 35ch; }
.front-login-form { padding: 36px; }
.front-login-form .front-form-heading h2 { font-size: 29px; }
.front-login-form .front-form-help { margin-top: 24px; }
.front-page #footer .footer-top { background: #173f30; padding-top: 48px; padding-bottom: 30px; }
.front-page #footer .footer-top > .container-fluid { max-width: 1280px; }
.front-page #footer .footer-top .row { row-gap: 24px; }
.front-page #footer .footer-bottom { background: #113124; }
.front-page #footer .footer-contact h3 { font-size: 17px; line-height: 1.6; }
.front-page #footer .footer-contact p, .front-page #footer .footer-links a, .front-page #footer .copyright { font-size: 11px; line-height: 1.9; }
.front-page #footer .footer-links h4 { font-size: 13px; }
.front-page #footer .social-links a { color: white; background: #2d5943; }
@media (min-width: 1200px) {
    .front-page #navbar:not(.navbar-mobile) > ul { display: flex; }
    .front-page #navbar:not(.navbar-mobile) > .mobile-nav-toggle { display: none; }
}
@media (max-width: 1199px) {
    .front-home { --home-header-height: 86px; }
    .front-page #navbar:not(.navbar-mobile) > ul { display: none; }
    .front-page #navbar > .mobile-nav-toggle { display: block; }
    .front-page #header { height: 86px; }
    .front-main { padding-top: 86px; }
    .front-page #nav-text .title { max-width: none; font-size: 13px; }
    .front-facility .tab-pane .row { row-gap: 25px; }
    .front-home #about .content { align-items: start; flex-direction: column; }
}
@media (max-width: 991px) {
    .front-venue-info { grid-template-columns: minmax(0, 1fr); gap: 20px; }
    .front-venue-info > .btn-group { justify-content: start; }
    .front-masthead-inner { align-items: start; flex-direction: column; gap: 14px; }
    .front-masthead-inner > p { text-align: left; max-width: 60ch; }
    .front-section { padding: 32px 0 50px; }
    .front-about-layout { gap: 30px; grid-template-columns: minmax(0, 1fr); }
    .front-about-layout aside { max-width: 100%; }
    .front-directors { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .front-login-layout { gap: 40px; }
    .front-home #hero .carousel-item > .row { --bs-gutter-x: 30px; min-height: 0; }
    .front-home #hero .hero-img img { max-height: 300px; }
    .front-home #hero .hero-img { padding: 0 12px 24px !important; }
    .front-home #hero .carousel-item .row > div { text-align: left; }
    .front-home #hero .carousel-item .row > div > div { justify-content: start !important; }
    .front-home .front-home-stories { gap: 22px; }
    .front-home-fees { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .front-page #footer .footer-top .row > .col { flex: 0 0 50%; width: 50%; min-width: 0; }
    .front-page #footer .footer-top .row > .col:first-child { flex-basis: 100%; width: 100%; }
    .front-page #footer iframe { width: 100%; max-width: 240px; }
}
@media (max-width: 767px) {
    .front-directors { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 26px 18px; }
    .front-login-layout { display: flex; flex-direction: column; align-items: stretch; max-width: 480px; gap: 30px; }
    .front-login-form { order: -1; }
    .front-login-aside { margin: 0; }
    .front-login-aside img { display: none; }
    .front-login-aside h2 { font-size: 28px; margin-bottom: 14px; }
    .front-login-aside p { max-width: none; }
    .front-home .front-home-stories { grid-template-columns: 1fr; gap: 18px; }
    .front-home .front-story { display: grid; grid-template-columns: 84px minmax(0, 1fr); column-gap: 16px; padding-top: 16px; }
    .front-home .front-story-image { grid-column: 1; grid-row: 1 / 3; aspect-ratio: 1; margin: 0; align-self: start; }
    .front-home .front-story time, .front-home .front-story h3, .front-home .front-story > a:last-child { grid-column: 2; }
    .front-home .front-story h3 { font-size: 19px; margin: 6px 0 10px; }
    .front-home .front-story h3 a { display: block; min-height: 44px; color: var(--front-green); }
    .front-home .front-story h3 a:is(:hover, :focus-visible) { text-decoration: underline; }
    .front-home .front-story > p { display: none; }
    .front-home .front-story > a:last-child { display: none; }
    .front-home .services .icon-box { padding: 16px 0; }
    .front-home .services .icon-box .icon { margin-bottom: 8px; }
    .front-home .services .icon-box h4 { font-size: 18px; margin-bottom: 8px; }
    .front-home .services .icon-box h4 a { display: inline-flex; align-items: center; min-height: 44px; }
    .front-home .services .icon-box p { line-height: 1.7; margin: 0; }
    .front-facility .product-detail > .ibox-content { padding: 20px; }
    .front-room-details { grid-template-columns: minmax(0, 1fr); padding: 20px; }
    .front-facility .tabs-container .panel-body { padding: 20px !important; }
    .front-facility .tab-pane .ibox-title { flex-direction: column; }
}
@media (max-width: 575px) {
    .front-home { --home-header-height: 76px; }
    .front-page #header { height: 76px; }
    .front-page #header > .container-fluid { padding: 0 20px !important; }
    .front-page #nav-logo, .front-page #nav-logo img { width: 44px !important; height: 44px; flex-basis: 44px; }
    .front-page #nav-text { margin-left: 11px !important; }
    .front-page #nav-text .title { font-size: 10px; max-width: 200px; }
    .front-page #nav-text .subtitle { display: none; }
    .front-main { padding-top: 76px; }
    .front-container { padding-left: 20px; padding-right: 20px; }
    .front-masthead { padding: 21px 0 25px; }
    .front-breadcrumb { margin-bottom: 20px; font-size: 10px; }
    .front-masthead h1 { font-size: 31px; }
    .front-section { padding-top: 27px; }
    .front-panel, .front-login-form { padding: 24px; }
    .front-form-heading h2 { font-size: 26px; }
    .front-about-copy p { font-size: 14px; }
    .front-home #hero :is(h1, .front-slide-title) { font-size: clamp(28px, 8vw, 33px); }
    .front-home #hero .hero-img img { max-height: clamp(132px, 28svh, 265px); }
    .front-home .front-carousel-controls { margin-top: 20px; padding-top: 12px; }
    .front-home #about .content { gap: 22px; }
    .front-home-fees { gap: 12px; }
    .front-home .pricing .box h3 { font-size: 18px; }
    .front-home .pricing .front-fee-price { font-size: 30px; margin: 12px 0 20px; }
    .front-home .pricing .buy-btn { padding: 10px 12px; }
    .front-page #footer .footer-top > .container-fluid { padding-left: 25px !important; padding-right: 25px !important; }
    .front-page #footer .footer-top .row > .col { flex: 0 0 100%; width: 100%; }
}
@media (max-width: 575px) and (max-height: 740px) {
    .front-home #main > section { padding: 20px 0; }
    .front-home .section-title { padding-bottom: 20px; }
    .front-home .services .icon-box .icon { display: none; }
    .front-home .pricing .box { padding: 14px; }
    .front-home .pricing .front-fee-price { margin: 10px 0 16px; }
}
@media (min-width: 640px) and (max-width: 991px) and (max-height: 600px) {
    .front-home #hero { padding: 16px 0; }
    .front-home #hero .carousel-item > .row { flex-wrap: nowrap; }
    .front-home #hero .carousel-item > .row > div { width: 50%; order: 0 !important; }
    .front-home #hero .hero-img { padding: 0 12px !important; }
    .front-home #hero .hero-img img { max-height: calc(100svh - var(--home-header-height) - 144px); }
    .front-home #hero :is(h1, .front-slide-title) { font-size: 28px; margin-bottom: 14px; }
    .front-home #hero .front-slide-subtitle { margin-bottom: 14px; }
    .front-home .front-carousel-controls { margin-top: 12px; padding-top: 8px; }
    .front-home-fees { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}
@media (prefers-reduced-motion: reduce) {
    .front-page *, .front-page *::before, .front-page *::after { scroll-behavior: auto !important; animation: none !important; transition: none !important; }
}
