*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:110px}body{margin:0;background:#faf6ef;color:#4a281b;font-family:Arial,sans-serif;font-size:16px;line-height:1.65}a{color:inherit}header{display:flex;align-items:center;justify-content:space-between;padding:18px 6%;border-bottom:1px solid #4a281b25}.brand img{width:165px;height:95px;object-fit:contain}nav{display:flex;gap:32px;align-items:center}nav a{text-decoration:none;font-size:14px}.nav-book{border:1px solid #4a281b;padding:10px 18px}h1,h2,h3{font-family:Georgia,serif;font-weight:400;line-height:1.12}h1{font-size:clamp(48px,6vw,90px);letter-spacing:-3px;margin:25px 0}h2{font-size:clamp(36px,4vw,60px);letter-spacing:-1.5px;margin:15px 0 30px}h3{font-size:28px}.eyebrow{text-transform:uppercase;letter-spacing:2px;font-size:12px}.hero{display:grid;grid-template-columns:1fr 1fr;min-height:690px}.hero-copy{padding:100px 12% 80px}.hero-copy>p:not(.eyebrow){max-width:330px;margin-bottom:32px}.hero-photo{position:relative;margin:30px 6% 30px 0}.hero-photo img{width:100%;height:100%;max-height:740px;object-fit:cover}.hero-photo span{position:absolute;bottom:15px;left:20px;color:white;font-size:12px;letter-spacing:1px}.button{display:inline-block;text-decoration:none;background:#4a281b;color:#faf6ef;padding:15px 24px;font-size:14px}.text-link{display:block;margin-top:20px;font-size:14px;text-underline-offset:5px}.portfolio{padding:90px 6%}.section-heading{text-align:center}.filters{display:flex;flex-wrap:wrap;justify-content:center;gap:10px;margin:35px 0}.filters button{border:1px solid #4a281b35;background:none;color:inherit;font:inherit;font-size:14px;padding:9px 16px;cursor:pointer}.filters button[aria-pressed=true]{background:#4a281b;color:#faf6ef}.gallery{columns:3;column-gap:22px}.photo{display:block;position:relative;width:100%;padding:0;margin:0 0 22px;border:0;background:none;break-inside:avoid;cursor:pointer}.photo img{width:100%;display:block}.photo span{position:absolute;bottom:0;left:0;padding:18px 15px;width:100%;text-align:left;color:#fff;background:linear-gradient(transparent,#0009);font-size:14px;opacity:0;transition:opacity .2s}.photo:hover span,.photo:focus span{opacity:1}.photo[hidden]{display:none}.about{display:grid;grid-template-columns:1fr 1fr;background:#ece3d8;gap:8%;padding:85px 9%;align-items:center}.about>img{width:100%;max-height:680px;object-fit:cover}.about p{max-width:520px}.about .button{margin-top:15px}.sessions{padding:100px 8%;text-align:center}.sessions h2{max-width:650px;margin:15px auto 50px}.session-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:35px;text-align:left;margin-bottom:45px}.session-grid article{border-top:1px solid #4a281b55;padding-top:20px}.session-grid article span{font-size:12px}.session-grid p{font-size:15px}.contact{background:#4a281b;color:#faf6ef;text-align:center;padding:90px 20px}.contact>p:not(.eyebrow){max-width:500px;margin:25px auto}.cream{background:#faf6ef;color:#4a281b}.handle{font-size:14px}footer{padding:35px 6%;display:flex;flex-wrap:wrap;justify-content:space-between;gap:25px;align-items:center;font-size:14px}footer div{display:flex;gap:20px}footer small{font-size:12px}dialog{padding:45px 15px 15px;border:0;background:#181310;max-width:95vw;max-height:95vh}dialog::backdrop{background:#000c}dialog img{display:block;max-height:80vh;max-width:85vw}dialog button{position:absolute;right:15px;top:10px;background:none;border:0;color:white;font-size:14px;cursor:pointer}.legal{max-width:850px;margin:auto;padding:70px 25px}.legal h1{font-size:56px}.legal h2{font-size:36px;margin-top:55px}.legal h3{font-size:24px;margin-top:32px}:focus-visible{outline:3px solid #ab7049;outline-offset:5px}@media(max-width:800px){header{padding:12px 5%;flex-wrap:wrap;justify-content:center}.brand img{height:70px;width:130px}nav{width:100%;justify-content:center;gap:16px}nav a{font-size:14px}.nav-book{padding:6px 9px}.hero{grid-template-columns:1fr}.hero-copy{padding:55px 7% 35px}.hero-photo{margin:0 7% 35px;height:550px}.gallery{columns:2;column-gap:12px}.photo{margin-bottom:12px}.photo span{opacity:1;font-size:12px}.portfolio{padding:55px 5%}.about{grid-template-columns:1fr;padding:55px 7%;gap:30px}.about img{max-height:620px}.session-grid{grid-template-columns:1fr 1fr;gap:25px}.sessions{padding:60px 7%}footer{justify-content:center;text-align:center}.contact{padding:60px 20px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}
.gallery.uniform{columns:auto;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px;align-items:start}.gallery.uniform .photo{margin:0;aspect-ratio:4/5;overflow:hidden}.gallery.uniform .photo img{width:100%;height:100%;object-fit:cover;object-position:center}.gallery.uniform .photo[hidden]{display:none}@media(max-width:800px){.gallery.uniform{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}}

.booking{max-width:930px;margin:auto;padding:65px 30px 90px}.booking>h1{text-align:center;font-size:48px;letter-spacing:2px;margin:10px 0 25px}.booking>.eyebrow,.booking-intro{text-align:center}.booking-intro{max-width:620px;margin:0 auto 55px}.booking form{display:flex;flex-direction:column;align-items:stretch}.booking label{text-transform:uppercase;letter-spacing:2px;font-size:12px;margin:26px 0 10px}.booking input,.booking textarea{width:100%;border:1px solid #4a281b60;background:transparent;padding:15px;color:#4a281b;font:16px Georgia,serif;border-radius:0}.booking textarea{resize:vertical;min-height:150px}.booking .button{border:0;font:14px Arial,sans-serif;letter-spacing:1px;align-self:flex-start;cursor:pointer}.form-note{font-size:14px;max-width:650px;margin:25px 0}.booking-direct{margin-top:45px;font-size:14px;overflow-wrap:anywhere}#booking-status{font-size:14px;border-left:3px solid #4a281b;padding:12px 18px}.handle{overflow-wrap:anywhere}@media(max-width:600px){.booking{padding:40px 7% 60px}.booking-intro{margin-bottom:25px}}

.gallery.uniform.couples-grid{grid-template-columns:repeat(2,minmax(0,1fr))}

.gallery.uniform.families-grid{grid-template-columns:repeat(2,minmax(0,1fr));max-width:calc((100% - 44px)/3 * 2 + 22px);margin-inline:auto}@media(max-width:800px){.gallery.uniform.families-grid{max-width:100%}}

@media(max-width:800px){header nav{flex-wrap:wrap;row-gap:10px;column-gap:16px}}
