/* St. Germain Pool House — static, framework-free site. */
@font-face{font-family:Bonfire Rough;src:url("assets/fonts/Bonfire-Rough.woff2") format("woff2");font-weight:400;font-display:swap}
@font-face{font-family:Times;src:url("assets/fonts/times.woff2") format("woff2");font-weight:400;font-display:swap}
@font-face{font-family:Times;src:url("assets/fonts/timesbd.woff2") format("woff2");font-weight:700;font-display:swap}
@font-face{font-family:Times;src:url("assets/fonts/timesi.woff2") format("woff2");font-weight:400;font-style:italic;font-display:swap}
:root{
  --olive:#656951;--olive-hover:#72765b;--charcoal:#2a2a2a;--pale:#f2f2f2;
  --text:clamp(1rem,calc(.1988071571vw + .9552683897rem),1.125rem);
  --small:clamp(.8125rem,calc(.0500373602vw + .8012415939rem),.8439609902rem);
  --h1:clamp(1.944rem,calc(1.6170835726vw + 1.5801561962rem),2.9607412963rem);
  --h2:clamp(1.62rem,calc(.9560417495vw + 1.4048906064rem),2.22111125rem);
  --h3:clamp(1.35rem,calc(.5029821074vw + 1.2368290258rem),1.66625rem);
  --h4:clamp(1.125rem,calc(.1988071571vw + 1.0802683897rem),1.25rem);
  --gap:clamp(1.5rem,calc(.5964214712vw + 1.365805169rem),1.875rem);
  --gap-large:clamp(1.9995rem,calc(1.2930417495vw + 1.7085656064rem),2.8125rem);
  --section:clamp(3rem,calc(4.1749502982vw + 2.0606361829rem),5.625rem);
  --gutter:clamp(1.25rem,calc(3.9761431412vw + .3553677932rem),3.75rem);
  --hero-space:clamp(7.105779111rem,calc(18.8923990282vw + 2.8549893296rem),18.984375rem);
  --footer-space:clamp(1.6883440665rem,calc(1.2909040692vw + 1.3978906509rem),2.5rem);
  --ldg-psb-background:#fff;--ldg-psb-border-radius:.42em;
  --ldg-psb-box-shadow:0 24px 54px 0 rgb(0 0 0 / 10%);--ldg-psb-padding:14px;
  --ldg-psb-input-background:#fff;--ldg-psb-button-border-radius:3.58em;
  --ldg-psb-color-primary:#656951;--ldg-psb-color-primary-lighter:#fde380;
  --ldg-psb-color-primary-darker:#7d6300;--ldg-psb-color-primary-contrast:white;
  --ldg-semantic-color-primary:#fac600;--ldg-semantic-color-primary-lighter:#fde380;
  --ldg-semantic-color-primary-darker:#7d6300;--ldg-semantic-color-primary-contrast:#333;
  --ldg-component-modal-z-index:999;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;font-size:100%}
