/*
Theme Name: Park Glenview - Palm Court
Theme URI: https://parkglenviewseniors.com
Author: Park Glenview Apartments
Author URI: https://parkglenviewseniors.com
Description: Custom WordPress theme for Park Glenview Apartments, a boutique senior living community in Oakland, CA. Warm mid-century "Palm Court" design direction.
Version: 1.0.0
Requires at least: 6.0
Requires PHP: 7.4
Text Domain: park-glenview
*/

:root{
  --bg:#FBF6EC;
  --paper:#FFFFFF;
  --terracotta:#B5502A;
  --terracotta-deep:#8F3F21;
  --palm:#4B6B4E;
  --sky:#7FA3AD;
  --brass:#A98249;
  --ink:#2B2A28;
  --ink-soft:#5F594F;
}
*{box-sizing:border-box; margin:0; padding:0;}
html{scroll-behavior:smooth;}
body{background:var(--bg); color:var(--ink); font-family:'Work Sans',sans-serif; font-weight:300; -webkit-font-smoothing:antialiased;}
h1,h2,h3{font-family:'Fraunces',serif; font-weight:500; color:var(--ink); line-height:1.15;}
a{color:inherit; text-decoration:none;}
img{display:block; max-width:100%; height:auto;}
.wrap{max-width:1200px; margin:0 auto; padding:0 44px;}
.eyebrow{font-family:'Work Sans',sans-serif; text-transform:uppercase; letter-spacing:0.22em; font-size:0.72rem; color:var(--terracotta); font-weight:600;}
.screen-reader-text{position:absolute !important; clip:rect(1px,1px,1px,1px); width:1px; height:1px; overflow:hidden;}

