/* ks-theme.css — Karen Stone site-wide look (liveeatplayparkcity.com). Pass 4, 2026-10-18.
   Was the inline <style id="ks-theme-layer"> in agentspot-karen-theme.php. Every rule is a low-weight DEFAULT:
   no !important (two documented exceptions: logo height, lead-form fields), so a block's own colour / font / size / spacing setting and
   Site Editor → Styles win over it. Rule order is the original order: equal-weight ties resolve as before. */

:root{--ks-navy:var(--wp--preset--color--karen-navy);--ks-tan:var(--wp--preset--color--karen-tan);--ks-ink:var(--wp--preset--color--karen-ink);--ks-mist:var(--wp--preset--color--karen-mist);--ks-serif:var(--wp--preset--font-family--playfair-display);--ks-sans:var(--wp--preset--font-family--jost);--first-color:var(--ks-navy);--as-accent:var(--ks-tan);--as-cream:var(--wp--preset--color--karen-cream)}
/* The tokens above read Karen's palette and font presets (ks-design-system.php §5): editing a palette colour or font in
   Site Editor → Styles changes every rule that uses it. --first-color / --as-accent / --as-cream are the companion
   plugin's names (it defines them only in the front-end <head>); restating them here makes them exist in the editor
   canvas too, with the same values. The theme's own colour tokens below are still read by its
   stylesheet (ks-theme-base.css) and global defaults, but are no longer offered in the colour picker. */