body{margin:0;color:#000;background:#fff;font-family:Times,"Times New Roman",serif;font-size:var(--text);line-height:calc(6px + 2ex);text-wrap:pretty;-webkit-font-smoothing:antialiased}
h1,h2,h3,h4,p,ul,figure{margin:0}
h1,h2,h3,h4{font-family:Bonfire Rough,sans-serif;font-weight:700;line-height:calc(4px + 2ex);text-rendering:optimizeLegibility;text-wrap:pretty}
h1{font-size:var(--h1)}h2{font-size:var(--h2);color:var(--olive)}h3{font-size:var(--h3);color:var(--olive)}
a{color:inherit;text-decoration:none}
a,button{-webkit-tap-highlight-color:transparent}
a:focus-visible,button:focus-visible,video:focus-visible{outline:3px solid #bfae6b;outline-offset:5px}
img,video{display:block;max-width:100%}
button{font:inherit;cursor:pointer}
.container{width:100%;max-width:1366px;margin-inline:auto}
.section{padding:var(--section) var(--gutter)}
.skip-link{position:fixed;left:1rem;top:1rem;z-index:4000;background:#fff;color:#000;padding:0;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
.skip-link:focus{padding:12px 20px;width:auto;height:auto;clip-path:none}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.site-header{padding:16px var(--gutter);background:var(--charcoal);color:white}
.header-inner{display:flex;justify-content:space-between;align-items:center;gap:var(--gap)}
.brand{font-family:Bonfire Rough,sans-serif;font-weight:700;font-size:var(--h4);line-height:calc(4px + 2ex)}
.header-contact{line-height:calc(6px + 2ex)}
.header-contact a:hover,.footer-contact a:hover{text-decoration:underline}
.hero{position:relative;isolation:isolate;overflow:hidden;padding:var(--hero-space) var(--gutter);color:#fff}
.hero-video{position:absolute;z-index:-2;inset:0;width:100%;height:100%;object-fit:cover}
.hero::before{content:"";position:absolute;z-index:-1;inset:0;background:rgb(42 42 42 / 70%);pointer-events:none}
.hero-inner{display:flex;flex-direction:column;align-items:center;gap:var(--gap);text-align:center}
.hero-subtitle{font-size:clamp(1.2rem,calc(.4765407555vw + 1.09277833rem),1.499625rem);line-height:calc(6px + 2ex);margin-top:-16px}
.booking-widget{width:100%;position:relative;z-index:999}
#lodgify-search-bar{position:relative;width:100%}
#portable-search-bar{align-items:center}
#portable-search-bar button.secondary,#portable-search-bar button.secondary svg{width:32px;height:32px}
#portable-search-bar input{padding:0 12px}
.booking-fallback{display:block;width:max-content;max-width:100%;margin:auto;background:#fff;color:var(--olive);padding:24px 36px;border-radius:8px;font-family:Arial,sans-serif}
.hero-links{display:flex;justify-content:center;gap:var(--gap);width:100%;margin-top:var(--gap)}
.button{display:inline-flex;justify-content:center;align-items:center;min-width:140px;background:var(--olive);color:white;border:2px solid var(--olive);border-radius:5px;padding:.5em 1.25em;line-height:1;transition:background-color .2s}
.button:hover{background:var(--olive-hover);border-color:var(--olive-hover)}
.overview-inner{display:flex;flex-direction:column;gap:var(--gap)}
.overview-top{display:grid;grid-template-columns:1.5fr 2fr;gap:var(--gap)}
.overview-copy{display:flex;flex-direction:column;gap:var(--gap)}
.overview-copy p,.attractions-intro{margin-top:-16px;text-align:justify}
.tour-video{width:100%;aspect-ratio:16/9;background:#000}
.features{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,max(calc((1366px - var(--gap)) / 2 * .7),calc((100% - var(--gap)) / 2))),1fr));gap:var(--gap);padding-top:32px}
.feature-group strong,.activity-group strong{display:block;font-weight:700;line-height:calc(6px + 2ex)}
.feature-group h3{margin-bottom:calc(var(--gap) - 24px)}
.source-list{list-style:none;padding:0;display:flex;flex-direction:column;gap:calc(var(--gap) - 20.8px);margin-top:calc(var(--gap) - 20.8px)}
.feature-group:first-child .source-list{row-gap:calc(var(--gap) - 24px)}
.source-list li{display:flex;align-items:center;gap:calc(var(--gap) - 16px)}
.source-list li::before{content:"";background:url("assets/icons/bullet.svg") center / contain no-repeat;flex:0 0 8px;width:8px;height:8px}
.gallery-section,.contact-section{background:var(--pale)}
.gallery-section h2{text-align:center;margin-bottom:var(--gap)}
.gallery-grid{list-style:none;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.gallery-grid a{display:block;overflow:hidden;border-radius:20px}
.gallery-grid img{width:100%;height:auto;aspect-ratio:1;object-fit:cover;border-radius:20px}
.attractions-inner{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:var(--gap-large);row-gap:var(--gap);align-items:center}
.attractions-copy{display:flex;flex-direction:column;gap:var(--gap)}
.activities{display:flex;flex-direction:column;gap:0}
.activities h3{margin-bottom:calc(var(--gap) - 24px)}
.activity-group+.activity-group{margin-top:calc(var(--gap) - 16px)}
.activity-group:first-of-type .source-list{row-gap:calc(var(--gap) - 24px)}
.attractions-images{display:grid;gap:var(--gap)}
.attractions-images img{width:100%;height:304px;object-fit:none;border-radius:20px}
.contact-inner{display:grid;grid-template-columns:1fr 1fr;gap:var(--gap-large);align-items:center}
.contact-map{width:100%;height:400px;border:0;display:block}
.contact-copy{display:flex;flex-direction:column;gap:var(--gap)}
.contact-methods{display:grid;gap:20px}
.contact-method{display:flex;align-items:center;gap:16px;width:fit-content;max-width:100%}
.contact-method img{width:24px;height:24px;object-fit:contain;flex:none}
.contact-method span{overflow-wrap:anywhere}
.contact-method small{display:block;font-size:var(--small);color:var(--olive);margin-bottom:4px}
.contact-method:hover span{text-decoration:underline}
.contact-address{font-style:normal;color:#46483c}
.contact-copy .button{align-self:flex-start}
.site-footer{background:var(--charcoal);color:white;padding:var(--footer-space) var(--gutter) 16px;text-align:center}
.footer-inner{display:flex;flex-direction:column;align-items:center;gap:var(--gap)}
.footer-brand{color:white;font-size:var(--h3)}
.footer-contact{display:flex;justify-content:center;width:100%;gap:0}
.footer-contact a{display:flex;align-items:center;justify-content:center;gap:var(--gap);width:30%}
.footer-contact img{width:20px;height:16px;object-fit:contain;filter:brightness(0) invert(1)}
.footer-bottom{display:flex;justify-content:center;gap:48px;padding-top:var(--gap-large);font-size:12px}
.footer-bottom a:hover{text-decoration:underline}
.policy-hero{position:relative;isolation:isolate;padding:calc(var(--section) * 1.5) var(--gutter);background:url("assets/images/pool-view.webp") center / cover;color:#fff;text-align:center}
.policy-hero::before{content:"";position:absolute;z-index:-1;inset:0;background:rgb(42 42 42 / 70%)}
.policy-section{padding-bottom:var(--gap)}
.policy-rental{padding-top:var(--gap);padding-bottom:var(--section)}
.policy-section h2{margin-bottom:var(--gap)}
.policy-content>*+*{margin-top:1em}
.policy-content ul{padding-left:36px}
.policy-content li+li{margin-top:.5em}
.policy-content>ul:last-child{margin-bottom:1em}
.policy-rental .policy-content{max-width:784px}
.lightbox{border:0;margin:0;padding:0;position:fixed;inset:0;width:100%;height:100%;max-width:none;max-height:none;color:#fff;background:transparent;overflow:hidden}
.lightbox::backdrop{background:rgb(0 0 0 / 80%)}
.lightbox-image{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);max-width:100%;max-height:calc(100% - 100px);width:auto;height:auto;border-radius:4px;user-select:none;touch-action:pan-y}
.lightbox-count{position:absolute;left:20px;top:25px;font-size:14px;line-height:30px}
.lightbox-control{position:absolute;border:0;background:transparent;color:white;opacity:.85;padding:0;width:75px;height:100px;display:grid;place-items:center}
.lightbox-control:hover{opacity:1}
.lightbox-control img{width:60px;height:60px}
.lightbox-close img{width:40px;height:40px}
.lightbox-next img{transform:rotate(180deg)}
.lightbox-close{top:10px;right:20px;width:60px;height:60px}
.lightbox-prev{top:calc(50% - 10px);left:0;transform:translateY(-50%);justify-items:start;padding-left:9px}
.lightbox-next{top:calc(50% - 10px);right:0;transform:translateY(-50%);justify-items:end;padding-right:14px}
body.lightbox-open{overflow:hidden}
@media(max-width:991px){
  .contact-inner{grid-template-columns:1fr}
}
@media(max-width:478px){
  .site-header{padding-inline:clamp(13px,3.46vw,16px)}
  .header-inner>.brand{display:none}
  .header-inner{justify-content:center}
  .header-contact{font-size:var(--small);letter-spacing:-.03px}
  .hero h1,.policy-hero h1{font-size:48px;line-height:1.1}
  .hero-subtitle{font-size:clamp(1.44rem,calc(.8890658052vw + 1.2399601938rem),1.999000125rem)}
  .hero-links{gap:var(--gap)}
  .overview-top,.attractions-inner{grid-template-columns:1fr}
  .features{grid-template-columns:1fr}
  .gallery-grid{grid-template-columns:1fr}
  .attractions-images{grid-template-columns:1fr}
  .attractions-images img{border-radius:0}
  .contact-inner{gap:var(--gap-large)}
  .contact-map{height:400px}
  .contact-copy h2{font-size:var(--h2)}
  .footer-brand{text-align:center}
  .footer-contact{flex-direction:column;align-items:center;gap:var(--gap)}
  .footer-contact a{width:100%;gap:16px}
  .footer-bottom{font-size:12px;gap:32px;padding-top:var(--gap-large)}
  .lightbox-image{max-height:calc(100% - 100px)}
  .policy-hero{padding-block:calc(var(--section) * 1.3421)}
  .policy-hero h1{max-width:320px;margin:auto}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}
