@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700;800&family=Playfair+Display:ital,wght@0,600;0,700;1,600&family=Great+Vibes&display=swap');

:root{--ink:#171717;--muted:#68645f;--cream:#faf7f2;--paper:#fff;--sage:#788a78;--sage-dark:#4d6150;--gold:#b89555;--line:#e8e1d7;--dark:#171c18;--radius:22px;--shadow:0 18px 45px rgba(25,24,20,.10)}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;color:var(--ink);background:var(--cream);font-family:'DM Sans',Arial,Helvetica,sans-serif;line-height:1.55}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}.container{width:min(1180px,calc(100% - 36px));margin:0 auto}.eyebrow{color:var(--gold);text-transform:uppercase;letter-spacing:.16em;font-weight:800;font-size:.76rem}h1,h2,h3{line-height:1.05;margin:0 0 18px}h1{font-family:'Playfair Display',Georgia,'Times New Roman',serif;font-size:clamp(3rem,7vw,6.8rem);letter-spacing:-.045em}h2{font-family:'Playfair Display',Georgia,'Times New Roman',serif;font-size:clamp(2.2rem,4vw,4.2rem);letter-spacing:-.035em}h3{font-size:1.35rem}p{margin:0 0 18px}.muted{color:var(--muted)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:14px 20px;border-radius:999px;border:1px solid transparent;font-weight:800;cursor:pointer;transition:.2s ease}.btn:hover{transform:translateY(-1px)}.btn-primary{background:var(--sage-dark);color:#fff}.btn-secondary{background:#fff;border-color:var(--line)}.btn-gold{background:var(--gold);color:#15120d}.badge{display:inline-block;padding:7px 10px;border-radius:999px;background:#efe5d2;color:#6a5224;font-size:.76rem;font-weight:800}.site-header{position:sticky;top:0;z-index:20;background:rgba(250,247,242,.92);backdrop-filter:blur(16px);border-bottom:1px solid rgba(232,225,215,.8)}.nav{min-height:78px;display:flex;align-items:center;justify-content:space-between;gap:20px}.logo{font-family:'Playfair Display',Georgia,serif;font-weight:800;font-size:1.2rem}.logo span{color:var(--gold);font-style:italic;font-weight:500}.nav-links{display:flex;align-items:center;gap:22px;font-size:.94rem;font-weight:700}.hero{min-height:670px;display:grid;align-items:center;background:radial-gradient(circle at 84% 20%,rgba(184,149,85,.20),transparent 25%),radial-gradient(circle at 76% 70%,rgba(120,138,120,.20),transparent 27%),linear-gradient(135deg,#fbf8f2 0%,#f7f0e6 100%);overflow:hidden}.hero-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:50px;align-items:center}.hero-copy p{max-width:640px;font-size:1.12rem;color:var(--muted)}.hero-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:26px}.hero-visual{position:relative;min-height:530px}.visual-card{position:absolute;border-radius:28px;overflow:hidden;box-shadow:var(--shadow);border:1px solid rgba(255,255,255,.6)}.visual-photo{width:72%;height:71%;right:0;top:0;background:linear-gradient(rgba(23,28,24,.1),rgba(23,28,24,.25)),radial-gradient(circle at 30% 25%,#dbcdbb,transparent 26%),linear-gradient(135deg,#66766b,#232a25)}.visual-photo:after{content:"BOOTHTASTIC";position:absolute;bottom:24px;left:24px;color:#fff;font-weight:900;font-size:clamp(1.5rem,3vw,3rem);letter-spacing:.04em}.visual-casino{width:63%;height:56%;left:0;bottom:0;background:radial-gradient(circle at 50% 50%,rgba(184,149,85,.35),transparent 35%),repeating-radial-gradient(circle at 35% 55%,#273a2d 0 18px,#1d2b22 20px 38px)}.visual-casino:after{content:"FUN CASINO";position:absolute;bottom:22px;left:22px;color:#fff;font-weight:900;font-size:clamp(1.3rem,2.4vw,2.5rem)}.section{padding:96px 0}.section-white{background:#fff}.section-dark{background:var(--dark);color:#fff}.section-intro{max-width:760px;margin-bottom:42px}.two-feature{display:grid;grid-template-columns:1fr 1fr;gap:24px}.feature-card,.service-card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:34px;box-shadow:0 10px 30px rgba(34,29,22,.05)}.feature-card{min-height:390px;display:flex;flex-direction:column;justify-content:space-between}.feature-card .icon{font-size:4rem}.feature-card p{color:var(--muted);max-width:500px}.service-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}.service-card{padding:25px;min-height:270px;display:flex;flex-direction:column}.service-card .icon{font-size:2.1rem;margin-bottom:22px}.service-card .link{margin-top:auto;font-weight:800;color:var(--sage-dark)}.prebook-band{background:linear-gradient(135deg,#203126,#384f3e);color:#fff;border-radius:32px;padding:46px;margin-bottom:32px}.prebook-band p{color:#dce5dd;max-width:760px}.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;counter-reset:step}.step{border-top:1px solid #596259;padding-top:24px}.step:before{counter-increment:step;content:"0" counter(step);display:block;color:var(--gold);font-weight:900;margin-bottom:20px}.page-hero{padding:88px 0 55px;background:linear-gradient(135deg,#f8f2e8,#edf1eb)}.page-hero p{max-width:700px;font-size:1.08rem;color:var(--muted)}.detail-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:50px;align-items:start}.highlight-list{list-style:none;padding:0;display:grid;gap:12px}.highlight-list li{padding:16px 18px;background:#fff;border:1px solid var(--line);border-radius:14px}.sidebar-card{background:#fff;border:1px solid var(--line);border-radius:22px;padding:28px;position:sticky;top:110px}.form-shell{max-width:880px;margin:0 auto;background:#fff;border:1px solid var(--line);border-radius:28px;padding:34px;box-shadow:var(--shadow)}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.field{display:grid;gap:7px}.field.full{grid-column:1/-1}label{font-weight:800;font-size:.9rem}input,select,textarea{width:100%;padding:13px 14px;border:1px solid #d7d0c7;border-radius:12px;background:#fff;color:var(--ink);outline:none}input:focus,select:focus,textarea:focus{border-color:var(--sage);box-shadow:0 0 0 3px rgba(120,138,120,.12)}.checkbox-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.check{display:flex;gap:10px;align-items:flex-start;padding:14px;border:1px solid var(--line);border-radius:14px;cursor:pointer}.check input{width:auto;margin-top:4px}.notice{padding:15px 17px;border-radius:14px;background:#f4efe5;color:#5a492c}.success{background:#ecf5ed;color:#2f6337}.footer{background:#121612;color:#dfe5df;padding:54px 0 28px}.footer-grid{display:grid;grid-template-columns:1.4fr .8fr .8fr;gap:35px}.footer a{color:#dfe5df}.footer small{color:#9ca59d}.kicker-card{padding:22px;border:1px solid var(--line);border-radius:18px;background:#fff}
@media(max-width:900px){.nav-links a:not(.btn){display:none}.hero-grid,.two-feature,.detail-grid,.footer-grid{grid-template-columns:1fr}.hero{padding:60px 0 80px}.hero-visual{min-height:440px}.service-grid{grid-template-columns:1fr 1fr}.steps{grid-template-columns:1fr}}
@media(max-width:600px){.container{width:min(100% - 24px,1180px)}.section{padding:70px 0}.service-grid,.form-grid,.checkbox-grid{grid-template-columns:1fr}.field.full{grid-column:auto}.feature-card,.service-card,.form-shell{padding:22px}.prebook-band{padding:28px;border-radius:24px}.hero-visual{min-height:360px}.visual-photo{width:80%;height:68%}.visual-casino{width:70%;height:52%}}

.price-line{font-size:1.15rem;font-weight:900;color:var(--sage-dark);margin:8px 0 18px}
.calculator{margin-top:28px;padding:24px;border:1px solid var(--line);border-radius:18px;background:#fff}
.calculator h3{margin-bottom:18px}
.calc-row{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:14px}
.calc-total{margin-top:20px;padding:18px;border-radius:14px;background:#f2f6f1}
.calc-total strong{font-size:1.8rem;color:var(--sage-dark)}
@media(max-width:600px){.calc-row{grid-template-columns:1fr}}

.logo span{
  font-family:'Great Vibes',cursive;
  font-size:1.45em;
  font-weight:400;
  letter-spacing:0;
  line-height:1;
}
h1,h2{font-weight:700}
h3{font-family:'DM Sans',Arial,Helvetica,sans-serif;font-weight:800}
.eyebrow,.btn,.badge,.nav-links,.price-line,label{font-family:'DM Sans',Arial,Helvetica,sans-serif}

/* Photo-based service cards and gallery */
.photo-card{background:#ddd}
.photo-card img{width:100%;height:100%;object-fit:cover;display:block}
.photo-card span{position:absolute;left:22px;bottom:18px;color:#fff;font-weight:900;letter-spacing:.04em;text-shadow:0 2px 12px rgba(0,0,0,.45)}
.visual-photo:after,.visual-casino:after{content:none!important}
.feature-thumb{width:100%;height:210px;object-fit:cover;border-radius:16px;margin:0 0 22px}
.service-thumb{width:100%;height:150px;object-fit:cover;border-radius:14px;margin:0 0 20px}
.detail-thumb{width:100%;height:220px;object-fit:cover;border-radius:16px;margin-bottom:20px}
.gallery-filters{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:28px}
.filter-btn{border:1px solid var(--line);background:#fff;padding:10px 16px;border-radius:999px;font-weight:700;cursor:pointer}
.filter-btn.active{background:var(--sage-dark);color:#fff;border-color:var(--sage-dark)}
.gallery-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.gallery-item{margin:0;background:#fff;border:1px solid var(--line);border-radius:16px;overflow:hidden}
.gallery-item img{width:100%;aspect-ratio:4/3;object-fit:cover;display:block}
.gallery-item figcaption{padding:12px 14px;color:var(--muted);font-size:.92rem}
@media(max-width:900px){.gallery-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:600px){.gallery-grid{grid-template-columns:1fr}}


/* Booking service selector — full-card selection */
.checkbox-grid .check{
  position:relative;
  cursor:pointer;
  transition:background-color .18s ease, border-color .18s ease, color .18s ease, transform .18s ease, box-shadow .18s ease;
  min-height:74px;
  align-items:center;
}

.checkbox-grid .check:hover{
  border-color:var(--sage);
  transform:translateY(-1px);
}

.checkbox-grid .check input[type="checkbox"]{
  position:absolute;
  opacity:0;
  pointer-events:none;
}

.checkbox-grid .check:has(input[type="checkbox"]:checked){
  background:var(--sage);
  border-color:var(--sage);
  color:#fff;
  box-shadow:0 8px 20px rgba(77,97,80,.16);
}

.checkbox-grid .check:has(input[type="checkbox"]:checked) .muted{
  color:rgba(255,255,255,.82);
}

.checkbox-grid .check:has(input[type="checkbox"]:focus-visible){
  outline:3px solid rgba(184,149,85,.45);
  outline-offset:2px;
}


/* 2027 pre-book section — softer sage treatment */
.section-dark{
  background: var(--sage);
  color: #fff;
}

.prebook-band{
  background: linear-gradient(135deg, #788a78 0%, #6f816f 100%);
  color: #fff;
  border: 1px solid rgba(255,255,255,.14);
  box-shadow: none;
}

.prebook-band p{
  color: rgba(255,255,255,.9);
}

.section-dark .eyebrow{
  color: #e4c57f;
}


/* Refined 2027 section contrast */
.section-dark{
  background:#8d9d8b;
  color:#fff;
}

.prebook-band{
  background:#667a68;
  color:#fff;
  border:1px solid rgba(255,255,255,.16);
  box-shadow:0 14px 34px rgba(45,61,48,.12);
}

.prebook-band p{
  color:rgba(255,255,255,.92);
}

.section-dark .eyebrow{
  color:#e7c879;
}

.section-dark .service-card{
  background:#fbfaf7;
  border-color:rgba(255,255,255,.55);
  box-shadow:0 10px 24px rgba(49,64,52,.10);
}

.section-dark .service-card .muted{
  color:#6f6a63;
}

.section-dark .service-card .link{
  color:#425845;
}

.section-dark .badge{
  background:#efe2c7;
  color:#6e541e;
}


/* Service page description + service-filtered gallery */
.service-description-block{
  margin-top:34px;
  padding:24px;
  background:#fff;
  border:1px solid var(--line);
  border-radius:18px;
}
.service-description-block h3{
  margin-bottom:10px;
}
.service-description-block p{
  margin-bottom:0;
}

.service-gallery-section{
  margin-top:38px;
}
.service-gallery-heading{
  display:flex;
  justify-content:space-between;
  align-items:end;
  gap:18px;
  margin-bottom:18px;
}
.service-gallery-heading h3{
  margin:5px 0 0;
}
.service-gallery-link{
  font-weight:800;
  color:var(--sage-dark);
  white-space:nowrap;
}
.service-gallery-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:12px;
}
.service-gallery-item{
  display:block;
  overflow:hidden;
  border-radius:14px;
  aspect-ratio:4/3;
  background:#eee;
}
.service-gallery-item img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
  transition:transform .2s ease;
}
.service-gallery-item:hover img{
  transform:scale(1.025);
}
@media(max-width:700px){
  .service-gallery-grid{grid-template-columns:repeat(2,1fr)}
  .service-gallery-heading{align-items:start;flex-direction:column}
}


/* Reviews */
.review-filters{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
  margin-bottom:28px;
}
.reviews-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:18px;
}
.review-card{
  background:#fff;
  border:1px solid var(--line);
  border-radius:18px;
  padding:24px;
  box-shadow:0 10px 28px rgba(35,30,25,.05);
}
.review-stars{
  color:var(--gold);
  font-size:1.05rem;
  letter-spacing:.08em;
  margin-bottom:14px;
}
.review-card blockquote{
  margin:0 0 18px;
  font-family:'Playfair Display',Georgia,serif;
  font-size:1.15rem;
  line-height:1.45;
}
.review-meta{
  display:grid;
  gap:2px;
  font-size:.9rem;
}
.review-meta span{
  color:var(--muted);
}
.review-tags{
  display:flex;
  flex-wrap:wrap;
  gap:7px;
  margin-top:16px;
}
.review-tag{
  display:inline-block;
  background:#eef2ed;
  color:var(--sage-dark);
  padding:6px 9px;
  border-radius:999px;
  font-size:.74rem;
  font-weight:800;
}
.service-reviews-section{
  margin-top:38px;
}
.service-review-grid{
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:12px;
}
.compact-review{
  padding:20px;
}
.compact-review blockquote{
  font-size:1.05rem;
}
@media(max-width:900px){
  .reviews-grid{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:700px){
  .service-review-grid{grid-template-columns:1fr}
}
@media(max-width:600px){
  .reviews-grid{grid-template-columns:1fr}
}


/* Homepage testimonials slider */
.testimonial-section{
  background:#f6f2eb;
}
.testimonial-slider{
  max-width:900px;
  margin:0 auto;
  display:grid;
  grid-template-columns:52px 1fr 52px;
  align-items:center;
  gap:16px;
}
.testimonial-track{
  position:relative;
  min-height:260px;
}
.testimonial-slide{
  display:none;
  background:#fff;
  border:1px solid var(--line);
  border-radius:24px;
  padding:38px;
  box-shadow:0 14px 34px rgba(35,30,25,.06);
  text-align:center;
}
.testimonial-slide.active{
  display:block;
}
.testimonial-slide blockquote{
  margin:12px auto 22px;
  max-width:720px;
  font-family:'Playfair Display',Georgia,serif;
  font-size:clamp(1.45rem,2.7vw,2.15rem);
  line-height:1.35;
}
.testimonial-author{
  display:grid;
  gap:3px;
  justify-items:center;
}
.testimonial-author span{
  color:var(--muted);
  font-size:.9rem;
}
.testimonial-arrow{
  width:48px;
  height:48px;
  border-radius:50%;
  border:1px solid var(--line);
  background:#fff;
  color:var(--sage-dark);
  font-size:2rem;
  line-height:1;
  cursor:pointer;
}
.testimonial-arrow:hover{
  background:var(--sage-dark);
  color:#fff;
}
.testimonial-dots{
  display:flex;
  justify-content:center;
  gap:8px;
  margin-top:18px;
}
.testimonial-dot{
  width:9px;
  height:9px;
  border-radius:50%;
  border:0;
  background:#c8cec6;
  cursor:pointer;
  padding:0;
}
.testimonial-dot.active{
  background:var(--sage-dark);
}
@media(max-width:700px){
  .testimonial-slider{
    grid-template-columns:1fr;
  }
  .testimonial-arrow{
    display:none;
  }
  .testimonial-track{
    min-height:300px;
  }
  .testimonial-slide{
    padding:28px 22px;
  }
}


/* Subtle testimonial transition */
@keyframes testimonialFadeIn {
  from {
    opacity: 0;
    transform: translateY(8px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

.testimonial-slide.active {
  animation: testimonialFadeIn .45s ease both;
}

@media (prefers-reduced-motion: reduce) {
  .testimonial-slide.active {
    animation: none;
  }
}


/* Mobile testimonial swipe support */
.testimonial-slider,
.testimonial-track{
  touch-action: pan-y;
}


/* Mobile navigation */
.menu-toggle{
  display:none;
  width:44px;
  height:44px;
  border:1px solid var(--line);
  background:#fff;
  border-radius:12px;
  padding:10px;
  cursor:pointer;
  flex:0 0 auto;
}
.menu-toggle span{
  display:block;
  height:2px;
  background:var(--sage-dark);
  border-radius:2px;
  margin:4px 0;
  transition:transform .2s ease, opacity .2s ease;
}
.menu-toggle[aria-expanded="true"] span:nth-child(1){
  transform:translateY(6px) rotate(45deg);
}
.menu-toggle[aria-expanded="true"] span:nth-child(2){
  opacity:0;
}
.menu-toggle[aria-expanded="true"] span:nth-child(3){
  transform:translateY(-6px) rotate(-45deg);
}
.mobile-menu{
  display:none;
}

@media(max-width:900px){
  .site-header .nav{
    position:relative;
  }

  .menu-toggle{
    display:block;
  }

  .nav-links{
    display:none;
  }

  .mobile-menu{
    position:absolute;
    top:68px;
    left:0;
    right:0;
    display:grid;
    gap:4px;
    padding:14px;
    background:rgba(250,247,242,.98);
    border:1px solid var(--line);
    border-radius:18px;
    box-shadow:0 18px 45px rgba(25,24,20,.12);
    opacity:0;
    transform:translateY(-8px);
    pointer-events:none;
    transition:opacity .18s ease, transform .18s ease;
  }

  .mobile-menu.open{
    opacity:1;
    transform:translateY(0);
    pointer-events:auto;
  }

  .mobile-menu a:not(.btn){
    padding:13px 12px;
    border-radius:10px;
    font-weight:700;
  }

  .mobile-menu a:not(.btn):hover{
    background:#eef2ed;
  }

  .mobile-menu .btn{
    margin-top:6px;
    width:100%;
  }

  body.menu-open{
    overflow-x:hidden;
  }
}

/* Mobile-only swipe carousel for 2027 pre-book cards */
.prebook-mobile-dots{
  display:none;
}

@media(max-width:600px){
  .prebook-mobile-slider{
    display:flex !important;
    gap:14px;
    overflow-x:auto;
    scroll-snap-type:x mandatory;
    scroll-padding:0 12px;
    padding:4px 12px 12px;
    margin-left:-12px;
    margin-right:-12px;
    -webkit-overflow-scrolling:touch;
    scrollbar-width:none;
  }

  .prebook-mobile-slider::-webkit-scrollbar{
    display:none;
  }

  .prebook-mobile-slider .service-card{
    flex:0 0 86%;
    min-width:86%;
    scroll-snap-align:center;
  }

  .prebook-mobile-dots{
    display:flex;
    justify-content:center;
    gap:8px;
    margin-top:12px;
  }

  .prebook-dot{
    width:8px;
    height:8px;
    border-radius:50%;
    background:rgba(255,255,255,.42);
    transition:transform .18s ease, background .18s ease;
  }

  .prebook-dot.active{
    background:#fff;
    transform:scale(1.2);
  }
}


/* Streamlined mobile hero */
@media(max-width:600px){
  .hero{
    min-height:auto;
    padding:48px 0 56px;
  }

  .hero-grid{
    display:block;
  }

  .hero-actions{
    display:none !important;
  }

  .hero-visual{
    display:none !important;
  }

  .hero-copy{
    max-width:100%;
  }

  .hero-copy p{
    margin-bottom:0;
  }
}


/* Mobile swipe carousels: headline experiences + finish the room */
.mobile-slider-dots{
  display:none;
}

@media(max-width:600px){
  .headline-mobile-slider,
  .room-mobile-slider{
    display:flex !important;
    gap:14px;
    overflow-x:auto;
    scroll-snap-type:x mandatory;
    scroll-padding:0 12px;
    padding:4px 12px 12px;
    margin-left:-12px;
    margin-right:-12px;
    -webkit-overflow-scrolling:touch;
    scrollbar-width:none;
    touch-action:pan-x pan-y;
  }

  .headline-mobile-slider::-webkit-scrollbar,
  .room-mobile-slider::-webkit-scrollbar{
    display:none;
  }

  .headline-mobile-slider .feature-card,
  .room-mobile-slider .service-card{
    flex:0 0 86%;
    min-width:86%;
    scroll-snap-align:center;
  }

  .mobile-slider-dots{
    display:flex;
    justify-content:center;
    gap:8px;
    margin-top:10px;
  }

  .mobile-slider-dot{
    width:8px;
    height:8px;
    border-radius:50%;
    background:#c9d0c8;
    transition:transform .18s ease, background .18s ease;
  }

  .mobile-slider-dot.active{
    background:var(--sage-dark);
    transform:scale(1.2);
  }
}


/* Entertainment service section */
.entertainment-section{
  border-top:1px solid rgba(232,225,215,.65);
}

@media(max-width:600px){
  .entertainment-mobile-slider{
    display:flex !important;
    gap:14px;
    overflow-x:auto;
    scroll-snap-type:x mandatory;
    scroll-padding:0 12px;
    padding:4px 12px 12px;
    margin-left:-12px;
    margin-right:-12px;
    -webkit-overflow-scrolling:touch;
    scrollbar-width:none;
    touch-action:pan-x pan-y;
  }

  .entertainment-mobile-slider::-webkit-scrollbar{
    display:none;
  }

  .entertainment-mobile-slider .service-card{
    flex:0 0 86%;
    min-width:86%;
    scroll-snap-align:center;
  }
}


/* Service type filters */
.service-type-filters{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  margin-bottom:30px;
}

.service-category-tags{
  display:flex;
  flex-wrap:wrap;
  gap:7px;
  margin:4px 0 18px;
}

.service-category-tag{
  display:inline-block;
  padding:6px 9px;
  border-radius:999px;
  background:#eef2ed;
  color:var(--sage-dark);
  font-size:.74rem;
  font-weight:800;
}

@media(max-width:600px){
  .service-type-filters{
    overflow-x:auto;
    flex-wrap:nowrap;
    padding-bottom:6px;
    scrollbar-width:none;
  }

  .service-type-filters::-webkit-scrollbar{
    display:none;
  }

  .service-type-filters .filter-btn{
    flex:0 0 auto;
    white-space:nowrap;
  }
}


/* Make the whole service card clickable while keeping the existing text link */
.service-card {
  position: relative;
}

.service-card > a.link::after {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: inherit;
  z-index: 2;
}

/* Keep the visible link text above the card content */
.service-card > a.link {
  position: relative;
  z-index: 3;
}

/* Clear keyboard focus around the complete card */
.service-card:has(> a.link:focus-visible) {
  outline: 3px solid currentColor;
  outline-offset: 3px;
}


/* Preserve full-size service-page image with rounded corners */
.detail-thumb {
  width: 100%;
  height: auto;
  max-height: 450px;
  object-fit: contain;
  border-radius: 16px;
  margin-bottom: 20px;
  display: block;
}


/* Whole-card links — corrected version.
   Keep the actual link static so its ::after overlay is positioned
   against the card, not just against the link text itself. */
.service-card,
.feature-card {
  position: relative;
}

.service-card > a.link,
.feature-card a.btn {
  position: static;
}

.service-card > a.link::after,
.feature-card a.btn::after {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: inherit;
  z-index: 5;
  cursor: pointer;
}

/* Show a clear focus state around the whole card for keyboard users. */
.service-card:has(> a.link:focus-visible),
.feature-card:has(a.btn:focus-visible) {
  outline: 3px solid currentColor;
  outline-offset: 3px;
}


/* JWL analytics cookie consent */
.cookie-consent[hidden] {
  display: none !important;
}

.cookie-consent {
  position: fixed;
  left: 18px;
  right: 18px;
  bottom: 18px;
  z-index: 9999;
  max-width: 760px;
  margin: 0 auto;
  background: #fffaf3;
  border: 1px solid rgba(32, 48, 38, 0.16);
  border-radius: 18px;
  box-shadow: 0 12px 35px rgba(22, 33, 26, 0.18);
}

.cookie-consent__inner {
  display: flex;
  gap: 22px;
  align-items: center;
  justify-content: space-between;
  padding: 20px 22px;
}

.cookie-consent__copy {
  min-width: 0;
}

.cookie-consent__copy strong {
  display: block;
  margin-bottom: 5px;
  font-size: 1rem;
}

.cookie-consent__copy p {
  margin: 0;
  line-height: 1.5;
  font-size: 0.92rem;
}

.cookie-consent__actions {
  display: flex;
  gap: 10px;
  flex: 0 0 auto;
}

.cookie-btn {
  min-height: 44px;
  padding: 10px 17px;
  border-radius: 999px;
  border: 1px solid #526d59;
  font: inherit;
  font-weight: 700;
  cursor: pointer;
}

.cookie-btn--primary {
  background: #526d59;
  color: #fff;
}

.cookie-btn--secondary {
  background: transparent;
  color: #34493a;
}

.cookie-settings-link {
  margin-top: 8px;
}

.cookie-settings-link a {
  font-size: 0.9rem;
}

.cookie-settings-link--fallback {
  text-align: center;
  margin: 14px 0;
}

@media (max-width: 640px) {
  .cookie-consent {
    left: 10px;
    right: 10px;
    bottom: 10px;
  }

  .cookie-consent__inner {
    display: block;
    padding: 18px;
  }

  .cookie-consent__actions {
    margin-top: 14px;
    display: grid;
    grid-template-columns: 1fr 1fr;
  }

  .cookie-btn {
    width: 100%;
  }
}
