/*
Theme Name: Plank Presentation Shell
Theme URI: https://southbeachgeek.com/
Author: South Beach Geek
Author URI: https://southbeachgeek.com/
Description: Faithful global presentation shell for the Plank Block Library. Owns the site header, navigation, footer and base WordPress templates.
Version: 14.9.3
Requires at least: 6.5
Requires PHP: 7.4
Text Domain: plank-presentation-shell
*/

:root{
  --plank-ink:#171817;
  --plank-paper:#fff;
  --plank-muted:#77786f;
  --plank-line:#e5e2dc;
  --plank-gold:#a68860;
  --plank-dark:#171918;
  --plank-max:1480px;
  --plank-pad:clamp(26px,4.3vw,76px);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  background:var(--plank-paper);
  color:var(--plank-ink);
  font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;
  line-height:1.55;
  -webkit-font-smoothing:antialiased;
}
body.admin-bar .plank-global-header.is-transparent{top:32px}
a{color:inherit}
img{max-width:100%}
.wp-site-blocks{padding:0}
.wp-site-blocks>*+*{margin-block-start:0}
.plank-wrap{
  width:min(var(--plank-max),calc(100% - (var(--plank-pad)*2)));
  margin-inline:auto;
}
.screen-reader-text{
  position:absolute!important;
  width:1px!important;
  height:1px!important;
  padding:0!important;
  margin:-1px!important;
  overflow:hidden!important;
  clip:rect(0,0,0,0)!important;
  white-space:nowrap!important;
  border:0!important;
}

