/* Shared compact scale. Font growth is capped on QHD and 4K displays. */
:root{
  --body-size:clamp(1rem,.94rem + .12vw,1.125rem);
  --hero-size:clamp(2.125rem,1.5rem + 1.8vw,3.75rem);
  --heading-size:clamp(1.65rem,1.1rem + .7vw,2.25rem);
  --lead-size:clamp(1rem,.9rem + .25vw,1.25rem);
}
body{font-size:var(--body-size)}
.wrap{width:88%;max-width:1600px}
h1,.subpage-hero h1,.page-intro h1{font-size:var(--hero-size);line-height:1.08;letter-spacing:-1.2px;margin-bottom:16px}
h2,.section-heading h2,.experience h2,.guest-section h2,.contact h2,.booking-strip h2,
.about-details h2,.enquiry-card h2,.details-card h2,.follow-card h2,.faq-card h2,
.directions-card h2,.story-section h2,.about-page .story-section h2,
.commitment-section h2,.about-page .commitment-section h2{font-size:var(--heading-size);line-height:1.15;letter-spacing:-.65px}
.hero-description,.subpage-hero .hero-description,.page-intro>p:last-child,.form-intro{font-size:var(--lead-size);line-height:1.5}
.experience-copy p,.about-details p:not(.eyebrow),.story-section p:not(.eyebrow),
.about-page .story-section p:not(.eyebrow),.commitment-section p:not(.eyebrow):not(.handwritten),
.about-page .commitment-section p:not(.eyebrow):not(.handwritten),.contact p,
.booking-strip p,.contact-address,.support-email{font-size:var(--body-size);line-height:1.5}
.eyebrow{font-size:.75rem;letter-spacing:3.5px;margin-bottom:10px}
.handwritten,.subpage-hero .handwritten,.commitment-section .handwritten{font-size:clamp(1.5rem,1.2rem + .65vw,2rem);margin:20px 0 18px}
.hero-note{font-size:clamp(1rem,.8rem + .4vw,1.375rem)}
.location{font-size:1rem;margin-top:24px}
.button,.site-header .header-book,.booking-strip .button-gold{font-size:1rem;padding:12px 24px;gap:16px}
.button-gold,.booking-strip .button-gold{min-width:200px}
.text-button{font-size:.9375rem}
.hero{padding-top:20px;min-height:clamp(510px,34vw,630px);padding-bottom:28px}
.hero-content{padding-top:48px}
.subpage-hero,.about-page .subpage-hero{min-height:clamp(450px,29vw,550px);padding-bottom:26px}
.subpage-hero .hero-content{padding-top:36px}
.subpage-hero h1{max-width:65%}
.hero-description,.subpage-hero .hero-description{max-width:54%}
.subpage-hero .hero-note{top:43%}
.site-header.wrap{max-width:1800px;padding:5px 20px 5px 32px;gap:20px}
.site-header .brand{width:clamp(180px,13vw,240px);height:72px;margin-right:24px}
.site-header .brand:after{right:-22px}
.site-header nav a{font-size:.9375rem}
.site-header>nav[aria-label="Main navigation"]{gap:clamp(24px,2.4vw,46px);margin-left:8px}
.site-header .header-book{padding:13px 24px;font-size:.9375rem;gap:12px}
.site-header .header-icon{width:46px;height:46px;padding:12px}
.header-location>a{font-size:.8125rem}
.section{padding-top:30px;padding-bottom:30px}
.section-heading{margin-bottom:18px}
.features{padding:22px 0}
.feature-grid svg{height:40px;width:40px}
.feature-grid p{font-size:1rem}
.gallery-grid{gap:16px}
.photo span{font-size:.875rem}
.experience,.experience-inner{min-height:330px}
.experience-inner{padding:28px 0}
.experience-copy p{margin:14px 0 18px}
.reviews{gap:20px}
.reviews figure{padding:20px;gap:14px}
.reviews img{width:46px;height:46px}
.reviews blockquote,.reviews figcaption{font-size:.9375rem}
.contact-inner,.booking-strip .contact-inner{padding:26px 0}
.booking-strip .contact-inner{width:82%;max-width:1480px}
.page-intro{padding:40px 0 24px}
.inner-header{padding:20px 0}
.about-details{padding-top:36px;padding-bottom:36px}
.about-page .story-section,.story-section{padding-top:36px;padding-bottom:36px;gap:5%}
.about-page .story-section img{max-height:390px;aspect-ratio:1.45}
.about-page .story-section figcaption,.story-section figcaption{font-size:clamp(1.125rem,.85rem + .5vw,1.625rem)}
.about-page .about-values,.about-values{padding:24px 0}
.about-page .about-values .contact-symbol,.about-values .contact-symbol{width:60px;height:60px}
.about-values h3{font-size:1.0625rem}
.about-values p{font-size:1rem}
.about-page .commitment-section>div,.commitment-section>div{padding:30px 8%}
.about-page .commitment-section>img{max-height:420px;min-height:100%}
.about-highlights{padding:24px 0}
.about-highlights strong{font-size:1.1875rem}
.about-highlights p>span{font-size:.875rem}
.contact-symbol{width:48px;height:48px}
.contact-symbol svg{width:27px;height:27px}
.contact-benefits{padding:20px 0}
.contact-benefits h3,.detail-item h3{font-size:1rem}
.contact-benefits p{font-size:.8125rem}
.contact-content{gap:20px;padding:28px 0}
.enquiry-card,.details-card,.follow-card,.faq-card{padding:26px}
.details-card{padding-bottom:70px}
.detail-item{margin:20px 0}
.detail-item address,.detail-item p,.detail-item a,.details-card>p{font-size:1rem}
.form-grid{gap:20px}
.form-grid label,.faq-card summary{font-size:.9375rem}
.form-grid input,.form-grid select,.form-grid textarea{font-size:1rem;padding:10px 12px}
.form-grid textarea{min-height:140px}
.form-intro{margin:12px 0 24px}
.form-note{font-size:.8125rem}
.faq-card details p{font-size:.9375rem}
.directions-card{min-height:260px;padding:28px}
.page-cta{padding:12px 0 36px}
.page-cta>p{font-size:var(--heading-size)}
.scenic-footer{padding:24px 0 32px}
.scenic-footer .brand{width:220px;height:80px}
.scenic-footer nav a{font-size:.9375rem}
.scenic-footer .footer-motto{font-size:1.25rem}
.footer-signature>svg{height:48px;width:115px}
.scenic-footer .footer-bottom{font-size:.8125rem;margin-top:18px}
.footer-socials{gap:20px}
.scenic-footer nav{gap:30px}
@media(max-width:1250px){
  .site-header.wrap{gap:14px;padding-left:22px}
  .site-header .brand{width:180px;margin-right:16px}
  .site-header>nav[aria-label="Main navigation"]{gap:22px}
  .site-header .header-book{padding:12px 18px}
}
@media(max-width:950px){
  .site-header .brand{margin-right:auto}
  .hero-content{padding-top:42px}
  .story-section p:not(.eyebrow){max-width:65ch}
}
@media(max-width:760px){
  .about-page .commitment-section>img{min-height:0;max-height:330px}
  .scenic-footer .brand{width:180px;height:65px}
  .experience{min-height:0}
}
@media(max-width:640px){
  .wrap{width:89%}
  .hero{padding-top:14px;min-height:510px}
  .subpage-hero,.about-page .subpage-hero{min-height:440px}
  .hero-content,.subpage-hero .hero-content{padding-top:36px}
  h1,.subpage-hero h1,.page-intro h1{max-width:100%;font-size:clamp(2rem,6.2vw + .6rem,2.5rem);letter-spacing:-.8px}
  .hero-description,.subpage-hero .hero-description{max-width:100%;font-size:1rem}
  .handwritten,.subpage-hero .handwritten{font-size:1.5rem}
  .location{margin-top:26px;font-size:.875rem}
  .site-header.wrap{padding:5px 12px;gap:8px}
  .site-header .brand{width:150px;height:56px}
  .site-header .header-icon{width:38px;height:38px;padding:9px}
  .site-header .header-book{font-size:.75rem;padding:10px 12px}
  .eyebrow{font-size:.6875rem;letter-spacing:3px}
  .section{padding:24px 0}
  .feature-grid p{font-size:.875rem}
  .feature-grid svg{width:34px;height:34px}
  .experience{min-height:0;padding-bottom:225px}
  .experience-inner{min-height:0;padding:24px 0 0}
  .booking-strip .contact-inner{width:89%;padding:24px 0;gap:18px}
  .about-page .story-section,.story-section{padding:28px 0}
  .about-page .about-values .contact-symbol{width:52px;height:52px}
  .about-values h3{font-size:1rem}
  .about-values p{font-size:.875rem}
  .about-highlights strong{font-size:1rem}
  .about-highlights p>span{font-size:.75rem}
  .contact-benefits h3{font-size:.8125rem}
  .contact-benefits p{font-size:.75rem}
  .enquiry-card,.details-card,.follow-card,.faq-card{padding:20px}
  .details-card{padding-bottom:60px}
  .contact-content{padding:22px 0}
  .scenic-footer .footer-bottom{font-size:.75rem}
}

