/* Approved typography: Libre Baskerville + Manrope. SIL OFL 1.1. */
@font-face{font-family:'Libre Baskerville';src:url('/boudoir/fonts/LibreBaskerville.ttf') format('truetype');font-weight:400 700;font-style:normal;font-display:swap}
h1,h2,h3,.identity,.price{font-family:'Libre Baskerville',Georgia,serif;font-weight:400;font-synthesis:none}
h1,h2,h3{letter-spacing:-.035em;line-height:1.25}
.hero-copy h1{font-size:clamp(54px,4.5vw,78px);line-height:1.12;letter-spacing:-.045em}
h2,.intro h2,.keepsake-heading h2,.about-copy h2,.session h2,.questions h2,.contact h2{font-size:clamp(30px,2.6vw,40px);line-height:1.28}
.objects h3{font-size:25px;line-height:1.25}
@media(max-width:700px){.hero-copy h1{font-size:clamp(39px,9.5vw,60px)}}
@media(max-width:600px){h2,.intro h2,.keepsake-heading h2,.about-copy h2,.session h2,.questions h2,.contact h2{font-size:30px}.objects h3{font-size:22px}}

/* Dark chocolate headings, retaining light text on dark surfaces. */
:root{--heading-chocolate:#4b3027}
h1,h2,h3{color:var(--heading-chocolate)}
.contact h2,.portfolio h2{color:var(--paper)}
@media(max-width:700px){.hero-copy h1{color:var(--paper)}}

/* Keep the whole desktop text block in the photograph's bright upper area.
   Anchor the crop at the top; scale type and spacing with viewport height. */
@media(min-width:701px){
 .hero-image img{object-position:center top}
 .hero-copy{top:clamp(80px,8svh,118px);width:min(600px,50vw);max-width:calc(100% - 2*var(--content-pad))}
 .hero-copy h1{font-size:clamp(40px,min(4.5vw,7svh),78px);margin-bottom:12px;line-height:1.12}
 .hero-intro{margin-bottom:10px}
 .hero-copy>p:not(.hero-intro){font-size:clamp(15px,1.2vw,18px);line-height:1.5}
 .hero-copy .text-link{margin-top:12px}
 .hero-brand{top:clamp(80px,8svh,118px);width:clamp(180px,24vw,400px)}
}
/* Explicit touch rules on the hit targets also cover mobile WebKit. */
.gallery,.gallery .photo,.gallery .photo img{touch-action:pan-y pinch-zoom;-webkit-touch-callout:none}