:root{--wp--preset--color--primary:#33A6FF;--wp--preset--color--secondary:#182027;--wp--preset--color--tertiary:#1A8BE3;--wp--preset--color--fourth:#e8edee;--wp--preset--color--accent:#F59E0B;--wp--preset--color--heading:#1F2937;--wp--preset--color--body:#6B7280;--wp--preset--color--surface:#F8FAFC;--wp--preset--color--background:#FFFFFF;--wp--preset--color--light-gray:#F9FAFB;--wp--preset--color--border:#E5E7EB;--wp--preset--color--muted:#9CA3AF;--wp--preset--color--success:#10B981;--wp--preset--color--warning:#F59E0B;--wp--preset--color--error:#EF4444;--wp--preset--color--transparent:transparent}

/* Brand defaults read by WordPress global styles (ks-design-system.php §3): body text, links, headings.
   Sections below override the VARIABLES, never the properties, so Site Editor → Styles still reaches them. */
:root{
  --ks-body-font:var(--ks-sans);--ks-body-color:var(--ks-ink);--ks-body-line-height:1.75;
  --ks-link-color:var(--wp--preset--color--primary);--ks-link-hover-color:var(--wp--preset--color--secondary);
  --ks-heading-font:var(--wp--preset--font-family--worksans);--ks-heading-weight:800;--ks-heading-line-height:1.2;--ks-heading-letter-spacing:-0.025em;--ks-heading-color:var(--wp--preset--color--heading);
  --ks-h1-size:var(--wp--preset--font-size--huge);--ks-h2-size:var(--wp--preset--font-size--xxxx-large);--ks-h3-size:var(--wp--preset--font-size--xxx-large);
  --ks-h4-size:var(--wp--preset--font-size--xx-large);--ks-h5-size:var(--wp--preset--font-size--x-large);--ks-h6-size:var(--wp--preset--font-size--large)}
.ks-page-body,.ks-section{--ks-link-color:var(--ks-navy);--ks-link-hover-color:var(--ks-navy)}
/* default button typography/padding (global Button styles read these; the neighborhood template sets its own) */
:root{--ks-button-font:var(--ks-sans);--ks-button-size:.78rem;--ks-button-weight:500;--ks-button-tracking:.2em;--ks-button-pad-y:14px;--ks-button-pad-x:34px}
/* "rule" and "view all" links are tan, except inside a section or page body, where content links are navy */
.ks-rule-link,.ks-viewall{--ks-link-color:var(--ks-tan);--ks-link-hover-color:var(--ks-tan)}
:is(.ks-page-body,.ks-section) :is(.ks-rule-link,.ks-viewall){--ks-link-color:var(--ks-navy);--ks-link-hover-color:var(--ks-navy)}

/* display headings (all h1/h2/h3) */
.ks-display,.ks-hero-title,.ks-footer-name,.ks-tile-label,.ks-page-title h1{--ks-heading-font:var(--ks-serif);--ks-heading-weight:400;--ks-heading-letter-spacing:.04em;text-transform:uppercase}
.ks-eyebrow{font-size:.78rem;letter-spacing:.28em;text-transform:uppercase;font-weight:400;margin:0 0 .4em}
.ks-eyebrow-tan{color:var(--ks-tan)}
.ks-display{--ks-h2-size:clamp(2rem,3.6vw,3rem);margin:.1em 0 .6em}

/* header — transparent over the hero, navy bar on inner pages */
.ks-header{position:absolute;top:0;left:0;right:0;z-index:50;padding:22px 40px;color:#fff;background:transparent}
body:not(.home) .ks-header{position:relative;background:var(--ks-navy);padding:16px 40px}
.ks-header .ks-logo img{height:64px;width:auto;max-width:none}
.ks-header .ks-utility{font-size:.8rem;letter-spacing:.16em;text-transform:uppercase;margin:0 0 10px;color:#fff}
.ks-header .ks-utility a{color:#fff;text-decoration:none}
.ks-sep{opacity:.45;margin:0 10px}
.ks-nav,.ks-nav a{color:#fff;font-size:.8rem;letter-spacing:.17em;text-transform:uppercase;text-decoration:none}
.ks-nav .wp-block-navigation-item{padding-bottom:3px;border-bottom:1px solid transparent}
.ks-nav .wp-block-navigation-item:hover{border-color:var(--ks-tan)}
.ks-nav .wp-block-navigation__submenu-container{background:var(--ks-navy);border:0;padding:10px 0;min-width:260px;max-height:70vh;overflow-y:auto}
.ks-nav .wp-block-navigation__responsive-container.is-menu-open{background:var(--ks-navy)}
.ks-nav .wp-block-navigation__responsive-container-open,.ks-nav .wp-block-navigation__responsive-container-close{color:#fff}
/* !important (documented exception): the legacy companion stylesheet pins .custom-logo{height:60px!important}; this lets the
   Site Logo block's own width decide the logo size again (as it has since the September rebuild). */
.custom-logo{height:auto!important}

/* hero */
.ks-hero{margin:0}
.ks-hero .wp-block-cover__inner-container{padding:120px 24px 90px;text-align:center;color:#fff}
.ks-hero .ks-eyebrow{opacity:.92}
.ks-hero-title{--ks-h1-size:clamp(3.2rem,9vw,7rem);--ks-heading-line-height:.98;margin:.2em 0 .3em;color:#fff}
.ks-hero-sub{font-size:1.02rem;letter-spacing:.04em;opacity:.95;margin-bottom:34px}

/* search-to-lead bar ([as_search_lead]) */
.ks-search{position:relative;z-index:5;max-width:1000px;margin:-46px auto 0;background:#fff;box-shadow:0 22px 60px rgba(10,25,45,.18);display:grid;grid-template-columns:repeat(5,1fr) auto}
.ks-search .f{padding:18px 22px;border-right:1px solid #e9e4de}
.ks-search label{display:block;font-size:.62rem;letter-spacing:.2em;text-transform:uppercase;color:#8c8578;margin-bottom:4px}
.ks-search select{width:100%;border:0;font-family:var(--ks-sans);font-size:.95rem;color:var(--ks-ink);background:transparent;outline:none}
.ks-search button{border:0;background:var(--ks-navy);color:#fff;padding:0 40px;font-family:var(--ks-sans);font-size:.78rem;letter-spacing:.22em;text-transform:uppercase;cursor:pointer}
.ks-search-more{max-width:1000px;margin:0 auto;display:none;grid-template-columns:repeat(3,1fr) auto;background:#fff;border-top:1px solid #e9e4de;box-shadow:0 22px 60px rgba(10,25,45,.12)}
.ks-search-more.open{display:grid}
.ks-search-note{max-width:1000px;margin:12px auto 0;text-align:right;font-size:.7rem;letter-spacing:.12em;text-transform:uppercase;color:#a79c8d;padding:0 8px}
.ks-search-done{max-width:1000px;margin:0 auto;padding:22px;text-align:center;background:#fff;box-shadow:0 22px 60px rgba(10,25,45,.12);display:none}

/* sections */
.ks-section{padding:110px 32px}
.ks-intro{padding:130px 32px 110px}
.ks-portrait{position:relative}
.ks-portrait::before{content:"";position:absolute;left:-34px;top:38px;bottom:38px;width:62%;background:var(--ks-mist);z-index:0}
.ks-portrait img{position:relative;z-index:1;aspect-ratio:3/4;object-fit:cover;width:100%}
.ks-rule-link{display:flex;align-items:center;gap:20px;margin-top:30px}
.ks-rule-link::before{content:"";flex:1;height:1px;background:var(--ks-tan);opacity:.55}
.ks-rule-link a{font-size:.78rem;letter-spacing:.24em;text-transform:uppercase;text-decoration:none}
.ks-viewall{font-size:.74rem;letter-spacing:.22em;text-transform:uppercase;margin:0 0 40px}
.ks-viewall a{text-decoration:none;padding:0 14px;border-left:1px solid rgba(182,156,130,.45);border-right:1px solid rgba(182,156,130,.45)}
.ks-viewall-light a{color:#fff;border-color:rgba(255,255,255,.45)}

/* tiles */
.ks-tiles{gap:26px}
.ks-tile{border-radius:0;overflow:hidden}
.ks-tile img{transition:transform .8s ease}
.ks-tile:hover img{transform:scale(1.06)}
.ks-tile-label{--ks-h3-size:1.6rem;margin:0;text-transform:none;--ks-heading-letter-spacing:.01em}
.ks-tile-label a{color:#fff;text-decoration:none}

/* dynamic community cards ([as_communities]) */
.ks-hoods{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.ks-hood{position:relative;aspect-ratio:4/3;overflow:hidden;background:var(--ks-mist);text-decoration:none;display:block}
.ks-hood img{width:100%;height:100%;object-fit:cover;transition:transform .8s;display:block}
.ks-hood:hover img{transform:scale(1.05)}
.ks-hood::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,0) 40%,rgba(0,0,0,.62))}
.ks-hood b{position:absolute;left:24px;bottom:20px;z-index:2;color:#fff;font-family:var(--ks-serif);font-weight:400;font-size:1.32rem}
/* a neighborhood page without a featured image */
.ks-hood.noimg{display:grid;place-items:center;border:1px solid #e4ddd4}
.ks-hood.noimg::after{display:none}
.ks-hood.noimg b{position:static;color:var(--ks-navy)}

/* split panels */
.ks-split{padding:150px 32px}
.ks-panels{max-width:1180px;margin:0 auto;gap:0}
.ks-panel{padding:70px 56px;text-align:center}
.ks-panel .ks-display{--ks-h2-size:clamp(1.7rem,3vw,2.4rem)}

/* blog */
.ks-posts{gap:34px}
.ks-posts .wp-block-latest-posts__featured-image img{aspect-ratio:16/9;object-fit:cover;width:100%}
.ks-posts li a{font-family:var(--ks-serif);font-size:1.22rem;line-height:1.35;text-decoration:none;display:block;margin:18px 0 8px}
.ks-posts .wp-block-latest-posts__post-excerpt{color:#5a5a5a;font-size:.94rem}

/* contact band */
.ks-band .wp-block-cover__inner-container{text-align:center;color:#fff;max-width:820px}
.ks-band-copy{opacity:.92;margin-bottom:34px}

/* inner page title + body */
.ks-page-title{background:var(--ks-navy);padding:70px 24px 60px;color:#fff}
.ks-page-title h1{color:#fff;--ks-h1-size:clamp(2rem,4vw,3rem);margin:0}
.ks-page-body{padding:60px 24px 90px}
.ks-page-body h2{--ks-heading-font:var(--ks-serif);--ks-heading-weight:400;--ks-h2-size:1.6rem;margin-top:1.8em}

/* footer: navy, text white. Descendants INHERIT the footer group's colour (instead of being pinned white one by one),
   so changing the footer group's text colour in the Site Editor recolours the whole footer. */
.ks-footer{text-align:center;padding:84px 24px 48px}
footer.wp-block-template-part,.ks-footer{background:var(--ks-navy);color:#fff}
.wp-block-template-part .ks-footer :is(p,a,h2,h3,li,span,strong){color:inherit}
footer .ks-footer .wp-block-social-links .wp-social-link svg{color:inherit}
.ks-footer-name{--ks-h2-size:2.1rem;margin:0}
.ks-footer-role{font-family:var(--ks-serif);font-size:1rem;letter-spacing:.2em;text-transform:uppercase;opacity:.85;margin:6px 0 0}
.ks-footer-nap{margin-top:28px;font-size:.82rem;letter-spacing:.14em;text-transform:uppercase;opacity:.92}
.ks-footer-nap a{text-decoration:none}
.ks-footer-brok{margin-top:30px;font-family:var(--ks-serif);font-size:1.15rem;letter-spacing:.24em;text-transform:uppercase;opacity:.95}
.ks-social{margin-top:22px}
.ks-footer-fine{margin-top:30px;padding-top:22px;border-top:1px solid rgba(255,255,255,.16);font-size:.72rem;letter-spacing:.1em;opacity:.75}
/* the entity-signals plugin can print its own NAP footer; the footer part already carries NAP */
.agentspot-entity-footer{display:none}

@media(max-width:980px){
  .ks-header{padding:16px 20px}.ks-header .ks-logo img{height:44px}.ks-header .ks-utility{display:none}
  .ks-search,.ks-search-more.open{grid-template-columns:1fr 1fr}.ks-search button{grid-column:1/-1;padding:18px}
  .ks-portrait::before{display:none}.ks-intro,.ks-section{padding:70px 20px}.ks-hoods{grid-template-columns:1fr}
  .ks-panel{padding:44px 24px}.ks-split{padding:70px 16px}
}

/* semantic faq ([as_faq_semantic], home) */
.ks-faq{max-width:900px;margin:0 auto}
.ks-faq-item{border-bottom:1px solid #e4ddd4}
.ks-faq-q{font-family:var(--ks-sans);font-weight:500;font-size:1.05rem;text-transform:none;letter-spacing:0;margin:0;padding:18px 40px 18px 0;cursor:pointer;position:relative}
.ks-faq-q::after{content:"+";position:absolute;right:4px;top:14px;color:var(--ks-tan);font-size:1.4rem}
.ks-faq-item.open .ks-faq-q::after{content:"–"}
.ks-faq-a{display:none;margin:0 0 20px;color:#4a4a4a}
.ks-faq-item.open .ks-faq-a{display:block}
.ks-map{max-width:1240px;margin:0 auto}
.ks-press{text-align:center;font-size:.78rem;letter-spacing:.2em;text-transform:uppercase;color:#8c8578;margin:0 0 34px}
.ks-footer-links{margin-top:16px;font-size:.78rem;letter-spacing:.14em;text-transform:uppercase}
.ks-footer-links a{text-decoration:none;margin:0 10px}

/* nav: real gaps + hairline separators */
.ks-nav .wp-block-navigation__container{gap:0;align-items:center}
.ks-nav .wp-block-navigation__container>.wp-block-navigation-item{border-right:1px solid rgba(255,255,255,.35)}
.ks-nav .wp-block-navigation__container>.wp-block-navigation-item:last-child{border-right:0}
/* dropdowns: navy panel, white readable links. Selectors match core's own submenu rule
   (.wp-block-navigation .has-child .wp-block-navigation__submenu-container > .wp-block-navigation-item > …__content). */
.ks-nav .wp-block-navigation__submenu-container,.ks-nav .wp-block-navigation-submenu .wp-block-navigation__submenu-container{background:var(--ks-navy);color:#fff;border:0;padding:10px 0;min-width:280px;max-height:72vh;overflow-y:auto;box-shadow:0 18px 40px rgba(0,0,0,.35)}
.ks-nav .wp-block-navigation__submenu-container a,.ks-nav .wp-block-navigation__submenu-container .wp-block-navigation-item__label{color:#fff;text-transform:none;letter-spacing:.04em;font-size:.92rem}
.ks-nav .has-child .wp-block-navigation__submenu-container>.wp-block-navigation-item>.wp-block-navigation-item__content,.ks-nav .wp-block-navigation__submenu-container .wp-block-navigation-item__label{padding:9px 20px}
.ks-nav .wp-block-navigation__submenu-container a:hover{background:rgba(255,255,255,.08)}
.ks-nav .wp-block-navigation__submenu-container .wp-block-navigation-item{border:0;padding:0}
/* anything inside a light panel is ink, even inside a cover (core makes cover children white) */
.ks-panel,.ks-panel :where(:not(.wp-block-button__link)),.ks-panel .ks-display,.ks-panel p{color:var(--ks-ink)}
.ks-panel-a{background:#fff}.ks-panel-b{background:#efeae4}
/* search bar text always dark on white */
.ks-search,.ks-search-more,.ks-search-done{background:#fff;color:var(--ks-ink)}
.ks-search select,.ks-search-more input,.ks-search select option{color:var(--ks-ink);background:#fff;-webkit-text-fill-color:var(--ks-ink)}
.ks-search button,.ks-search-more button{color:#fff;background:var(--ks-navy)}
/* tiles: label pinned bottom-left over a readable gradient */
.ks-tile .wp-block-cover__inner-container{position:absolute;inset:0;display:flex;align-items:flex-end;justify-content:flex-start;padding:26px 30px;background:linear-gradient(180deg,rgba(0,0,0,0) 45%,rgba(0,0,0,.6));height:100%}
.ks-tile-label,.ks-tile-label a{color:#fff;text-shadow:0 1px 8px rgba(0,0,0,.5)}
/* bottom "get in touch": map + form side by side */
.ks-contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:40px;align-items:start}
.ks-contact-grid .ks-map iframe{height:100%;min-height:520px}
/* !important (documented exception): the lead form's fields are printed by PHP with inline styles; the form is not
   block-editable (pass 5), so its look is pinned here exactly as before. */
.ks-contact-grid input,.ks-contact-grid select,.ks-contact-grid textarea{color:var(--ks-ink)!important;background:#fff!important;border:1px solid #e4ddd4!important}
.ks-contact-grid label{color:var(--ks-ink)}
.ks-band .ks-eyebrow,.ks-band .ks-display,.ks-band p,.ks-band a{color:#fff}
@media(max-width:980px){.ks-contact-grid{grid-template-columns:1fr}.ks-nav .wp-block-navigation__container>.wp-block-navigation-item{border-right:0;padding:6px 0}}
/* keep the nav on one line at 1280-1500px (after the phone rule above on purpose: it wins at every width, as it always has) */
.ks-nav,.ks-nav a{font-size:.72rem;letter-spacing:.12em}
.ks-nav .wp-block-navigation__container>.wp-block-navigation-item{padding:0 11px}
.ks-header .ks-utility{font-size:.72rem;letter-spacing:.12em}
.ks-header{padding:18px 32px}

/* ===== BUTTONS — resting looks are global styles (ks-design-system.php §4: default + 10 block styles). Hover looks
   live here; they never apply to a button the client recoloured, because a block's own colour is an inline style or
   a preset class, both of which beat these rules. */
.wp-block-buttons{gap:14px}
.wp-block-button:not([class*="is-style-"]) .wp-block-button__link:hover,.wp-block-button.is-style-fill .wp-block-button__link:hover{border-color:#0d3459}
.wp-block-button:is(.is-style-ks-outline,.is-style-ks-light) .wp-block-button__link:hover{background:var(--ks-navy);border-color:var(--ks-navy);color:#fff}
.wp-block-button.is-style-ks-ghost .wp-block-button__link:hover{background:#fff;color:#121212}
.wp-block-button.is-style-ks-dark .wp-block-button__link:hover{background:#2a2a2a}
.wp-block-button:is(.is-style-ks-line,.is-style-ks-line-small) .wp-block-button__link:hover{background:#171717;color:#fff}
.wp-block-button:is(.is-style-ks-cta-white,.is-style-ks-cta-glass) .wp-block-button__link{white-space:nowrap}
/* companion + theme-layer form buttons match */
.submit-btn,.boxed-btn,#as-contact-form button,.ks-search button,.ks-search-more button{background:var(--ks-navy);color:#fff;border:0;border-radius:0;font-family:var(--ks-sans);font-size:.78rem;letter-spacing:.2em;text-transform:uppercase;padding:14px 34px}
/* consecutive Buttons blocks in a page body sit side by side. Core forces margin-left/right:auto!important on the
   children of a constrained layout, so the 14px spacing is padding, not margin. A row that has its own
   justification setting is a normal full-width flex row, so "Justify" in the editor works. */
.ks-page-body .wp-block-buttons:not([class*="is-content-justification-"]){display:inline-flex;margin-top:8px;margin-bottom:8px;padding-right:14px;vertical-align:top}
#search{scroll-margin-top:140px}
.ks-pulse{animation:ksPulse 1.8s ease-out}
@keyframes ksPulse{0%{box-shadow:0 0 0 0 rgba(182,156,130,.9)}100%{box-shadow:0 0 0 26px rgba(182,156,130,0)}}
@media(max-width:980px){.ks-search{grid-template-columns:1fr 1fr}}

/* About page: full-width page body (the page template is 860px wide) */
body.page-id-25 .ks-page-body{padding:60px 48px 90px}
body.page-id-25 .ks-page-body,body.page-id-25 .ks-page-body>*,body.page-id-25 .wp-block-post-content,body.page-id-25 .wp-block-post-content>*{max-width:none;width:100%;margin-left:0;margin-right:0}
@media(max-width:980px){body.page-id-25 .ks-page-body{padding:40px 20px 60px}}

/* ===== nav split 2026-09-28: 4-item bar + hamburger MENU; Neighborhoods in 3 columns ===== */
.ks-navrow{gap:22px;align-items:center;position:relative}
.ks-nav,.ks-nav .wp-block-navigation__container{position:static}
/* neighborhoods mega-dropdown: 3 columns, anchored right so it never overflows the viewport */
.ks-nav .ks-hoods-menu{position:static}
.ks-nav .ks-hoods-menu>.wp-block-navigation__submenu-container{display:grid;grid-template-columns:repeat(3,1fr);width:820px;min-width:820px;max-height:none;left:auto;right:0;padding:18px 10px;column-gap:8px}
.ks-nav .ks-hoods-menu>.wp-block-navigation__submenu-container>li{width:auto;margin:0}
.ks-nav .ks-hoods-menu.has-child>.wp-block-navigation__submenu-container>li>.wp-block-navigation-item__content{padding:7px 16px;white-space:nowrap}
.ks-nav .ks-hoods-menu>.wp-block-navigation__submenu-container>li>a:hover{background:rgba(255,255,255,.08)}
/* hamburger toggle: icon + MENU label, white */
.ks-burger .wp-block-navigation__responsive-container-open{display:flex;align-items:center;gap:8px;color:#fff;font-family:var(--ks-sans);font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;padding:0}
.ks-burger .wp-block-navigation__responsive-container-open svg{fill:#fff;width:22px;height:22px}
.ks-burger .wp-block-navigation__responsive-container-open::after{content:"Menu"}
@media(max-width:980px){
  .ks-navrow{gap:14px}
  .ks-nav .ks-hoods-menu>.wp-block-navigation__submenu-container{grid-template-columns:1fr;width:auto;min-width:0}
}

/* ===== hamburger = right-hand SIDEBAR ===== */
.ks-burger .wp-block-navigation__responsive-container.is-menu-open{position:fixed;inset:0;background:rgba(0,0,0,.55);justify-content:flex-end;align-items:stretch;padding:0}
.ks-burger .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-close{width:400px;max-width:90vw;height:100%;background:#fff;color:var(--ks-ink);margin:0 0 0 auto;padding:70px 36px 40px;overflow-y:auto;box-shadow:-20px 0 60px rgba(0,0,0,.25);animation:ksSlide .28s ease-out}
@keyframes ksSlide{from{transform:translateX(40px);opacity:0}to{transform:none;opacity:1}}
.ks-burger .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-dialog,.ks-burger .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content{display:block;height:auto;padding:0;margin:0}
.ks-burger .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container{display:block;width:100%;margin:0;padding:0}
.ks-burger .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container>.wp-block-navigation-item{display:block;width:100%;border:0;border-bottom:1px solid #e8e3dc;padding:0;margin:0}
.ks-burger .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content{display:flex;align-items:center;justify-content:space-between;width:100%;padding:15px 0;color:var(--ks-ink);font-family:var(--ks-sans);font-size:.8rem;letter-spacing:.2em;text-transform:uppercase;text-decoration:none}
.ks-burger .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content:hover{color:var(--ks-navy)}
.ks-burger .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-submenu__toggle{width:100%;text-align:left;background:none;border:0;cursor:pointer}
.ks-burger .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-icon{display:inline-flex;margin-left:auto;color:var(--ks-ink)}
.ks-burger .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container{position:static;visibility:visible;opacity:1;height:auto;width:auto;min-width:0;max-height:none;overflow:visible;background:transparent;box-shadow:none;padding:0 0 10px 14px;display:none}
.ks-burger .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-submenu>.wp-block-navigation__submenu-container{display:none}
.ks-burger .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-submenu.ks-open>.wp-block-navigation__submenu-container{display:block}
.ks-burger .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item{border:0}
.ks-burger .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item__content{font-size:.78rem;letter-spacing:.06em;text-transform:none;padding:7px 0;color:#555}
.ks-burger .wp-block-navigation__responsive-container-close{position:absolute;top:22px;right:26px;color:var(--ks-ink);background:none;border:0}
.ks-burger .wp-block-navigation__responsive-container-close svg{fill:var(--ks-ink);width:26px;height:26px}
/* contact block moved into the sidebar by JS */
.ks-side-contact{margin-top:36px;font-family:var(--ks-sans);font-size:.8rem;letter-spacing:.18em;text-transform:uppercase;line-height:2.1;color:var(--ks-ink)}
.ks-side-contact a{color:var(--ks-ink);text-decoration:none}
.ks-side-social{display:flex;gap:10px;margin-top:16px}
.ks-side-social a{width:40px;height:40px;border:1px solid #d9d2c8;border-radius:50%;display:grid;place-items:center;color:var(--ks-ink);text-decoration:none;font-size:.72rem;letter-spacing:0}
.ks-side-social a:hover{border-color:var(--ks-navy);color:var(--ks-navy)}
/* sidebar submenu rows: label + arrow button on ONE line, list beneath */
.ks-burger .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container>.wp-block-navigation-submenu{display:flex;flex-direction:row;flex-wrap:wrap;align-items:center;justify-content:space-between}
.ks-burger .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container>.wp-block-navigation-submenu>a{flex:1 1 auto;width:auto;text-align:left;justify-content:flex-start;padding:15px 0}
.ks-burger .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container>.wp-block-navigation-submenu>button{flex:1 1 auto;width:auto;justify-content:flex-start;text-align:left;padding:15px 0;display:inline-flex;align-items:center;cursor:pointer}
.ks-burger .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container>.wp-block-navigation-submenu>.wp-block-navigation__submenu-container{flex:0 0 100%}
.ks-burger .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container>.wp-block-navigation-submenu>.wp-block-navigation__submenu-icon{flex:0 0 auto;margin-left:auto;padding:15px 4px;cursor:pointer;display:inline-flex;transition:transform .2s}
.ks-burger .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container>.wp-block-navigation-submenu.ks-open>.wp-block-navigation__submenu-icon{transform:rotate(180deg)}
.ks-burger .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container>.wp-block-navigation-submenu>.wp-block-navigation__submenu-icon svg{width:14px;height:14px}

/* Phones: the theme stylesheet used to force h1 2.5rem / h2 2rem with !important at <=768px, beating these section
   sizes. The same sizes are restated here for the sections they reached, at normal weight, so a block's own font
   size now also applies on phones. */
@media (max-width:768px){
  .ks-page-title h1{--ks-h1-size:2.5rem}
  .ks-page-body h2,.ks-display,.ks-panel .ks-display{--ks-h2-size:2rem}
  body .ks-about-hero .ks-about-text h2{font-size:2rem}
}

/* Theme rules that used to win ties against WordPress core by load order. The theme stylesheet now sits in the lowest
   cascade layer (ks-theme-base.css), so the ones that are visible on this site are restated here at normal weight. */
@media (max-width:999px){.wp-block-navigation__responsive-container-open:not(.always-shown){display:block}}
.wp-block-query .wp-block-post-template{max-width:none}
.wp-block-query .wp-block-post-template.is-layout-grid{gap:var(--wp--preset--spacing--large)}
@media (max-width:768px){.wp-block-query .wp-block-post-template.is-layout-grid{gap:var(--wp--preset--spacing--medium)}}
