@font-face {
  font-family: "DM Sans"; src: url("/assets/fonts/dm.ttf") format("truetype");
  font-style: normal; font-weight: 400 599; font-display: swap;
}
@font-face {
  font-family: "DM Sans"; src: url("/assets/fonts/dm-bold.ttf") format("truetype");
  font-style: normal; font-weight: 600 900; font-display: swap;
}
@font-face {
  font-family: "Playfair Display"; src: url("/assets/fonts/playfair.ttf") format("truetype");
  font-style: italic; font-weight: 500; font-display: swap;
}
:root {
  --paper:#f8f7f3; --white:#fff; --ink:#171a1e; --muted:#575c60; --blue:#304cf0;
  --blue-dark:#2034b9; --soft:#eeede7; --line:#d8d8d1; --gutter:clamp(20px,4.85vw,88px);
  --radius:12px; --sans:"DM Sans",Arial,sans-serif; --mono:Consolas,"Courier New",monospace;
}
* { box-sizing:border-box; }
html { scroll-behavior:smooth; scroll-padding-top:20px; }
body { margin:0; background:var(--paper); color:var(--ink); font:400 16px/1.58 var(--sans); -webkit-font-smoothing:antialiased; }
h1,h2,h3,h4,p,figure { margin:0; }
h1,h2,h3,h4 { line-height:1.08; text-wrap:balance; }
h1,h2 { letter-spacing:-.065em; }
h2 { font-size:clamp(35px,4.0vw,68px); }
h3 { letter-spacing:-.035em; }
img { display:block; max-width:100%; }
button,input,textarea,select { font:inherit; color:inherit; }
button { cursor:pointer; }
a { color:inherit; text-decoration-thickness:1px; text-underline-offset:3px; }
a,button,input,textarea,select { -webkit-tap-highlight-color:transparent; }
:focus-visible { outline:3px solid var(--blue); outline-offset:4px; }
[hidden] { display:none!important; }
.sr { clip:rect(0,0,0,0); height:1px; overflow:hidden; padding:0; position:absolute; white-space:nowrap; width:1px; }
.skip:focus { clip:auto; height:auto; width:auto; top:10px; left:12px; z-index:101; padding:9px 16px; background:white; }
.wrap { width:100%; max-width:1720px; margin-inline:auto; padding-inline:var(--gutter); }
.ic { width:19px; height:19px; flex:none; fill:none; stroke:currentColor; stroke-width:1.65; stroke-linecap:round; stroke-linejoin:round; vertical-align:middle; }
.header { background:var(--paper); position:relative; z-index:10; }
.headrow { display:flex; justify-content:space-between; align-items:center; min-height:80px; border-bottom:1px solid var(--line); gap:24px; }
.brand { display:inline-flex; align-items:center; gap:10px; text-decoration:none; white-space:nowrap; }
.brand img { width:39px; height:39px; }
.brand b { display:flex; flex-direction:column; font-size:0; line-height:1; }
.brand b small { font:750 19px/1 var(--sans); letter-spacing:-.06em; }
.navlinks { display:flex; align-items:center; gap:32px; font-size:14px; font-weight:650; }
.navlinks a { display:flex; align-items:center; gap:7px; min-height:44px; text-decoration:none; }
.navlinks a[aria-current=page] { color:var(--blue-dark); }
.navlinks a[aria-current=page]:before { content:""; width:6px; height:6px; border-radius:50%; background:var(--blue); }
.navlinks a:hover, .plain-action:hover, .textlink:hover { color:var(--blue); }
.navlinks .phone { min-height:38px; padding:4px 14px; font-size:13px; border:1px solid #bfc0ba; border-radius:24px; }
.phone .ic { width:14px; height:14px; }
.hamb { display:none; background:white; border:1px solid var(--line); border-radius:9px; width:42px; height:42px; align-items:center; justify-content:center; }
.eyebrow,.cland,.slidecount,.mapkey,.archive-cover>span,.crumb,.detailhero .wrap>p { font-family:var(--mono); }
.eyebrow { display:flex; align-items:center; gap:10px; font-size:11px; text-transform:uppercase; line-height:1.45; letter-spacing:.115em; font-weight:600; }
.eyebrow:before { content:""; width:8px; height:8px; flex:none; background:var(--blue); }
.hero { padding:clamp(24px,2.5vw,42px) 0; }
.hero-layout { display:grid; grid-template-columns:minmax(0,.76fr) minmax(0,1.24fr); align-items:stretch; gap:clamp(28px,3.9vw,75px); }
.hero-copy { display:flex; flex-direction:column; justify-content:center; align-items:flex-start; padding:20px 0; }
.hero h1 { font-size:clamp(72px,7.65vw,130px); line-height:.97; letter-spacing:-.086em; margin:26px 0 21px; white-space:nowrap; }
.hero h1 em { color:var(--blue); font:italic 500 .99em/.96 "Playfair Display",Georgia,serif; letter-spacing:-.088em; }
.hero .intro { color:var(--muted); max-width:39ch; font-size:clamp(15px,1.16vw,19px); line-height:1.57; }
.actions,.sliderctrl,.slide-thumbs,.location strong,.btn,.textlink,.plain-action,.round,.cardgo,.stat,.cland,.views,.views button,.filters,.meta,.secthead,.searchbox { display:flex; align-items:center; }
.actions { gap:22px; flex-wrap:wrap; margin-top:28px; }
.btn,.plain-action,.textlink { display:inline-flex; justify-content:center; text-decoration:none; font-size:14px; font-weight:700; }
.btn { border:1px solid transparent; border-radius:7px; padding:12px 17px; gap:14px; min-height:45px; background:var(--blue); color:#fff; transition:background .2s,border-color .2s; }
.btn:hover { background:var(--blue-dark); }
.btn .ic,.plain-action .ic,.textlink .ic { width:16px; height:16px; }
.lightbtn { color:var(--ink); background:transparent; border-color:#bdc0ba; }
.lightbtn:hover { color:var(--blue-dark); background:#fff; border-color:var(--blue); }
.plain-action,.textlink { gap:7px; min-height:38px; }
.hero-photo { position:relative; isolation:isolate; min-height:clamp(410px,35.3vw,602px); border-radius:var(--radius); overflow:hidden; background:#8a674a; color:white; }
.heroimg { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:50% 49%; z-index:-2; }
.hero-photo:after { content:""; position:absolute; inset:0; z-index:-1; background:linear-gradient(0deg,#12110ed9,transparent 32%,transparent 78%,#1b140b25); pointer-events:none; }
.photocontrols,.hero-foot { position:absolute; display:flex; justify-content:space-between; gap:14px; align-items:center; left:clamp(15px,1.8vw,30px); right:clamp(15px,1.8vw,30px); }
.photocontrols { top:19px; }.hero-foot { bottom:22px; }
.slidecount { padding:5px 10px; border:1px solid #ffffff85; border-radius:5px; font-size:11px; letter-spacing:.09em; color:#fff; background:#1b19104d; }
.sliderctrl { gap:6px; }
.round { justify-content:center; padding:0; width:36px; height:36px; border-radius:50%; background:#16161642; color:white; border:1px solid #ffffff8c; }
.round:hover { background:#141416bc; }.round .ic { width:16px; }
.location { color:white; text-decoration:none; min-width:0; }
.location small { display:block; font:600 10px/1.5 var(--mono); text-transform:uppercase; letter-spacing:.14em; }
.location strong { gap:8px; line-height:1.2; font-size:clamp(17px,1.65vw,29px); letter-spacing:-.045em; margin-top:3px; }
.location strong .ic { height:15px; width:15px; }
.slide-thumbs { gap:5px; }
.slide-thumb { width:38px; height:32px; padding:2px; border:1px solid #ffffff73; border-radius:4px; background:#12121255; }
.slide-thumb img { width:100%; height:100%; object-fit:cover; border-radius:2px; }
.slide-thumb[aria-pressed=true] { background:#fff; border-color:#fff; }
.atlas-stats { display:grid; grid-template-columns:repeat(3,1fr); }
.stat { padding:14px 22px; gap:13px; min-width:0; min-height:76px; border-block:1px solid var(--line); text-decoration:none; }
.stat + .stat { border-left:1px solid var(--line); }.stat:first-child { padding-left:0; }
.statvalue { font-weight:650; letter-spacing:-.07em; line-height:1; font-size:clamp(28px,2.7vw,45px); }
.statlabel { font-size:13px; color:var(--muted); line-height:1.3; }.stat>.ic { margin-left:auto; color:var(--blue); width:18px; }
.stat:hover .statvalue { color:var(--blue); }
.section { padding-block:clamp(46px,5vw,88px); }
.secthead { align-items:flex-end; justify-content:space-between; gap:18px; margin-bottom:25px; }
.secthead h2 { margin-top:9px; }.secthead .textlink { white-space:nowrap; }
.chips { display:flex; gap:7px; flex-wrap:wrap; margin:0 0 22px; }
.chip,.views button { border:1px solid var(--line); border-radius:40px; background:transparent; font-size:13px; padding:7px 15px; font-weight:600; }
.chip:hover,.views button:hover { border-color:#969b9f; }
.chip[aria-pressed=true],.views button[aria-pressed=true] { background:var(--ink); color:white; border-color:var(--ink); }
.cards { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:clamp(15px,1.9vw,34px); row-gap:34px; }
.placecard { position:relative; display:grid; grid-template-rows:auto 1fr; border:0; text-decoration:none; min-width:0; }
.placecard>img { display:block; width:100%; aspect-ratio:1.72; object-fit:cover; border-radius:9px; transition:filter .25s; }
.placecard:hover>img { filter:saturate(1.09) brightness(1.025); }
.placecard:not(:has(img)):before { content:""; width:100%; aspect-ratio:1.72; border-radius:9px; background:repeating-linear-gradient(130deg,#dee1ed 0 1px,transparent 1px 12px),#eaedf8; }
.ctext { min-width:0; padding:14px 36px 0 0; }
.cland { gap:6px; line-height:1.4; color:var(--muted); text-transform:uppercase; letter-spacing:.10em; font-size:10px; }
.cland .ic { width:12px; height:12px; color:var(--blue); }
.ctext strong { display:block; font-size:clamp(21px,1.8vw,32px); line-height:1.13; letter-spacing:-.05em; margin-top:5px; overflow-wrap:anywhere; }
.cardgo { position:absolute; bottom:3px; right:0; justify-content:center; width:32px; height:32px; border:1px solid var(--line); border-radius:50%; transition:.2s; }
.cardgo .ic { width:15px; }.placecard:hover .cardgo { background:var(--blue); border-color:var(--blue); color:#fff; }
.soft { background:var(--soft); }
.split,.map-feature,.contactgrid { display:grid; align-items:start; grid-template-columns:1fr 1fr; gap:clamp(26px,6vw,100px); }
.introcopy h2,.author h2 { font-size:clamp(32px,3.05vw,54px); }
.introcopy h2 { margin-top:14px; }.introcopy p,.author p { margin:16px 0; color:var(--muted); }
.introcopy p a,.author a { color:var(--ink); }
.facts { display:grid; grid-template-columns:1fr 1fr; gap:22px; }
.facts>div { border-top:2px solid var(--ink); padding-top:20px; }
.facts h3 { font-size:23px; }.facts ul { padding:0; margin:16px 0; list-style:none; }
.facts li { display:flex; align-items:baseline; gap:8px; font-size:14px; margin:9px 0; }
.facts .ic { width:14px; height:14px; color:var(--blue); }
.services { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:32px 24px; }.services img { width:100%; aspect-ratio:2; object-fit:cover; border-radius:9px; }
.services h3 { margin:17px 0 8px; font-size:25px; }.services p { color:var(--muted); font-size:15px; }
.map-feature { grid-template-columns:.78fr 1.22fr; gap:0; align-items:stretch; margin-bottom:clamp(44px,5.8vw,100px); }
.map-copy { background:#202732; color:white; padding:clamp(26px,4vw,70px); border-radius:12px 0 0 12px; }
.map-copy .eyebrow:before { background:#93a1ff; }.map-copy h2 { margin:18px 0 12px; }
.map-copy p { max-width:38ch; color:#d1d6e1; margin-bottom:23px; }.map-copy .btn { background:#fff; color:var(--ink); }
.map-preview { position:relative; min-height:240px; overflow:hidden; border-radius:0 12px 12px 0; }.map-preview img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; transition:transform .4s; }
.map-preview:hover img { transform:scale(1.035); }
.author { display:grid; grid-template-columns:minmax(130px,230px) minmax(0,1fr); gap:clamp(24px,5vw,75px); align-items:center; max-width:1120px; margin:auto; }
.author img { width:100%; border-radius:10px; }.author p { max-width:75ch; }
.footer { background:#191d26; color:#fff; padding:40px 0 28px; }
.footerline,.footlinks,.footercontact { display:flex; align-items:center; flex-wrap:wrap; gap:14px 22px; }.footerline { justify-content:space-between; }
.footer a { text-decoration:none; }.footer a:hover { text-decoration:underline; }.footercontact,.footlinks { font-size:13px; }
.footlinks { border-top:1px solid #494d55; padding-top:20px; margin-top:30px; }.footlinks small { margin-left:auto; color:#c2c7d0; }
.crumb { display:flex; align-items:center; gap:9px; flex-wrap:wrap; color:var(--muted); padding-top:23px; font-size:11px; line-height:1.5; }
.pageintro { display:grid; grid-template-columns:minmax(0,1.2fr) minmax(240px,.8fr); align-items:center; gap:clamp(28px,5vw,82px); padding-block:23px 34px; }
.pageintro h1,.contenthead h1,.contactgrid h1 { font-size:clamp(44px,6.3vw,105px); line-height:1.02; letter-spacing:-.075em; overflow-wrap:anywhere; margin:15px 0 16px; }
.archive-heading p,.pageintro p { color:var(--muted); max-width:44ch; }
.archive-cover { overflow:hidden; position:relative; display:block; background:var(--soft); border-radius:10px; }
.archive-cover img { width:100%; height:clamp(150px,15vw,245px); object-fit:cover; }
.archive-cover>span { display:flex; align-items:center; gap:8px; position:absolute; bottom:12px; left:12px; max-width:calc(100% - 24px); background:#141921d9; color:white; font-size:10px; line-height:1.4; border-radius:5px; padding:6px 9px; }
.archive-cover .ic { width:13px; height:13px; }
.archivebar { display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; padding:15px; border:1px solid var(--line); border-radius:11px; background:white; gap:14px; }
.filters,.views { flex-wrap:wrap; gap:8px; }
.searchbox { display:flex; gap:8px; border:1px solid var(--line); border-radius:6px; background:white; padding:8px 12px; }
.searchbox input { min-width:0; width:clamp(150px,16vw,280px); border:0; background:transparent; }
.searchbox .ic { width:16px; color:var(--muted); }
.filters select,.sort { max-width:100%; border:1px solid var(--line); background:var(--paper); border-radius:6px; padding:9px 12px; font-size:14px; }
.views { padding:3px; background:var(--soft); border-radius:7px; gap:2px; }.views button { gap:6px; border:0; border-radius:5px; }
.views .ic { width:15px; height:15px; }.views button[aria-pressed=true] { background:var(--blue); }
.meta { justify-content:space-between; gap:14px; margin:21px 0; font-size:13px; color:var(--muted); }.sort { font-size:12px; padding:6px 8px; }
.more { text-align:center; margin-top:26px; }.empty { padding:24px; border:1px solid var(--line); border-radius:8px; margin-top:12px; }
.indexes { margin-top:18px; padding-top:16px; border-top:1px solid var(--line); font-size:14px; }.indexes summary { font-weight:700; cursor:pointer; }.indexes a { display:inline-block; margin:7px 12px 0 0; }
.mapzone { margin-top:20px; }.mapbox { height:clamp(360px,53vh,700px); border-radius:11px; background:#dce5e9; z-index:0; }
.mapkey { margin:9px 0; font-size:11px; color:var(--muted); }
.maptip img { width:170px; height:90px; object-fit:cover; margin-bottom:6px; border-radius:5px; }
.maptip a { font-weight:650; }.leaflet-container { font-family:var(--sans)!important; }
.detailhero { max-width:1720px; margin:22px auto 0; padding-inline:var(--gutter); display:grid; grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr); gap:clamp(22px,4vw,72px); align-items:center; }
.detailhero>img { grid-column:2; grid-row:1; width:100%; height:clamp(245px,26vw,440px); object-fit:cover; border-radius:12px; }
.detailhero>.wrap { grid-area:1/1; padding:15px 0; }
.detailhero h1 { font-size:clamp(39px,5.1vw,84px); margin:17px 0 15px; overflow-wrap:anywhere; }
.detailhero .wrap>p { font-size:12px; letter-spacing:.04em; color:var(--muted); }
.gallerygrid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px; }
.photo { border:0; display:block; position:relative; border-radius:7px; overflow:hidden; aspect-ratio:1.5; background:var(--soft); cursor:zoom-in; }
.photo img { width:100%; height:100%; object-fit:cover; transition:transform .25s; }.photo:hover img { transform:scale(1.035); }
.detailhero + .wrap>.section { padding-top:34px; }.detailhero + .wrap>.section h2 { font-size:clamp(28px,3.4vw,52px); }
.videolist { display:flex; align-items:flex-start; gap:10px; flex-wrap:wrap; }.videolist a { max-width:460px; font-size:13px; }
.reader { max-width:78ch; margin:auto; padding-block:clamp(25px,3vw,48px) 64px; overflow-wrap:anywhere; font-size:clamp(16px,1.2vw,19px); line-height:1.74; }
.reader h2,.reader h3,.reader h4 { margin:1.45em 0 .45em; }.reader h2 { font-size:clamp(28px,2.8vw,44px); }.reader h3 { font-size:clamp(22px,2vw,32px); }
.reader p,.reader ul,.reader ol { margin:1em 0; }.reader li { margin-block:.3em; }.reader a { color:var(--blue-dark); }
.reader img { max-height:560px; height:auto; border-radius:7px; margin:18px 0; }
.contenthead { padding-bottom:20px; margin-bottom:28px; border-bottom:1px solid var(--line); }
.contenthead h1 { font-size:clamp(38px,4.5vw,75px); line-height:1.06; }
.lightbox { position:fixed; inset:0; padding:16px; width:100vw; max-width:none; height:100dvh; max-height:none; margin:0; border:0; background:#111419fa; color:white; }
.lightbox[open] { display:flex; align-items:center; justify-content:center; }.lightbox img { max-width:90vw; max-height:84dvh; object-fit:contain; }
.lightbox .round { position:absolute; background:#171b23b5; }.lightbox .close { top:15px; right:15px; }.lightbox .prev { left:14px; }.lightbox .next { right:14px; }.lightbox .caption { position:absolute; inset:auto 15px 14px; text-align:center; font-size:13px; }
.contactgrid { padding:clamp(30px,4.6vw,78px) 0 clamp(40px,7vw,100px); }
.contactgrid p { margin:12px 0; }.contactgrid>div>p a { color:var(--blue-dark); }
.contactgrid #inquiry { width:100%; padding:clamp(22px,3vw,50px); border-radius:12px; border:1px solid var(--line); background:var(--white); }
.contactgrid label { display:block; font-size:14px; font-weight:650; margin-bottom:19px; }
.contactgrid #inquiry input:not([type=hidden]),.contactgrid textarea { margin-top:6px; display:block; width:100%; padding:11px 12px; border:1px solid #bfc2c5; border-radius:6px; background:var(--paper); font-weight:400; }
.contactgrid textarea { resize:vertical; min-height:100px; }.status { color:var(--muted); font-size:14px; }.status:empty { display:none; }
@media(max-width:1050px) {
  .slide-thumb { width:32px; height:27px; }.hero-copy .actions { gap:13px; }.navlinks { gap:21px; }
  .hero-layout { grid-template-columns:.85fr 1.15fr; gap:25px; }.hero h1 { font-size:clamp(70px,8.2vw,88px); }
  .stat { padding:15px 16px; gap:9px; }.statlabel { font-size:12px; }.split { grid-template-columns:1fr; }.gallerygrid { gap:10px; }
}
@media(max-width:760px) {
  .headrow { min-height:64px; }.brand img { width:34px; height:34px; }.brand b small { font-size:17px; }
  .hamb { display:flex; }.navlinks { display:none; position:absolute; top:58px; right:var(--gutter); left:var(--gutter); flex-direction:column; align-items:stretch; gap:0; background:white; padding:12px; border:1px solid var(--line); border-radius:10px; box-shadow:0 12px 28px #16171915; }.navlinks.open { display:flex; }.navlinks a { padding:7px 12px; }.navlinks .phone { margin:5px 0; align-self:flex-start; }
  .hero { padding-block:24px 20px; }.hero-layout { grid-template-columns:1fr; gap:23px; }.hero-copy { padding:0; }.hero h1 { font-size:clamp(64px,12vw,88px); margin:14px 0 13px; line-height:.99; }.hero .intro { max-width:51ch; }.hero-copy .actions { margin-top:18px; gap:18px; }
  .hero-photo { min-height:0; aspect-ratio:1.8; }.hero-foot { bottom:15px; }.photocontrols { top:13px; }
  .stat { flex-wrap:wrap; align-content:center; gap:3px 8px; padding:12px; min-height:70px; }.statvalue { font-size:30px; }.statlabel { font-size:11px; }.stat>.ic { display:none; }
  .cards { grid-template-columns:repeat(2,minmax(0,1fr)); }.secthead { gap:10px; }.secthead .textlink { font-size:12px; }
  .services { grid-template-columns:repeat(2,minmax(0,1fr)); }.map-copy { padding:24px; }.map-copy h2 { font-size:38px; }
  .pageintro { grid-template-columns:1fr .8fr; gap:20px; }.pageintro h1 { font-size:44px; }.archive-cover img { height:160px; }
  .detailhero { gap:15px; }.detailhero h1 { font-size:38px; }.detailhero>img { height:230px; }
  .gallerygrid { grid-template-columns:repeat(2,minmax(0,1fr)); }.contactgrid { grid-template-columns:1fr; gap:20px; }.footlinks small { margin-left:0; }
}
@media(max-width:520px) {
  .eyebrow { font-size:9.5px; }.hero h1 { font-size:clamp(66px,17vw,88px); }.hero h1 br { display:none; }.hero h1 em { display:block; }
  .hero-photo { aspect-ratio:1.47; }.location strong { font-size:17px; }.slide-thumbs { gap:3px; }.slide-thumb { width:25px; height:23px; }.hero-foot { left:12px; right:12px; gap:8px; }
  .stat { flex-direction:column; align-items:flex-start; justify-content:center; padding:12px 7px; align-content:flex-start; }.statvalue { font-size:27px; }.statlabel { font-size:10.5px; }
  .section { padding-block:35px; }.secthead { flex-wrap:wrap; margin-bottom:18px; }.secthead .textlink { min-height:22px; }.secthead h2 { font-size:34px; }
  .chips { flex-wrap:nowrap; overflow:auto; scrollbar-width:thin; padding-bottom:4px; }.chip { flex:none; padding:6px 13px; }
  .cards,.services,.facts,.map-feature,.pageintro,.detailhero { grid-template-columns:1fr; }
  .cards { gap:24px; }.placecard>img { aspect-ratio:1.8; }.ctext { padding-top:10px; }.ctext strong { font-size:24px; }
  .map-copy { border-radius:10px 10px 0 0; }.map-preview { min-height:190px; border-radius:0 0 10px 10px; }
  .author { grid-template-columns:1fr; }.author img { max-width:150px; }.footerline { align-items:start; flex-direction:column; }
  .pageintro { gap:15px; }.archive-cover img { height:142px; }.archivebar { padding:10px; }.filters { width:100%; }.filters .searchbox { width:100%; }.searchbox input { width:100%; }.filters select { flex:1; min-width:0; }.sort { max-width:46%; }
  .detailhero>.wrap { grid-area:1/1; }.detailhero>img { grid-area:2/1; height:auto; aspect-ratio:1.85; }.detailhero h1 { margin:10px 0; }
  .gallerygrid { gap:6px; }.photo { border-radius:4px; }.lightbox .prev,.lightbox .next { bottom:48px; }.lightbox img { max-width:97vw; }.mapbox { height:350px; }
}
@media(prefers-reduced-motion:reduce) {
  html { scroll-behavior:auto; } *,*:before,*:after { animation:none!important; transition:none!important; }
}


.stock-photo { min-width:0; position:relative; }
.stock-purchase, .lightbox-purchase { display:inline-flex; align-items:center; justify-content:center; gap:.45em; font-weight:650; text-decoration:none; }
.stock-purchase { font-size:.78rem; line-height:1.4; padding:.65rem .15rem .8rem; color:#283fc9; }
.stock-purchase:hover, .stock-purchase:focus-visible { text-decoration:underline; text-underline-offset:3px; }
.stock-purchase .ic,.lightbox-purchase .ic { width:1em;height:1em; }
.lightbox-purchase { position:absolute;z-index:2;left:50%;transform:translateX(-50%);bottom:calc(39px + env(safe-area-inset-bottom));color:#fff;background:#304cf0;border-radius:6px;line-height:1.3;font-size:.88rem;white-space:nowrap;padding:.75rem 1.1rem; }
.lightbox-purchase:hover,.lightbox-purchase:focus-visible { background:#2439c4; }
.lightbox-purchase[hidden] { display:none; }
.lightbox:has(.lightbox-purchase:not([hidden])) img { max-height:calc(100dvh - 185px); }
@media(max-width:520px) {
 .stock-purchase { font-size:.71rem; min-height:40px; padding:.35rem .1rem; }
 .lightbox .caption { bottom:calc(8px + env(safe-area-inset-bottom)); }
}

.direct-license { display:inline-flex;align-items:center;gap:.4em;color:#233dbb;font-size:.84rem;font-weight:650;margin:.7rem 0; }
.services .direct-license { margin:.3rem 1rem 1rem; }
.direct-license .ic,.hero-license .ic { width:1em;height:1em; }
.hero-license { margin-right:auto;display:inline-flex;align-items:center;gap:.35em;padding:.45em .7em;color:white;background:#181c23d9;border-radius:5px;text-decoration:none;font-size:.74rem;font-weight:650; }
.hero-license[hidden] { display:none; }
@media(max-width:420px){.hero-license { font-size:.62rem; }.photocontrols { gap:5px; }}


.gallery-video-jump { display:inline-flex; align-items:center; gap:.42em; font-size:.88rem; color:var(--blue-dark); font-weight:650; text-decoration:underline; text-underline-offset:3px; }
.gallery-video-jump:focus-visible,.film-card:focus-visible,.film-collection summary:focus-visible { outline:3px solid var(--blue); outline-offset:4px; }
.film-collection { margin:clamp(30px,5vw,78px) 0; scroll-margin-top:4rem; }
.film-collection h2 { margin-bottom:1.2rem; }
.film-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(min(100%,235px),1fr)); gap:16px; align-items:start; }
.film-card { display:flex; flex-direction:column; max-width:420px; width:100%; overflow:hidden; border:1px solid var(--line); border-radius:var(--radius); background:var(--white); color:var(--ink); text-decoration:none; }
.film-image { position:relative; display:block; width:100%; aspect-ratio:16/9; background:var(--soft); }
.film-image img { width:100%; height:100%; object-fit:cover; }
.film-mark,.film-time { position:absolute; bottom:8px; background:#141b22df; color:white; border-radius:4px; }
.film-mark { left:8px; padding:1px 7px; }
.film-time { right:8px; padding:3px 7px; font:600 12px/1.4 var(--mono); }
.film-name { display:block; padding:.85rem .9rem 0; font-weight:650; font-size:1rem; line-height:1.35; overflow-wrap:anywhere; }
.film-buy { display:flex; align-items:center; gap:.4em; padding:.4rem .9rem .85rem; color:var(--blue-dark); font-size:.83rem; }
.film-card:hover .film-buy,.film-card:focus-visible .film-buy { text-decoration:underline; }
.film-collection details { margin-top:1rem; }
.film-collection summary { width:fit-content; padding:.65rem 0; color:var(--blue-dark); cursor:pointer; font-weight:650; }
.film-collection details[open] summary { margin-bottom:.5rem; }
@media (max-width:520px) { .film-grid { grid-template-columns:1fr; } }


@media (min-width:850px) { .film-grid { grid-template-columns:repeat(3,minmax(0,1fr)); } .film-card { max-width:none; } }
