/*
Theme Name: Davis IGA
Theme URI: https://www.davisiga.com/
Author: Kent Computer Services
Description: Custom informational theme for Davis IGA with weekly ad, loyalty, menus, organic foods, delivery, and contact pages.
Version: 1.3.23
Text Domain: davis-iga
Requires at least: 6.0
Requires PHP: 7.4
*/

:root{
  --cranberry:#c81d25;
  --forest:#1f7a3a;
  --gold:#f2c94c;
  --cream:#fbfaf6;
  --paper:#ffffff;
  --ink:#111827;
  --muted:#556070;
  --line: rgba(17,24,39,.10);
  --soft: #f3f6f1;
  --shadow: 0 18px 44px rgba(17,24,39,.12);
  --radius: 18px;
  --max: 1160px;
}

*{ box-sizing:border-box; }
html,body{ height:100%; }
body{
  margin:0;
  font-family: ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, "Apple Color Emoji","Segoe UI Emoji";
  color:var(--ink);
  background:
    radial-gradient(900px 520px at 10% -10%, rgba(31,122,58,.12), transparent 55%),
    radial-gradient(900px 520px at 90% 0%, rgba(200,29,37,.10), transparent 55%),
    var(--cream);
}

a{ color:inherit; text-decoration:none; }
img{ max-width:100%; display:block; }
.wrap{ max-width:var(--max); margin:0 auto; padding:0 20px; }

