/* shb.studio v2 fixes: map, mobile menu, detail pages, legibility */
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}

/* ---- readability: lift micro labels to 12px+ and darken low contrast grays ---- */
.ck{font-size:12px;color:#8A4F25}
.cp{font-size:14px;color:#4A4843}
.cl{font-size:12px}
.eyb{font-size:12px!important}
.fn,.fn span{color:#55524C!important;font-size:14px!important}
.allp{font-size:12.5px;letter-spacing:.14em;text-transform:uppercase;color:#22303B!important;padding:12px 0;display:inline-block}
.mapbar label{font-size:14px;min-height:44px}
.mapbar input{width:18px;height:18px}
.mapfull{font-size:12.5px!important;padding:13px 18px!important}

/* ---- map pins: 44px hit area, link card, keyboard focus ---- */
.pin{position:absolute;width:44px;height:44px;margin:-22px 0 0 -22px;z-index:2}
.pin .pdot{position:absolute;inset:0;border:0;background:transparent;cursor:pointer;padding:0;border-radius:50%}
.pin .pdot:hover:before,.pin .pdot:focus-visible:before,.pin.open .pdot:before{content:"";position:absolute;inset:9px;border:2px solid #9A5B2E;border-radius:50%}
.pin .pdot:focus-visible{outline:2px solid #22303B;outline-offset:2px}
.pin .card{text-decoration:none}
a.card{cursor:pointer}
a.card:hover .cl{text-decoration:underline;text-underline-offset:3px}
.pin.open .card,.pin:hover .card,.pin:focus-within .card{display:flex}

.pin:hover,.pin.open,.pin:focus-within{z-index:6}
.msheet{display:none}

@media (max-width:760px){
  /* phone: taller map you can actually tap, card opens in a sheet under the map */
  .mapwrap{overflow:hidden}
  .mapimg{height:auto}
  .pin .card,.pin.open .card,.pin:hover .card{display:none!important}
  .msheet:not(:empty){display:flex;gap:14px;align-items:center;margin:-8px 0 24px;padding:12px;background:#FFFDF9;border:1px solid #CFC8BA;text-decoration:none;color:#26251F}
  .msheet .card{display:flex!important;position:static;transform:none;width:auto;border:0;box-shadow:none;padding:0;flex-direction:row;gap:12px;align-items:center;flex:1;color:#26251F;text-decoration:none}
  .msheet .card img{width:96px;flex:0 0 96px;margin:0}
  .msheet .card>span:not(.ck){}
  .msheet .mtxt{display:flex;flex-direction:column;gap:3px}
  .msheet .cl{display:inline-block;padding:8px 0 0}
  .msheet .mx{border:0;background:none;font-size:26px;width:44px;height:44px;color:#4A4843}
  .mapbar label{min-height:40px;padding:6px 10px!important;font-size:13px!important}
  .mapbar label:nth-child(n+3){display:flex}
}

/* ---- mobile menu ---- */
#hdr-menu{display:none}
@media (max-width:760px){
  #hdr-menu{display:flex;flex-direction:column;justify-content:center;gap:6px;width:44px;height:44px;border:0;background:transparent;color:inherit;cursor:pointer;margin-left:auto;padding:10px}
  #hdr-menu span:not(.sr){display:block;height:1.5px;background:currentColor;width:24px;transition:transform .3s}
  #hdr.menu-open #hdr-menu span:nth-child(1){transform:translateY(4px) rotate(45deg)}
  #hdr.menu-open #hdr-menu span:nth-child(2){transform:translateY(-4px) rotate(-45deg)}
  #hdr.menu-open{background:#F7F4EE!important;color:#26251F!important}
  #hdr.menu-open #hdr-logo{filter:none!important}
  #hdr.menu-open #hdr-nav{display:flex!important;flex-direction:column;align-items:flex-start;gap:0;width:100%;order:3;font-size:15px!important;opacity:1!important;padding:8px 0 16px}
  #hdr.menu-open #hdr-nav a{padding:12px 0;width:100%;border-bottom:1px solid #E4DFD4}
  #hdr-login{padding:8px 12px!important}
}

/* ---- hero reel ---- */
.hreel{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity 1s}
.hreel.on{opacity:1}

/* ---- detail pages ---- */
#hdr[data-solid]{background:#F7F4EE!important;color:#26251F!important;border-bottom:1px solid #E4DFD4}
#hdr[data-solid] #hdr-logo{filter:brightness(0) saturate(100%) invert(28%) sepia(16%) saturate(900%) hue-rotate(170deg) brightness(88%)!important}
.dp{background:#F7F4EE;color:#26251F;font-family:Jost,system-ui,sans-serif;padding-top:76px}
.dh{position:relative;background:#ECE7DE}
.dh-img{display:block;width:100%;height:min(78vh,820px);object-fit:cover}
.dh-empty{height:46vh;display:flex;align-items:flex-end;padding:0 clamp(16px,7vw,100px) 120px;color:#55524C;font-size:15px}
.dh-cap{position:absolute;left:0;right:0;bottom:0;padding:120px clamp(16px,7vw,100px) 40px;background:linear-gradient(0deg,rgba(20,22,26,.72),rgba(20,22,26,0));color:#F7F4EE;display:flex;flex-direction:column;gap:12px}
.dh-empty+.dh-cap{background:none;color:#26251F}
.dh-cap h1{font-family:Newsreader,Georgia,serif;font-weight:300;font-size:clamp(40px,6vw,76px);line-height:1;margin:0}
.dh-back{color:inherit!important;text-decoration:none;font-size:13px;letter-spacing:.14em;text-transform:uppercase;padding:10px 0;align-self:flex-start}
.dk{font-size:12.5px;letter-spacing:.16em;text-transform:uppercase}
.dh-cap .dk{color:#F3D9C4}
.dh-empty+.dh-cap .dk,.hi .dk{color:#8A4F25}
.dbody{padding:64px clamp(16px,7vw,100px) 24px;max-width:1240px}
.dlead{font-family:Newsreader,Georgia,serif;font-size:clamp(22px,2.4vw,30px);line-height:1.35;font-weight:300;max-width:34ch;margin:0 0 36px}
.dfacts{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:0;margin:0 0 36px;border-top:1px solid #D9D3C7}
.dfacts div{padding:16px 0;border-bottom:1px solid #D9D3C7;padding-right:24px}
.dfacts dt{font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:#625E57;margin-bottom:6px}
.dfacts dd{margin:0;font-size:17px}
.dbtn,.dform button{display:inline-block;background:#22303B;color:#F7F4EE!important;text-decoration:none;border:0;font:inherit;font-size:13px;letter-spacing:.16em;text-transform:uppercase;padding:16px 28px;cursor:pointer}
.dbtn:hover,.dform button:hover{background:#9A5B2E}
.dgal{padding:40px clamp(16px,7vw,100px)}
.dgal h2,.dres h2{font-family:Newsreader,Georgia,serif;font-weight:300;font-size:clamp(28px,3vw,40px);margin:0 0 24px}
.dg{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px}
.dg-i{border:0;padding:0;background:#ECE7DE;cursor:zoom-in;aspect-ratio:4/3;overflow:hidden}
.dg-i img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .6s cubic-bezier(.2,.7,.2,1)}
.dg-i:hover img{transform:scale(1.03)}
.dg-i:first-child{grid-column:span 2;grid-row:span 2;aspect-ratio:auto}
.dres{margin:56px clamp(16px,7vw,100px);padding:40px;background:#FFFDF9;border:1px solid #E4DFD4;display:grid;grid-template-columns:1fr 1.2fr;gap:40px;scroll-margin-top:96px}
.dres p{color:#4A4843;font-size:16px;line-height:1.6;max-width:44ch}
.dform{display:grid;grid-template-columns:1fr 1fr;gap:16px;align-content:start}
.dform label{display:flex;flex-direction:column;gap:6px;font-size:12.5px;letter-spacing:.12em;text-transform:uppercase;color:#4A4843}
.dform .full{grid-column:1/-1}
.dform input{font:inherit;font-size:16px;letter-spacing:0;text-transform:none;padding:13px 12px;border:1px solid #CFC8BA;background:#F7F4EE;color:#26251F}
.dform input:focus{outline:2px solid #22303B;outline-offset:0}
.dform .hp{position:absolute;left:-9999px}
.dform button{grid-column:1/-1;justify-self:start}
.dmsg{grid-column:1/-1;font-size:15px;color:#22303B;min-height:1.4em}
.dnext{display:flex;flex-direction:column;gap:6px;padding:48px clamp(16px,7vw,100px);border-top:1px solid #E4DFD4;font-family:Newsreader,Georgia,serif;font-size:clamp(28px,3vw,40px);color:#26251F!important;text-decoration:none}
.dnext span{font-family:Jost,system-ui,sans-serif;font-size:12.5px;letter-spacing:.16em;text-transform:uppercase;color:#625E57}
.dnext:hover{color:#9A5B2E!important}
.hidx{padding:48px clamp(16px,7vw,100px)}
.hidx h1{font-family:Newsreader,Georgia,serif;font-weight:300;font-size:clamp(44px,6vw,80px);margin:8px 0 16px}
.hgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:40px 28px;margin-top:24px}
.hi{display:flex;flex-direction:column;gap:8px;color:#26251F!important;text-decoration:none}
.hi img,.hi-empty{width:100%;aspect-ratio:4/3;object-fit:cover;background:#ECE7DE;display:block;transition:opacity .3s}
.hi:hover img{opacity:.88}
.hi-n{font-family:Newsreader,Georgia,serif;font-size:26px;line-height:1.1}
.hi-s{font-size:15px;color:#4A4843}
@media (max-width:760px){
  .dp{padding-top:68px}
  .dh-img{height:62vh}
  .dg{grid-template-columns:1fr 1fr;gap:8px}
  .dg-i:first-child{grid-column:1/-1;grid-row:auto;aspect-ratio:4/3}
  .dres{grid-template-columns:1fr;padding:24px;margin:40px 16px;gap:16px}
  .dform{grid-template-columns:1fr}
}
@media (prefers-reduced-motion:reduce){.dg-i img,.hreel{transition:none}}
.maphint{display:none}
@media (max-width:760px){
  .mapscroll{overflow-x:auto;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch;scrollbar-width:none;margin:0 calc(-1*clamp(16px,7vw,100px))}
  .mapscroll::-webkit-scrollbar{display:none}
  .mapscroll .mapwrap{width:900px;max-width:none}
  .maphint{display:block;font-size:13px;color:#55524C;margin:8px 0 12px}
  #hdr.menu-open #hdr-logo{filter:brightness(0) saturate(100%) invert(28%) sepia(16%) saturate(900%) hue-rotate(170deg) brightness(88%)!important}
}