/* Teal line and centre dot for navigation, including keyboard focus. */
.site-header nav a,.scenic-footer nav a{
  position:relative;
  transition:color .22s ease;
}
.site-header nav a::after,.scenic-footer nav a::after,
.site-header nav a.active::after{
  content:'';
  position:absolute;
  left:50%;right:auto;bottom:2px;
  width:min(100%,54px);height:2px;
  background:var(--teal);border-radius:2px;
  transform:translateX(-50%) scaleX(0);
  transition:transform .24s ease;
  pointer-events:none;
}
.site-header nav a::before,.scenic-footer nav a::before,.site-header nav a.active::before{
  content:'';
  position:absolute;
  left:50%;bottom:0;
  width:6px;height:6px;
  background:var(--teal);border-radius:50%;
  transform:translateX(-50%) scale(0);
  transition:transform .24s ease;
  pointer-events:none;
}
.site-header nav a:is(.active,[aria-current="page"],:focus-visible),
.scenic-footer nav a:is(.active,[aria-current="page"],:focus-visible){color:var(--teal)}
.site-header nav a:is(.active,[aria-current="page"],:focus-visible)::after,
.scenic-footer nav a:is(.active,[aria-current="page"],:focus-visible)::after{
  transform:translateX(-50%) scaleX(1);
}
.site-header nav a:is(.active,[aria-current="page"],:focus-visible)::before,
.scenic-footer nav a:is(.active,[aria-current="page"],:focus-visible)::before{
  transform:translateX(-50%) scale(1);
}
.about-page .scenic-footer nav a.active::after{left:50%;right:auto;transform:translateX(-50%) scaleX(1)}
@media(hover:hover){
  .site-header nav a:hover,.scenic-footer nav a:hover{color:var(--teal)}
  .site-header nav a:hover::after,.scenic-footer nav a:hover::after{transform:translateX(-50%) scaleX(1)}
  .site-header nav a:hover::before,.scenic-footer nav a:hover::before{transform:translateX(-50%) scale(1)}
}
@media(prefers-reduced-motion:reduce){
  .site-header nav a,.scenic-footer nav a,
  .site-header nav a::before,.site-header nav a::after,
  .scenic-footer nav a::before,.scenic-footer nav a::after{transition:none}
}
/* Embedded map preserves the exact coordinates from the supplied link. */
.directions-card.pinned-map{display:flex;flex-direction:column;align-items:stretch;justify-content:space-between;background:#edf4f2;padding:0;overflow:hidden;min-height:340px;border:1px solid #e0e9e7}
.pinned-map iframe{display:block;width:100%;height:300px;min-height:260px;flex:1;border:0;background:#edf4f2}
.pinned-map .map-caption{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:16px 20px;background:#fff}
.pinned-map .map-caption h2{font-family:Arial,Helvetica,sans-serif;font-size:1rem;letter-spacing:0;line-height:1.4;margin:0}
.pinned-map .map-caption p{font-size:.8125rem;line-height:1.4;margin:4px 0 0;color:#486573}
.pinned-map .map-caption>a{font-size:.875rem;color:var(--teal);font-weight:600;text-decoration:underline;white-space:nowrap;text-underline-offset:3px}
@media(max-width:640px){.pinned-map .map-caption{align-items:flex-start;flex-direction:column;gap:10px;padding:14px 16px}.pinned-map iframe{height:280px}}
/* Keep the landscape and wooden boards in their original proportions. */
.experience{position:relative;overflow:hidden;background:#edf5f2;min-height:0;padding:0}
.experience-inner{position:relative;min-height:clamp(350px,24.9vw,470px);padding:28px 0;display:flex;align-items:center}
.experience-copy{position:relative;z-index:1;width:36%;padding-right:24px}
.experience-visual{position:absolute;right:calc((100% - 100vw)/2);top:50%;transform:translateY(-50%);width:min(84%,1400px);pointer-events:none;mask-image:linear-gradient(90deg,transparent 0%,#000 22%);-webkit-mask-image:linear-gradient(90deg,transparent 0%,#000 22%)}
.experience-visual>img{display:block;width:100%;height:auto;max-width:none}
.experience-visual .sign-words{display:block;position:absolute;inset:0;width:auto;transform:none;font-size:clamp(18px,1.4vw,28px)}
.experience-visual .sign-words>span,.experience-visual .sign-words i{left:88.3%;width:19%;transform:translate(-50%,-50%) rotate(-4deg)}
.experience-visual .sign-words>span{top:30%;font-size:clamp(17px,1.3vw,26px)}
.experience-visual .sign-words i:nth-of-type(1){top:50%}
.experience-visual .sign-words i:nth-of-type(2){top:63%}
.experience-visual .sign-words i:nth-of-type(3){top:77%}
@media(min-width:1900px){.experience-visual{right:calc((100% - min(100vw,1900px))/2)}}
@media(min-width:641px) and (max-width:1100px){.experience-copy{width:43%}.experience-visual{width:82%}.experience-visual .sign-words{font-size:16px}.experience-visual .sign-words>span{font-size:15px}}
@media(max-width:640px){.experience-inner{display:block;min-height:0;padding:25px 0 0}.experience-copy{width:100%;padding:0}.experience-visual{position:relative;inset:auto;width:112.4%;margin:22px -6.2% 0;transform:none;mask-image:none;-webkit-mask-image:none}.experience-visual .sign-words{display:none}}
/* Preserve image proportions everywhere; backgrounds may crop, never deform. */
.hero,.about-page .subpage-hero,.inner-header{background-size:cover}
.contact,.booking-strip,.about-page .booking-strip,.follow-card{background-size:cover}
.scenic-footer{background-color:#fff;background-size:100% auto;background-position:center bottom}
.details-card{background-color:#fff;background-size:100% auto;background-position:center bottom}
.about-highlights{background-color:#fff;background-size:100% auto;background-position:center bottom}
.gallery-grid .photo>img,.reviews img,.about-details>img,.story-section img,
.commitment-section>img,.about-page .commitment-section>img,.contact-view{object-fit:cover}
.experience-visual>img{width:100%;height:auto;object-fit:contain}
.site-header .brand-logo,.scenic-footer .brand-logo,.brand-logo{height:auto;object-fit:contain}
#lightbox-image{height:auto;object-fit:contain}
@media(max-width:640px){.scenic-footer{background-size:auto 100%}}
/* Supplied video: crop to the hero without stretching its 16:9 proportions. */
.animated-hero{isolation:isolate;position:relative}
.animated-hero .hero-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center;z-index:0;opacity:0;pointer-events:none;transition:opacity .5s ease}
.animated-hero .hero-video.is-ready{opacity:1}
.animated-hero::before{content:'';position:absolute;inset:0;background:linear-gradient(90deg,#fff5df85,transparent 68%);z-index:1;pointer-events:none}
.animated-hero .hero-content,.animated-hero .hero-note{position:relative;z-index:2}
.animated-hero .hero-note{position:absolute}
.motion-toggle{position:absolute;right:3.5%;bottom:16px;z-index:2;border:1px solid #ffffffa6;border-radius:25px;padding:8px 14px;min-height:40px;color:#fff;background:#063d46bf;font-size:13px;backdrop-filter:blur(6px)}
.motion-toggle:hover{background:#004f51}
.motion-toggle[hidden]{display:none}
@media(max-width:640px){.animated-hero .hero-video{object-position:63% center}.animated-hero::before{background:linear-gradient(90deg,#fff3dbbb,transparent 95%)}.motion-toggle{bottom:10px;right:5%;padding:7px 12px;font-size:12px}}
@media(prefers-reduced-motion:reduce){.animated-hero .hero-video{transition:none}}
/* Icon controls for both animations. */
.motion-toggle{display:grid;place-items:center;width:44px;height:44px;min-height:44px;padding:10px;border-radius:50%;box-shadow:0 2px 10px #002b3630}
.motion-toggle svg{width:22px;height:22px;display:block}
.motion-toggle[hidden]{display:none}
.experience-motion{position:absolute;inset:0;overflow:hidden;z-index:1;opacity:0;background:#edf5f2;transition:opacity .4s ease}
/* Exclude the baked-in sample text on the left of the supplied video.
   object-fit crops the landscape while retaining its original proportions. */
.experience-video{display:block;width:166.667%;max-width:none;height:100%;object-fit:cover;transform:translateX(-40%)}
.animated-experience.video-ready .experience-motion{opacity:1}
.animated-experience.video-ready .sign-words{visibility:hidden}
.animated-experience .motion-toggle{z-index:4;right:3.5%;bottom:14px}
@media(max-width:640px){.motion-toggle{width:44px;height:44px;padding:10px}.animated-experience .motion-toggle{right:5%;bottom:10px}}
@media(prefers-reduced-motion:reduce){.experience-motion{transition:none}}
.experience-motion{mask-image:linear-gradient(90deg,transparent 0%,transparent 18%,#000 45%);-webkit-mask-image:linear-gradient(90deg,transparent 0%,transparent 18%,#000 45%)}
@media(max-width:640px){.experience-motion{mask-image:none;-webkit-mask-image:none}}
/* Present the supplied 16:9 composition without zooming into the signboard. */
.animated-experience{background:#edf5f2;padding:0}
.animated-experience .experience-inner{width:min(1200px,92%);max-width:1200px;aspect-ratio:16/9;min-height:0;padding:0;position:relative;display:flex;align-items:center}
.animated-experience .experience-visual{inset:0;width:100%;height:100%;margin:0;transform:none;mask-image:none;-webkit-mask-image:none}
.animated-experience .experience-visual>img{width:100%;height:100%;object-fit:cover;object-position:right}
.animated-experience .experience-motion{inset:0;mask-image:none;-webkit-mask-image:none}
.animated-experience .experience-video{width:100%;height:100%;transform:none;object-fit:contain;background:#edf5f2}
.animated-experience .experience-inner:after{content:'';position:absolute;inset:0 auto 0 0;width:45%;background:#edf5f2;clip-path:polygon(0 0,80% 0,100% 100%,0 100%);z-index:1;pointer-events:none}
.animated-experience .experience-copy{width:38%;padding:32px 12px 32px 22px;z-index:2}
.animated-experience .experience-copy h2{font-size:clamp(25px,2vw,31px)}
.animated-experience .experience-copy p{font-size:16px;line-height:1.55}
.animated-experience .experience-copy .button{font-size:14px;padding:12px 18px;gap:12px}
.animated-experience .sign-words{display:none}
.animated-experience .motion-toggle{right:max(5%,calc((100% - 1200px)/2 + 16px));bottom:16px}
@media(min-width:641px) and (max-width:1000px){
 .animated-experience .experience-inner{width:96%;min-height:420px;aspect-ratio:auto}
 .animated-experience .experience-visual{width:100%;height:auto;aspect-ratio:16/9;top:50%;transform:translateY(-50%)}
 .animated-experience .experience-copy{width:40%;padding:24px 10px}
 .animated-experience .experience-copy h2{font-size:25px}
 .animated-experience .experience-copy p{font-size:15px}
}
@media(max-width:640px){
 .animated-experience .experience-inner{width:100%;aspect-ratio:auto;display:block}
 .animated-experience .experience-inner:after{display:none}
 .animated-experience .experience-copy{width:89%;margin:auto;padding:26px 0}
 .animated-experience .experience-copy p{font-size:16px}
 .animated-experience .experience-visual{position:relative;inset:auto;transform:none;aspect-ratio:16/15;height:auto;width:100%;overflow:hidden}
 .animated-experience .experience-video{width:166.667%;height:100%;transform:translateX(-40%);object-fit:contain}
 .animated-experience .experience-visual>img{object-fit:cover;object-position:right}
 .animated-experience .motion-toggle{right:5%;bottom:14px}
}
/* Reference banner: compact copy, subtle moving scenery, complete fixed sign. */
.animated-experience .experience-inner{width:88%;max-width:1600px;min-height:clamp(350px,24vw,405px);aspect-ratio:auto;display:flex;padding:24px 0}
.animated-experience .experience-inner:after{display:none}
.animated-experience .experience-copy{width:36%;padding:10px 28px 10px 0;z-index:3}
.animated-experience .experience-visual{position:absolute;left:auto;right:calc((100% - min(100vw,1920px))/2);top:50%;bottom:auto;width:min(74vw,1200px);height:auto;aspect-ratio:2160/728;transform:translateY(-50%);mask-image:linear-gradient(90deg,transparent,#000 23%);-webkit-mask-image:linear-gradient(90deg,transparent,#000 23%);overflow:hidden}
.animated-experience .experience-visual>img{width:100%;height:auto;object-fit:contain;object-position:center}
.animated-experience .experience-motion{inset:0;mask-image:linear-gradient(90deg,transparent 28%,#000 46%,#000 68%,transparent 80%);-webkit-mask-image:linear-gradient(90deg,transparent 28%,#000 46%,#000 68%,transparent 80%);transition:opacity .5s ease}
.animated-experience .experience-video{width:100%;height:100%;transform:none;object-fit:cover;object-position:center 40%}
.animated-experience.video-ready .experience-motion{opacity:.6}
.animated-experience .experience-visual .sign-words{display:block;visibility:visible;z-index:2;font-size:clamp(17px,1.35vw,25px)}
.animated-experience .experience-visual .sign-words>span{font-size:clamp(17px,1.2vw,23px)}
.animated-experience .motion-toggle{right:max(5%,calc((100% - 1600px)/2));bottom:10px;width:36px;height:36px;min-height:36px;padding:8px}
@media(max-width:1000px) and (min-width:641px){.animated-experience .experience-copy{width:44%;padding-right:20px}.animated-experience .experience-visual{width:76vw}.animated-experience .experience-visual .sign-words{font-size:15px}.animated-experience .experience-visual .sign-words>span{font-size:14px}}
@media(max-width:640px){
 .animated-experience .experience-inner{width:100%;display:block;min-height:0;padding:0}
 .animated-experience .experience-copy{width:89%;padding:25px 0;margin:auto}
 .animated-experience .experience-visual{position:relative;inset:auto;width:100%;height:auto;aspect-ratio:2160/728;transform:none;mask-image:none;-webkit-mask-image:none}
 .animated-experience .experience-visual .sign-words{display:block;font-size:clamp(10px,3vw,17px)}
 .animated-experience .experience-visual .sign-words>span{font-size:clamp(9px,2.6vw,15px)}
 .animated-experience .motion-toggle{right:5%;bottom:10px;transform:translateY(-100%);top:auto;left:5%;right:auto}
}
/* Sample lettering in the movie stays outside the visible scenery window. */
.animated-experience .experience-video{width:166.667%;height:100%;transform:translateX(-40%);object-fit:cover}
.animated-experience .experience-motion{mask-image:linear-gradient(90deg,transparent 32%,#000 42%,#000 68%,transparent 80%);-webkit-mask-image:linear-gradient(90deg,transparent 32%,#000 42%,#000 68%,transparent 80%)}
.animated-experience.video-ready .experience-motion{opacity:1}
/* Enquiry form inspired by the supplied illustrated reference. */
.enquiry-card{position:relative;isolation:isolate;background:#fff url('assets/footer-mountains.png') center bottom/100% auto no-repeat;padding-bottom:65px;overflow:visible}
.enquiry-card:before{content:'';position:absolute;inset:0;z-index:-1;border-radius:inherit;pointer-events:none;background:linear-gradient(90deg,#ffffff 30%,#ffffffdd 68%,#ffffffb8),url('assets/hero.png') right center/auto 100% no-repeat}
.enquiry-card .eyebrow{color:var(--teal)}
.enquiry-card h2{padding-right:100px}
.enquiry-slogan{position:absolute;top:28px;right:24px;font:italic 18px/1.5 'Segoe Print',cursive;color:#6e999c;transform:rotate(-9deg);text-align:center;opacity:.75;margin:0}
.enquiry-card .form-intro{margin-bottom:28px}
.form-grid .field-control{display:block;position:relative;margin-top:8px}
.form-grid .field-control input,.form-grid .field-control textarea{margin-top:0;background:#ffffffeb;padding-left:59px;border-color:#d4e3e4;border-radius:8px;min-height:46px}
.form-grid .field-control textarea{padding-top:13px;min-height:140px}
.field-icon{position:absolute;left:8px;top:7px;display:grid;place-items:center;width:33px;height:32px;border-radius:6px;background:#e6f3ef;color:var(--teal);pointer-events:none}
.field-icon svg,.subject-option svg{width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.form-grid input:focus,.form-grid textarea:focus,.form-grid select:focus{outline:2px solid #00848350;outline-offset:1px;border-color:#008483}
.subject-field>label{font-size:.9375rem}
.subject-field>label>span{color:#c14343}
.subject-select{position:relative;margin-top:8px}
.subject-select select{margin:0}
.subject-select select[hidden]{display:none}
.subject-trigger{position:relative;width:100%;display:flex;align-items:center;min-height:46px;padding:11px 38px 11px 59px;text-align:left;border:1px solid #d4e3e4;border-radius:8px;background:#fffffff0;font-size:1rem;font-weight:400;line-height:1.4}
.subject-trigger:after{content:'';position:absolute;right:17px;top:17px;width:8px;height:8px;border-right:2px solid var(--teal);border-bottom:2px solid var(--teal);transform:rotate(45deg);transition:transform .18s}
.subject-trigger[aria-expanded="true"]{border-color:#008483;box-shadow:0 0 0 3px #00848315}
.subject-trigger[aria-expanded="true"]:after{transform:translateY(4px) rotate(225deg)}
.subject-trigger[aria-invalid="true"]{border-color:#b43b3b}
.subject-list{position:absolute;top:calc(100% + 7px);left:0;right:0;z-index:10;margin:0;padding:6px;list-style:none;background:#fffffff7;border:1px solid #dceae8;box-shadow:0 12px 30px #174b4e20;border-radius:10px;backdrop-filter:blur(15px)}
.subject-list[hidden]{display:none}
.subject-option{display:flex;align-items:center;gap:18px;padding:12px 14px;min-height:46px;font-size:1rem;border-radius:6px;color:var(--ink);cursor:pointer;outline:none}
.subject-option svg{color:var(--teal);flex-shrink:0}
.subject-option:hover,.subject-option:focus,.subject-option[aria-selected="true"]{background:#d7f1ed}
.subject-error{font-size:.8125rem;margin:6px 0 0;color:#a33636}
#enquiry-submit{padding:13px 25px;gap:22px;box-shadow:0 4px 12px #006e7014}
@media(max-width:1250px){.enquiry-slogan{display:none}.enquiry-card h2{padding-right:0}}
@media(max-width:640px){.enquiry-card{padding-bottom:45px}.form-grid .field-control textarea{min-height:150px}.subject-option{padding:12px 10px;gap:12px;font-size:.9375rem}}
/* Tariff page uses the shared compact page and navigation styles. */
.tariff-layout{display:grid;grid-template-columns:1fr 1fr;gap:32px;align-items:stretch;padding-bottom:35px}
.tariff-room{width:100%;height:100%;min-height:360px;object-fit:cover;border-radius:14px}
.tariff-card{padding:32px;border:1px solid #dce9e4;background:#f4f9f6;border-radius:14px}
.tariff-card h2{font-size:var(--heading-size)}
.tariff-price{font:700 clamp(25px,2vw,34px)/1.2 Georgia,serif;color:var(--teal);margin:24px 0 8px}
#tariff-basis{margin-top:0;font-size:1rem;color:#486573}
.tariff-facts{margin:24px 0}
.tariff-facts>div{display:grid;grid-template-columns:130px 1fr;gap:16px;padding:13px 0;border-bottom:1px solid #d9e7e2;font-size:1rem}
.tariff-facts dt{font-weight:600}.tariff-facts dd{margin:0}
.tariff-note{font-size:.875rem;color:#486573;line-height:1.5;margin-bottom:24px}
.tariff-help{padding-bottom:45px}.tariff-help p{max-width:70ch}
.site-header>nav[aria-label="Main navigation"]{gap:clamp(18px,1.8vw,36px)}
@media(max-width:1250px){.site-header>nav[aria-label="Main navigation"]{gap:18px}}
@media(max-width:760px){.tariff-layout{grid-template-columns:1fr;gap:20px}.tariff-room{height:270px;min-height:0}.tariff-card{padding:24px}.tariff-facts>div{grid-template-columns:110px 1fr;gap:10px}}
@media(max-width:420px){.scenic-footer nav{gap:12px}.scenic-footer nav a{font-size:.8125rem}}
.tariff-table-wrap{margin:26px 0;overflow-x:auto;border:1px solid #cfe2dc;border-radius:10px;background:white}
.tariff-table{width:100%;border-collapse:collapse;text-align:left;font-size:1rem}
.tariff-table th,.tariff-table td{padding:17px 18px;border-bottom:1px solid #dfebe6;white-space:nowrap}
.tariff-table thead{background:#006e70;color:white}
.tariff-table thead th{font-weight:500}
.tariff-table tbody td{font-weight:700;color:var(--teal);font-size:1.25rem;font-variant-numeric:tabular-nums}
.tariff-table tbody tr:last-child>*{border-bottom:0}
.tariff-table tbody th{font-weight:500}
.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
@media(max-width:420px){.tariff-table th,.tariff-table td{padding:13px 9px;font-size:.875rem}.tariff-table tbody td{font-size:1rem}.tariff-card{padding:20px}}
@media(max-width:1100px){.site-header>nav[aria-label="Main navigation"]{display:none}.site-header .brand{margin-right:auto}.site-header .brand:after{display:none}}
@media(max-width:1200px){.footer-signature{display:none}}
.developer-credit{margin-top:16px;margin-bottom:0;text-align:center;font-size:.8125rem;line-height:1.5;color:#31565f}
.developer-credit strong{font-weight:600;color:var(--ink)}
@media(max-width:640px){.developer-credit{font-size:.75rem;margin-top:20px}}

/* Floating menu becomes a flush, full-width bar after scrolling. */
.site-header.wrap{position:fixed;top:20px;left:0;right:0;z-index:100}
.site-header.wrap.is-scrolled{top:0;width:100%;max-width:none;border-radius:0;border:0;background:#f5faf9;box-shadow:0 3px 18px #163e4220}
.site-header-spacer{visibility:hidden;pointer-events:none}
.skip-link{z-index:101}
#header-menu{max-height:calc(100dvh - 130px);overflow-y:auto}
@media(max-width:640px){.site-header.wrap{top:14px}.site-header.wrap.is-scrolled{top:0}}

/* Align desktop navigation with the controls on the right. */
@media(min-width:1101px){
  .site-header>nav[aria-label="Main navigation"]{margin-left:auto;margin-right:auto}
}

/* Match the section playback control to the hero control. */
.animated-experience .motion-toggle{top:auto;left:auto;right:3.5%;bottom:16px;transform:none;width:44px;height:44px;min-height:44px;padding:10px}
@media(max-width:640px){.animated-experience .motion-toggle{left:auto;right:5%;bottom:10px;transform:none}}

.animated-experience .experience-visual>img.leaf-sway{position:absolute;inset:0;width:100%;height:100%;object-fit:fill;pointer-events:none;z-index:1;animation:leaf-breeze 5s ease-in-out infinite alternate}
.leaf-sway-top{clip-path:polygon(0 0,23% 0,20% 30%,0 34%);transform-origin:0 0;mask-image:radial-gradient(ellipse at 0 0,#000 12%,transparent 33%);-webkit-mask-image:radial-gradient(ellipse at 0 0,#000 12%,transparent 33%)}
.animated-experience .leaf-sway-bottom-left{clip-path:polygon(0 65%,12% 70%,12% 100%,0 100%);transform-origin:0 100%;animation-delay:-2s;mask-image:radial-gradient(ellipse at 0 100%,#000 9%,transparent 23%);-webkit-mask-image:radial-gradient(ellipse at 0 100%,#000 9%,transparent 23%)}
.animated-experience .leaf-sway-bottom-right{clip-path:polygon(18% 62%,28% 58%,33% 100%,18% 100%);transform-origin:31% 100%;animation-delay:-3.5s;mask-image:radial-gradient(ellipse at 27% 100%,#000 9%,transparent 23%);-webkit-mask-image:radial-gradient(ellipse at 27% 100%,#000 9%,transparent 23%)}
@keyframes leaf-breeze{from{transform:rotate(-.7deg) translateX(-2px)}to{transform:rotate(.9deg) translateX(3px)}}
.animated-experience .leaves-paused>img.leaf-sway{animation-play-state:paused}
@media(prefers-reduced-motion:reduce){.animated-experience .experience-visual>img.leaf-sway{animation:none}}

/* Center social icons in the narrow footer layout. */
@media(max-width:640px){.scenic-footer .footer-socials{width:100%;justify-content:center}}