/* Header */
.topbar{
  position:sticky; top:0; z-index:50;
  background: rgba(251,250,246,.82);
  backdrop-filter: blur(10px);
  border-bottom: 1px solid var(--line);
}
.topbar-inner{
  display:flex; align-items:center; justify-content:space-between;
  gap:16px; padding: 12px 0;
}
.brand{
  display:flex; align-items:center; gap:12px;
  min-width: 260px;
}
.brand img{
  height:44px; width:auto;
  border-radius: 10px;
  box-shadow: 0 10px 24px rgba(17,24,39,.10);
}
.brand .meta{
  display:flex; flex-direction:column;
  gap:2px;
}
.brand .meta strong{
  font-size:14px; letter-spacing:.2px;
}
.brand .meta span{
  font-size:12px; color:var(--muted);
}
nav ul{
  list-style:none; padding:0; margin:0;
  display:flex; gap:6px; flex-wrap:wrap;
  justify-content:flex-end;
}
nav a{
  display:inline-flex; align-items:center;
  padding:10px 12px;
  border-radius:999px;
  font-size:13px;
  color: var(--muted);
  transition: all .16s ease;
}
nav a:hover{ background: rgba(31,122,58,.08); color:var(--ink); }
nav a.active{
  background: rgba(200,29,37,.10);
  color: var(--ink);
  box-shadow: 0 0 0 3px rgba(200,29,37,.12);
}
.cta{ display:flex; gap:10px; align-items:center; }
.btn{
  display:inline-flex; align-items:center; justify-content:center;
  height:38px; padding: 0 14px;
  border-radius:999px;
  border: 1px solid var(--line);
  background: rgba(255,255,255,.70);
  color: var(--ink);
  font-size:13px;
  transition: all .16s ease;
}
.btn:hover{ background:#fff; transform: translateY(-1px); }
.btn.primary{
  border-color: rgba(31,122,58,.25);
  background: linear-gradient(135deg, rgba(31,122,58,.95), rgba(31,122,58,.72));
  color: #062412;
  font-weight:800;
}
.btn.primary:hover{ filter: saturate(1.02) brightness(1.02); }
.hamburger{ display:none; }

/* Mobile menu */
.mobilemenu{ display:none; padding: 8px 0 16px; }
.mobilemenu a{
  display:block;
  padding: 12px 12px;
  border-radius: 14px;
  margin-top:8px;
  border: 1px solid var(--line);
  background: rgba(255,255,255,.72);
  color: var(--ink);
}
.mobilemenu a:hover{ background:#fff; }
.mobilemenu.open{ display:block; }

/* Hero / gallery */
.hero{
  position:relative;
  min-height: 72vh;
  overflow:hidden;
  border-bottom: 1px solid var(--line);
  background: #0b0f14; /* behind images */
}
.slides{
  position:absolute; inset:0;
  display:flex;
  transform: translateX(0%);
  transition: transform .65s cubic-bezier(.2,.8,.2,1);
  z-index:1;
}
.slide{ min-width:100%; height:72vh; position:relative; }
.slide img{ width:100%; height:100%; object-fit:cover; }
.slide::after{
  content:"";
  position:absolute; inset:0;
  background: linear-gradient(90deg, rgba(17,24,39,.55) 0%, rgba(17,24,39,.18) 45%, rgba(17,24,39,.35) 100%);
}

/* hero card */
.hero-content{ position:relative; z-index:3; display:flex; align-items:flex-end; height:72vh; }
.hero-card{
  margin: 0 0 26px 0;
  max-width: 720px;
  background: rgba(251,250,246,.92);
  border: 1px solid rgba(255,255,255,.55);
  border-radius: var(--radius);
  box-shadow: var(--shadow);
  padding: 22px 22px 18px;
}
.kicker{
  display:inline-flex; align-items:center; gap:10px;
  font-weight:900;
  font-size:12px;
  letter-spacing:.18em;
  text-transform: uppercase;
  color: rgba(17,24,39,.88);
}
.dot{
  width:9px;height:9px;border-radius:50%;
  background: var(--gold);
  box-shadow: 0 0 0 6px rgba(242,201,76,.18);
}
.hero-card h2{
  margin: 12px 0 10px;
  font-size: 40px;
  line-height:1.05;
  letter-spacing:-.02em;
}
.hero-card p{ margin:0 0 14px; color:var(--muted); line-height:1.55; }
.hero-actions{ display:flex; gap:10px; flex-wrap:wrap; margin-top: 10px; }
.hero-mini{ font-size:12px; color: rgba(17,24,39,.72); margin-top:10px; }

.hero-controls{
  position:absolute; right: 18px; bottom:18px; z-index:4;
}
.pill{
  display:inline-flex; align-items:center; gap:8px;
  padding:10px 12px; border-radius:999px;
  border:1px solid rgba(255,255,255,.30);
  background: rgba(17,24,39,.30);
  backdrop-filter: blur(8px);
  color:#fff; font-size:13px;
}
.pill button{
  appearance:none; border:none;
  width:34px; height:34px; border-radius:999px;
  cursor:pointer;
  background: rgba(255,255,255,.18);
  color:#fff;
}
.pill button:hover{ background: rgba(255,255,255,.26); }
.dots{ display:flex; gap:7px; padding: 0 8px; }
.dots button{
  width:10px;height:10px;border-radius:99px;
  border:1px solid rgba(255,255,255,.55);
  background: transparent;
  cursor:pointer;
  opacity:.9;
}
.dots button[aria-current="true"]{
  background: var(--gold);
  border-color: transparent;
  box-shadow: 0 0 0 6px rgba(242,201,76,.18);
}

/* Sections */
section{ padding: 56px 0; }
.sectionHead{
  display:flex; align-items:flex-end; justify-content:space-between; gap:18px; flex-wrap:wrap;
  margin-bottom: 14px;
}
.sectionHead h1, .sectionHead h2{ margin:0; letter-spacing:-.01em; }
.sectionHead p{ margin:0; color:var(--muted); font-size:13px; }

.grid{
  display:grid;
  grid-template-columns: 1.15fr .85fr;
  gap: 22px;
  align-items:start;
}
.card{
  background: rgba(255,255,255,.92);
  border-radius: var(--radius);
  border: 1px solid var(--line);
  box-shadow: 0 10px 28px rgba(17,24,39,.08);
  padding: 22px;
}
.card h3{ margin:0 0 10px; font-size: 22px; }
.card p{ margin:0; color:var(--muted); line-height:1.6; }
.meta{ margin-top:12px; font-size:13px; color: rgba(85,96,112,.95); }

.list{
  margin:14px 0 0;
  padding:0;
  list-style:none;
  display:grid;
  gap:10px;
}
.list li{
  padding:12px 12px;
  border-radius: 14px;
  background: rgba(31,122,58,.06);
  border:1px solid rgba(31,122,58,.14);
  color:#0f172a;
  font-size:14px;
  display:flex; justify-content:space-between; gap:10px;
}
.tag{
  font-size:12px;
  padding:3px 10px;
  border-radius:999px;
  background: rgba(200,29,37,.10);
  border:1px solid rgba(200,29,37,.20);
  color: #7a0f14;
  white-space:nowrap;
  align-self:center;
}

/* Weekly ad thumbs */
.ad-grid{
  display:grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 14px;
  margin-top: 16px;
}
.ad-grid a{
  border-radius: 16px;
  overflow:hidden;
  border:1px solid rgba(17,24,39,.10);
  box-shadow: 0 10px 24px rgba(17,24,39,.10);
  background:#fff;
  transition: transform .18s ease, box-shadow .18s ease;
}
.ad-grid a:hover{
  transform: translateY(-2px);
  box-shadow: 0 16px 36px rgba(17,24,39,.14);
}

/* Icon tile grids */
.tileGrid{
  display:grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap:14px;
  margin-top:14px;
}
.tile{
  display:flex; gap:14px; align-items:flex-start;
  padding:14px;
  border-radius:16px;
  border:1px solid rgba(17,24,39,.10);
  background:#fff;
  box-shadow: 0 10px 24px rgba(17,24,39,.06);
}
.tileImg{
  width:72px;height:72px;border-radius:16px; object-fit:cover;
  border:1px solid rgba(17,24,39,.10);
  background: var(--soft);
  flex: 0 0 auto;
}
.tileTitle{
  display:flex; align-items:baseline; justify-content:space-between;
  gap:10px; margin: 0 0 6px;
  font-weight:900;
}
.tileTitle small{ font-weight:900; color: rgba(200,29,37,.95); white-space:nowrap; }
.tileDesc{ margin:0; color: var(--muted); font-size:13px; line-height:1.5; }
.tileMeta{ margin-top:10px; display:flex; gap:8px; flex-wrap:wrap; }
.pillTag{
  font-size:12px;
  padding:4px 10px;
  border-radius:999px;
  border:1px solid rgba(31,122,58,.20);
  background: rgba(31,122,58,.08);
  color:#0f172a;
}
.pillTag.red{ border-color: rgba(200,29,37,.22); background: rgba(200,29,37,.08); }

/* Footer */
footer{
  border-top: 1px solid var(--line);
  background: rgba(255,255,255,.70);
  padding: 30px 0;
}
.footerGrid{
  display:grid;
  grid-template-columns: 1.2fr .8fr;
  gap: 18px;
  align-items:start;
}
.fine{ font-size:12px; color: rgba(85,96,112,.75); margin-top:10px; }

/* Responsive */
@media (max-width: 980px){
  .grid{ grid-template-columns: 1fr; }
  .ad-grid{ grid-template-columns: repeat(2, 1fr); }
  .hero-card h2{ font-size: 34px; }
}
@media (max-width: 720px){
  nav ul{ display:none; }
  .hamburger{
    display:inline-flex;
    width:40px;height:40px;
    border-radius:999px;
    border:1px solid var(--line);
    background: rgba(255,255,255,.70);
    color: var(--ink);
    align-items:center;justify-content:center;
    cursor:pointer;
  }
  .tileGrid{ grid-template-columns: 1fr; }
  .ad-grid{ grid-template-columns: 1fr; }
  .footerGrid{ grid-template-columns: 1fr; }
}

/* Subpage hero */
.subHero{
  position:relative;
  height:300px;
  background-size:cover;
  background-position:center;
  margin-bottom:32px;
}
.subHeroOverlay{
  position:absolute;
  inset:0;
  background:linear-gradient(to bottom, rgba(0,0,0,.35), rgba(0,0,0,.55));
  display:flex;
  align-items:flex-end;
}
.subHeroOverlay .wrap{
  padding-bottom:32px;
}
.subHero h1{
  color:#fff;
  font-size:38px;
  margin:0 0 6px;
}
.subHero p{
  color:#f3f3f3;
  margin:0;
  max-width:600px;
}
@media (max-width:768px){
  .subHero{height:220px}
  .subHero h1{font-size:28px}
}

/* Homepage feature sections */
.sectionAlt{ background: rgba(255,255,255,.62); border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.featureGrid{
  display:grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
}
.featureCard{
  overflow:hidden;
  border-radius: var(--radius);
  border:1px solid rgba(17,24,39,.10);
  background:#fff;
  box-shadow: 0 10px 24px rgba(17,24,39,.08);
  transition: transform .16s ease, box-shadow .16s ease;
}
.featureCard:hover{ transform: translateY(-2px); box-shadow: 0 16px 36px rgba(17,24,39,.12); }
.featureCard img{
  width:100%;
  height: 190px;
  object-fit: cover;
}
.featureBody{ padding: 14px; }
.featureBody h3{ margin:0 0 6px; font-size:16px; }
.featureBody p{ margin:0; color:var(--muted); font-size:13px; line-height:1.45; }
.badges{ margin-top:10px; display:flex; flex-wrap:wrap; gap:8px; }
.badge{
  font-size:12px;
  padding:4px 10px;
  border-radius:999px;
  border:1px solid rgba(17,24,39,.10);
  background: rgba(242,201,76,.12);
  color: rgba(17,24,39,.9);
}
.badge.green{ background: rgba(31,122,58,.10); border-color: rgba(31,122,58,.18); }
.badge.red{ background: rgba(200,29,37,.10); border-color: rgba(200,29,37,.18); }

.masonry{
  columns: 3 260px;
  column-gap: 14px;
}
.masonry a{
  display:inline-block;
  width:100%;
  margin: 0 0 14px;
  break-inside: avoid;
  border-radius: 16px;
  overflow:hidden;
  border:1px solid rgba(17,24,39,.10);
  box-shadow: 0 10px 24px rgba(17,24,39,.08);
}
.masonry img{ width:100%; height:auto; display:block; }
@media (max-width: 980px){
  .featureGrid{ grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 720px){
  .featureGrid{ grid-template-columns: 1fr; }
  .masonry{ columns: 1; }
}


/* Bottanika-inspired split panels */
.splitHero{
  display:grid;
  grid-template-columns: 1.05fr .95fr;
  min-height: 78vh;
  border-bottom:1px solid var(--line);
  background: linear-gradient(180deg, rgba(255,255,255,.60), rgba(255,255,255,.18));
}
.splitCopy{
  display:flex;
  align-items:center;
  justify-content:center;
  padding: 56px 32px;
  background:
    radial-gradient(700px 400px at 20% 10%, rgba(31,122,58,.08), transparent 60%),
    radial-gradient(700px 400px at 100% 0%, rgba(200,29,37,.06), transparent 60%),
    rgba(251,250,246,.96);
}
.splitCopyInner{
  max-width: 560px;
}
.eyebrow{
  display:inline-flex;
  align-items:center;
  gap:10px;
  font-size:12px;
  letter-spacing:.18em;
  text-transform:uppercase;
  font-weight:900;
  color: rgba(17,24,39,.78);
}
.eyebrow::before{
  content:"";
  width:10px;height:10px;border-radius:99px;
  background: var(--forest);
  box-shadow: 0 0 0 6px rgba(31,122,58,.12);
}
.splitCopy h1{
  margin: 18px 0 14px;
  font-size: 52px;
  line-height: .98;
  letter-spacing: -.03em;
}
.splitCopy p{
  margin:0;
  color: var(--muted);
  line-height: 1.7;
  font-size: 15px;
}
.statRow{
  display:flex;
  gap:12px;
  flex-wrap:wrap;
  margin-top: 18px;
}
.stat{
  min-width: 130px;
  padding: 14px 14px;
  border-radius: 16px;
  background: rgba(255,255,255,.84);
  border:1px solid rgba(17,24,39,.08);
  box-shadow: 0 10px 24px rgba(17,24,39,.06);
}
.stat strong{
  display:block;
  font-size: 22px;
  line-height:1;
  margin-bottom: 4px;
}
.stat span{
  font-size: 12px;
  color: var(--muted);
}
.splitVisual{
  position:relative;
  overflow:hidden;
  min-height: 78vh;
  background:#111;
}
.splitVisual img{
  width:100%;
  height:100%;
  object-fit:cover;
}
.splitVisual::after{
  content:"";
  position:absolute;
  inset:0;
  background: linear-gradient(180deg, rgba(17,24,39,.12), rgba(17,24,39,.24));
}
.floatingCard{
  position:absolute;
  right:24px;
  bottom:24px;
  z-index:2;
  width:min(320px, calc(100% - 48px));
  padding:18px;
  border-radius:18px;
  background: rgba(251,250,246,.92);
  border:1px solid rgba(255,255,255,.6);
  box-shadow: var(--shadow);
}
.floatingCard h3{
  margin:0 0 8px;
  font-size:20px;
}
.floatingCard p{
  margin:0;
  color: var(--muted);
  font-size:13px;
  line-height:1.55;
}
.panelSection{
  padding: 70px 0;
}
.panelGrid{
  display:grid;
  gap:22px;
}
.panel{
  display:grid;
  grid-template-columns: 1fr 1fr;
  background: rgba(255,255,255,.86);
  border:1px solid var(--line);
  border-radius: 24px;
  overflow:hidden;
  box-shadow: 0 18px 40px rgba(17,24,39,.08);
}
.panel.reverse{
  direction: rtl;
}
.panel.reverse > *{
  direction: ltr;
}
.panelMedia{
  min-height: 360px;
  background:#ddd;
}
.panelMedia img{
  width:100%;
  height:100%;
  object-fit:cover;
}
.panelBody{
  padding: 34px;
  display:flex;
  align-items:center;
}
.panelBodyInner{
  max-width: 470px;
}
.panelBody h2{
  margin: 0 0 10px;
  font-size: 34px;
  line-height:1.04;
  letter-spacing:-.02em;
}
.panelBody p{
  margin:0;
  color:var(--muted);
  line-height:1.65;
}
.panelBody .tileMeta{
  margin-top: 14px;
}
.miniTiles{
  display:grid;
  grid-template-columns: repeat(3, minmax(0,1fr));
  gap:14px;
  margin-top: 18px;
}
.miniTile{
  padding:16px;
  border-radius:18px;
  background: rgba(255,255,255,.86);
  border:1px solid var(--line);
  box-shadow: 0 10px 24px rgba(17,24,39,.06);
}
.miniTile img{
  width:54px;
  height:54px;
  border-radius:14px;
  margin-bottom: 12px;
}
.miniTile h4{
  margin:0 0 6px;
  font-size:16px;
}
.miniTile p{
  margin:0;
  color:var(--muted);
  font-size:13px;
  line-height:1.5;
}
.softBand{
  background:
    radial-gradient(700px 400px at 0% 0%, rgba(31,122,58,.06), transparent 60%),
    radial-gradient(700px 400px at 100% 0%, rgba(200,29,37,.05), transparent 60%),
    rgba(255,255,255,.58);
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
}
@media (max-width: 980px){
  .splitHero{ grid-template-columns: 1fr; min-height:auto; }
  .splitVisual{ min-height: 420px; }
  .splitCopy h1{ font-size: 40px; }
  .panel, .panel.reverse{ grid-template-columns: 1fr; direction:ltr; }
  .panelMedia{ min-height: 280px; }
  .miniTiles{ grid-template-columns: 1fr; }
}


/* Full-width lead panel */
.coverHero{
  min-height: 78vh;
  display:flex;
  align-items:flex-end;
  position:relative;
  overflow:hidden;
  border-bottom:1px solid var(--line);
  background:#111;
}
.coverHero img{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
}
.coverHero::after{
  content:"";
  position:absolute;
  inset:0;
  background: linear-gradient(180deg, rgba(17,24,39,.10) 0%, rgba(17,24,39,.36) 100%);
}
.coverHeroInner{
  position:relative;
  z-index:2;
  width:100%;
  padding: 0 0 34px 0;
}
.coverHeroCard{
  max-width: 760px;
  background: rgba(251,250,246,.93);
  border:1px solid rgba(255,255,255,.7);
  border-radius: 24px;
  box-shadow: var(--shadow);
  padding: 22px 24px 20px;
}
.coverHeroCard h1{
  margin: 14px 0 10px;
  font-size: 50px;
  line-height: .98;
  letter-spacing: -.03em;
}
.coverHeroCard p{
  margin:0;
  color: var(--muted);
  line-height: 1.7;
}
.coverHeroCard .hero-actions{
  margin-top: 18px;
}
.afterCover{
  padding: 18px 0 0;
  background: rgba(255,255,255,.58);
}
.afterCover .wrap{
  display:flex;
  gap:12px;
  flex-wrap:wrap;
}
.infoPill{
  padding: 12px 14px;
  border-radius: 999px;
  background: rgba(255,255,255,.86);
  border:1px solid var(--line);
  box-shadow: 0 10px 24px rgba(17,24,39,.06);
  font-size: 13px;
  color: var(--ink);
}
.siteFooter{
  margin-top: 30px;
  background:
    radial-gradient(700px 400px at 0% 0%, rgba(31,122,58,.06), transparent 60%),
    radial-gradient(700px 400px at 100% 0%, rgba(200,29,37,.05), transparent 60%),
    rgba(255,255,255,.82);
  border-top:1px solid var(--line);
}
.siteFooter .wrap{
  padding-top: 26px;
  padding-bottom: 26px;
}
.siteFooterGrid{
  display:grid;
  grid-template-columns: 1.1fr .9fr .9fr;
  gap: 20px;
}
.siteFooter h4{
  margin:0 0 10px;
  font-size:16px;
}
.siteFooter p, .siteFooter li, .siteFooter a{
  color: var(--muted);
  font-size: 13px;
  line-height: 1.6;
}
.siteFooter ul{
  list-style:none;
  padding:0;
  margin:0;
}
.siteFooterBrand{
  display:flex;
  align-items:center;
  gap:12px;
  margin-bottom: 10px;
}
.siteFooterBrand img{
  height:44px;
  width:auto;
  border-radius:10px;
}
.siteFooterBottom{
  margin-top: 18px;
  padding-top: 14px;
  border-top:1px solid var(--line);
  font-size: 12px;
  color: var(--muted);
  display:flex;
  justify-content:space-between;
  gap:12px;
  flex-wrap:wrap;
}
@media (max-width: 980px){
  .coverHeroCard h1{ font-size: 40px; }
  .siteFooterGrid{ grid-template-columns: 1fr; }
}


/* Loyalty app embed */
.embedCard{
  background: rgba(255,255,255,.92);
  border:1px solid var(--line);
  border-radius: 24px;
  box-shadow: 0 18px 40px rgba(17,24,39,.08);
  overflow:hidden;
}
.embedHead{
  padding: 20px 22px;
  border-bottom:1px solid var(--line);
  background:
    radial-gradient(700px 400px at 0% 0%, rgba(31,122,58,.06), transparent 60%),
    radial-gradient(700px 400px at 100% 0%, rgba(200,29,37,.05), transparent 60%),
    rgba(255,255,255,.72);
}
.embedHead h3{
  margin:0 0 6px;
  font-size: 24px;
}
.embedHead p{
  margin:0;
  color: var(--muted);
}
.embedBody{
  padding: 0;
}
.loyaltyFrame{
  display:block;
  width:1px;
  min-width:100%;
  min-height: 800px;
  border:none;
  overflow:hidden;
  margin:0;
  padding:0;
  background:#fff;
}


/* Cleaner, less bubbly home sections */
.cleanBand{
  padding: 82px 0;
}
.infoGrid{
  display:grid;
  grid-template-columns: repeat(3, minmax(0,1fr));
  gap: 34px 48px;
}
.infoItem{
  display:grid;
  grid-template-columns: 58px 1fr;
  gap: 16px;
  align-items:start;
}
.infoIcon{
  width:58px;
  height:58px;
  object-fit:cover;
  border-radius: 0;
  background: transparent;
  border:none;
  box-shadow:none;
}
.infoItem h3{
  margin: 0 0 8px;
  font-size: 18px;
  letter-spacing: .10em;
  text-transform: uppercase;
  font-weight: 500;
}
.infoItem p{
  margin:0;
  color: var(--muted);
  line-height: 1.7;
  font-size: 14px;
}

.coverPanel{
  position:relative;
  min-height: 540px;
  overflow:hidden;
  border-radius: 0;
  border: none;
  box-shadow: none;
}
.coverPanel img{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
}
.coverPanel::after{
  content:"";
  position:absolute;
  inset:0;
  background: linear-gradient(90deg, rgba(17,24,39,.58) 0%, rgba(17,24,39,.28) 45%, rgba(17,24,39,.12) 100%);
}
.coverPanelContent{
  position:relative;
  z-index:2;
  max-width: 560px;
  padding: 72px 56px;
  color: #fff;
}
.coverPanelContent h2{
  margin: 0 0 12px;
  font-size: 44px;
  line-height: 1.02;
  letter-spacing: -.02em;
}
.coverPanelContent p{
  margin:0;
  color: rgba(255,255,255,.88);
  line-height: 1.7;
  font-size: 15px;
}
.coverPanelContent .hero-actions{
  margin-top: 18px;
}

.organicShowcase{
  display:grid;
  grid-template-columns: 1.05fr .95fr;
  min-height: 620px;
  background: linear-gradient(180deg, #eef5ee 0%, #f8fbf7 100%);
}
.organicCopy{
  padding: 68px 56px;
  display:flex;
  align-items:center;
}
.organicCopyInner{
  max-width: 540px;
}
.organicEyebrow{
  display:inline-block;
  letter-spacing: .18em;
  text-transform: uppercase;
  font-size: 12px;
  color: #45654c;
  margin-bottom: 18px;
}
.organicCopy h2{
  margin: 0 0 14px;
  font-size: 48px;
  line-height: .98;
  letter-spacing: -.03em;
}
.organicCopy p{
  margin:0;
  color: var(--muted);
  font-size: 15px;
  line-height: 1.8;
}
.organicList{
  margin: 24px 0 0;
  padding: 0;
  list-style:none;
  display:grid;
  gap: 14px;
}
.organicList li{
  padding: 0;
  background: transparent;
  border: none;
  display:flex;
  gap:12px;
  align-items:flex-start;
  font-size: 15px;
  color: var(--ink);
}
.organicBullet{
  width:10px; height:10px; border-radius: 99px; background: var(--forest);
  margin-top: 9px; flex:0 0 auto;
}
.organicMedia{
  position:relative;
  overflow:hidden;
}
.organicMedia img{
  width:100%;
  height:100%;
  object-fit:cover;
}
.organicStack{
  position:absolute;
  right: 28px;
  bottom: 28px;
  z-index:2;
  display:grid;
  gap: 10px;
  width: min(320px, calc(100% - 56px));
}
.organicCard{
  background: rgba(255,255,255,.92);
  padding: 16px 18px;
  border-left: 4px solid var(--forest);
  box-shadow: 0 14px 34px rgba(17,24,39,.10);
}
.organicCard h4{
  margin: 0 0 6px;
  font-size: 16px;
  letter-spacing: .02em;
}
.organicCard p{
  margin:0;
  color: var(--muted);
  font-size: 13px;
  line-height: 1.55;
}

.sectionDivider{
  height:1px;
  background: linear-gradient(90deg, transparent, rgba(17,24,39,.10), transparent);
  margin: 0;
}

@media (max-width: 980px){
  .infoGrid{ grid-template-columns: 1fr; gap: 28px; }
  .coverPanel{ min-height: 420px; }
  .coverPanelContent{ padding: 42px 28px; }
  .coverPanelContent h2{ font-size: 34px; }
  .organicShowcase{ grid-template-columns: 1fr; min-height: auto; }
  .organicCopy{ padding: 42px 28px; }
  .organicCopy h2{ font-size: 36px; }
  .organicMedia{ min-height: 360px; }
}


/* Sitewide clean/editorial page system */
.pageIntro{
  padding: 72px 0 28px;
}
.pageIntroGrid{
  display:grid;
  grid-template-columns: 1.05fr .95fr;
  gap: 28px;
  align-items:start;
}
.pageIntroCopy h1{
  margin:0 0 12px;
  font-size: 48px;
  line-height: .98;
  letter-spacing: -.03em;
}
.pageIntroCopy p{
  margin:0;
  color: var(--muted);
  line-height: 1.8;
  font-size: 15px;
}
.pageFacts{
  display:grid;
  gap: 12px;
}
.pageFact{
  padding: 16px 18px;
  background: rgba(255,255,255,.86);
  border-left: 3px solid var(--forest);
  box-shadow: 0 12px 28px rgba(17,24,39,.08);
}
.pageFact h4{
  margin:0 0 6px;
  font-size: 15px;
  letter-spacing: .08em;
  text-transform: uppercase;
  font-weight: 600;
}
.pageFact p{
  margin:0;
  color: var(--muted);
  font-size: 13px;
  line-height: 1.6;
}

.editorialSection{
  padding: 40px 0 74px;
}
.editorialStack{
  display:grid;
  gap: 26px;
}
.editorialPanel{
  display:grid;
  grid-template-columns: 1fr 1fr;
  overflow:hidden;
  background: rgba(255,255,255,.86);
  border:1px solid var(--line);
  box-shadow: 0 18px 40px rgba(17,24,39,.08);
}
.editorialPanel.reverse{
  direction: rtl;
}
.editorialPanel.reverse > *{
  direction:ltr;
}
.editorialMedia{
  min-height: 360px;
}
.editorialMedia img{
  width:100%;
  height:100%;
  object-fit: cover;
}
.editorialBody{
  padding: 36px;
  display:flex;
  align-items:center;
}
.editorialBodyInner{
  max-width: 500px;
}
.editorialBody h2{
  margin:0 0 12px;
  font-size: 36px;
  line-height: 1.04;
  letter-spacing:-.02em;
}
.editorialBody p{
  margin:0;
  color: var(--muted);
  line-height: 1.75;
}
.lineList{
  list-style:none;
  padding:0;
  margin: 20px 0 0;
  display:grid;
  gap: 14px;
}
.lineList li{
  display:grid;
  grid-template-columns: 12px 1fr;
  gap: 12px;
  align-items:start;
  padding:0;
  background: transparent;
  border: none;
}
.lineDot{
  width:10px;
  height:10px;
  border-radius:99px;
  background: var(--forest);
  margin-top: 8px;
}
.lineList strong{
  display:block;
  margin-bottom: 4px;
  font-size: 16px;
  font-weight: 600;
}
.lineList span{
  color: var(--muted);
  font-size: 14px;
  line-height: 1.65;
}
.miniInfoGrid{
  display:grid;
  grid-template-columns: repeat(3, minmax(0,1fr));
  gap: 34px 48px;
}
.miniInfo{
  display:grid;
  grid-template-columns: 56px 1fr;
  gap: 16px;
}
.miniInfo img{
  width:56px;
  height:56px;
  object-fit:cover;
}
.miniInfo h3{
  margin:0 0 8px;
  font-size: 18px;
  letter-spacing: .10em;
  text-transform: uppercase;
  font-weight: 500;
}
.miniInfo p{
  margin:0;
  color: var(--muted);
  line-height:1.7;
  font-size: 14px;
}
.slimBand{
  padding: 64px 0;
  background: rgba(255,255,255,.54);
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
}
.cleanTable{
  display:grid;
  gap:0;
  border-top:1px solid rgba(17,24,39,.10);
  margin-top: 18px;
}
.cleanRow{
  display:grid;
  grid-template-columns: 1.1fr .9fr;
  gap:18px;
  padding: 18px 0;
  border-bottom:1px solid rgba(17,24,39,.10);
}
.cleanRow strong{
  font-size: 16px;
  font-weight: 600;
}
.cleanRow span{
  color: var(--muted);
  line-height: 1.6;
}
.tightActions{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
  margin-top: 22px;
}
@media (max-width: 980px){
  .pageIntroGrid,
  .editorialPanel,
  .editorialPanel.reverse{
    grid-template-columns: 1fr;
    direction:ltr;
  }
  .pageIntroCopy h1{ font-size: 38px; }
  .editorialBody h2{ font-size: 30px; }
  .miniInfoGrid{ grid-template-columns: 1fr; gap: 28px; }
  .cleanRow{ grid-template-columns: 1fr; }
}


/* Client-ready homepage refinements */
.photoHeader{
  position:relative;
  min-height: 420px;
  overflow:hidden;
}
.photoHeader img{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
}
.photoHeader::after{
  content:"";
  position:absolute;
  inset:0;
  background: linear-gradient(180deg, rgba(17,24,39,.18), rgba(17,24,39,.42));
}
.photoHeaderContent{
  position:relative;
  z-index:2;
  display:flex;
  align-items:flex-end;
  min-height:420px;
}
.photoHeaderCard{
  max-width: 720px;
  margin: 0 0 28px 0;
  padding: 24px 26px;
  background: rgba(251,250,246,.93);
  border:1px solid rgba(255,255,255,.62);
  box-shadow: var(--shadow);
}
.photoHeaderCard h2{
  margin:0 0 10px;
  font-size: 42px;
  line-height: 1.02;
  letter-spacing:-.03em;
}
.photoHeaderCard p{
  margin:0;
  color: var(--muted);
  line-height: 1.75;
}

.editorialPanel.noFrame{
  border:none;
  box-shadow:none;
  background: transparent;
}
.editorialPanel.noFrame .editorialBody{
  background: rgba(255,255,255,.70);
}
.editorialPanel.noFrame .editorialMedia{
  min-height: 430px;
}
@media (max-width: 980px){
  .photoHeader,
  .photoHeaderContent{ min-height: 320px; }
  .photoHeaderCard h2{ font-size: 34px; }
}

/* WordPress integration */
body.admin-bar .topbar{top:32px}
@media(max-width:782px){body.admin-bar .topbar{top:46px}}
.custom-logo{height:44px;width:auto;border-radius:10px}
.current-menu-item>a,.current_page_item>a{background:rgba(200,29,37,.10);color:var(--ink);box-shadow:0 0 0 3px rgba(200,29,37,.12)}
.menu-primary{list-style:none;padding:0;margin:0;display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}
.menu-primary a{display:inline-flex;align-items:center;padding:10px 12px;border-radius:999px;font-size:13px;color:var(--muted)}
.menu-primary a:hover{background:rgba(31,122,58,.08);color:var(--ink)}
@media(max-width:720px){.menu-primary{display:none}}


/* Editable WordPress page content */
.editorContent{
  padding: 0 0 70px;
}
.editorContent .wrap{
  max-width: 1040px;
}
.editorContent article{
  font-size: 16px;
  line-height: 1.75;
  color: var(--ink);
}
.editorContent article > *:first-child{ margin-top:0; }
.editorContent article > *:last-child{ margin-bottom:0; }
.editorContent h2{
  font-size: 34px;
  line-height:1.08;
  letter-spacing:-.02em;
  margin: 1.5em 0 .5em;
}
.editorContent h3{
  font-size: 24px;
  margin: 1.4em 0 .5em;
}
.editorContent p{ color: var(--muted); }
.editorContent img{ height:auto; }
.editorContent .wp-block-button__link{
  border-radius: 999px;
  background: var(--forest);
}
.editorContent .wp-block-columns{
  gap: 28px;
}
.editorContent:has(article:empty),
.editorContent article:empty{
  display:none;
}


/* Bold Builder compatibility */
.davis-builder-content{
  width:100%;
  max-width:none;
  padding:0;
  margin:0;
}
.davis-builder-content > .wrap{
  max-width:none;
  padding:0;
}
.davis-builder-content .bt_bb_wrapper,
.davis-builder-content .bt_bb_section,
.davis-builder-content .bt_bb_row,
.davis-builder-content .bt_bb_cell{
  max-width:none;
}
.davis-builder-content .bt_bb_section{
  margin-left:0;
  margin-right:0;
}
.davis-builder-content .bt_bb_content_slider,
.davis-builder-content .bt_bb_masonry_image_grid,
.davis-builder-content .bt_bb_masonry_post_grid{
  width:100%;
}
/* Avoid theme typography forcing itself onto Builder components */
.davis-builder-content .bt_bb_headline h1,
.davis-builder-content .bt_bb_headline h2,
.davis-builder-content .bt_bb_headline h3,
.davis-builder-content .bt_bb_headline h4,
.davis-builder-content .bt_bb_headline h5,
.davis-builder-content .bt_bb_headline h6{
  margin-top:0;
}
/* Front-end editing needs the content canvas unobstructed */
.bt_bb_fe_preview .davis-builder-content,
body.bt_bb_fe_preview .davis-builder-content{
  overflow:visible;
}


/* Bold Builder starter layout */
.davis-bb-hero{
  position:relative;
  color:#fff;
}
.davis-bb-hero::before{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(90deg,rgba(17,24,39,.62),rgba(17,24,39,.18));
  pointer-events:none;
}
.davis-bb-hero > *{ position:relative; z-index:1; }
.davis-bb-hero .bt_bb_headline,
.davis-bb-hero .bt_bb_headline *,
.davis-bb-hero .bt_bb_text,
.davis-bb-hero .bt_bb_text *{ color:#fff; }
.davis-bb-feature{
  padding:28px 20px;
}
.davis-bb-split .bt_bb_column{
  overflow:hidden;
}
.davis-bb-photo-col figure{
  margin:0;
  height:100%;
}
.davis-bb-photo-col img{
  width:100%;
  height:100%;
  min-height:420px;
  object-fit:cover;
  display:block;
}
.davis-bb-copy-col{
  padding:48px;
}
.davis-bb-organic{
  background:#eef5ee;
}
.davis-bb-image{ margin:0; }
.davis-bb-image img{ width:100%; height:auto; display:block; }
.davis-bb-menu-item{
  padding:24px;
}
@media(max-width:980px){
  .davis-bb-copy-col{ padding:28px 20px; }
  .davis-bb-photo-col img{ min-height:300px; }
}


/* 1.3.4 — clean title-only page heroes */
.subHero .subHeroOverlay{
  display:flex;
  align-items:center;
  justify-content:center;
  text-align:center;
}
.subHero .subHeroOverlay .wrap{
  width:100%;
  display:flex;
  align-items:center;
  justify-content:center;
}
.subHero h1{
  margin:0;
  max-width:1100px;
  text-align:center;
  font-size:clamp(3rem, 7vw, 6.5rem);
  line-height:.95;
  font-weight:800;
  letter-spacing:-.045em;
  color:#fff;
  text-shadow:0 3px 24px rgba(0,0,0,.35);
}
.subHero p{
  display:none;
}
@media (max-width:720px){
  .subHero h1{
    font-size:clamp(2.6rem, 12vw, 4.5rem);
  }
}


/* 1.3.6 — editable header social buttons */
.headerSocials{
  gap:8px;
}
.socialButton{
  width:38px;
  height:38px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border-radius:50%;
  border:1px solid rgba(17,24,39,.10);
  background:rgba(255,255,255,.72);
  color:var(--ink);
  transition:transform .16s ease, background .16s ease, color .16s ease, border-color .16s ease;
}
.socialButton svg{
  width:18px;
  height:18px;
  display:block;
}
.socialButton:hover{
  transform:translateY(-1px);
  background:#fff;
  color:var(--forest);
  border-color:rgba(31,122,58,.25);
}
@media(max-width:720px){
  .headerSocials .socialButton{
    width:36px;
    height:36px;
  }
}


/* 1.3.7 — branded social buttons + AppCard */
.socialButton-facebook{
  background:#1877F2;
  border-color:#1877F2;
  color:#fff;
}
.socialButton-facebook:hover{
  background:#1877F2;
  border-color:#1877F2;
  color:#fff;
}
.socialButton-instagram{
  color:#fff;
  border-color:transparent;
  background:linear-gradient(135deg,#833AB4 0%,#C13584 35%,#E1306C 55%,#F77737 78%,#FCAF45 100%);
}
.socialButton-instagram:hover{
  color:#fff;
  border-color:transparent;
  background:linear-gradient(135deg,#833AB4 0%,#C13584 35%,#E1306C 55%,#F77737 78%,#FCAF45 100%);
}
.socialButton-appcard{
  padding:0;
  overflow:hidden;
  background:#fff;
  border-color:#b7b7b7;
}
.socialButton-appcard:hover{
  background:#fff;
  border-color:#999;
}
.socialButton-appcard .appCardIconImage{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}


/* 1.3.8 — AppCard keeps its native square shape */
.socialButton-appcard{
  border-radius:8px;
  overflow:hidden;
}
.socialButton-appcard .appCardIconImage{
  width:100%;
  height:100%;
  object-fit:cover;
  border-radius:7px;
}


/* 1.3.9 — desktop dropdown / child menus */
.topbar nav ul{ position:relative; }
.topbar nav li{ position:relative; }

.topbar nav .sub-menu{
  position:absolute;
  top:100%;
  left:0;
  z-index:9999;
  min-width:220px;
  margin:8px 0 0;
  padding:8px;
  display:none;
  flex-direction:column;
  gap:2px;
  background:rgba(251,250,246,.98);
  border:1px solid var(--line);
  box-shadow:0 18px 40px rgba(17,24,39,.14);
  border-radius:14px;
}

.topbar nav li:hover > .sub-menu{
  display:flex;
}

.topbar nav .sub-menu li{ width:100%; }

.topbar nav .sub-menu a{
  display:block;
  width:100%;
  padding:10px 12px;
  border-radius:10px;
  white-space:nowrap;
  color:var(--ink);
  background:transparent;
}

.topbar nav .sub-menu a:hover,
.topbar nav .sub-menu a:focus{
  background:rgba(31,122,58,.08);
  color:var(--forest);
}

.topbar nav .sub-menu .sub-menu{
  top:-8px;
  left:100%;
  margin-left:8px;
}

.topbar nav .menu-item-has-children > a::after{
  content:"";
  display:inline-block;
  width:6px;
  height:6px;
  margin-left:7px;
  border-right:1.5px solid currentColor;
  border-bottom:1.5px solid currentColor;
  transform:rotate(45deg) translateY(-2px);
}

.topbar nav .sub-menu .menu-item-has-children > a::after{
  float:right;
  transform:rotate(-45deg);
  margin-top:6px;
}

.topbar,
.topbar .wrap,
.topbar .topbar-inner,
.topbar nav{
  overflow:visible;
}

@media (max-width:720px){
  .topbar nav .sub-menu{
    display:none !important;
  }
}


/* 1.3.10 — dropdowns are hover-only */
@media (min-width:721px){
  .topbar nav .sub-menu{
    display:none !important;
    visibility:hidden;
    opacity:0;
    pointer-events:none;
  }

  .topbar nav li:hover > .sub-menu{
    display:flex !important;
    visibility:visible;
    opacity:1;
    pointer-events:auto;
  }
}


/* 1.3.11 — proper isolated dropdown menus */
@media (min-width:721px){

  /* ONLY the top-level menu is a horizontal flex row */
  .topbar nav > ul,
  .topbar nav > .menu,
  .topbar nav > div > ul{
    display:flex;
    align-items:center;
    flex-wrap:nowrap;
    gap:8px;
  }

  /* Child ULs must never inherit the top-level flex layout */
  .topbar nav ul.sub-menu,
  .topbar nav .menu ul.sub-menu{
    display:none !important;
    position:absolute !important;
    top:calc(100% + 8px) !important;
    left:0 !important;
    right:auto !important;
    width:max-content !important;
    min-width:220px !important;
    max-width:320px;
    margin:0 !important;
    padding:8px !important;
    flex-direction:column !important;
    flex-wrap:nowrap !important;
    align-items:stretch !important;
    gap:2px !important;
    visibility:hidden !important;
    opacity:0 !important;
    pointer-events:none !important;
    background:#fff !important;
    border:1px solid rgba(17,24,39,.10) !important;
    border-radius:12px !important;
    box-shadow:0 18px 45px rgba(17,24,39,.16) !important;
    z-index:10000 !important;
  }

  .topbar nav li.menu-item-has-children{
    position:relative !important;
  }

  /* Hovering the parent is the ONLY desktop trigger */
  .topbar nav li.menu-item-has-children:hover > ul.sub-menu{
    display:flex !important;
    visibility:visible !important;
    opacity:1 !important;
    pointer-events:auto !important;
  }

  .topbar nav ul.sub-menu > li{
    display:block !important;
    position:relative !important;
    width:100% !important;
    margin:0 !important;
    padding:0 !important;
  }

  .topbar nav ul.sub-menu > li > a{
    display:block !important;
    width:100% !important;
    box-sizing:border-box;
    padding:10px 12px !important;
    white-space:nowrap;
    border-radius:8px;
  }

  /* Nested child menu flies to the right */
  .topbar nav ul.sub-menu ul.sub-menu{
    top:-8px !important;
    left:calc(100% + 8px) !important;
  }
}


/* 1.3.12 — nested mobile navigation + hamburger before socials */
@media (max-width:720px){
  .headerSocials{
    display:flex;
    align-items:center;
    gap:8px;
    flex-shrink:0;
  }

  /* Hamburger appears first, followed by social icons */
  .headerSocials .hamburger{
    order:0;
    display:inline-flex;
  }
  .headerSocials .socialButton{
    order:1;
  }

  .mobilemenu{
    display:none;
    padding:8px 0 16px;
  }

  .mobilemenu.open{
    display:block;
  }

  .mobilemenu ul,
  .mobilemenu .mobile-primary-menu{
    display:block !important;
    list-style:none;
    margin:0;
    padding:0;
  }

  .mobilemenu li{
    display:block;
    width:100%;
    margin:0;
    padding:0;
  }

  .mobilemenu a{
    display:block;
    width:100%;
    box-sizing:border-box;
    margin-top:8px;
    padding:12px 14px;
    border-radius:12px;
    border:1px solid var(--line);
    background:rgba(255,255,255,.78);
    color:var(--ink);
  }

  .mobilemenu a:hover{
    background:#fff;
  }

  /* Child menu levels are visible inside the opened mobile menu */
  .mobilemenu .sub-menu{
    display:block !important;
    position:static !important;
    visibility:visible !important;
    opacity:1 !important;
    pointer-events:auto !important;
    width:auto !important;
    min-width:0 !important;
    max-width:none !important;
    margin:0 0 0 16px !important;
    padding:0 !important;
    background:transparent !important;
    border:0 !important;
    border-radius:0 !important;
    box-shadow:none !important;
  }

  .mobilemenu .sub-menu a{
    margin-top:6px;
    padding:10px 14px;
    font-size:13px;
    background:rgba(31,122,58,.05);
    border-color:rgba(31,122,58,.12);
  }

  .mobilemenu .sub-menu .sub-menu{
    margin-left:16px !important;
  }

  /* Suppress desktop dropdown arrows inside the mobile drawer */
  .mobilemenu .menu-item-has-children > a::after{
    display:none !important;
  }
}


/* 1.3.13 — forgiving desktop dropdown hover target */
@media (min-width:721px){
  /*
   * Previous dropdown used top: calc(100% + 8px), leaving an 8px dead zone.
   * Crossing that gap ended :hover before the pointer reached the submenu.
   * Anchor the submenu directly to the parent and create the visual spacing
   * with internal padding instead.
   */
  .topbar nav ul.sub-menu,
  .topbar nav .menu ul.sub-menu{
    top:100% !important;
    margin-top:0 !important;
    padding-top:16px !important;
    border-top-color:transparent !important;
    background-clip:padding-box;
  }

  /* Invisible hover bridge adds a little extra forgiveness below the parent. */
  .topbar nav li.menu-item-has-children > ul.sub-menu::before{
    content:"";
    position:absolute;
    left:0;
    right:0;
    top:-12px;
    height:16px;
  }

  /* Keep nested flyouts connected too. */
  .topbar nav ul.sub-menu ul.sub-menu{
    top:-8px !important;
    left:100% !important;
    margin-left:0 !important;
    padding-left:16px !important;
  }
}


/* 1.3.14 — navigation is entirely WordPress-menu controlled */
@media (max-width:720px){
  .mobilemenu ul,
  .mobilemenu .mobile-primary-menu{
    display:block !important;
    list-style:none;
    margin:0;
    padding:0;
  }
  .mobilemenu li{display:block;width:100%;margin:0;padding:0;}
  .mobilemenu .sub-menu{
    display:block !important;
    position:static !important;
    visibility:visible !important;
    opacity:1 !important;
    pointer-events:auto !important;
    width:auto !important;
    min-width:0 !important;
    max-width:none !important;
    margin:0 0 0 16px !important;
    padding:0 !important;
    background:transparent !important;
    border:0 !important;
    box-shadow:none !important;
  }
  .mobilemenu .sub-menu a{
    margin-top:6px;
    padding:10px 14px;
    font-size:13px;
    background:rgba(31,122,58,.05);
    border-color:rgba(31,122,58,.12);
  }
}


/* 1.3.15 — sitewide mobile/responsive hardening */

/* Global overflow protection */
html,
body{
  max-width:100%;
  overflow-x:hidden;
}

img,
video,
iframe,
svg{
  max-width:100%;
}

img,
video{
  height:auto;
}

/* Prevent long text/URLs from forcing horizontal scroll */
body,
p,
li,
a,
span,
strong,
h1,h2,h3,h4,h5,h6{
  overflow-wrap:anywhere;
}

/* Bold Builder should respect the viewport */
.davis-builder-content,
.davis-builder-content .bt_bb_wrapper,
.davis-builder-content .bt_bb_section,
.davis-builder-content .bt_bb_row,
.davis-builder-content .bt_bb_cell,
.davis-builder-content .bt_bb_column,
.bt_bb_wrapper,
.bt_bb_section,
.bt_bb_row,
.bt_bb_cell,
.bt_bb_column{
  max-width:100%;
  min-width:0;
}

.bt_bb_row{
  width:100%;
}

/* Tables and embedded apps shouldn't blow out the page */
table{
  max-width:100%;
}

.loyaltyFrame,
iframe{
  width:100% !important;
}

/* Theme/editorial layouts */
@media (max-width:900px){

  .wrap{
    width:100%;
    max-width:100%;
    padding-left:20px;
    padding-right:20px;
  }

  .topbar-inner{
    gap:10px;
  }

  .brand{
    min-width:0;
    flex:1 1 auto;
  }

  .brand .meta{
    min-width:0;
  }

  .brand .meta strong,
  .brand .meta span{
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
  }

  /* All major 2-column Davis layouts collapse cleanly */
  .grid,
  .panel,
  .panel.reverse,
  .editorialPanel,
  .editorialPanel.reverse,
  .pageIntroGrid,
  .organicShowcase,
  .splitHero,
  .footerGrid,
  .siteFooterGrid{
    grid-template-columns:1fr !important;
    direction:ltr !important;
  }

  .panel > *,
  .panel.reverse > *,
  .editorialPanel > *,
  .editorialPanel.reverse > *{
    direction:ltr !important;
  }

  .panelMedia,
  .editorialMedia,
  .organicMedia,
  .splitVisual{
    min-height:300px;
  }

  .panelBody,
  .editorialBody,
  .organicCopy,
  .splitCopy{
    padding:30px 24px;
  }

  .panelBodyInner,
  .editorialBodyInner,
  .organicCopyInner,
  .splitCopyInner{
    max-width:none;
  }

  .organicStack{
    position:static;
    width:auto;
    padding:18px;
    background:rgba(255,255,255,.65);
  }

  .organicCard{
    box-shadow:none;
  }

  .miniTiles,
  .miniInfoGrid,
  .infoGrid,
  .featureGrid,
  .tileGrid{
    grid-template-columns:1fr !important;
  }

  .cleanRow{
    grid-template-columns:1fr !important;
    gap:6px;
  }

  .ad-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }

  /* Cover/photo sections */
  .coverHero{
    min-height:58vh;
  }

  .coverHeroInner{
    padding:0;
  }

  .coverHeroCard,
  .photoHeaderCard{
    width:100%;
    max-width:none;
    border-radius:0;
    margin:0;
  }

  .coverHeroCard h1{
    font-size:clamp(2.3rem,8vw,3.5rem);
  }

  .photoHeader,
  .photoHeaderContent{
    min-height:360px;
  }

  .photoHeaderCard h2{
    font-size:clamp(2rem,7vw,3rem);
  }

  /* Hero title remains readable without becoming absurdly tall */
  .subHero{
    min-height:260px;
    height:auto;
  }

  .subHeroOverlay{
    min-height:260px;
  }

  .subHero h1{
    font-size:clamp(2.4rem,10vw,4.4rem) !important;
    line-height:1 !important;
    padding:22px 10px;
  }

  /* Button groups wrap instead of overflowing */
  .hero-actions,
  .tightActions,
  .tileMeta,
  .badges{
    display:flex;
    flex-wrap:wrap;
  }

  .btn{
    max-width:100%;
    white-space:normal;
    text-align:center;
  }
}

@media (max-width:720px){

  /* Header */
  .topbar-inner{
    padding:9px 0;
  }

  .brand img,
  .custom-logo{
    height:36px;
  }

  .brand .meta span{
    display:none;
  }

  .brand .meta strong{
    font-size:12px;
  }

  .headerSocials{
    gap:5px;
  }

  .headerSocials .hamburger,
  .headerSocials .socialButton{
    width:34px;
    height:34px;
    flex:0 0 34px;
  }

  .socialButton svg{
    width:16px;
    height:16px;
  }

  /* Mobile menu */
  .mobilemenu{
    width:100%;
    max-height:calc(100vh - 76px);
    overflow-y:auto;
    -webkit-overflow-scrolling:touch;
  }

  .mobilemenu ul,
  .mobilemenu li{
    max-width:100%;
  }

  .mobilemenu a{
    white-space:normal;
    overflow-wrap:break-word;
  }

  .mobilemenu .sub-menu{
    margin-left:12px !important;
    padding-left:10px !important;
    border-left:2px solid rgba(31,122,58,.16) !important;
  }

  /* One column for all standard content grids */
  .ad-grid,
  .featureGrid,
  .tileGrid,
  .miniTiles,
  .miniInfoGrid,
  .infoGrid{
    grid-template-columns:1fr !important;
  }

  /* Full width images above copy on mobile */
  .editorialPanel,
  .panel,
  .organicShowcase{
    display:flex !important;
    flex-direction:column !important;
  }

  .editorialMedia,
  .panelMedia,
  .organicMedia{
    width:100%;
    min-height:240px;
  }

  .editorialMedia img,
  .panelMedia img,
  .organicMedia > img{
    width:100%;
    height:100%;
    min-height:240px;
    object-fit:cover;
  }

  .editorialBody,
  .panelBody,
  .organicCopy{
    width:100%;
    padding:26px 20px;
  }

  .editorialBody h2,
  .panelBody h2,
  .organicCopy h2{
    font-size:clamp(1.8rem,8vw,2.6rem);
  }

  /* Custom Raw HTML blocks generated for Davis menus */
  .davis-breakfast-menu .menu-grid,
  .davis-lunch-menu .menu-grid,
  .davis-specials .grid,
  .davis-organic .brand-grid,
  .davis-organic .fresh-local,
  .davis-organic .fresh-local-columns,
  .davis-organic .feature{
    grid-template-columns:1fr !important;
  }

  .davis-breakfast-menu .bread-note,
  .davis-breakfast-menu .extras,
  .davis-lunch-menu .build-note,
  .davis-lunch-menu .extras,
  .davis-specials .hot-lunch,
  .davis-specials .soup,
  .davis-organic .feature{
    grid-column:auto !important;
  }

  .davis-breakfast-menu .extras-grid,
  .davis-lunch-menu .extras-grid{
    grid-template-columns:1fr !important;
  }

  .davis-breakfast-menu .menu-wrap,
  .davis-lunch-menu .menu-wrap,
  .davis-specials .wrap,
  .davis-organic .wrap{
    width:100%;
    max-width:100%;
    padding-left:18px;
    padding-right:18px;
  }

  .davis-breakfast-menu .menu-item,
  .davis-lunch-menu .menu-item,
  .davis-specials .item,
  .davis-organic .brand{
    min-width:0;
  }

  .davis-specials .featured-top,
  .davis-specials .item-head{
    flex-wrap:wrap;
  }

  .davis-specials .featured .price,
  .davis-specials .item-price{
    white-space:normal;
  }

  .davis-organic .product{
    align-items:flex-start;
    flex-direction:column;
    gap:4px;
  }

  .davis-organic .product-type{
    text-align:left;
  }

  /* Footer */
  .siteFooterGrid{
    grid-template-columns:1fr !important;
  }

  .siteFooterBottom{
    display:block;
  }

  .siteFooterBottom span{
    display:block;
    margin-top:5px;
  }
}

@media (max-width:420px){
  .wrap{
    padding-left:14px;
    padding-right:14px;
  }

  .brand .meta{
    display:none;
  }

  .headerSocials .hamburger,
  .headerSocials .socialButton{
    width:32px;
    height:32px;
    flex-basis:32px;
  }

  .coverHeroCard,
  .photoHeaderCard{
    padding:20px 16px;
  }

  .pageIntro{
    padding-top:42px;
  }

  .pageFact{
    padding:14px;
  }
}


/* 1.3.16 — footer Darklup toggle */
.davis-theme-toggle-wrap{
  width:100%;
  display:flex;
  justify-content:center;
  padding:18px 20px 6px;
}

.davis-theme-toggle{
  appearance:none;
  -webkit-appearance:none;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:9px;
  min-height:40px;
  padding:9px 15px;
  border:1px solid rgba(255,255,255,.24);
  border-radius:999px;
  background:rgba(255,255,255,.08);
  color:inherit;
  font:inherit;
  font-size:13px;
  font-weight:700;
  letter-spacing:.02em;
  cursor:pointer;
  transition:background .18s ease, border-color .18s ease, transform .18s ease;
}

.davis-theme-toggle:hover{
  background:rgba(255,255,255,.14);
  border-color:rgba(255,255,255,.38);
  transform:translateY(-1px);
}

.davis-theme-toggle:focus-visible{
  outline:2px solid #f2c94c;
  outline-offset:3px;
}

.davis-theme-toggle-icon{
  width:18px;
  text-align:center;
  font-size:17px;
  line-height:1;
}

@media(max-width:720px){
  .davis-theme-toggle-wrap{
    padding-top:16px;
  }

  .davis-theme-toggle{
    min-height:42px;
  }
}


/* 1.3.17 — mobile navigation scroll lock */
@media (max-width:720px){
  .mobilemenu{
    max-height:calc(100dvh - 76px) !important;
    overflow-y:auto !important;
    overflow-x:hidden !important;
    overscroll-behavior-y:contain;
    -webkit-overflow-scrolling:touch;
    touch-action:pan-y;
  }

  body.mobile-menu-open{
    overflow:hidden !important;
    overscroll-behavior:none;
    touch-action:none;
  }

  body.mobile-menu-open .mobilemenu{
    touch-action:pan-y;
  }
}


/* 1.3.18 — final footer credits */
.davis-kcs-credit{
  display:inline-flex;
  align-items:center;
  gap:7px;
  color:inherit;
  text-decoration:none;
  font-weight:600;
}

.davis-kcs-credit:hover{
  text-decoration:underline;
}

.davis-kcs-credit img{
  width:22px;
  height:22px;
  object-fit:contain;
  border-radius:4px;
  flex:0 0 22px;
}

@media(max-width:720px){
  .davis-kcs-credit{
    justify-content:center;
    flex-wrap:wrap;
  }
}


/* 1.3.19 — cleaned final footer */
.siteFooterBottom{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
}

.siteFooterBottomLeft,
.siteFooterBottomRight{
  display:flex;
  align-items:center;
  gap:18px;
  min-width:0;
}

.siteFooterBottomLeft a{
  color:inherit;
  text-decoration:none;
}

.siteFooterBottomLeft a:hover{
  text-decoration:underline;
}

.siteFooterBottomRight{
  justify-content:flex-end;
}

.siteFooterBottom .davis-theme-toggle{
  flex:0 0 auto;
  margin:0;
}

.siteFooterBottom .davis-kcs-credit{
  flex:0 1 auto;
}

.siteFooterBottom .davis-kcs-credit img{
  width:22px;
  height:22px;
}

@media(max-width:900px){
  .siteFooterBottom{
    flex-direction:column;
    align-items:flex-start;
    gap:16px;
  }

  .siteFooterBottomLeft,
  .siteFooterBottomRight{
    width:100%;
    justify-content:flex-start;
    flex-wrap:wrap;
  }
}

@media(max-width:520px){
  .siteFooterBottomLeft,
  .siteFooterBottomRight{
    flex-direction:column;
    align-items:flex-start;
    gap:10px;
  }

  .siteFooterBottom .davis-kcs-credit{
    align-items:center;
  }
}


/* 1.3.20 — footer final alignment */
.siteFooterBottom{
  display:grid !important;
  grid-template-columns:1fr auto 1fr !important;
  align-items:center !important;
  gap:24px !important;
}

.siteFooterBottomLeft{
  display:flex !important;
  align-items:center !important;
  justify-content:flex-start !important;
  width:auto !important;
}

.siteFooterBottomRight{
  display:contents !important;
}

.siteFooterBottom .davis-theme-toggle{
  grid-column:2 !important;
  justify-self:center !important;
  margin:0 !important;
}

.siteFooterBottom .davis-kcs-credit{
  grid-column:3 !important;
  justify-self:end !important;
  margin:0 !important;
}

@media(max-width:900px){
  .siteFooterBottom{
    display:flex !important;
    flex-direction:column !important;
    align-items:center !important;
    gap:16px !important;
  }

  .siteFooterBottomLeft{
    justify-content:center !important;
  }

  .siteFooterBottomRight{
    display:contents !important;
  }

  .siteFooterBottom .davis-theme-toggle,
  .siteFooterBottom .davis-kcs-credit{
    justify-self:auto !important;
  }

  .siteFooterBottom .davis-kcs-credit{
    justify-content:center !important;
    text-align:center;
  }
}


/* 1.3.22 — emphasize footer contact link */
.siteFooter a.footer-contact-link{
  color:#c9252c !important;
  font-weight:700;
  text-decoration:none;
}

.siteFooter a.footer-contact-link:hover,
.siteFooter a.footer-contact-link:focus{
  color:#a91f25 !important;
  text-decoration:underline;
}


/* 1.3.23 — simplified footer brand: medium logo only */
.siteFooter .siteFooterBrandLogoOnly{
  display:block !important;
  margin-bottom:22px;
}

.siteFooter .siteFooterBrandLogoOnly > div{
  display:none !important;
}

.siteFooter .siteFooterBrandLogoOnly img{
  width:180px !important;
  max-width:100%;
  height:auto !important;
  display:block;
}

@media(max-width:720px){
  .siteFooter .siteFooterBrandLogoOnly img{
    width:165px !important;
  }
}