/* skip link */
.skip-link{position:absolute; left:-9999px; top:0; background:var(--ink); color:#fff; padding:12px 20px; z-index:999; border-radius:0 0 8px 0;}
.skip-link:focus{left:0;}

header.site-header{position:sticky; top:0; z-index:50; background:rgba(251,246,236,0.92); backdrop-filter:blur(8px); border-bottom:1px solid rgba(43,42,40,0.08);}
.nav-inner{display:flex; align-items:center; justify-content:space-between; padding:20px 44px; max-width:1200px; margin:0 auto;}
.logo{display:flex; align-items:center; gap:12px;}
.logo .mark{width:34px; height:34px; flex:0 0 auto;}
.logo .mark img{width:100%; height:100%; object-fit:contain;}
.logo .word{font-family:'Fraunces',serif; font-size:1.24rem; white-space:nowrap;}
.logo .word .sub{display:block; font-family:'Work Sans',sans-serif; font-size:0.56rem; letter-spacing:0.24em; color:var(--ink-soft); text-transform:uppercase; margin-top:2px; font-weight:400;}

nav.primary-nav{display:flex; gap:8px; font-size:0.86rem;}
nav.primary-nav ul{list-style:none; display:flex; gap:8px; margin:0; padding:0;}
nav.primary-nav li{position:relative;}
nav.primary-nav a{padding:9px 14px; border-radius:30px; color:var(--ink-soft); transition:all .2s; display:flex; align-items:center; gap:5px; white-space:nowrap;}
nav.primary-nav a:hover, nav.primary-nav a:focus{background:rgba(181,80,42,0.09); color:var(--terracotta-deep);}

/* dropdown submenus (e.g. Floor Plans > Unit A/B, Forms > sub-items) */
nav.primary-nav .menu-item-has-children > a::after{
  content:''; width:5px; height:5px; margin-top:-3px; opacity:0.6;
  border-right:1.5px solid currentColor; border-bottom:1.5px solid currentColor; transform:rotate(45deg);
}
nav.primary-nav .sub-menu{
  list-style:none; position:absolute; top:100%; left:0; min-width:230px;
  background:var(--paper); border-radius:16px; box-shadow:0 18px 36px -16px rgba(43,42,40,0.3);
  padding:8px; margin:10px 0 0; display:flex; flex-direction:column; gap:2px;
  opacity:0; visibility:hidden; transform:translateY(6px); transition:all .2s ease; z-index:60;
}
nav.primary-nav li:hover > .sub-menu,
nav.primary-nav li:focus-within > .sub-menu{
  opacity:1; visibility:visible; transform:translateY(0);
}
nav.primary-nav .sub-menu a{padding:10px 14px; border-radius:10px; font-size:0.85rem;}
nav.primary-nav .sub-menu .menu-item-has-children > a::after{transform:rotate(-45deg); margin-top:0;}

.nav-right{display:flex; align-items:center; gap:14px;}

.nav-phone{
  display:flex; align-items:center; gap:7px; color:var(--terracotta); font-weight:500; font-size:0.86rem;
  padding:9px 4px; white-space:nowrap; transition:color .2s;
}
.nav-phone:hover, .nav-phone:focus{color:var(--terracotta-deep);}
.nav-phone svg{flex:0 0 auto;}

.menu-toggle{display:none; background:none; border:none; cursor:pointer; padding:8px; flex-direction:column; gap:5px;}
.menu-toggle span{display:block; width:24px; height:2px; background:var(--ink);}

.btn{display:inline-block; font-family:'Work Sans',sans-serif; font-size:0.85rem; font-weight:500; padding:14px 28px; border-radius:40px; transition:all .25s ease; white-space:nowrap; border:none; cursor:pointer;}
.btn.filled{background:var(--terracotta); color:var(--paper);}
.btn.filled:hover{background:var(--terracotta-deep); transform:translateY(-1px);}
.btn.outline{border:1.5px solid var(--ink); color:var(--ink); background:transparent;}
.btn.outline:hover{background:var(--ink); color:var(--paper);}

/* hero */
.hero{max-width:1200px; margin:0 auto; padding:64px 44px 100px; display:grid; grid-template-columns:0.95fr 1.05fr; gap:70px; align-items:center; position:relative;}
.hero-copy{position:relative; z-index:1;}
.hero-copy h1{font-size:3.3rem; margin:20px 0 24px;}
.hero-copy h1 .accent{color:var(--terracotta); font-style:italic;}
.hero-copy p.lede{font-size:1.06rem; line-height:1.75; color:var(--ink-soft); max-width:460px; margin-bottom:32px;}
.hero-cta{display:flex; gap:14px; flex-wrap:wrap;}
.hero-photo{position:relative;}
.hero-photo .frame{border-radius:28px; overflow:hidden; box-shadow:0 30px 60px -20px rgba(43,42,40,0.35); transform:rotate(1.2deg);}
.hero-photo .frame img{width:100%; height:520px; object-fit:cover;}
.hero-badge{position:absolute; bottom:-22px; left:-22px; background:var(--paper); border-radius:20px; padding:18px 22px; box-shadow:0 16px 34px -12px rgba(43,42,40,0.28); display:flex; align-items:center; gap:12px; transform:rotate(-2deg);}
.hero-badge .num{font-family:'Fraunces',serif; font-size:1.6rem; color:var(--terracotta);}
.hero-badge .lbl{font-size:0.68rem; text-transform:uppercase; letter-spacing:0.08em; color:var(--ink-soft); line-height:1.3;}

.stats-row{max-width:1200px; margin:0 auto; padding:0 44px 100px; display:flex; gap:16px; flex-wrap:wrap; justify-content:center;}
.stat-pill{background:var(--paper); border-radius:40px; padding:16px 30px; display:flex; align-items:center; gap:12px; box-shadow:0 8px 24px -14px rgba(43,42,40,0.2);}
.stat-pill .num{font-family:'Fraunces',serif; font-size:1.5rem; color:var(--palm);}
.stat-pill .lbl{font-size:0.76rem; color:var(--ink-soft); text-transform:uppercase; letter-spacing:0.06em;}

section{padding:110px 0;}
.section-head{max-width:640px; margin:0 auto 60px; text-align:center;}
.section-head h2{font-size:2.3rem; margin-top:14px;}
.section-head p{color:var(--ink-soft); margin-top:16px; line-height:1.7; font-size:0.98rem;}

.about{display:grid; grid-template-columns:1fr 1fr; gap:76px; align-items:center; max-width:1200px; margin:0 auto; padding:0 44px;}
.about-photo .frame{border-radius:28px; overflow:hidden; box-shadow:0 24px 50px -20px rgba(43,42,40,0.3);}
.about-photo .frame img{width:100%; height:460px; object-fit:cover;}
.about-text h2{font-size:2.1rem; margin-bottom:20px;}
.about-text p{color:var(--ink-soft); line-height:1.85; margin-bottom:16px; font-size:0.98rem;}

.two-col-blurb{display:grid; grid-template-columns:1fr 1fr; gap:30px; max-width:1200px; margin:70px auto 0; padding:0 44px;}
.blurb-card{background:var(--paper); border-radius:24px; padding:36px 34px; box-shadow:0 10px 30px -18px rgba(43,42,40,0.18);}
.blurb-card .blurb-eyebrow{display:block; color:var(--palm); font-weight:600; letter-spacing:0.14em; text-transform:uppercase; font-size:0.74rem; margin-bottom:12px;}
.blurb-card p{color:var(--ink-soft); line-height:1.8; font-size:0.94rem;}

.mission-panel{max-width:1200px; margin:0 auto; padding:0 44px;}
.mission-inner{background:var(--terracotta); border-radius:36px; padding:90px 70px; text-align:center; color:var(--paper); position:relative; overflow:hidden;}
.mission-inner h2{color:var(--paper); font-size:2rem; margin-bottom:22px;}
.mission-inner p{color:#f6e2d6; line-height:1.85; font-size:1.02rem; max-width:660px; margin:0 auto 22px;}
.mission-inner .chanel{font-family:'Fraunces',serif; font-style:italic; font-size:1.25rem; color:#fff;}
.mission-inner .chanel-attr{display:block; margin-top:10px; font-size:0.7rem; letter-spacing:0.16em; text-transform:uppercase; color:#f3d9c8; font-weight:500;}

.cards{max-width:1200px; margin:0 auto; padding:0 44px; display:grid; grid-template-columns:repeat(2,1fr); gap:26px;}
.cards.cols-3{grid-template-columns:repeat(3,1fr);}
.card{background:var(--paper); border-radius:24px; padding:44px 40px; display:flex; gap:24px; align-items:flex-start; box-shadow:0 10px 28px -18px rgba(43,42,40,0.16);}
.card.compact{padding:32px 30px;}
.icon-badge{width:56px; height:56px; border-radius:50%; flex:0 0 auto; display:flex; align-items:center; justify-content:center;}
.icon-badge img{width:26px; height:26px;}
.icon-badge.terracotta{background:#f3ddd0;}
.icon-badge.palm{background:#dfe8de;}
.icon-badge.sky{background:#e2edef;}
.icon-badge.brass{background:#efe3d0;}
.card h3{font-size:1.24rem; margin-bottom:10px;}
.card p{font-size:0.94rem; color:var(--ink-soft); line-height:1.7; max-width:32ch;}

.gallery-masonry{max-width:1200px; margin:0 auto; padding:0 44px; display:grid; grid-template-columns:repeat(3,1fr); grid-auto-rows:170px; grid-auto-flow:dense; gap:22px;}
.g-item{border-radius:24px; overflow:hidden; box-shadow:0 14px 30px -18px rgba(43,42,40,0.24); position:relative;}
.g-item img{width:100%; height:100%; object-fit:cover;}
.g-item .g-cap{position:absolute; left:16px; bottom:14px; color:#fff; font-size:0.76rem; letter-spacing:0.05em; text-shadow:0 2px 10px rgba(0,0,0,0.4);}
.g-item.tall{grid-row:span 2;}
.g-item.wide{grid-column:span 2;}

.plans{max-width:1200px; margin:0 auto; padding:0 44px; display:grid; grid-template-columns:repeat(3,1fr); gap:26px;}
.plan-card{background:var(--paper); border-radius:28px; padding:52px 44px; text-align:center; box-shadow:0 12px 30px -18px rgba(43,42,40,0.18);}
.plan-card .plan-mark{width:48px; height:48px; margin:0 auto 20px;}
.plan-card .plan-tag{font-size:0.76rem; letter-spacing:0.2em; text-transform:uppercase; color:var(--terracotta); font-weight:600; margin-bottom:10px;}
.plan-card h3{font-size:1.7rem; margin-bottom:14px;}
.plan-card p{color:var(--ink-soft); font-size:0.94rem; line-height:1.7; max-width:32ch; margin:0 auto 26px;}

.testi-section{background:#e9eeea;}
.testi-grid{max-width:1200px; margin:0 auto; padding:0 44px; display:grid; grid-template-columns:1fr 1fr; gap:24px;}
.testi-card{background:var(--paper); border-radius:24px; padding:40px 38px; box-shadow:0 10px 26px -18px rgba(43,42,40,0.14);}
.testi-card .qm{font-family:'Fraunces',serif; font-size:2rem; color:var(--terracotta); line-height:1; margin-bottom:6px;}
.testi-card p{color:var(--ink-soft); font-size:0.94rem; line-height:1.75; margin-bottom:14px;}
.testi-card p em{font-style:italic; color:var(--ink);}
.testi-card cite{font-style:normal; font-size:0.76rem; letter-spacing:0.1em; text-transform:uppercase; color:var(--palm); font-weight:600;}

.cta-inner{max-width:1200px; margin:0 auto; padding:0 44px; display:grid; grid-template-columns:0.9fr 1.1fr; gap:70px; align-items:center;}
.cta-copy h2{font-size:2.1rem; margin-bottom:18px;}
.cta-copy p{color:var(--ink-soft); line-height:1.8; margin-bottom:10px;}
.form-card{background:var(--paper); border-radius:28px; padding:42px 38px; box-shadow:0 18px 40px -20px rgba(43,42,40,0.2);}
.form-card h3{font-size:1.1rem; margin-bottom:22px; text-align:center;}
.field-row{display:grid; grid-template-columns:1fr 1fr; gap:16px;}
.field{margin-bottom:16px;}
.field label{display:block; font-size:0.7rem; letter-spacing:0.08em; text-transform:uppercase; color:var(--ink-soft); margin-bottom:7px;}
.field input, .field textarea{width:100%; border:none; border-bottom:1.5px solid #e5dcc9; background:transparent; padding:10px 2px; font-family:'Work Sans',sans-serif; font-size:0.94rem; color:var(--ink); outline:none; resize:none;}
.field input:focus, .field textarea:focus{border-bottom-color:var(--terracotta);}
.form-card .btn{width:100%; text-align:center; margin-top:6px;}
.form-success{background:#dfe8de; color:var(--palm); border-radius:16px; padding:16px 20px; margin-bottom:20px; font-size:0.9rem; text-align:center;}
.form-error{background:#f6d9d0; color:var(--terracotta-deep); border-radius:16px; padding:16px 20px; margin-bottom:20px; font-size:0.9rem; text-align:center;}

footer.site-footer{background:var(--ink); color:#e8e2d6; padding:76px 0 26px;}
.footer-grid{display:grid; grid-template-columns:1.5fr 1fr 1fr 1fr; gap:50px; padding-bottom:56px;}
.footer-brand .logo .word{color:#fff;}
.footer-brand .logo .sub{color:#a8a196;}
.footer-brand p{color:#a8a196; font-size:0.86rem; line-height:1.7; margin-top:18px; max-width:280px;}
.footer-col h4{font-size:0.74rem; letter-spacing:0.14em; text-transform:uppercase; color:var(--terracotta); margin-bottom:20px; font-weight:600;}
.footer-col ul{list-style:none;}
.footer-col a, .footer-col p{display:block; font-size:0.86rem; color:#c4bfb2; margin-bottom:12px; line-height:1.6; font-weight:300;}
.footer-col a:hover{color:#fff;}
.footer-bottom{border-top:1px solid #423f38; padding-top:24px; display:flex; justify-content:space-between; align-items:center; font-size:0.74rem; color:#8a8477; flex-wrap:wrap; gap:14px;}
.footer-legal{display:flex; gap:22px; flex-wrap:wrap;}
.footer-legal a{color:#8a8477; transition:color .2s;}
.footer-legal a:hover{color:#fff;}

.footer-map{margin-bottom:56px;}
.footer-map .eyebrow{display:block; margin-bottom:18px;}
.map-embed{position:relative; width:100%; padding-top:32%; border-radius:24px; overflow:hidden; box-shadow:0 16px 40px -18px rgba(0,0,0,0.55); background:#3a352c;}
.map-embed iframe{position:absolute; inset:0; width:100%; height:100%; border:0;}
.map-embed.featured{padding-top:40%; box-shadow:0 20px 46px -20px rgba(43,42,40,0.35);}

/* ---------- directory list (neighborhood) ---------- */
.directory-card-grid{max-width:1200px; margin:0 auto; padding:0 44px; display:grid; grid-template-columns:repeat(3,1fr); gap:26px;}
.directory-card{background:var(--paper); border-radius:22px; overflow:hidden; box-shadow:0 10px 28px -18px rgba(43,42,40,0.18); position:relative;}
.directory-thumb{position:relative; width:100%; height:170px; overflow:hidden; background:#e9e2d3;}
.directory-thumb img{width:100%; height:100%; object-fit:cover; display:block;}
.directory-num-badge{
  position:absolute; top:14px; left:14px; width:30px; height:30px; border-radius:50%;
  background:var(--paper); color:var(--cat-color, var(--terracotta)); font-family:'Fraunces',serif; font-size:0.92rem;
  display:flex; align-items:center; justify-content:center; box-shadow:0 4px 12px -4px rgba(0,0,0,0.3);
}
.directory-card-body{padding:22px 24px 26px;}
.directory-card-body h4{font-size:1.05rem; margin-bottom:8px;}
.directory-card-body p{font-size:0.88rem; color:var(--ink-soft); line-height:1.65;}

/* ---------- simple info cards (transit / errands) ---------- */
.info-row{max-width:1200px; margin:0 auto; padding:0 44px; display:grid; grid-template-columns:repeat(3,1fr); gap:26px;}
.info-card{text-align:center; padding:8px 12px;}
.info-card .icon-badge{margin:0 auto 20px;}
.info-card h4{font-size:1.1rem; margin-bottom:10px;}
.info-card p{font-size:0.92rem; color:var(--ink-soft); line-height:1.7;}

/* ---------- page hero variant (no split photo needed on some pages) ---------- */
.page-hero-lede{max-width:640px; margin:0 auto 0; text-align:center;}

/* ---------- story / long-form editorial content ---------- */
.story-body{max-width:740px; margin:0 auto; padding:0 44px;}
.story-body h2{font-size:1.6rem; margin:58px 0 20px;}
.story-body h2:first-child{margin-top:0;}
.story-body p{color:var(--ink-soft); line-height:1.95; margin-bottom:20px; font-size:1.03rem;}
.story-pull{
  font-family:'Fraunces',serif; font-style:italic; font-size:1.4rem; color:var(--ink);
  border-left:3px solid var(--terracotta); padding-left:30px; margin:48px 0; line-height:1.5;
}

.photo-pair{max-width:1020px; margin:70px auto; padding:0 44px; display:grid; grid-template-columns:1fr 1fr; gap:32px;}
.photo-pair figure{margin:0;}
.photo-pair .frame{border-radius:24px; overflow:hidden; box-shadow:0 20px 44px -20px rgba(43,42,40,0.32);}
.photo-pair .frame img{width:100%; height:420px; object-fit:cover;}
.photo-pair figcaption{margin-top:16px; text-align:center; font-size:0.82rem; color:var(--ink-soft); letter-spacing:0.02em;}

/* ---------- FAQ accordion ---------- */
.faq-jump{max-width:1000px; margin:0 auto 70px; padding:0 44px; display:flex; flex-wrap:wrap; gap:10px; justify-content:center;}
.faq-jump a{
  font-size:0.8rem; font-weight:500; color:var(--ink-soft); background:var(--paper); border:1px solid #e5dcc9;
  padding:9px 18px; border-radius:30px; transition:all .2s;
}
.faq-jump a:hover{border-color:var(--terracotta); color:var(--terracotta-deep);}

.faq-wrap{max-width:840px; margin:0 auto; padding:0 44px;}
.faq-category{margin-bottom:60px; scroll-margin-top:100px;}
.faq-category:last-child{margin-bottom:0;}
.faq-category-title{
  font-family:'Fraunces',serif; font-size:1.5rem; margin-bottom:24px; padding-bottom:16px;
  border-bottom:2px solid var(--cat-color, var(--terracotta));
}
.faq-list{display:flex; flex-direction:column; gap:14px;}
.faq-item{
  background:var(--paper); border-radius:18px; box-shadow:0 8px 22px -16px rgba(43,42,40,0.16); overflow:hidden;
  border-left:3px solid var(--cat-color, var(--terracotta));
}
.faq-item summary{
  list-style:none; cursor:pointer; padding:22px 56px 22px 26px; font-family:'Work Sans',sans-serif;
  font-weight:500; font-size:0.98rem; color:var(--ink); position:relative; display:flex; align-items:center; line-height:1.5;
}
.faq-item summary::-webkit-details-marker{display:none;}
.faq-item summary::after{
  content:'+'; position:absolute; right:24px; top:22px; font-family:'Fraunces',serif; font-size:1.5rem;
  color:var(--cat-color, var(--terracotta)); transition:transform .25s ease; line-height:1;
}
.faq-item[open] summary::after{transform:rotate(45deg);}
.faq-item summary:hover{color:var(--cat-color, var(--terracotta-deep));}
.faq-item[open] summary{border-bottom:1px solid #f0e8da;}
.faq-answer{padding:4px 26px 24px; color:var(--ink-soft); font-size:0.95rem; line-height:1.75;}
.faq-answer p{margin:0;}

/* generic page/blog fallback templates */
.entry-content{max-width:760px; margin:0 auto; padding:80px 44px; line-height:1.8;}
.entry-content h1{font-size:2.4rem; margin-bottom:24px;}
.entry-content p{margin-bottom:18px; color:var(--ink-soft);}

/* Pages still running their original Elementor content (Contact,
   Rental Pre-Application, Rental Application, Maintenance Request)
   render through page.php with no wrapper of this theme's own, but
   this theme's global h1/h2/h3/body text-color rules above would
   otherwise still cascade down into that content and override colors
   Elementor set for its own hero and overlay sections, exactly the
   kind of white-text-on-photo contrast Elementor relies on. This
   restores Elementor's own colors there instead of forcing this
   theme's palette onto content this theme doesn't own. */
.elementor h1, .elementor h2, .elementor h3, .elementor h4, .elementor h5, .elementor h6,
.elementor p, .elementor span, .elementor div, .elementor a, .elementor label{
  color: inherit;
}

/* Nav collapses to the hamburger menu earlier than the rest of the
   layout, since the real menu (Floor Plans, Gallery, Amenities,
   Glenview Neighborhood, FAQs, Forms, each with dropdowns) plus the
   phone number and CTA button need more room than the content grid does. */
@media (max-width:1320px){
  .menu-toggle{display:flex;}
  .nav-right{gap:12px;}
  nav.primary-nav{
    display:none; position:absolute; top:100%; left:0; right:0; background:var(--paper);
    flex-direction:column; padding:20px 44px; box-shadow:0 16px 30px -18px rgba(43,42,40,0.2); border-radius:0 0 24px 24px;
    max-height:80vh; overflow-y:auto;
  }
  nav.primary-nav.is-open{display:flex;}
  nav.primary-nav ul{flex-direction:column; gap:4px; width:100%;}
  nav.primary-nav a{padding:12px 6px;}
  nav.primary-nav .menu-item-has-children > a::after{transform:rotate(45deg); margin-top:0;}

  /* submenus render as an indented static list, not a hover flyout,
     since touch devices have no hover state */
  nav.primary-nav .sub-menu{
    position:static; opacity:1; visibility:visible; transform:none; box-shadow:none;
    background:transparent; padding:0 0 0 18px; margin:2px 0 8px; min-width:0;
  }
  nav.primary-nav .sub-menu a{padding:9px 6px; font-size:0.86rem; color:var(--ink-soft);}

  .nav-cta{display:none;}
  .nav-phone{font-size:0; gap:0; padding:8px;}
  .nav-phone svg{width:20px; height:20px;}
}

@media (max-width:920px){
  .hero{grid-template-columns:1fr; padding-top:40px;}
  .hero-copy h1{font-size:2.2rem;}
  .hero-photo .frame img{height:360px;}
  .about{grid-template-columns:1fr;}
  .two-col-blurb{grid-template-columns:1fr;}
  .cards{grid-template-columns:1fr;}
  .gallery-masonry{grid-template-columns:1fr 1fr; grid-auto-rows:140px;}
  .g-item.wide{grid-column:span 2;}
  .plans{grid-template-columns:1fr;}
  .testi-grid{grid-template-columns:1fr;}
  .cta-inner{grid-template-columns:1fr;}
  .field-row{grid-template-columns:1fr;}
  .footer-grid{grid-template-columns:1fr 1fr; gap:34px;}
  .mission-inner{padding:56px 32px;}
  .map-embed{padding-top:66%;}
  .directory-card-grid{grid-template-columns:1fr 1fr; gap:18px;}
  .info-row{grid-template-columns:1fr;}
  .cards.cols-3{grid-template-columns:1fr;}
  .photo-pair{grid-template-columns:1fr; gap:24px;}
  .photo-pair .frame img{height:320px;}
  .story-body h2{font-size:1.4rem; margin-top:44px;}
  .story-pull{font-size:1.2rem; padding-left:22px;}
  .faq-item summary{padding:18px 46px 18px 20px; font-size:0.92rem;}
  .faq-item summary::after{right:18px; top:18px;}
  .faq-answer{padding:0 20px 20px;}
  .faq-category-title{font-size:1.3rem;}
}

@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto;}
  *{transition:none !important;}
}

@media (max-width:560px){
  .directory-card-grid{grid-template-columns:1fr;}
}
