*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:#f3ead8;color:#3f3428;font-family:Arial,Helvetica,sans-serif;line-height:1.6}.site-header{position:absolute;z-index:5;top:0;left:0;right:0;display:flex;align-items:center;justify-content:space-between;padding:18px 6vw}.brand{display:block;width:92px;height:92px}.brand img{display:block;width:100%;height:100%;object-fit:contain}.site-header nav{display:flex;gap:25px;align-items:center}.site-header nav a,.text-link{color:#fff;text-decoration:none;font-size:.86rem;letter-spacing:.08em;text-transform:uppercase}.nav-plan{border:1px solid #d7a85d;padding:8px 14px;color:#fff!important}.hero{min-height:92vh;display:flex;align-items:center;background:linear-gradient(90deg,rgba(25,25,18,.78),rgba(25,25,18,.38),rgba(25,25,18,.10)),url("hero-khwai.jpg") center/cover;color:#fff}.hero-inner{width:min(1120px,88%);margin:auto;padding-top:100px}.eyebrow{text-transform:uppercase;letter-spacing:.22em;font-size:.75rem;font-weight:bold;color:#8a6a43;margin:0 0 18px}.hero .eyebrow{color:#d7a85d}.hero h1{font-family:Georgia,serif;font-size:clamp(4rem,10vw,8rem);line-height:.88;margin:0 0 30px;letter-spacing:-.05em}.hero h1 em{font-weight:400}.hero-copy{font-family:Georgia,serif;font-size:1.3rem;max-width:660px}.hero-actions{display:flex;align-items:center;gap:28px;margin-top:35px}.button{display:inline-block;background:#d7a85d;color:#30261d;text-decoration:none;padding:14px 24px;font-weight:bold;text-transform:uppercase;letter-spacing:.1em;font-size:.78rem;border:0}.section{width:min(1120px,88%);margin:auto;padding:105px 0}.intro{display:grid;grid-template-columns:1.1fr .9fr;gap:90px}.section h2{font:normal clamp(2.5rem,5vw,4.8rem)/.98 Georgia,serif;margin:0}.intro-copy{font-family:Georgia,serif;font-size:1.2rem}.feature-band{display:grid;grid-template-columns:repeat(3,1fr);background:#536b3b;color:#f3ead8;padding:65px 6vw;gap:55px}.feature strong{font-size:.75rem;letter-spacing:.2em;color:#d7a85d}.feature span{display:block;font:normal 1.65rem Georgia,serif;margin:12px 0}.feature p{margin:0;opacity:.9}.section-heading{margin-bottom:50px}.service-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.service-card{background:#eadbc0;overflow:hidden}.service-card img,.mokoro-photo{display:block;width:100%;height:260px;object-fit:cover}.mokoro-photo{background:linear-gradient(rgba(0,0,0,.08),rgba(0,0,0,.08)),url("https://www.wildernessdestinations.com/media/j2blvmy5/banner-botswana-01.jpg?rmode=crop") center/cover}.service-content{padding:28px}.service-kicker{font-size:.72rem;text-transform:uppercase;letter-spacing:.18em;color:#8a6a43;font-weight:bold}.service-card h3{font:normal 2rem Georgia,serif;margin:8px 0}.service-card h3 small{font:normal .85rem Arial,sans-serif}.sharing{font-weight:bold;color:#536b3b}.fine{font-size:.88rem}.amenity-strip{display:flex;gap:12px;flex-wrap:wrap;margin-top:28px}.amenity-strip span{background:#536b3b;color:#fff;padding:10px 14px;font-size:.82rem;font-weight:bold}.notice{margin-top:22px;padding:20px 24px;border-left:4px solid #8a6a43;background:#eadbc0}.quote{padding:85px 8vw;text-align:center;background:#d7a85d;color:#30261d}.quote p{font:italic 2.3rem/1.2 Georgia,serif;max-width:950px;margin:auto}.booking-section{background:#eadbc0;padding:105px 6vw}.booking-wrap{width:min(1120px,100%);margin:auto;display:grid;grid-template-columns:.85fr 1.15fr;gap:70px;align-items:start}.booking-copy h2{font:normal clamp(2.7rem,5vw,4.8rem)/.98 Georgia,serif;margin:0 0 24px}.booking-copy>p{font-family:Georgia,serif;font-size:1.12rem}.booking-notes{margin-top:32px;border-top:1px solid #bfae8e;padding-top:18px}.booking-notes p{margin:8px 0}.booking-form{background:#f3ead8;padding:34px;box-shadow:0 16px 45px rgba(48,42,35,.08)}.booking-form label{display:block;font-size:.76rem;font-weight:bold;text-transform:uppercase;letter-spacing:.11em;margin-bottom:18px}.booking-form input,.booking-form select,.booking-form textarea{display:block;width:100%;margin-top:8px;padding:14px 13px;border:1px solid #c8b795;background:#fffdf7;color:#3f3428;font:normal 1rem Arial,Helvetica,sans-serif}.booking-form textarea{resize:vertical}.booking-form input:focus,.booking-form select:focus,.booking-form textarea:focus{outline:2px solid #d7a85d;outline-offset:1px}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:18px}.bot-field{display:none}.booking-button{cursor:pointer;width:100%;margin-top:4px}.form-small{font-size:.82rem;line-height:1.45;margin:14px 0 0;opacity:.78}.contact{display:grid;grid-template-columns:1fr .8fr;gap:80px;align-items:center}.contact-box{padding:35px;background:#eadbc0}.contact-box p{margin:14px 0 0}.contact-box a:not(.button){color:#536b3b}.contact-box .button{margin-bottom:12px}footer{text-align:center;padding:60px 20px;background:#536b3b;color:#f3ead8}.footer-logo{width:110px;height:110px;object-fit:contain}.small{font-style:italic;opacity:.75}
@media(max-width:800px){.site-header{padding:14px 5vw}.brand{width:72px;height:72px}.site-header nav a:not(.nav-plan){display:none}.nav-plan{font-size:.7rem!important;padding:8px 10px!important}.hero{min-height:88svh;background-position:58% center}.hero-inner{width:90%;padding-top:105px}.hero h1{font-size:clamp(3.5rem,18vw,5.6rem)}.hero-copy{font-size:1.05rem}.hero-actions{gap:18px;flex-wrap:wrap}.section{width:90%;padding:72px 0}.intro,.contact{grid-template-columns:1fr;gap:30px}.feature-band{grid-template-columns:1fr;padding:58px 7vw;gap:34px}.service-grid{grid-template-columns:1fr}.service-card img,.mokoro-photo{height:240px}.booking-section{padding:72px 5vw}.booking-wrap{grid-template-columns:1fr;gap:34px}.booking-form{padding:22px}.form-row{grid-template-columns:1fr;gap:0}.quote{padding:65px 8vw}.quote p{font-size:1.6rem}.contact-box .button{width:100%;text-align:center}}
@media(max-width:520px){.hero-actions{align-items:flex-start;flex-direction:column}.hero h1{font-size:clamp(3.3rem,18vw,5rem)}} 
.about{display:grid;grid-template-columns:.9fr 1.1fr;gap:90px;align-items:start}.about-title{position:sticky;top:45px}.about-story{max-width:680px}.about-story .lead{font:normal 1.5rem/1.55 Georgia,serif;margin-top:0}.about-story p{margin:0 0 22px}.signature{border-top:1px solid #c8b795;padding-top:24px;font-family:Georgia,serif;font-size:1.15rem}.service-card{transition:transform .25s ease,box-shadow .25s ease}.service-card:hover{transform:translateY(-5px);box-shadow:0 20px 40px rgba(48,42,35,.12)}details{border-top:1px solid #c8b795;margin-top:22px;padding-top:15px}summary{cursor:pointer;list-style:none;text-transform:uppercase;letter-spacing:.13em;font-size:.72rem;font-weight:bold;color:#536b3b}summary::-webkit-details-marker{display:none}summary::after{content:"＋";float:right}details[open] summary::after{content:"−"}.details-body{padding-top:12px;font-size:.92rem}.phone-fields{display:grid;grid-template-columns:minmax(145px,.9fr) 1.4fr;gap:8px;margin-top:8px}.phone-fields select,.phone-fields input{margin-top:0}.button-outline{background:transparent;border:1px solid #536b3b;color:#536b3b!important;margin-left:8px}footer{padding:28px 20px}.footer-logo{width:72px;height:72px}footer p{margin:5px 0}@media(max-width:800px){.about{grid-template-columns:1fr;gap:30px}.about-title{position:static}.phone-fields{grid-template-columns:1fr}.button-outline{margin-left:0;margin-top:8px}footer{padding:22px 16px}.footer-logo{width:58px;height:58px}}

.review-section{background:#30261d;color:#f3ead8;padding:88px 6vw;text-align:center}
.review-inner{width:min(800px,100%);margin:auto}
.review-section .eyebrow{color:#d7a85d}
.review-section h2{font:normal clamp(2.6rem,5vw,4.7rem)/1 Georgia,serif;margin:0 0 25px}
.review-section h2 em{font-weight:400}
.review-section p:not(.eyebrow){max-width:610px;margin:0 auto 30px;font-family:Georgia,serif;font-size:1.08rem;opacity:.9}
.review-button{margin-top:4px}
@media(max-width:800px){.review-section{padding:65px 7vw}.review-section h2{font-size:2.7rem}}

/* Gallery + polish update */
.amenities-section{background:#536b3b;color:#f3ead8;padding:72px 6vw}
.amenities-heading{width:min(1120px,100%);margin:0 auto 38px;display:flex;align-items:end;justify-content:space-between}
.amenities-heading .eyebrow{color:#d7a85d}.amenities-heading h2{font:normal clamp(2.3rem,4vw,4rem)/1 Georgia,serif;margin:0}
.amenities-section .feature-band{width:min(1120px,100%);margin:auto;padding:0;background:transparent}
.service-card{border-radius:18px;box-shadow:0 14px 35px rgba(48,42,35,.10)}
.service-card img,.mokoro-photo{border-radius:18px 18px 0 0}
.gallery-section{overflow:hidden}.gallery-head{display:grid;grid-template-columns:1fr .7fr;gap:70px;align-items:end;margin-bottom:55px}
.gallery-head>p{font:normal 1.15rem/1.7 Georgia,serif}.gallery-category{margin:0 0 65px}
.gallery-label{display:grid;grid-template-columns:50px 220px 1fr;gap:18px;align-items:baseline;margin-bottom:22px;border-bottom:1px solid #c8b795;padding-bottom:14px}
.gallery-label span{color:#8a6a43;font-size:.72rem;letter-spacing:.15em}.gallery-label h3{font:normal 1.7rem Georgia,serif;margin:0}.gallery-label p{margin:0;opacity:.8}
.gallery-grid{display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:220px;gap:12px}
.gallery-item{border:0;padding:0;background:none;overflow:hidden;border-radius:16px;cursor:zoom-in;opacity:0;transform:translateY(18px);transition:opacity .7s ease,transform .7s ease}
.gallery-item.visible{opacity:1;transform:none}.gallery-item.wide{grid-column:span 2}
.gallery-item img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .6s cubic-bezier(.2,.8,.2,1)}
.gallery-item:hover img{transform:scale(1.045)}
.lightbox{position:fixed;z-index:1000;inset:0;background:rgba(20,18,14,.92);display:flex;align-items:center;justify-content:center;padding:5vw;opacity:0;visibility:hidden;transition:.25s}
.lightbox.open{opacity:1;visibility:visible}.lightbox img{max-width:94vw;max-height:88vh;border-radius:14px;box-shadow:0 20px 70px #000}
.lightbox-close{position:absolute;top:22px;right:28px;background:none;border:0;color:#fff;font-size:2.4rem;cursor:pointer}
.booking-form{border-radius:22px;background:rgba(255,253,247,.86);border:1px solid rgba(138,106,67,.2);box-shadow:0 24px 60px rgba(48,42,35,.10);backdrop-filter:blur(10px)}
.booking-form input,.booking-form select,.booking-form textarea{border:0;border-bottom:1px solid #c8b795;background:rgba(255,255,255,.55);border-radius:9px}
.phone-fields{grid-template-columns:125px 1fr}
.phone-fields select{font-size:.82rem;padding-left:8px;padding-right:4px}
.review-section{padding:46px 6vw}.review-section h2{font-size:clamp(2rem,3.5vw,3.2rem);margin-bottom:15px}.review-section p:not(.eyebrow){margin-bottom:20px}
.footer-location{font-size:.78rem}.footer-location a{color:#f3ead8}
.reveal{opacity:0;transform:translateY(24px);transition:opacity .8s ease,transform .8s cubic-bezier(.2,.8,.2,1)}.reveal.visible{opacity:1;transform:none}
.menu-toggle{display:none}
@media(max-width:800px){
 .site-header{position:absolute}.menu-toggle{display:flex;width:42px;height:42px;border:1px solid rgba(255,255,255,.45);background:rgba(20,18,14,.22);border-radius:50%;flex-direction:column;justify-content:center;gap:6px;padding:0 11px;z-index:10}
 .menu-toggle span{height:1px;background:#fff;width:100%;transition:.25s}
 .site-header nav{display:flex;position:absolute;top:0;right:0;width:min(82vw,340px);height:100vh;background:#30261d;padding:110px 30px 30px;flex-direction:column;align-items:flex-start;gap:24px;transform:translateX(105%);transition:transform .35s ease;box-shadow:-20px 0 50px rgba(0,0,0,.18)}
 .site-header nav a,.site-header nav a:not(.nav-plan){display:block!important;font-size:.82rem}.site-header.menu-open nav{transform:none}
 .site-header.menu-open .menu-toggle span:first-child{transform:translateY(3.5px) rotate(45deg)}.site-header.menu-open .menu-toggle span:last-child{transform:translateY(-3.5px) rotate(-45deg)}
 .amenities-heading{display:block}.amenities-heading h2{font-size:2.5rem}.amenities-section{padding:58px 7vw}
 .gallery-head{grid-template-columns:1fr;gap:16px;margin-bottom:38px}.gallery-label{grid-template-columns:35px 1fr}.gallery-label p{grid-column:2}
 .gallery-grid{grid-template-columns:1fr 1fr;grid-auto-rows:180px}.gallery-item.wide{grid-column:span 2}
 .phone-fields{grid-template-columns:105px 1fr;gap:7px}.phone-fields select{font-size:.72rem;padding:12px 4px}
 .review-section{padding:38px 7vw}
}
@media(max-width:520px){.gallery-grid{grid-auto-rows:150px}.gallery-item{border-radius:12px}.booking-form{border-radius:16px}.review-section h2{font-size:2rem}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.reveal,.gallery-item{opacity:1;transform:none;transition:none}}

/* Editorial direction */
.gallery-teaser{width:min(1180px,88vw);margin:90px auto;display:grid;grid-template-columns:1.25fr .75fr;min-height:500px;background:#e9dfcb}
.gallery-teaser-image{overflow:hidden}.gallery-teaser-image img{width:100%;height:100%;object-fit:cover;transition:transform 1s cubic-bezier(.2,.8,.2,1)}
.gallery-teaser:hover .gallery-teaser-image img{transform:scale(1.025)}
.gallery-teaser-copy{padding:70px 55px;display:flex;flex-direction:column;justify-content:center}
.gallery-teaser-copy h2{font:normal clamp(3rem,5vw,5.5rem)/.92 Georgia,serif;margin:10px 0 24px}.gallery-teaser-copy h2 em{font-weight:400}
.text-link{display:inline-flex;gap:12px;align-items:center;margin-top:18px;color:inherit;text-transform:uppercase;letter-spacing:.13em;font-size:.72rem;font-weight:700;text-decoration:none}.text-link span{font-size:1.2rem;transition:transform .25s}.text-link:hover span{transform:translateX(6px)}
.inner-header{position:absolute}.gallery-hero{height:min(82vh,820px);min-height:570px;position:relative;color:#fff;overflow:hidden}.gallery-hero>img{width:100%;height:100%;object-fit:cover}.gallery-hero-shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(20,18,14,.58),rgba(20,18,14,.08))}
.gallery-hero-copy{position:absolute;left:7vw;bottom:10%;max-width:650px}.gallery-hero-copy h1{font:normal clamp(4.2rem,9vw,8rem)/.83 Georgia,serif;margin:12px 0 25px}.gallery-hero-copy h1 em{font-weight:400}.gallery-hero-copy>p:last-child{max-width:520px;font:normal 1.15rem/1.6 Georgia,serif}
.editorial-gallery{padding-top:105px}.editorial-intro{display:grid;grid-template-columns:.65fr 1fr .8fr;gap:50px;align-items:start;margin-bottom:55px}.editorial-intro h2{font:normal clamp(2.8rem,5vw,5.3rem)/.95 Georgia,serif;margin:0}.editorial-intro>p:last-child{font:normal 1.05rem/1.7 Georgia,serif}
.editorial-grid{display:grid;grid-template-columns:1.2fr .8fr 1fr;grid-auto-rows:270px;gap:14px}.photo{border:0;padding:0;background:none;overflow:hidden;cursor:zoom-in;border-radius:4px;opacity:0;transform:translateY(20px);transition:opacity .75s ease,transform .75s ease}.photo.visible{opacity:1;transform:none}.photo img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .7s cubic-bezier(.2,.8,.2,1)}.photo:hover img{transform:scale(1.035)}.p-large{grid-column:span 2;grid-row:span 2}.p-tall{grid-row:span 2}.p-wide{grid-column:span 2}
.ablution-block{background:#30261d;color:#f3ead8;padding:100px 6vw}.ablution-block .eyebrow{color:#d7a85d}.ablution-grid{display:grid;grid-template-columns:1.3fr .7fr .7fr;grid-auto-rows:360px;gap:14px}.ablution-grid .p-wide{grid-column:auto}
.gallery-cta{text-align:center;padding:80px 6vw;background:#e9dfcb}.gallery-cta h2{font:normal clamp(2.8rem,5vw,4.7rem)/.95 Georgia,serif;margin:12px 0 28px}
@media(max-width:800px){
 .gallery-teaser{width:100%;margin:55px 0;grid-template-columns:1fr;min-height:0}.gallery-teaser-image{height:350px}.gallery-teaser-copy{padding:48px 7vw}.gallery-teaser-copy h2{font-size:3.2rem}
 .gallery-hero{height:72vh;min-height:540px}.gallery-hero-copy{left:7vw;right:7vw}.gallery-hero-copy h1{font-size:4.5rem}
 .editorial-gallery{padding-top:70px}.editorial-intro{grid-template-columns:1fr;gap:14px;margin-bottom:35px}.editorial-intro h2{font-size:3rem}
 .editorial-grid{grid-template-columns:1fr 1fr;grid-auto-rows:180px}.p-large{grid-column:span 2;grid-row:span 2}.p-tall{grid-row:span 2}.p-wide{grid-column:span 2}
 .ablution-block{padding:70px 7vw}.ablution-grid{grid-template-columns:1fr 1fr;grid-auto-rows:190px}.ablution-grid .photo:first-child{grid-column:span 2;height:280px}
}
@media(max-width:520px){.gallery-teaser-image{height:280px}.gallery-hero-copy h1{font-size:3.8rem}.editorial-grid{gap:8px;grid-auto-rows:145px}.ablution-grid{gap:8px;grid-auto-rows:160px}}

/* Fluid interaction upgrade */
html{scroll-behavior:smooth}.button,.nav-plan,.review-button,.site-header nav a{transition:transform .28s cubic-bezier(.16,1,.3,1),box-shadow .28s,background .28s,color .28s}
.button:hover,.nav-plan:hover,.review-button:hover{transform:translateY(-4px) scale(1.015);box-shadow:0 14px 28px rgba(39,34,26,.2)}.button:active,.nav-plan:active{transform:scale(.97)}
.site-header nav a:not(.nav-plan){position:relative}.site-header nav a:not(.nav-plan):after{content:"";position:absolute;left:0;bottom:3px;width:100%;height:1px;background:currentColor;transform:scaleX(0);transform-origin:right;transition:.35s cubic-bezier(.16,1,.3,1)}.site-header nav a:hover:after{transform:scaleX(1);transform-origin:left}
.service-card{transition:transform .5s cubic-bezier(.16,1,.3,1),box-shadow .5s}.service-card:hover{transform:translateY(-9px);box-shadow:0 24px 55px rgba(48,42,35,.16)}.service-card img{transition:transform .7s cubic-bezier(.16,1,.3,1)}.service-card:hover img{transform:scale(1.045)}
.reveal,.reveal-left,.reveal-right{opacity:0;transition:opacity .8s,transform .8s cubic-bezier(.16,1,.3,1)}.reveal{transform:translateY(30px)}.reveal-left{transform:translateX(-35px)}.reveal-right{transform:translateX(35px)}.reveal.visible,.reveal-left.visible,.reveal-right.visible{opacity:1;transform:none}
.site-header{transition:background .35s,box-shadow .35s,transform .35s}.site-header.scrolled{background:rgba(39,36,29,.9);backdrop-filter:blur(14px);box-shadow:0 8px 30px rgba(0,0,0,.13)}.site-header.header-hide{transform:translateY(-110%)}
details[open] p{animation:detailIn .35s ease}@keyframes detailIn{from{opacity:0;transform:translateY(-8px)}}input,select,textarea{transition:.25s}input:focus,select:focus,textarea:focus{outline:none;box-shadow:0 0 0 4px rgba(101,113,67,.11);transform:translateY(-1px)}
.scroll-progress{position:fixed;z-index:9999;left:0;top:0;height:3px;background:#b58b53;width:0}.back-top{position:fixed;z-index:90;right:20px;bottom:20px;width:44px;height:44px;border:1px solid rgba(255,255,255,.4);border-radius:50%;background:rgba(45,40,31,.9);color:white;opacity:0;transform:translateY(14px);pointer-events:none;transition:.3s}.back-top.show{opacity:1;transform:none;pointer-events:auto}.back-top:hover{transform:translateY(-4px)}
.lightbox-prev,.lightbox-next{position:absolute;z-index:1002;top:50%;transform:translateY(-50%);width:52px;height:52px;border-radius:50%;border:1px solid rgba(255,255,255,.55);background:rgba(30,28,23,.55);color:#fff;font-size:2rem;backdrop-filter:blur(8px);transition:.25s}.lightbox-prev{left:24px}.lightbox-next{right:24px}.lightbox-prev:hover,.lightbox-next:hover{background:#fff;color:#30261d}.lightbox-count{position:absolute;z-index:1002;bottom:22px;left:50%;transform:translateX(-50%);color:#fff;font-size:.75rem;letter-spacing:.15em}
@media(max-width:700px){.service-card:hover{transform:none}.lightbox-prev,.lightbox-next{top:auto;bottom:18px;width:45px;height:45px}.lightbox-prev{left:18px}.lightbox-next{right:18px}.lightbox-count{bottom:31px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}.reveal,.reveal-left,.reveal-right{opacity:1!important;transform:none!important}}

/* === Mobile stability + performance pass === */
html,body{width:100%;max-width:100%;overflow-x:hidden;overscroll-behavior-x:none}
body{position:relative}
img,video,svg{max-width:100%}
.site-header,.hero,.section,.booking-section,.review-section,.gallery-teaser,footer{max-width:100vw}
@supports(overflow:clip){html,body{overflow-x:clip}}
@media(max-width:800px){
  .site-header{left:0;right:0;width:100%;max-width:100vw}
  .site-header nav{position:fixed;top:0;right:0;width:min(82vw,340px);max-width:340px;height:100dvh;overflow-y:auto;overscroll-behavior:contain;transform:translate3d(105%,0,0);will-change:transform}
  .site-header.menu-open nav{transform:translate3d(0,0,0)}
  .hero,.gallery-hero{width:100%;max-width:100%;overflow:hidden}
  .hero-inner,.section,.booking-wrap,.review-inner{max-width:100%}
  .gallery-teaser{width:100%;max-width:100%;overflow:hidden}
  .gallery-teaser-copy{min-width:0}
  .service-card,.booking-form,.contact-box{min-width:0}
  .phone-fields{grid-template-columns:88px minmax(0,1fr)}
  .phone-fields select,.phone-fields input{min-width:0}
  .editorial-gallery{width:100%;max-width:100%;overflow:hidden}
  .editorial-grid,.ablution-grid{width:100%;max-width:100%}
  .photo{min-width:0}
  .lightbox{position:fixed;inset:0;width:100dvw;height:100dvh;max-width:100dvw;padding:12px 12px 82px;overflow:hidden;touch-action:pan-y;background:rgba(20,18,14,.97)}
  .lightbox img{display:block;width:auto;height:auto;max-width:calc(100dvw - 24px);max-height:calc(100dvh - 112px);object-fit:contain;border-radius:8px;margin:auto}
  .lightbox-close{position:fixed;top:max(12px,env(safe-area-inset-top));right:14px;z-index:1004;width:44px;height:44px;border-radius:50%;background:rgba(0,0,0,.45);font-size:1.8rem;line-height:1}
  .lightbox-prev,.lightbox-next{position:fixed;bottom:max(16px,env(safe-area-inset-bottom));top:auto;transform:none;width:46px;height:46px;z-index:1004}
  .lightbox-prev{left:16px}.lightbox-next{right:16px}
  .lightbox-count{position:fixed;bottom:calc(max(16px,env(safe-area-inset-bottom)) + 14px);left:50%;transform:translateX(-50%);z-index:1004}
}
@media(max-width:420px){
  .hero h1{font-size:clamp(3rem,16vw,4.35rem)}
  .gallery-hero-copy h1{font-size:3.25rem}
  .editorial-grid{grid-template-columns:1fr 1fr;grid-auto-rows:132px}
  .ablution-grid{grid-template-columns:1fr 1fr;grid-auto-rows:145px}
}
