
:root{--cream:#fbf7ef;--ink:#40222a;--muted:#796a68;--rose:#af655b;--line:#ddcfc4;--pink:#eee0da}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:90px}body{margin:0;background:var(--cream);color:var(--ink);font:16px/1.65 Arial,sans-serif}a{color:inherit}button,input,select,textarea{font:inherit}button,a,input,select,textarea{touch-action:manipulation}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #a56a31;outline-offset:4px}h1,h2,h3,p{margin:0}h1,h2,h3,.serif{font-family:Georgia,serif;font-weight:400}h1{font-size:clamp(58px,6.7vw,104px);line-height:1.04;letter-spacing:-4px}h2{font-size:clamp(40px,4.5vw,64px);line-height:1.1;letter-spacing:-2px}h3{font-size:29px;line-height:1.2}em{font-weight:400;color:var(--rose)}.wrap{max-width:1280px;margin:auto;padding:0 6%}.eyebrow{font-size:11px;font-weight:700;letter-spacing:2.3px;text-transform:uppercase}.btn{display:inline-flex;justify-content:center;align-items:center;gap:25px;text-decoration:none;padding:16px 24px;border:1px solid var(--ink);border-radius:2px;background:var(--ink);color:var(--cream);font-size:13px;cursor:pointer}.btn:hover{background:#66333d}.btn.light{background:transparent;color:var(--ink)}.btn.light:hover{background:var(--pink)}header{border-bottom:1px solid var(--line);background:var(--cream);position:sticky;top:0;z-index:5}.nav{height:85px;display:flex;align-items:center;justify-content:space-between;gap:20px}.brand{text-decoration:none;display:flex;align-items:center;gap:12px}.monogram{width:40px;height:45px;border:1px solid var(--rose);border-radius:50% 50% 0 0;display:grid;place-items:center;font:25px Georgia}.wordmark{font:25px Georgia;line-height:1.1}.wordmark small{display:block;font:9px Arial;letter-spacing:5px;margin-top:6px;text-transform:uppercase}.navlinks{display:flex;gap:27px;align-items:center;font-size:12px}.navlinks a{text-decoration:none}.navlinks .btn{padding:11px 17px}.hero{display:grid;grid-template-columns:1.08fr 1fr;gap:5%;padding-top:55px;padding-bottom:55px;align-items:center}.hero-copy{padding:35px 0}.hero .eyebrow{margin-bottom:27px}.hero p{max-width:400px;color:var(--muted);margin:25px 0 29px}.hero-actions{display:flex;gap:22px;align-items:center;flex-wrap:wrap}.textlink{font-size:12px;text-underline-offset:5px}.hero-photo{position:relative;padding:0 20px 25px 0}.hero-photo img{width:100%;height:580px;object-fit:cover;object-position:center 58%;border-radius:240px 240px 3px 3px;display:block}.photo-note{position:absolute;bottom:0;right:0;background:var(--ink);color:var(--cream);padding:20px 26px;max-width:245px;font:21px/1.3 Georgia}.photo-note span{display:block;font:9px Arial;letter-spacing:2px;margin-bottom:9px}.hero-bottom{font-size:10px;letter-spacing:1px;margin-top:36px;color:var(--muted)}.ribbon{background:var(--ink);color:var(--cream);padding:18px 20px;display:flex;justify-content:center;gap:45px;font:19px Georgia}.ribbon span:before{content:'✧';margin-right:20px;color:#d5ac91}section{padding:90px 0}.section-head{display:flex;justify-content:space-between;align-items:flex-end;gap:30px;margin:18px 0 40px}.section-head p{max-width:330px;color:var(--muted);font-size:14px}.services{display:grid;grid-template-columns:repeat(3,1fr);gap:32px}.service{padding:25px 0;border-top:1px solid var(--line)}.service .num{font:13px Georgia;color:var(--rose)}.service h3{margin:16px 0}.service p{font-size:14px;color:var(--muted)}.service a{display:inline-block;margin-top:22px;font-size:12px;text-underline-offset:5px}.mission{background:var(--pink)}.mission-grid{display:grid;grid-template-columns:0.9fr 1fr;gap:10%;align-items:center}.mission img{width:100%;height:510px;object-fit:cover;border-radius:2px 2px 180px 2px}.mission h2{margin:22px 0 25px}.mission p{color:#6e5555;margin:16px 0}.signature{font:28px Georgia;font-style:italic;margin-top:30px}.gallery{display:grid;grid-template-columns:1.2fr 1fr 1fr;gap:18px}.gallery button{padding:0;background:none;border:0;text-align:left;color:var(--ink);cursor:pointer}.gallery img{width:100%;height:340px;object-fit:cover;display:block}.gallery button:nth-child(2){padding-top:45px}.gallery small{display:block;font-size:11px;margin-top:12px}.process{display:grid;grid-template-columns:repeat(3,1fr);gap:40px;margin-top:55px;padding-top:35px;border-top:1px solid var(--line)}.process h3{font-size:23px;margin-bottom:10px}.process p{font-size:13px;color:var(--muted)}.process b{font:italic 20px Georgia;color:var(--rose);display:block;margin-bottom:12px}.contact{background:var(--ink);color:var(--cream)}.contact-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:8%}.contact h2{margin:22px 0}.contact p{font-size:14px;color:#ddc8c5}.contact .details{margin-top:35px;display:grid;gap:10px;font-size:15px}.contact .details a{text-decoration:none}.contact .eyebrow{color:#d9b79e}.socials{display:flex;gap:22px;margin-top:26px;font-size:12px}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.field{display:flex;flex-direction:column;gap:6px;min-width:0}.full{grid-column:1/-1}label{font-size:12px;color:#f0ded8}input,select,textarea{width:100%;min-width:0;border:1px solid #8a6269;border-radius:2px;background:#56313b;padding:11px 12px;color:white;font-size:14px}input::placeholder,textarea::placeholder{color:#cbb7b6}textarea{resize:vertical}select option{background:#56313b}input[type=date]{color-scheme:dark}.contact .btn{background:#e8c6ad;border-color:#e8c6ad;color:var(--ink);width:100%}.contact .btn:hover{background:#f5dac5}.form-note{font-size:11px!important;margin-top:12px}.check{display:flex;align-items:flex-start;gap:10px;font-size:11px}.check input{width:16px;flex-shrink:0;margin-top:4px}.result{margin-top:18px;padding:15px;border:1px solid #ac878b;font-size:13px}.result a{display:inline-block;margin:10px 15px 0 0}.result textarea{height:150px;margin-top:12px}footer{padding:30px 0}.footer-line{display:flex;justify-content:space-between;gap:25px;align-items:center;font-size:11px;color:var(--muted)}details{font-size:12px;margin-top:20px;color:var(--muted)}details p{max-width:700px;margin-top:10px}dialog{max-width:900px;width:90%;border:0;padding:40px 15px 15px;background:var(--cream)}dialog::backdrop{background:#23171bd9}dialog img{display:block;width:100%;max-height:78vh;object-fit:contain}dialog button{position:absolute;right:12px;top:6px;border:0;background:none;font-size:24px;cursor:pointer}.skip{position:fixed;top:-100px;left:10px;z-index:20;background:white;padding:10px}.skip:focus{top:10px}[hidden]{display:none!important}@media(max-width:800px){.nav{height:74px}.navlinks>a:not(.btn){display:none}.navlinks .btn{font-size:11px;padding:10px}.wordmark{font-size:21px}.hero{gap:20px;padding-top:20px}.hero-photo img{height:440px}.hero h1{font-size:65px}.photo-note{padding:14px;font-size:17px;max-width:190px}.section-head{display:block}.section-head p{margin-top:20px}.contact-grid{gap:35px}.gallery img{height:270px}.ribbon{gap:20px;font-size:15px}.ribbon span:before{margin-right:10px}}@media(max-width:600px){h1{letter-spacing:-2px}.wrap{padding:0 6%}.hero{grid-template-columns:1fr;padding-top:12px;padding-bottom:35px}.hero-copy{padding:25px 0 10px}.hero h1{font-size:68px}.hero p{margin:20px 0}.hero-photo{max-width:450px}.hero-photo img{height:420px;border-radius:190px 190px 2px 2px}.hero-bottom{margin-top:24px}.ribbon{flex-wrap:wrap;gap:8px 23px;font-size:14px}.services,.mission-grid,.contact-grid{grid-template-columns:1fr}.services{gap:0}.service{padding:22px 0}.mission-grid{gap:35px}.mission img{height:390px}.gallery{grid-template-columns:1fr 1fr;gap:14px}.gallery button:first-child{grid-column:1/-1}.gallery button:nth-child(2){padding-top:0}.gallery img{height:240px}.gallery button:first-child img{height:320px}.process{grid-template-columns:1fr;gap:24px;margin-top:35px}.process b{display:inline;margin-right:12px}.process h3{display:inline}.process p{margin-top:10px}section{padding:58px 0}.contact-grid{gap:35px}.form-grid{gap:14px}.footer-line{align-items:flex-start;flex-direction:column;gap:12px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

/* Expanded portfolio and cross-browser event choice controls. */
.gallery{display:block;columns:3;column-gap:22px}.gallery button,.gallery button:nth-child(2){display:inline-block;width:100%;padding:0;margin:0 0 27px;break-inside:avoid}.gallery img,.gallery button:first-child img{width:100%;height:auto;max-height:none;object-fit:contain;border-radius:3px;transition:filter .2s}.gallery button:hover img{filter:brightness(.92)}.gallery small{display:flex;justify-content:space-between;gap:12px;font-size:12px;margin-top:10px}.mission-art{border:0;background:none;padding:0;color:var(--ink);cursor:pointer;text-align:left;min-width:0}.mission .mission-art img{height:auto;max-height:710px;object-fit:contain;border-radius:0}.mission-art>span{font-size:11px;display:block;text-align:center;margin-top:12px;text-decoration:underline;text-underline-offset:4px}.training-art{display:flex;align-items:center;gap:18px;background:transparent;border:0;border-top:1px solid #cfbcb4;margin-top:25px;padding:22px 0 0;text-align:left;color:var(--ink);cursor:pointer;width:100%;font-family:Georgia,serif;font-size:19px}.mission .training-art img{height:100px;width:100px;object-fit:cover;border-radius:3px}.training-art small{font:12px/1.5 Arial,sans-serif;color:var(--muted)}.event-picker{border:0;padding:0;margin:0;min-width:0}.event-picker legend{font-size:12px;color:#f0ded8;padding:0;margin-bottom:9px}.event-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}.event-options label{position:relative;cursor:pointer;min-width:0}.event-options input{position:absolute;opacity:0;width:1px;height:1px;margin:0;padding:0;min-width:0}.event-options span{display:flex;align-items:center;justify-content:center;text-align:center;min-height:53px;height:100%;border:1px solid #ad8990;border-radius:3px;padding:10px 8px;color:#f6e8e2;font-size:12px;line-height:1.4}.event-options input:checked+span{background:#e8c6ad;color:#40222a;border-color:#e8c6ad;font-weight:bold}.event-options input:focus-visible+span{outline:3px solid #e8c6ad;outline-offset:3px}.event-options label:hover span{border-color:#efd3bf}
@media(max-width:800px){.gallery{columns:2}.mission-grid{gap:6%}.event-options{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:600px){.gallery{column-gap:13px}.gallery button,.gallery button:nth-child(2){margin-bottom:20px}.gallery small{font-size:10px}.mission .mission-art img{max-height:650px;width:100%}.mission-grid{gap:32px}.event-options span{min-height:49px}.event-picker{margin-top:5px}}

.btn{gap:0;white-space:normal;text-align:center;line-height:1.45}.btn:disabled{opacity:.6;cursor:wait}.honeypot{position:absolute!important;width:1px!important;height:1px!important;overflow:hidden!important;clip-path:inset(50%);padding:0!important;border:0!important}#send-status{margin:12px 0;font-size:13px;overflow-wrap:anywhere}#turnstile{margin-bottom:12px;max-width:100%;overflow:hidden}@media(max-width:600px){.navlinks .btn{max-width:160px}.hero-actions>.btn{width:100%;padding:16px 15px}.event-options{grid-template-columns:repeat(2,minmax(0,1fr))}}
/* Shared pages and accessible navigation. */
:root{--muted:#6e5b59;--rose:#995044}
body{overflow-wrap:break-word}img{max-width:100%}main{outline:none}.nav{height:auto;min-height:85px;position:relative}.navlinks{gap:23px}.navlinks a{padding:12px 0}.navlinks a:hover,.navlinks a[aria-current]{text-decoration:underline;text-underline-offset:6px}.brand{flex-shrink:0}.menu-toggle{display:flex;align-items:center;gap:10px;min-height:44px;border:1px solid var(--line);border-radius:3px;padding:8px 12px;background:var(--cream);color:var(--ink);cursor:pointer}.menu-bars{display:block;width:19px;height:14px;border-top:2px solid currentColor;border-bottom:2px solid currentColor;position:relative}.menu-bars:after{content:'';position:absolute;top:5px;left:0;width:19px;border-top:2px solid currentColor}.section-link{margin-top:30px}.story-preview{max-width:900px}.story-preview h2{margin:20px 0}.story-preview p{max-width:700px;margin:24px 0}.page-intro{padding-top:75px;padding-bottom:60px}.page-intro h1{font-size:clamp(46px,6.5vw,88px);letter-spacing:-2px;margin:24px 0;max-width:1050px}.page-intro p{max-width:760px;color:var(--muted);margin:18px 0}.service-details{padding-top:0}.service-details>article{display:grid;grid-template-columns:1.15fr .85fr;gap:7%;align-items:center;border-top:1px solid var(--line);padding:60px 0}.service-details h2{font-size:clamp(34px,4vw,50px);margin:18px 0 22px}.service-details p{margin:18px 0;color:var(--muted)}.service-details img{width:100%;height:auto;max-height:510px;object-fit:cover;border-radius:3px}.service-details .btn{margin-top:12px}.service-details>.rental{grid-template-columns:1fr;max-width:900px}.inline-actions{display:flex;gap:14px;align-items:center;flex-wrap:wrap;margin-top:20px}.gallery-section{padding-top:0}.gallery-section .gallery img{max-height:650px}.gallery-notes{max-width:850px;margin-top:60px}.gallery-notes h2{font-size:clamp(34px,4vw,48px);margin-bottom:25px}.gallery-notes p{margin:20px 0;color:var(--muted)}.gallery small{display:block}.training-section p{margin:20px 0}.training-section .btn{margin-top:10px}.footer-nav{display:flex;gap:12px 25px;flex-wrap:wrap;margin-top:25px;font-size:13px}.footer-nav a{padding:8px 0}.contact .details a{text-decoration:underline;text-underline-offset:4px;overflow-wrap:anywhere}.contact .details{min-width:0}.contact-grid>div{min-width:0}dialog{max-height:94dvh;overflow:auto}dialog img{max-height:72dvh}dialog button{min-width:44px;min-height:40px;top:0;color:var(--ink)}#photo-caption{padding:12px 6px;font-size:13px}a:focus-visible,button:focus-visible{outline-color:#995b25}.contact a:focus-visible,.contact button:focus-visible,.contact input:focus-visible,.contact textarea:focus-visible{outline-color:#f4d5b7}.hero-photo img{aspect-ratio:3/4}.hero h1{font-size:clamp(52px,6.7vw,98px)}
@media(max-width:900px){.nav{min-height:74px;flex-wrap:wrap;padding-top:12px;padding-bottom:12px;gap:12px}.navlinks{flex-basis:100%;flex-direction:column;align-items:stretch;gap:0;border-top:1px solid var(--line);padding:10px 0}.navlinks>a:not(.btn){display:block}.navlinks a{padding:13px 8px;font-size:15px}.navlinks .btn{max-width:none;font-size:14px;padding:13px}.menu-toggle{margin-left:auto}}
@media(min-width:901px){.menu-toggle{display:none!important}}
@media(max-width:700px){.service-details>article{grid-template-columns:1fr;gap:30px;padding:40px 0}.service-details img{max-height:470px}.page-intro{padding-top:45px;padding-bottom:40px}.page-intro h1{font-size:clamp(42px,10vw,65px)}.mission-grid{grid-template-columns:1fr;gap:35px}.inline-actions{align-items:stretch}.inline-actions .btn{flex:1 1 220px}.hero h1{font-size:clamp(47px,10.5vw,68px)}.training-section{padding-top:50px;padding-bottom:50px}}
@media(max-width:360px){.form-grid{grid-template-columns:1fr}.wordmark{font-size:19px}.brand{gap:8px}.menu-toggle{font-size:13px;padding:8px}.hero-photo img{height:auto}.gallery{columns:1}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}
/* Turnstile flexible widgets require at least 300px of usable width. */
.training-section .mission-art{width:100%;max-width:480px;justify-self:center}
.training-section .mission-art img{display:block;width:100%;height:auto;object-fit:contain}
@media(max-width:700px){.contact-grid{grid-template-columns:1fr}}
@media(max-width:360px){.contact>.wrap{padding-left:10px;padding-right:10px}}

/* Match native date and number controls, including their bottom edges. */
.field input{height:48px;min-height:48px;max-width:100%;font-size:16px;line-height:1.4}
.field input[type=date]::-webkit-datetime-edit{padding:0}
/* Give native mobile controls a full row, including wider phones in landscape. */
@media(max-width:900px){.form-grid{grid-template-columns:minmax(0,1fr)}}

/* Keep the homepage selection in aligned rows, with full photographs visible. */
.home-gallery{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px 22px;columns:auto}
.home-gallery button,.home-gallery button:nth-child(2){display:flex;flex-direction:column;margin:0;padding:0;min-width:0}
.home-gallery button:first-child{grid-column:auto}
.home-gallery img,.home-gallery button:first-child img{display:block;width:100%;height:auto;aspect-ratio:3/4;object-fit:contain;background:var(--pink);border-radius:3px}
.home-gallery small{margin-top:10px;text-align:left}
@media(max-width:800px){.home-gallery{grid-template-columns:repeat(2,minmax(0,1fr));gap:24px 14px}}
@media(max-width:360px){.home-gallery{grid-template-columns:1fr}}

/* Kids Corner follows the service layout and keeps the supplied image square. */
.kids-corner{padding-top:0}
.kids-corner .kids-corner-tagline{font-size:clamp(23px,2.4vw,30px);line-height:1.3;color:var(--ink)}
.kids-corner .mission-art{width:100%;max-width:510px;justify-self:center}
.kids-corner .mission-art img{display:block;width:100%;height:auto;max-height:none;object-fit:contain}
.kids-corner-teaser{margin-top:24px}
.kids-corner-teaser p{max-width:720px}

.training-photos{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;align-items:start;min-width:0}
@media(max-width:700px){.training-photos{grid-template-columns:minmax(0,1fr);gap:30px}}
