/* Reference website theme shared by public pages. */
.public-home .hero-actions .btn-outline {
    color:#15351f;
    background:#fffdf8;
    border:1px solid #fffdf8;
    box-shadow:0 4px 16px rgba(0,0,0,.18);
}
.public-home .hero-actions .btn-outline:hover,
.public-home .hero-actions .btn-outline:focus-visible,
.public-home .hero-actions .btn-outline:active {
    color:#15351f;
    background:#f0e5c9;
    border-color:#f0e5c9;
}
.public-home .hero-actions .btn-outline:focus-visible {
    outline:3px solid #e8c86b;
    outline-offset:4px;
}
.public-site { margin:0; padding-bottom:0; background:var(--paper); color:var(--ink); font-family:Inter,system-ui,sans-serif; line-height:1.6; }
.public-site .container { max-width:1180px; width:calc(100% - 36px); padding-inline:0; }
.public-site .reference-header { position:sticky; top:0; z-index:1000; background:rgba(255,253,248,.96); backdrop-filter:blur(16px); border-bottom:1px solid rgba(21,53,31,.08); }
.public-site .reference-header .nav { min-height:78px; flex-wrap:nowrap; padding:0; }
.public-site .navlinks { gap:25px; font-size:14px; }
.public-site .navlinks a { color:var(--green-dark); }
.public-site .navlinks a.active { color:var(--green); }
.public-site .btn { border-radius:999px; font-weight:800; padding:13px 21px; }
.public-site .btn-primary { background:linear-gradient(135deg,var(--green-2),var(--green)); border-color:var(--green); color:white; }
.public-site .btn-outline-secondary { color:var(--green-dark); border:1px solid var(--green-dark); background:transparent; }
.public-site .reference-footer { margin:0; background:#071e12; color:#dfe9df; padding:58px 0 20px; }
.public-site .reference-footer .logo { display:inline-block; }
.public-site .reference-footer .logo img { height:76px; }
.public-site .reference-footer .btn { display:inline-flex; }
.public-site .reference-footer h4 { font-family:inherit; font-size:16px; font-weight:700; margin:0 0 14px; }
.public-site h1,.public-site h2,.public-site h3 { font-family:Georgia,'Times New Roman',serif; }
.public-site .public-content { width:100%; }
.public-site .public-page-hero { min-height:350px; padding:60px 0; margin:0; }
.public-site .public-breadcrumb { color:#d9e6d4; font-size:14px; }
.public-site .public-breadcrumb a { color:inherit; }
.public-site .public-breadcrumb a:hover { text-decoration:underline; }
.public-site :is(.services-custom-page,.package-list-page,.site-gallery-section,.contact-custom-page,.membership-list-page,.outlets-page,.careers-custom-page,.service-detail-page,.package-detail-page,.membership-detail-page,.content-page,.fb-feed-page,.site-page-wrap) { width:100%; margin:0; padding:75px 0; background:var(--paper); overflow:visible; }
.public-site :is(.services-custom-wrap,.package-list-wrap,.contact-custom-wrap,.membership-list-wrap,.outlets-wrap,.careers-custom-wrap,.service-detail-wrap,.package-detail-wrap,.membership-detail-wrap,.fb-feed-wrap,.site-page-card) { width:calc(100% - 36px); max-width:1180px; margin-inline:auto; padding:0; }
.public-site :is(.site-gallery-section,.content-page) { padding-inline:max(18px,calc((100% - 1180px)/2)); }
.public-site :is(.services-custom-title,.package-list-title,.membership-list-title,.outlets-title,.site-gallery-header) { text-align:center; margin:0 auto 24px; justify-content:center; }
.public-site :is(.services-custom-title,.package-list-title,.membership-list-title,.outlets-title) > span { display:none; }
.public-site :is(.services-custom-title,.package-list-title,.membership-list-title,.outlets-title,.site-gallery-header) h1 { font-size:clamp(34px,4.5vw,54px); font-weight:500; text-transform:none; color:var(--green-dark); line-height:1.1; }
.public-site :is(.package-list-intro,.membership-list-intro,.outlets-intro) { text-align:center; color:var(--muted); margin-bottom:38px; }
.public-site :is(.services-custom-tabs,.gallery-tabs) { display:flex; flex-wrap:wrap; justify-content:center; gap:10px; border:0; background:none; min-height:0; margin:0 0 28px; padding:0; }
.public-site :is(.services-custom-tabs a,.gallery-tabs .nav-link) { border:1px solid #d8e0cf; background:white; color:var(--green-dark); border-radius:999px; padding:11px 18px; font-size:14px; font-weight:700; }
.public-site :is(.services-custom-tabs a.active,.gallery-tabs .nav-link.active) { background:var(--green); color:white; border-color:var(--green); }
.public-site :is(.services-cards-grid,.package-list-grid,.membership-list-grid,.outlet-grid,.gallery-media-grid,.content-grid) { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:22px; }
.public-site :is(.services-catalog-card,.package-list-card,.membership-list-card,.outlet-card,.content-card,.gallery-card,.service-detail-main,.package-detail-main,.service-booking-panel,.membership-detail-info-panel,.customer-auth-panel,.site-page-card) { border:1px solid rgba(21,53,31,.09); border-radius:22px; overflow:hidden; background:white; box-shadow:var(--shadow); color:var(--ink); }
.public-site :is(.service-card-link,.package-list-card-link,.membership-list-card-link,.outlet-card-link) { text-decoration:none; color:inherit; height:100%; }
.public-site :is(.services-catalog-card,.package-list-card,.membership-list-card,.outlet-card) { height:100%; transition:transform .25s,box-shadow .25s; }
.public-site :is(.services-catalog-card,.package-list-card,.membership-list-card,.outlet-card):hover { transform:translateY(-4px); box-shadow:0 24px 55px rgba(21,53,31,.17); }
.public-site :is(.services-catalog-card > img,.package-list-image-wrap,.membership-list-image-wrap,.outlet-image-wrap) { width:100%; height:230px; object-fit:cover; }
.public-site :is(.package-list-image-wrap,.membership-list-image-wrap,.outlet-image-wrap) img { width:100%; height:100%; object-fit:cover; }
.public-site :is(.service-card-body,.package-list-card-body,.membership-list-body,.outlet-body,.content-card) { padding:24px; }
.public-site :is(.service-card-body,.package-list-card-body,.membership-list-body,.outlet-body,.content-card) h3 { font-size:26px; color:var(--green-dark); font-weight:500; margin:0 0 10px; }
.public-site :is(.service-description,.package-list-description,.membership-list-description,.outlet-address,.content-card p) { color:var(--muted); font-size:14px; }
.public-site :is(.service-view-more,.package-list-view-link,.membership-list-view-link,.outlet-link-text,.service-highlight,.package-list-services) { color:var(--green); font-weight:700; }
.public-site :is(.service-meta-row,.package-list-meta,.membership-list-meta) { display:flex; justify-content:space-between; gap:12px; padding:14px 0; color:var(--green-dark); border-color:#e4eadc; }
.public-site :is(.contact-custom-wrap,.service-detail-layout,.package-booking-layout) { display:grid; grid-template-columns:1.35fr .85fr; gap:32px; align-items:start; }
.public-site .contact-custom-wrap { grid-template-columns:.9fr 1.1fr; }
.public-site .contact-custom-left { background:none; color:var(--ink); padding:0; border:0; }
.public-site .contact-custom-right { background:white; border:1px solid #e4eadc; border-radius:22px; box-shadow:var(--shadow); padding:28px; }
.public-site .contact-info-item { background:#f2f7ea; border-radius:18px; padding:20px; margin:15px 0; border:0; color:var(--ink); }
.public-site .contact-info-item h3 { color:var(--green-dark); font-size:20px; }
.public-site .contact-icon-box { background:transparent; color:var(--green); }
.public-site .contact-form-grid { display:grid; grid-template-columns:1fr 1fr; gap:16px; }
.public-site .contact-form-grid .full,.public-site .contact-form-grid > button,.public-site .contact-form-grid > .text-danger { grid-column:1/-1; }
.public-site :is(.contact-form-grid input,.contact-form-grid textarea,.service-booking-field input,.service-booking-field select,.customer-auth-field input) { width:100%; border:1px solid #d7dfd0; border-radius:14px; padding:13px 14px; background:white; color:var(--ink); }
.public-site :is(.contact-form-grid input,.contact-form-grid textarea,.service-booking-field input,.service-booking-field select):focus { outline:2px solid var(--green); outline-offset:2px; }
.public-site :is(.contact-form-grid > button,.service-booking-submit,.customer-auth-submit,.job-apply,.fb-btn-primary) { background:linear-gradient(135deg,var(--green-2),var(--green)); color:white; border:0; border-radius:999px; padding:13px 21px; font-weight:700; }
.public-site :is(.service-detail-hero,.package-detail-hero,.membership-detail-hero,.content-hero,.faq-hero) { position:relative; overflow:hidden; isolation:isolate; border:0; border-radius:24px; color:white; background:linear-gradient(90deg,rgba(6,25,14,.88),rgba(6,25,14,.42)),url('https://images.unsplash.com/photo-1600334089648-b0d9d3028eb2?auto=format&fit=crop&w=1800&q=85') center/cover; padding:65px 36px; margin-bottom:32px; }
.public-site :is(.service-detail-hero,.package-detail-hero) { min-height:350px; display:flex; align-items:end; background:var(--green-deep); }
.public-site :is(.service-detail-hero,.package-detail-hero)::after { content:''; position:absolute; inset:0; z-index:-1; background:linear-gradient(90deg,rgba(6,25,14,.88),rgba(6,25,14,.42)); }
.public-site .public-detail-background { position:absolute; inset:0; z-index:-2; width:100%; height:100%; object-fit:cover; }
.public-site :is(.service-detail-hero,.package-detail-hero,.membership-detail-hero,.content-hero) h1 { color:white; font-size:clamp(40px,5vw,70px); font-weight:500; line-height:1.05; }
.public-site :is(.service-detail-back,.service-detail-hero p,.package-detail-hero p,.content-hero p) { color:#eff5ec; }
.public-site :is(.service-detail-info-grid > div,.package-detail-metric,.service-booking-summary,.booking-verification-note,.service-booking-total,.membership-detail-metric) { border-color:#e4eadc; background:#f4f8ee; color:var(--green-dark); border-radius:14px; }
.public-site :is(.service-detail-description h2,.service-booking-heading h2,.package-detail-block h2) { font-size:30px; color:var(--green-dark); font-weight:500; }
.public-site .service-booking-panel { position:sticky; top:100px; padding:24px; }
.public-site .service-detail-description { padding-block:28px; }
.public-site .gallery-card { padding:0; text-align:left; }
.public-site .gallery-card img { height:250px; width:100%; object-fit:cover; }
.public-site .gallery-card-title { display:block; padding:18px; color:var(--green-dark); background:white; font:500 23px Georgia,serif; }
.public-site .video-card-placeholder { background:var(--green-dark); color:var(--gold); }
.public-site .services-pagination .page-link { color:var(--green-dark); border-color:#d7dfd0; }
.public-site .services-pagination .active .page-link { background:var(--green); border-color:var(--green); color:white; }
.public-site .customer-auth-page { margin:0; background:var(--cream); padding:75px 18px; width:100%; }
.public-site .customer-auth-brand { background:linear-gradient(135deg,#0d2e1a,#173d23); color:white; border-radius:22px; }
.public-site .customer-auth-brand h1 { color:white; }
.public-site .faq-content { background:var(--paper); }
.public-site .faq-question-wrap { background:#f2f7ea; color:var(--green-dark); }
.public-site .dark-section .benefit-card { color:var(--ink); }
.public-site .reference-header .nav-actions .btn { white-space:nowrap; }
.public-site .service-meta-row { font-family:inherit; font-size:16px; }
.public-site .service-view-more { font-family:inherit; font-size:15px; }
.public-site .services-page-btn { border-color:#d7dfd0; color:var(--green-dark); }
.public-site .services-page-btn.is-active { background:var(--green); border-color:var(--green); color:white; }
.public-site .public-cta-section { padding:45px 0; }
.public-site .public-map-section { padding-top:0; }
.public-site .public-footer-support { display:flex; flex-wrap:wrap; gap:15px; }
.public-site .services-reference .category-block { padding:0; margin:0 0 46px; }
.public-site .services-reference .category-block:last-child { margin-bottom:0; }
.public-site .services-reference .related-category-packages { margin-top:18px; }
.public-site .services-reference .service-detail { height:100%; }
.public-site .services-reference .service-detail h3 { font:500 26px Georgia,serif; color:var(--ink); margin:0 0 10px; }
.public-site .services-reference .service-detail p { color:var(--muted); font-size:14px; }
.public-site .services-reference .mini-package p { color:var(--muted); }
.public-site .services-reference .service-detail .body { padding:22px; }
.public-site .services-reference .category-head h2 { color:var(--ink); }
.public-site .services-all-link { margin-bottom:28px; }
.public-site .packages-reference .package-row-copy { min-width:0; }
.public-site .packages-reference .package-row-copy p { margin:0; color:var(--muted); }
.public-site .packages-reference .package-row h3 { color:var(--ink); }
.public-site .packages-reference .chip { overflow-wrap:anywhere; }
.public-site .packages-reference .package-action .btn { white-space:nowrap; }
.public-site .gallery-reference .gallery-grid .gallery-card { width:100%; height:100%; border:0; border-radius:20px; cursor:zoom-in; }
.public-site .gallery-reference .gallery-grid .gallery-card img { width:100%; height:100%; object-fit:cover; }
.public-site .gallery-reference .facility-photo-grid { margin-top:24px; }
.public-site .gallery-reference .gallery-video-heading { margin:44px 0 24px; text-align:center; }
.public-site .gallery-reference .gallery-empty { grid-column:1/-1; }
.public-site .testimonial-sample-note { color:var(--muted); font-size:13px; text-align:center; margin:-12px 0 24px; }
.public-site .testimonial-video-note { display:block; color:var(--muted); margin-top:12px; font-size:12px; }
.public-site .contact-reference .contact-name-field { min-width:0; border:0; padding:0; margin:0; }
.public-site .contact-reference .contact-name-field legend { float:none; font:inherit; margin:0 0 7px; }
.public-site .contact-reference .contact-name-inputs { display:grid; grid-template-columns:1fr 1fr; gap:8px; }
.public-site .contact-reference .field input,.public-site .contact-reference .field select,.public-site .contact-reference .field textarea { width:100%; min-width:0; }
.public-site .contact-reference .field input:focus,.public-site .contact-reference .field select:focus,.public-site .contact-reference .field textarea:focus { outline:2px solid var(--green); outline-offset:2px; }
.public-site a:focus-visible,.public-site button:focus-visible { outline:3px solid var(--gold); outline-offset:4px; }
@media(max-width:1100px) { .public-site .navlinks { gap:18px; font-size:13px; } .public-site .reference-header .nav-actions .btn { padding:12px 14px; font-size:12px; } }
@media(max-width:980px) {
 .public-site .reference-header .navlinks { top:80px; max-height:calc(100dvh - 110px); overflow:auto; font-size:15px; }
 .public-site .reference-header .navlinks a { padding:12px; }
 .public-site :is(.services-cards-grid,.package-list-grid,.membership-list-grid,.outlet-grid,.gallery-media-grid,.content-grid) { grid-template-columns:repeat(2,minmax(0,1fr)); }
 .public-site :is(.contact-custom-wrap,.service-detail-layout,.package-booking-layout) { grid-template-columns:1fr; }
 .public-site .service-booking-panel { position:static; }
}
@media(max-width:640px) {
 .public-site .reference-header .nav { min-height:70px; }
 .public-site .reference-header .navlinks { top:72px; }
 .public-site :is(.services-cards-grid,.package-list-grid,.membership-list-grid,.outlet-grid,.gallery-media-grid,.content-grid,.contact-form-grid) { grid-template-columns:1fr; }
 .public-site .public-page-hero { min-height:300px; }
 .public-site :is(.service-detail-hero,.package-detail-hero,.membership-detail-hero,.content-hero) { padding:45px 22px; }
 .public-site .contact-custom-right { padding:22px; }
 .public-site section { padding-block:60px; }
 .public-site .hero-slider { padding:0; }
}
