@font-face{font-family:"Quattrocento";src:url("fonts/quattrocento-regular.woff2") format("woff2");font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:"Quattrocento";src:url("fonts/quattrocento-bold.woff2") format("woff2");font-weight:700;font-style:normal;font-display:swap}
@font-face{font-family:"La Belle Aurore";src:url("fonts/la-belle-aurore.woff2") format("woff2");font-weight:400;font-style:normal;font-display:swap}
:root{--dark:#383838;--mauve:#534F54;--tan:#B4A59D;--green:#006400;--brown:#65534E;--white:#FFFFFF;--black:#000000}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{transition:none!important;animation:none!important}}
html,body{overflow-x:hidden}
body{margin:0;background:var(--white);color:var(--black);font-family:"Quattrocento",Georgia,serif;font-size:19px;line-height:1.35}
img,video,iframe{max-width:100%}
img{height:auto;display:block}
a{color:var(--mauve)}
a:focus-visible,button:focus-visible,summary:focus-visible,[tabindex]:focus-visible{outline:3px solid #1E6FD9;outline-offset:2px;box-shadow:0 0 0 5px #fff}
.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.skip-main{position:absolute;left:-9999px;top:0;z-index:10000;background:var(--black);color:var(--white);padding:10px 18px;font-size:19px;border:1px solid var(--white)}
.skip-main:focus{left:50%;transform:translateX(-50%);top:10px}
.script{font-family:"La Belle Aurore",cursive;font-weight:400}
h1,h2,h3{font-family:"Quattrocento",Georgia,serif;color:var(--mauve);margin:0}
#site-header{background:var(--dark)}
.hdr{max-width:1920px;margin:0 auto;padding:8px max(16px,2.5vw);display:flex;align-items:center;gap:clamp(12px,1.6vw,40px)}
.hdr-logo{flex:0 0 auto}
.hdr-logo a{display:block}
.hdr-logo img{width:120px;height:120px}
.nav{order:2;position:relative;flex:1 0 auto;display:flex;justify-content:center}
.hdr-phone{order:3;flex:0 1 410px;min-width:220px;display:block;padding:0 16px;height:64px;line-height:62px;border:1px solid var(--white);background:var(--dark);color:var(--white);text-align:center;text-decoration:none;font-size:clamp(17px,1.15vw,22px);white-space:nowrap;transition:background-color .5s linear,color .5s linear}
.hdr-phone:hover,.hdr-phone:focus-visible{background:var(--tan);color:var(--black)}
.nav-toggle{display:none;align-items:center;gap:16px;background:transparent;color:var(--white);border:0;font:inherit;font-size:22px;padding:8px 10px;cursor:pointer}
.nav-toggle:hover{color:var(--tan)}
.nav-toggle .bars{display:inline-flex;flex-direction:column;gap:7px}
.nav-toggle .bars span{display:block;width:30px;height:3px;background:currentColor;border-radius:1px}
.nav-list{list-style:none;margin:0;padding:0;display:flex;flex-wrap:nowrap;align-items:center}
.nav-list>li{position:relative}
.nav-list>li>a,.nav-list>li>button{display:block;padding:12px clamp(7px,.85vw,17px);color:var(--white);text-decoration:none;font:inherit;font-size:clamp(14px,1.15vw,22px);text-transform:uppercase;background:none;border:0;cursor:pointer;line-height:1.3;white-space:nowrap}
.nav-list>li>a:hover,.nav-list>li>button:hover,.nav-list>li>a:focus-visible,.nav-list>li>button:focus-visible{background:var(--tan);color:var(--black)}
.nav-list>li.book>button{background:var(--green);color:var(--white)}
.nav-list>li.book>button:hover,.nav-list>li.book>button:focus-visible{background:var(--tan);color:var(--black)}
.nav-list a[aria-current="page"]{text-decoration:underline;text-underline-offset:5px;text-decoration-thickness:2px}
.caret{display:inline-block;width:0;height:0;margin-left:8px;vertical-align:middle;border-top:5px solid currentColor;border-right:5px solid transparent;border-left:5px solid transparent}
.sub{display:none;position:absolute;top:100%;left:0;z-index:1000;min-width:280px;margin:2px 0 0;padding:5px 0;list-style:none;background:var(--dark);border:1px solid rgba(229,229,229,.2);border-radius:4px;box-shadow:0 6px 12px rgba(0,0,0,.25)}
.sub.open{display:block}
.sub a{display:block;padding:7px 20px;color:var(--white);text-decoration:none;white-space:nowrap;font-size:18px;line-height:1.43}
.sub a:hover,.sub a:focus-visible{background:var(--tan);color:var(--black)}
@media (max-width:1499px) and (min-width:1280px){.hdr-logo img{width:100px;height:100px}}
@media (min-width:1280px){#site-header{position:-webkit-sticky;position:sticky;top:0;z-index:7776}}
@media (max-width:1279px){
#site-header{min-height:0}
.hdr{flex-direction:column;align-items:stretch;gap:14px;padding:14px 25px 10px}
.hdr-logo{align-self:center}
.hdr-logo img{width:100px;height:100px}
.hdr-phone{order:2;flex:0 0 auto;height:56px;line-height:54px;font-size:19px}
.nav{order:3;flex-direction:column;justify-content:flex-start}
.nav-toggle{display:inline-flex;align-self:flex-start}
.nav-list{display:none;flex-direction:column;align-items:stretch;margin:6px 0 4px;max-height:70vh;overflow-y:auto;border-top:1px solid rgba(255,255,255,.2)}
.nav-list.open{display:flex}
.nav-list>li>a,.nav-list>li>button{width:100%;text-align:left;font-size:19px;padding:11px 12px;white-space:normal}
.sub{position:static;border:0;box-shadow:none;margin:0;padding:0 0 6px 15px;min-width:0}
.sub a{white-space:normal;font-size:18px}
}
@media (max-width:479px){.hdr{padding:12px 16px 8px}.hdr-phone{font-size:18px}}
.intro{position:relative;height:100vh;height:100svh;min-height:560px;max-height:1100px;background:#2b2b2b url("images/intro-hero.webp") center center/cover no-repeat;overflow:hidden}
.intro-overlay{position:absolute;inset:0;background:#000;opacity:.5}
.intro-container{position:relative;max-width:1300px;height:100%;margin:0 auto}
.intro-logo{position:absolute;left:0;top:194px;width:390px;height:390px;z-index:6}
.intro-logo img{width:100%;height:100%}
.down-arrow{position:absolute;left:50%;bottom:25px;transform:translateX(-50%);z-index:8;width:50px;height:50px;border:3px solid var(--white);border-radius:50%;display:flex;align-items:center;justify-content:center;color:var(--white);text-decoration:none;transition:color .3s}
.down-arrow svg{width:30px;height:30px}
.down-arrow:hover{color:#7FD4A3}
@media (max-width:1299px){.intro-logo{left:30px;top:200px;width:330px;height:330px}}
@media (max-width:1023px){.intro-logo{left:50%;transform:translateX(-50%);top:12%;width:300px;height:300px}}
@media (max-width:479px){.intro-logo{top:8%;width:220px;height:220px}}
.wrap{max-width:1400px;margin:0 auto;padding:50px 15px}
.page-head{text-align:center;padding:30px 15px 10px}
.page-head h1{font-size:48px;font-weight:700;line-height:1.15}
.page-head .brandline{display:block;margin-top:4px;font-size:29px;font-weight:700;color:var(--mauve);line-height:1.2}
.brandline img{display:inline-block;width:28px;height:28px;vertical-align:-4px;margin:0 2px}
@media (max-width:767px){.page-head h1{font-size:34px}.page-head .brandline{font-size:24px}}
.lead{max-width:1100px;margin:14px auto 0;padding:0 15px;text-align:center;color:var(--mauve);font-size:19px}
.lead p{margin:0 0 18px}
.welcome{text-align:center;padding:50px 15px}
.welcome h1{font-size:48px;font-weight:700;line-height:1.15;margin-bottom:16px}
.welcome .copy{max-width:1370px;margin:0 auto;color:var(--mauve)}
.welcome .copy p{margin:0 0 22px}
.welcome .tagline{font-size:29px;color:var(--mauve);margin:0}
@media (max-width:767px){.welcome h1{font-size:34px}.welcome .tagline{font-size:26px}}
.split{max-width:1800px;margin:0 auto;padding:25px 0;display:flex;flex-wrap:wrap;align-items:center}
.split>div{flex:0 0 50%;max-width:50%;padding:20px 15px}
.split img{width:100%}
.split .script-head{font-size:32px;color:#505050;margin:0 0 8px;line-height:1.3}
.split p{color:var(--mauve);margin:0 0 18px;line-height:1.1}
.split .cta{color:var(--mauve);margin:0;line-height:1.3}
.split .cta a{color:var(--black);text-decoration:none}
.split .cta a:hover{text-decoration:underline}
@media (max-width:1024px){.split>div{flex-basis:100%;max-width:100%}}
.mauve-band{background:var(--mauve);text-align:center}
.mauve-band .inner-band{max-width:1140px;margin:0 auto;padding:50px 15px}
.mauve-band img{width:100%;max-width:1000px;margin:0 auto}
.mauve-band .script-line{color:var(--white);font-size:32px;margin:20px 0 0;line-height:1.3}
.central{max-width:1140px;margin:0 auto;padding:25px 15px;display:flex;flex-wrap:wrap;align-items:flex-start}
.central>div{flex:0 0 50%;max-width:50%;padding:20px 15px}
.central .script-head{font-size:32px;color:#505050;margin:0;line-height:1.3}
.central h2{font-size:21px;font-weight:700;margin:8px 0}
.central ul{margin:10px 0 20px;padding:0 0 0 24px;line-height:1.1}
.central li{margin-bottom:3px}
.photo-link{display:block;color:var(--mauve);font-size:19px;text-align:center}
.photo-link img{width:100%;margin-bottom:10px}
@media (max-width:1024px){.central>div{flex-basis:100%;max-width:100%}}
.map iframe{display:block;width:100%;height:286px;border:0}
.legend{background:var(--mauve);padding:0 0 10px}
.legend ul{list-style:none;margin:0;padding:0;display:flex}
.legend li{flex:1 1 33.333%}
.btn-dark,.legend a{display:block;min-height:56px;padding:14px 6px;background:var(--dark);color:var(--white);text-align:center;text-decoration:none;font-size:19px;line-height:1.4;border-right:1px solid var(--white);border-bottom:1px solid var(--white);transition:background-color .5s linear,color .5s linear}
.btn-dark:hover,.legend a:hover,.btn-dark:focus-visible,.legend a:focus-visible{background:var(--tan);color:var(--black)}
@media (max-width:1024px){.legend ul{flex-direction:column}}
.site-footer{background:var(--mauve);color:var(--white);text-align:center}
.ft{max-width:1400px;margin:0 auto;padding:0 15px 10px;display:flex;flex-wrap:wrap}
.ft>div{flex:0 0 33.333%;max-width:33.333%;padding:20px 15px}
.ft h2{color:var(--white);font-size:21px;font-weight:700;margin:0 0 14px}
.ft address{font-style:normal;font-weight:700;font-size:17px;letter-spacing:1.07px;line-height:24px}
.ft a{color:var(--white);text-decoration:none}
.ft a:hover{text-decoration:underline;text-underline-offset:4px}
.ft p{font-size:17px;font-weight:700;margin:0 0 14px}
.social{display:flex;justify-content:center;gap:10px;margin-bottom:14px}
.social a{display:flex;align-items:center;justify-content:center;width:50px;height:50px;border:2px solid var(--white);border-radius:50%;background:var(--dark);transition:transform .5s linear,background-color .5s}
.social a:hover{transform:rotate(360deg);background:var(--white);text-decoration:none}
.social svg{width:22px;height:22px;fill:var(--white)}
.social a:hover svg{fill:#127A65}
.badges{display:flex;justify-content:space-around;gap:10px}
.badges a,.badges>div{flex:1 1 50%}
.badges img{max-width:145px;width:100%;margin:0 auto}
.feat img{max-width:100px;width:100%;margin:0 auto;background:#fff}
@media (max-width:1024px){.ft>div{flex-basis:100%;max-width:100%}}
.copy-bar{background:var(--dark);color:var(--white);text-align:center;font-size:16px;line-height:27px;padding:12px 15px}
.copy-bar p{margin:0}
.copy-bar a{color:var(--white);text-decoration:none}
.copy-bar a:hover{text-decoration:underline;text-underline-offset:4px}
.pricing{display:flex;flex-wrap:wrap;max-width:1400px;margin:0 auto;padding:20px 0 30px}
.pricing>section{flex:0 0 50%;max-width:50%;padding:0 15px}
.pricing img{width:100%;max-width:605px;margin:0 auto}
.pricing .btn-dark{border:0;margin:0 0 10px}
.pricing h2{font-family:"La Belle Aurore",cursive;font-weight:400;font-size:37px;color:#2e2e2e;line-height:1.4;margin:22px 0 4px}
.pricing .times{color:var(--brown);font-weight:700;margin:0 0 18px;line-height:1.1}
.pricing h3{font-size:21px;font-weight:700;color:var(--black);margin:14px 0 2px;line-height:1.12}
.pricing .price{margin:0;font-size:19px}
.pricing ul{margin:2px 0 14px;padding-left:24px;line-height:1.1}
.pricing li{margin-bottom:2px}
@media (max-width:1024px){.pricing>section{flex-basis:100%;max-width:100%}}
.two-btn{display:flex;gap:8px;max-width:1400px;margin:20px auto;padding:0 2px}
.two-btn .btn-dark{flex:1 1 50%;border:0}
@media (max-width:640px){.two-btn{flex-direction:column}}
.frame{max-width:1400px;margin:0 auto;padding:10px 15px 40px}
.frame iframe{display:block;width:100%;border:0}
.booking-frame iframe{height:1046px}
@media (max-width:1023px){.booking-frame iframe{height:1100px}}
.thanks{font-size:32px;color:#505050;text-align:center;margin:14px 0 0}
.about{max-width:1270px;margin:0 auto;padding:10px 15px 50px}
.about img{width:100%;margin:10px 0 20px}
.about p{color:var(--mauve);margin:0}
.contact-grid{max-width:1210px;margin:10px auto 0;padding:0 15px}
.contact-grid img{width:100%}
.tour{background:var(--dark);color:var(--white);text-align:center;padding:16px 15px 20px}
.tour h2{color:var(--white);font-family:"La Belle Aurore",cursive;font-weight:400;font-size:43px;line-height:1.2}
.tour a{color:var(--white)}
.contact-info{max-width:1210px;margin:0 auto;padding:30px 15px 50px;display:flex;flex-wrap:wrap;gap:20px}
.contact-info>div{flex:1 1 300px;color:var(--mauve)}
.contact-info h2{font-size:24px;font-weight:700;margin:0 0 8px}
.contact-info address{font-style:normal}
.contact-info p{margin:0 0 6px}
.pay-grid{max-width:1400px;margin:10px auto 50px;padding:0 15px;display:flex;flex-wrap:wrap;gap:30px;align-items:flex-start}
.pay-grid>div{flex:1 1 400px}
.pay-grid img{width:100%;max-width:605px;margin:0 auto 10px}
.pay-grid .qr{max-width:414px}
.pay-box{background:var(--dark);color:var(--white);text-align:center;padding:20px;line-height:25px}
.pay-box p{margin:0 0 20px}
.pay-box .small{font-size:16px}
.pay-box a{color:var(--white)}
.faq{max-width:1400px;margin:0 auto;padding:10px 15px 50px}
.faq details{background:#f5f5f5;border:1px solid #cfcfcf;margin-bottom:2px}
.faq summary{list-style:none;cursor:pointer;padding:10px 14px;font-size:19px;display:flex;align-items:center;gap:10px}
.faq summary::-webkit-details-marker{display:none}
.faq summary::before{content:"";flex:0 0 auto;width:0;height:0;border-top:6px solid transparent;border-bottom:6px solid transparent;border-left:7px solid #333;transition:transform .2s}
.faq details[open] summary::before{transform:rotate(90deg)}
.faq summary h2{font-size:19px;font-weight:400;color:#222}
.faq .ans{padding:4px 14px 14px 31px;background:#fff;border-top:1px solid #e3e3e3}
.faq .ans p{margin:0}
.decor-intro{max-width:1100px;margin:14px auto 0;text-align:center;color:var(--mauve);padding:0 15px}
.decor-intro h2{font-size:24px;font-weight:700;margin:10px 0}
.gal{max-width:1400px;margin:0 auto;padding:20px 15px 50px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;list-style:none}
.gal.three{grid-template-columns:repeat(3,minmax(0,1fr))}
.gal a{display:block;color:var(--mauve);text-decoration:none}
.gal img{width:100%;aspect-ratio:auto;transition:opacity .2s}
.gal.three img{aspect-ratio:3/2;object-fit:cover}
.gal a:hover img{opacity:.85}
.gal .cap{display:block;font-size:16px;padding:6px 2px 0;text-align:center}
@media (max-width:900px){.gal.three{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:560px){.gal,.gal.three{grid-template-columns:minmax(0,1fr)}}
.video-wrap{max-width:1000px;margin:20px auto 0;padding:0 15px}
.video-wrap video{width:100%;height:auto;display:block;background:#000}
.video-wrap details{margin-top:10px;color:var(--mauve)}
.video-wrap summary{cursor:pointer;font-weight:700}
.balloon{max-width:1300px;margin:10px auto 50px;padding:0 15px;display:flex;flex-wrap:wrap;align-items:center}
.balloon>div{flex:0 0 33.333%;max-width:33.333%;padding:10px}
.balloon .txt{text-align:center;color:var(--mauve)}
.balloon .txt p{margin:0 0 18px}
@media (max-width:900px){.balloon>div{flex-basis:100%;max-width:100%}.balloon img{max-width:420px;margin:0 auto}}
.prose{max-width:1100px;margin:0 auto;padding:10px 15px 50px;color:var(--mauve);text-align:center}
.prose p{margin:0 0 18px}
.prose h2{font-size:24px;font-weight:700;margin:10px 0}
.agree-btns{display:flex;gap:8px;max-width:900px;margin:20px auto 50px;padding:0 15px}
.agree-btns .btn-dark{flex:1 1 50%;border:0}
@media (max-width:640px){.agree-btns{flex-direction:column}}
dialog{border:0;padding:0;max-width:none;max-height:none}
dialog::backdrop{background:rgba(0,0,0,.85)}
.lb{width:min(1200px,96vw);background:transparent;color:#fff}
.lb figure{margin:0;text-align:center}
.lb img{max-height:80vh;width:auto;max-width:100%;margin:0 auto;background:#111}
.lb figcaption{padding:10px 60px;font-size:18px}
.lb-bar{display:flex;justify-content:space-between;gap:10px;margin-top:6px}
.lb button,.dv button,.dv .dv-pdf{background:var(--dark);color:#fff;border:2px solid #fff;font:inherit;font-size:17px;padding:8px 16px;cursor:pointer;border-radius:4px;text-decoration:none}
.lb button:hover,.dv button:hover,.dv .dv-pdf:hover{background:var(--tan);color:#000}
.dv{width:min(1000px,96vw);height:92vh;background:#fff;color:#000;display:none;flex-direction:column}
.dv[open]{display:flex}
.dv-head{display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding:10px;background:var(--dark)}
.dv-head h2{color:#fff;font-size:19px;flex:1 1 200px}
.dv-tabs{display:flex;gap:6px}
.dv-tabs [aria-selected="true"]{background:var(--green)}
.dv-body{flex:1 1 auto;position:relative}
.dv-body iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.dv-mobile{display:none;padding:12px;text-align:center;background:#eee}
@media (max-width:759px){.dv{width:100vw;height:100vh;height:100dvh}.dv-tabs{display:none}.dv-mobile{display:block}}
.err{text-align:center;padding:10px 15px 60px;color:var(--mauve)}
.gal.four{grid-template-columns:repeat(4,minmax(0,1fr));padding-top:10px}
.gal.four img{aspect-ratio:3/2;object-fit:cover}
.gal-sec{scroll-margin-top:140px}
.gal-sec h2{max-width:1400px;margin:30px auto 0;padding:0 15px;font-size:30px;font-weight:700;text-align:center;text-wrap:balance}
.gal-jump{max-width:1400px;margin:24px auto 0;padding:0 15px}
.gal-jump ul{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;justify-content:center;gap:8px}
.gal-jump a{display:block;padding:10px 16px;background:var(--dark);color:var(--white);text-decoration:none;font-size:18px;border-radius:4px;transition:background-color .3s,color .3s}
.gal-jump a:hover,.gal-jump a:focus-visible{background:var(--tan);color:var(--black)}
.gal-jump .ct{font-size:15px}
@media (max-width:1100px){.gal.four{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width:760px){.gal.four{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.gal-sec h2{font-size:24px}}
.gal.four img{object-position:50% 30%}
@media (max-width:560px){.gal-jump ul{flex-direction:column}.gal-jump a{text-align:center}}
.agreement-form{min-height:400px}
.agreement-form iframe{max-width:100%}