/* Header — premium navigation upgrade */
.plank-global-header{position:sticky;top:0;z-index:1000;width:100%;color:#1c1d1b;background:rgba(255,255,255,.97);border-bottom:1px solid rgba(23,24,23,.07);transition:background-color .28s ease,border-color .28s ease,box-shadow .28s ease,transform .28s ease}
.plank-global-header.is-transparent{position:fixed;inset:0 0 auto;color:#fff;background:linear-gradient(180deg,rgba(8,9,8,.42) 0%,rgba(8,9,8,.13) 58%,rgba(8,9,8,0) 100%);border-bottom-color:rgba(255,255,255,.12)}
.plank-global-header.is-transparent.is-scrolled{color:#1c1d1b;background:rgba(255,255,255,.96);border-bottom-color:rgba(23,24,23,.08);box-shadow:0 8px 28px rgba(18,18,16,.08);-webkit-backdrop-filter:blur(18px) saturate(1.15);backdrop-filter:blur(18px) saturate(1.15)}
.plank-global-header.is-light.is-scrolled{box-shadow:0 8px 28px rgba(18,18,16,.06)}
body.admin-bar .plank-global-header{top:32px}
.plank-global-header__inner{display:flex;align-items:center;width:min(var(--plank-max),calc(100% - (var(--plank-pad)*2)));min-height:88px;margin-inline:auto;gap:clamp(28px,3vw,54px);transition:min-height .28s ease}
.plank-global-header.is-scrolled .plank-global-header__inner{min-height:72px}
.plank-global-logo{position:relative;z-index:2;display:inline-flex;flex:none;align-items:center;min-height:42px;color:inherit;font-size:1.2rem;font-weight:300;letter-spacing:.46em;line-height:1;text-decoration:none;text-transform:uppercase;transition:opacity .2s ease,transform .2s ease}
.plank-global-logo:hover{opacity:.72}.plank-global-logo:focus-visible{outline:1px solid currentColor;outline-offset:6px}
.plank-logo-text{display:inline-block}
.plank-site-logo-set{display:none;align-items:center}
.plank-site-logo-set.is-ready{display:inline-grid}
.plank-global-logo.has-image-logo>.plank-logo-text,.plank-footer-logo.has-image-logo>.plank-logo-text{display:none}
.plank-site-logo-image{grid-area:1/1;display:block;width:auto;max-width:min(210px,24vw);height:auto;max-height:38px;object-fit:contain;transition:filter .28s ease,max-height .28s ease,opacity .2s ease}
.plank-site-logo-image--sticky{opacity:0;visibility:hidden}
.plank-global-header.is-scrolled .plank-site-logo-image{max-height:32px}
.plank-global-header.is-scrolled .plank-site-logo-image--fixed:has(+ .plank-site-logo-image--sticky){opacity:0;visibility:hidden}
.plank-global-header.is-scrolled .plank-site-logo-image--sticky{opacity:1;visibility:visible}
.plank-global-header.is-light .plank-site-logo-set.has-sticky-logo .plank-site-logo-image--fixed{opacity:0;visibility:hidden}
.plank-global-header.is-light .plank-site-logo-set.has-sticky-logo .plank-site-logo-image--sticky{opacity:1;visibility:visible}
.plank-global-header.is-transparent.has-inverted-logo:not(.is-scrolled) .plank-site-logo-image--fixed{filter:brightness(0) invert(1)}
.plank-footer-logo .plank-site-logo-image{max-width:210px;max-height:44px}
.plank-global-nav{margin-left:auto}
.plank-global-nav>ul{display:flex;align-items:center;gap:clamp(22px,2.2vw,40px);margin:0;padding:0;list-style:none}.plank-global-nav li{position:relative}
.plank-global-nav a{position:relative;display:inline-flex;align-items:center;min-height:48px;color:inherit;font-size:.7rem;font-weight:500;letter-spacing:.055em;line-height:1;text-decoration:none;white-space:nowrap;transition:opacity .18s ease,color .18s ease}
.plank-global-nav>ul>li>a::before{content:"";position:absolute;right:0;bottom:7px;left:0;height:1px;background:currentColor;opacity:.8;transform:scaleX(0);transform-origin:right center;transition:transform .28s cubic-bezier(.22,.61,.36,1)}
.plank-global-nav>ul>li>a:hover::before,.plank-global-nav>ul>li>a:focus-visible::before,.plank-global-nav>ul>li>a.is-current::before,.plank-global-nav>ul>li.has-current-child>a::before{transform:scaleX(1);transform-origin:left center}
.plank-global-nav a:focus-visible{outline:1px solid currentColor;outline-offset:5px}
.plank-global-nav li.has-children>a::after{content:"";width:5px;height:5px;margin:-3px 0 0 8px;border-right:1px solid currentColor;border-bottom:1px solid currentColor;transform:rotate(45deg);transition:transform .2s ease}
.plank-global-nav li.has-children:hover>a::after,.plank-global-nav li.has-children:focus-within>a::after{transform:translateY(2px) rotate(45deg)}
.plank-submenu-toggle{display:none}
.plank-submenu{position:absolute;top:calc(100% + 8px);left:50%;z-index:50;display:block;min-width:240px;margin:0;padding:10px;border:1px solid rgba(23,24,23,.08);border-radius:2px;background:rgba(255,255,255,.985);box-shadow:0 20px 55px rgba(24,24,21,.16);list-style:none;opacity:0;visibility:hidden;transform:translate(-50%,8px);pointer-events:none;transition:opacity .18s ease,transform .22s ease,visibility .18s ease}
.plank-submenu::before{content:"";position:absolute;top:-12px;right:0;left:0;height:12px}.plank-submenu li+li{border-top:1px solid #efede8}
.plank-submenu a{display:flex;min-height:44px;padding:0 13px;color:#292a28!important;font-size:.72rem;font-weight:450;letter-spacing:.035em}.plank-submenu a::after{content:"→";margin-left:auto;opacity:0;transform:translateX(-4px);transition:opacity .18s ease,transform .18s ease}.plank-submenu a:hover{color:#111!important}.plank-submenu a:hover::after,.plank-submenu a:focus-visible::after{opacity:.55;transform:translateX(0)}
.plank-global-nav li:hover>.plank-submenu,.plank-global-nav li:focus-within>.plank-submenu{opacity:1;visibility:visible;transform:translate(-50%,0);pointer-events:auto}
.plank-nav-toggle{position:relative;z-index:1003;display:none;width:46px;height:46px;margin-left:auto;padding:12px 9px;border:0;background:transparent;color:inherit;cursor:pointer}
.plank-nav-toggle>span:not(.screen-reader-text){display:block;width:24px;height:1px;margin:5px auto;background:currentColor;transform-origin:center;transition:transform .25s ease,opacity .2s ease,width .2s ease}.plank-nav-toggle[aria-expanded="true"]>span:nth-child(1){transform:translateY(6px) rotate(45deg)}.plank-nav-toggle[aria-expanded="true"]>span:nth-child(2){opacity:0;width:0}.plank-nav-toggle[aria-expanded="true"]>span:nth-child(3){transform:translateY(-6px) rotate(-45deg)}
html.plank-nav-open{overflow:hidden}
@media(prefers-reduced-motion:reduce){.plank-global-header,.plank-global-header__inner,.plank-global-logo,.plank-global-nav a,.plank-global-nav>ul>li>a::before,.plank-submenu,.plank-nav-toggle>span:not(.screen-reader-text),.plank-site-logo-image{transition:none!important}}

/* Footer */
.plank-global-footer{
  padding:92px 0 0;
  background:#171918;
  color:#fff;
}
.plank-global-footer__inner{
  width:min(var(--plank-max),calc(100% - (var(--plank-pad)*2)));
  margin-inline:auto;
}
.plank-global-footer__grid{
  display:grid;
  grid-template-columns:1.45fr .7fr .7fr .7fr 1fr;
  gap:clamp(40px,5vw,90px);
}
.plank-footer-logo{
  display:inline-block;
  margin-bottom:28px;
  font-size:1.18rem;
  font-weight:300;
  letter-spacing:.43em;
  text-decoration:none;
}
.plank-footer-brand>p,
.plank-footer-newsletter>p{
  max-width:285px;
  color:rgba(255,255,255,.58);
  font-size:.78rem;
  line-height:1.68;
}
.plank-social-links{
  display:flex;
  gap:13px;
  margin-top:30px;
}
.plank-social-links a{
  display:grid;
  width:34px;
  height:34px;
  place-items:center;
  border:1px solid rgba(255,255,255,.22);
  border-radius:50%;
  color:rgba(255,255,255,.8);
  font-size:.68rem;
  text-decoration:none;
}
.plank-footer-group h3,
.plank-footer-newsletter h3{
  margin:4px 0 24px;
  color:rgba(255,255,255,.42);
  font-size:.62rem;
  font-weight:400;
  letter-spacing:.2em;
  text-transform:uppercase;
}
.plank-footer-group ul{margin:0;padding:0;list-style:none}
.plank-footer-group li{margin:0 0 15px}
.plank-footer-group a{
  color:rgba(255,255,255,.67);
  font-size:.76rem;
  text-decoration:none;
}
.plank-footer-group a:hover{color:#fff}
.plank-footer-newsletter form{margin-top:20px}
.plank-footer-newsletter input{
  width:100%;
  padding:13px 15px;
  border:1px solid rgba(255,255,255,.18);
  border-radius:0;
  background:#30312f;
  color:#fff;
}
.plank-footer-newsletter button{
  width:100%;
  margin-top:9px;
  padding:13px 15px;
  border:0;
  background:#fff;
  color:#171817;
  cursor:pointer;
}
.plank-global-footer__bottom{
  display:flex;
  justify-content:space-between;
  gap:25px;
  margin-top:82px;
  padding:23px 0 28px;
  border-top:1px solid rgba(255,255,255,.09);
  color:rgba(255,255,255,.34);
  font-size:.65rem;
}
.plank-global-footer__bottom nav{
  display:flex;
  gap:28px;
}
.plank-global-footer__bottom a{text-decoration:none}

/* Standard WordPress editorial pages */
.plank-inner-page{
  width:min(980px,calc(100% - (var(--plank-pad)*2)));
  margin-inline:auto!important;
  padding:110px 0!important;
}
.plank-inner-page .wp-block-post-title,
.plank-inner-page .wp-block-query-title{
  font-size:clamp(3rem,5vw,5.5rem);
  font-weight:200;
  line-height:.95;
  letter-spacing:-.045em;
}
.plank-inner-page a{color:inherit}

@media(max-width:1100px){
  .plank-global-footer__grid{grid-template-columns:1.2fr repeat(3,.7fr)}
  .plank-footer-newsletter{grid-column:1/-1;max-width:400px}
}
@media(max-width:900px){
  .plank-global-header__inner{min-height:76px}.plank-global-header.is-scrolled .plank-global-header__inner{min-height:68px}.plank-nav-toggle{display:block}
  .plank-global-nav{position:fixed;inset:0 0 0 auto;z-index:1001;display:block;width:min(430px,92vw);height:100vh;height:100dvh;margin:0;padding:104px 34px 42px;overflow:auto;background:#f8f7f3;color:#171817;box-shadow:-28px 0 70px rgba(0,0,0,.20);opacity:0;visibility:hidden;transform:translateX(102%);transition:transform .3s cubic-bezier(.22,.61,.36,1),opacity .22s ease,visibility .3s ease}
  .plank-global-nav::before{content:"MENU";display:block;margin-bottom:24px;color:#9b8a73;font-size:.58rem;font-weight:600;letter-spacing:.22em}.plank-global-nav.is-open{opacity:1;visibility:visible;transform:translateX(0)}.plank-global-nav>ul{display:block}.plank-global-nav li{border-bottom:1px solid #dfddd7}
  .plank-global-nav>ul>li>a{width:calc(100% - 48px);min-height:59px;font-size:.86rem;font-weight:450;letter-spacing:.04em}.plank-global-nav>ul>li>a::before{display:none}.plank-global-nav a.is-current{font-weight:600}.plank-global-nav a.is-current::after{content:"";width:5px;height:5px;margin-left:9px;border-radius:50%;background:var(--plank-gold)}.plank-global-nav li.has-children>a::after{display:none}
  .plank-submenu-toggle{position:absolute;top:8px;right:0;display:grid;width:42px;height:42px;padding:0;place-items:center;border:0;background:transparent;color:#171817;cursor:pointer;font-size:1rem;transition:transform .2s ease}.plank-submenu-toggle[aria-expanded="true"]{transform:rotate(180deg)}
  .plank-submenu{position:static;display:block!important;min-width:0;max-height:0;margin:0;padding:0 0 0 16px;overflow:hidden;border:0;background:transparent;box-shadow:none;opacity:0!important;visibility:hidden!important;transform:translateX(-12px)!important;pointer-events:none;transition:max-height .34s cubic-bezier(.22,.61,.36,1),opacity .2s ease,transform .26s ease,padding-bottom .26s ease,visibility 0s linear .34s}.plank-submenu li{border-top:1px solid #e7e4dd;border-bottom:0}.plank-submenu li:first-child{border-top:0}.plank-submenu a{min-height:45px;padding:0;color:#5d5e59!important;font-size:.76rem}.plank-submenu a::after{display:none}.plank-global-nav li.is-open>.plank-submenu{max-height:1200px;padding-bottom:14px;opacity:1!important;visibility:visible!important;transform:translateX(0)!important;pointer-events:auto;transition:max-height .38s cubic-bezier(.22,.61,.36,1),opacity .22s ease .04s,transform .28s ease,padding-bottom .26s ease,visibility 0s linear 0s}
  .plank-global-header.is-transparent:not(.is-scrolled) .plank-nav-toggle{color:#fff}.plank-global-header.has-open-navigation .plank-nav-toggle,.plank-global-header.is-transparent.has-open-navigation .plank-nav-toggle{color:#171817}html.plank-nav-open .plank-nav-toggle{color:#171817!important}
  .plank-global-footer__grid{grid-template-columns:1fr 1fr}.plank-footer-brand,.plank-footer-newsletter{grid-column:1/-1}
}
@media(max-width:782px){
  body.admin-bar .plank-global-header{top:46px}
}
@media(max-width:620px){
  .plank-global-header__inner{width:min(var(--plank-max),calc(100% - (var(--plank-pad)*2)));min-height:70px}
  .plank-global-header.is-scrolled .plank-global-header__inner{min-height:64px}
  .plank-site-logo-image{max-width:170px;max-height:31px}
  .plank-global-footer__grid{grid-template-columns:1fr}
  .plank-footer-brand,.plank-footer-newsletter{grid-column:auto}
  .plank-global-footer__bottom{flex-direction:column}
  .plank-global-footer__bottom nav{flex-wrap:wrap;gap:14px 22px}
}

/* v14.2 branding-state compatibility */
.plank-site-logo-set.has-sticky-logo .plank-site-logo-image--fixed{opacity:1;visibility:visible}
.plank-global-header.is-scrolled .plank-site-logo-set.has-sticky-logo .plank-site-logo-image--fixed{opacity:0;visibility:hidden}


/* v14.4 native Block Library logo rendering */
.plank-global-logo > .plank-site-logo-set.is-ready,
.plank-footer-logo > .plank-site-logo-set.is-ready{display:inline-grid}
.plank-global-logo > .plank-site-logo-set.is-ready ~ .plank-logo-text{display:none}
.plank-global-logo:has(> .plank-site-logo-set.is-ready) > .plank-logo-text,
.plank-footer-logo:has(> .plank-site-logo-set.is-ready) > .plank-logo-text{display:none}


/* v14.5 single-source native logo rendering */
.plank-global-logo > .plank-logo-text + .plank-site-logo-set.is-ready,
.plank-footer-logo > .plank-logo-text + .plank-site-logo-set.is-ready{
  display:inline-grid!important;
}
.plank-global-logo > .plank-logo-text:has(+ .plank-site-logo-set.is-ready),
.plank-footer-logo > .plank-logo-text:has(+ .plank-site-logo-set.is-ready){
  display:none!important;
}
.plank-global-logo > .plank-site-logo-set.is-ready .plank-site-logo-image,
.plank-footer-logo > .plank-site-logo-set.is-ready .plank-site-logo-image{
  display:block!important;
}


/* v14.7 surgical mobile/footer refinements */
@media(max-width:900px){
  /* Keep submenu labels readable even while the transparent header itself is white. */
  .plank-global-header .plank-global-nav.is-open .plank-submenu a,
  .plank-global-header.is-transparent .plank-global-nav.is-open .plank-submenu a{
    color:#5d5e59!important;
    -webkit-text-fill-color:#5d5e59!important;
  }
  .plank-global-header .plank-global-nav.is-open .plank-submenu a:hover,
  .plank-global-header .plank-global-nav.is-open .plank-submenu a:focus-visible,
  .plank-global-header .plank-global-nav.is-open .plank-submenu a.is-current{
    color:#171817!important;
    -webkit-text-fill-color:#171817!important;
  }
}

/* If a short page ends before the viewport does, continue the footer color instead of exposing white canvas below it. */
html,body{background:#171918}
.wp-site-blocks{background:#fff}
.plank-global-footer{margin-bottom:0!important}


/* v14.8 mobile submenu legibility hardening.
   Intentionally scoped to an expanded submenu inside the open mobile drawer so
   desktop navigation, transparent-header colors and all other states remain unchanged. */
@media(max-width:900px){
  html body .plank-global-header .plank-global-nav.is-open li.is-open > ul.plank-submenu li > a,
  html body .plank-global-header .plank-global-nav.is-open li.is-open > ul.plank-submenu li > a:link,
  html body .plank-global-header .plank-global-nav.is-open li.is-open > ul.plank-submenu li > a:visited,
  html body .plank-global-header .plank-global-nav.is-open li.is-open > ul.plank-submenu li > a:hover,
  html body .plank-global-header .plank-global-nav.is-open li.is-open > ul.plank-submenu li > a:focus,
  html body .plank-global-header .plank-global-nav.is-open li.is-open > ul.plank-submenu li > a:focus-visible,
  html body .plank-global-header .plank-global-nav.is-open li.is-open > ul.plank-submenu li > a:active,
  html body .plank-global-header .plank-global-nav.is-open li.is-open > ul.plank-submenu li > a.is-current,
  html body .plank-global-header .plank-global-nav.is-open li.is-open > ul.plank-submenu li > a[aria-current="page"]{
    color:#171817!important;
    -webkit-text-fill-color:#171817!important;
    opacity:1!important;
    text-shadow:none!important;
  }
}


/* v14.9 state fixes: light-header logo selection + mobile submenu reveal. */
@media(max-width:900px){
  html body .plank-global-header .plank-global-nav.is-open li.is-open > .plank-submenu,
  html body .plank-global-header.is-transparent .plank-global-nav.is-open li.is-open > .plank-submenu{
    opacity:1!important;
    visibility:visible!important;
    transform:translateX(0)!important;
    pointer-events:auto!important;
  }
  html body .plank-global-header .plank-global-nav.is-open li.is-open > .plank-submenu li,
  html body .plank-global-header .plank-global-nav.is-open li.is-open > .plank-submenu li > a,
  html body .plank-global-header .plank-global-nav.is-open li.is-open > .plank-submenu li > a:link,
  html body .plank-global-header .plank-global-nav.is-open li.is-open > .plank-submenu li > a:visited,
  html body .plank-global-header .plank-global-nav.is-open li.is-open > .plank-submenu li > a:hover,
  html body .plank-global-header .plank-global-nav.is-open li.is-open > .plank-submenu li > a:focus,
  html body .plank-global-header .plank-global-nav.is-open li.is-open > .plank-submenu li > a:active{
    color:#171817!important;
    -webkit-text-fill-color:#171817!important;
    opacity:1!important;
    visibility:visible!important;
    transform:none!important;
    filter:none!important;
    mix-blend-mode:normal!important;
  }
}


/* v14.9.1 — mobile submenu reliability.
   No reveal/slide animation: submenu children are either fully hidden or fully visible. */
@media(max-width:900px){
  html body .plank-global-header .plank-global-nav.is-open .plank-submenu{
    display:none!important;
    max-height:none!important;
    opacity:1!important;
    visibility:visible!important;
    transform:none!important;
    pointer-events:auto!important;
    transition:none!important;
  }
  html body .plank-global-header .plank-global-nav.is-open li.is-open > .plank-submenu{
    display:block!important;
    max-height:none!important;
    opacity:1!important;
    visibility:visible!important;
    transform:none!important;
    pointer-events:auto!important;
    transition:none!important;
    padding-bottom:14px;
  }
  html body .plank-global-header .plank-global-nav.is-open li.is-open > .plank-submenu li,
  html body .plank-global-header .plank-global-nav.is-open li.is-open > .plank-submenu li > a,
  html body .plank-global-header .plank-global-nav.is-open li.is-open > .plank-submenu li > a:link,
  html body .plank-global-header .plank-global-nav.is-open li.is-open > .plank-submenu li > a:visited,
  html body .plank-global-header .plank-global-nav.is-open li.is-open > .plank-submenu li > a:hover,
  html body .plank-global-header .plank-global-nav.is-open li.is-open > .plank-submenu li > a:focus,
  html body .plank-global-header .plank-global-nav.is-open li.is-open > .plank-submenu li > a:focus-visible,
  html body .plank-global-header .plank-global-nav.is-open li.is-open > .plank-submenu li > a:active,
  html body .plank-global-header .plank-global-nav.is-open li.is-open > .plank-submenu li > a[aria-current="page"]{
    color:#171817!important;
    -webkit-text-fill-color:#171817!important;
    opacity:1!important;
    visibility:visible!important;
    transform:none!important;
    transition:none!important;
    filter:none!important;
    mix-blend-mode:normal!important;
    text-shadow:none!important;
  }
}
