/* Scope the GeneratePress content wrapper to the full-bleed CodePen frame. */
body.ol-theme #page,body.ol-theme #content,body.ol-theme #primary{max-width:none;width:100%;margin:0;padding:0;background:transparent;display:block}
body.ol-theme #content{min-height:0}
body.ol-theme .site-main{margin-left:var(--side);min-height:100vh;max-width:none;background:transparent}
body.ol-theme .site-main>.page{margin:0}
body.ol-theme .site-footer{display:none}
body.ol-theme .nav .subnav{list-style:none;margin:4px 0 8px 12px;padding:0;border-left:1px solid var(--stone)}
body.ol-theme .nav .subnav a{font:400 13px/1.6 var(--f-mono);padding:2px 0 2px 12px;letter-spacing:0}
body.ol-theme .nav .subnav a[aria-current=page]{font-style:italic}
body.ol-theme .search input[type=search]{height:40px;padding:0 24px 0 0;background:transparent;border:0;border-bottom:1px solid var(--stone);box-shadow:none}
body.ol-theme .search input[type=search]:focus{border-bottom-color:var(--ink)}
body.ol-theme .dev{opacity:1;filter:none}body.ol-theme .rule{transform:none}
body.ol-theme .page .ol-empty{padding:32px;border:1px solid var(--stone);background:var(--paper-deep)}
body.ol-theme .ol-empty p{margin:0}
body.ol-theme .ol-picture-link{display:block}
body.ol-theme .ol-meta{color:var(--ink-soft)}
body.ol-theme .ol-error{border-left:3px solid var(--oxblood);padding:12px;margin:24px 0;background:var(--paper-deep)}
body.ol-theme .ol-form-note{font:12px/1.5 var(--f-mono);color:var(--ink-soft)}
body.ol-theme .ol-form-note a{text-decoration:underline}
body.ol-theme .ol-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
body.ol-theme .ol-form-grid .wide{grid-column:1/-1}
body.ol-theme .ol-form-grid label{display:block;font:12px/1.4 var(--f-mono);margin-bottom:7px}
body.ol-theme .ol-form-grid input,body.ol-theme .ol-form-grid select,body.ol-theme .ol-form-grid textarea{width:100%;border:1px solid var(--stone);background:var(--paper);padding:12px;min-height:44px;border-radius:0}
body.ol-theme .ol-form-grid textarea{min-height:110px}
body.ol-theme .ol-form-grid .btn{width:auto}
body.ol-theme .ol-form-grid .ol-check input{width:auto;min-height:0}
body.ol-theme .ol-form-grid .ol-check label{display:inline}
body.ol-theme .ol-honey{position:absolute;left:-9999px}
body.ol-theme .swatch .tile img{aspect-ratio:1;object-fit:cover}
body.ol-theme .spread .tile img{width:100%;height:100%;object-fit:cover}
body.ol-theme .spread .tile{height:100%}
body.ol-theme .spread .tile>span{display:block;height:100%}
body.ol-theme .wall{display:grid;grid-template-columns:repeat(16,1fr);gap:4px}
body.ol-theme .wall .tile img{aspect-ratio:1}
body.ol-theme .ol-hidden{display:none!important}
body.ol-theme .pagination{font:12px var(--f-mono);margin-top:40px}
body.ol-theme .pagination a,body.ol-theme .pagination span{padding:9px;margin-right:8px;border:1px solid var(--stone)}
@media(max-width:1023px){body.ol-theme .site-main{margin-left:0;padding-top:56px}body.ol-theme .wall{grid-template-columns:repeat(8,1fr)}}
@media(max-width:639px){body.ol-theme .ol-form-grid{grid-template-columns:1fr}body.ol-theme .wall{grid-template-columns:repeat(4,1fr)}}
/* Images are always visible, even if JavaScript or an observer fails. Native loading=lazy is only below the fold. */

body.ol-theme .namewall{max-width:none;font-family:var(--f-serif);font-weight:300;line-height:1.25}
body.ol-theme .namewall.xl{font-size:clamp(28px,3.3vw,54px)}
body.ol-theme .namewall.l{font-size:clamp(22px,2.2vw,34px)}
body.ol-theme .namewall .nm{white-space:normal}
body.ol-theme .ol-selected{display:block;padding:8px 0;border-bottom:1px solid var(--stone);font:12px var(--f-mono)}
body.ol-theme .ol-selected input{width:auto;min-height:0}
body.ol-theme #loginform p{max-width:none}
body.ol-theme #loginform input[type=text],body.ol-theme #loginform input[type=password]{display:block;width:100%;max-width:460px;padding:12px;border:1px solid var(--stone);background:var(--paper)}
body.ol-theme #loginform input[type=submit]{background:var(--ink);color:var(--paper);padding:12px 24px;border:1px solid var(--ink)}
@media print{body.ol-theme .sidebar,body.ol-theme .topbar,body.ol-theme .scrim,body.ol-theme .drawer,body.ol-theme .care-actions{display:none!important}body.ol-theme .site-main{margin:0;padding:0}body.ol-theme .page{padding:0}}

body.ol-theme .wall .tile figcaption{display:none}

/* WordPress adds "page" to the body class; the CodePen .page frame must not
   pad the body. GeneratePress's separate-containers/no-sidebar rule also
   overrides the demo's main offset, so put the offset on its site wrapper. */
body.ol-theme.page{padding:0}
body.ol-theme #page{margin-left:var(--side);width:calc(100% - var(--side))}
body.ol-theme.separate-containers.no-sidebar .site-main,
body.ol-theme .site-main{margin:0;width:100%}
body.ol-theme .site-main>.page{padding:28px var(--margin) 140px}
@media(max-width:1023px){
  body.ol-theme #page{margin-left:0;width:100%}
  body.ol-theme.separate-containers.no-sidebar .site-main,
  body.ol-theme .site-main{margin:0;padding-top:56px}
}
@media print{
  body.ol-theme #page{margin:0;width:100%}
  body.ol-theme .site-main>.page{padding:0}
}

/* Keep the rates table within its narrow item column and phone viewport. */
body.ol-theme .item-side{min-width:0}
body.ol-theme .ol-rates-scroll{max-width:100%;overflow-x:auto;overscroll-behavior-inline:contain}
body.ol-theme .ol-rates-scroll .rates{min-width:520px}
body.ol-theme .ol-rates-scroll:focus-visible{outline:2px solid var(--prussian);outline-offset:2px}

/* Portrait phone controls remain inside the content column. */
@media(max-width:639px){
  body.ol-theme .topbar .wm{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  body.ol-theme .topbar .tb-right{flex:none;gap:8px}
  body.ol-theme .care-actions{flex-wrap:wrap}
  body.ol-theme .cp-stats{grid-template-columns:repeat(3,minmax(0,1fr))}
  body.ol-theme .cp-stats .ledger{font-size:10px;overflow-wrap:anywhere}
  body.ol-theme .video figcaption{grid-template-columns:1fr auto}
  body.ol-theme .video figcaption .serif{grid-column:1/-1;grid-row:2}
  body.ol-theme .person h3{overflow-wrap:anywhere}
}
