@font-face { font-family: "Oakwood Lancelot"; src: url("/fonts/oakwood-lancelot-regular.ttf") format("truetype"); font-style: normal; font-weight: 400; font-display: swap; }
/* Oakwood Pharmacy: a fine-line Austin lavender adaptation. Loaded after shared styles. */
:root {
  --oak-plum: #6e0d31;
  --oak-ink: #322329;
  --oak-lilac: #cfc3b5;
  --oak-pale: #f3eee8;
  --oak-mist: #e9e2d9;
  --oak-paper: #fffcf8;
  --oak-line: #d8ccc1;
  --oak-green: #43996d;
}
body { background: var(--oak-paper); color: var(--oak-ink); font-family: "Inter", sans-serif; }
body .site-header { border-color: var(--oak-line); background: var(--oak-paper); }
body .topbar { background: var(--oak-lilac); color: var(--oak-ink); }
body .site-header a, body .primary-nav button { color: var(--oak-ink); font-family: "Inter", sans-serif; font-weight: 500; }
body .site-header .btn-primary, body .header-ctas .btn-primary { background: var(--oak-plum); border-color: var(--oak-plum); color: var(--oak-paper); }
body .site-header .btn-outline { border-color: var(--oak-plum); color: var(--oak-plum); }
body .site-footer { background: var(--oak-plum); }
/* Oakwood's own type system: Lancelot Regular serif headings on every page,
   including shared inner-page components and nested emphasized words. */
html body :is(h1, h2, h3, h4, h5, h6) {
  font-family: "Oakwood Lancelot", Georgia, serif !important;
  font-weight: 400 !important;
  letter-spacing: normal !important;
}
html body :is(h1, h2, h3, h4, h5, h6) :is(span, strong, em, b, i) {
  font-family: inherit !important;
  font-weight: 400 !important;
  letter-spacing: inherit !important;
}

/* One responsive scale for homepage section titles; compact benefit labels,
   service-card titles, and footer headings retain their smaller hierarchy. */
html body .oakwood-home {
  --oak-home-section-title-size: clamp(46px, 5.1vw, 70px);
}
html body .oakwood-home :is(.oak-story h2, #oak-services-title, #reviews-h, #portal-promo-h, #hours-h) {
  font-size: var(--oak-home-section-title-size);
  line-height: 1.12;
  letter-spacing: normal;
}
html body .oakwood-home .oak-hero h1 {
  font-size: clamp(56px, 5.8vw, 78px);
  line-height: 1.08;
}
.oak-services-head { container-type: inline-size; }
html body .oakwood-home #oak-services-title { white-space: nowrap; font-size: min(var(--oak-home-section-title-size), 8.3cqw); }

/* Lancelot has one weight. Strengthen its strokes without changing the
   approved font, type sizes, or heading spacing. */
html body :is(h1, h2, h3, h4, h5, h6) {
  -webkit-text-stroke: .8px currentColor;
}
html body .oakwood-home :is(h1, h2, h3, h4, h5, h6) {
  -webkit-text-stroke: 1px currentColor;
}
body .btn:focus-visible, body a:focus-visible, body button:focus-visible { outline: 3px solid #7b2443; outline-offset: 3px; }

/* A modest size increase across the shared pages and smaller homepage titles. */
html body main:not(.oakwood-home) h1 { font-size: clamp(2.1rem, 4.9vw, 3.3rem); }
html body main:not(.oakwood-home) h2 { font-size: clamp(1.65rem, 3.3vw, 2.3rem); }
html body main:not(.oakwood-home) h3 { font-size: 1.32rem; }
html body :is(h4, h5, h6) { font-size: 1.1rem; }
html body .oak-beliefs h2 { font-size: 24px; }
html body .oak-service-panel-body h3 { font-size: clamp(24px, 2.4vw, 30px); }
html body .oakwood-home .oak-hero-copy { font-size: 18px; }
html body main .native-app-hero h1 { font-size: clamp(2.95rem, 6.5vw, 6rem); }
html body main .portal-install h2 { font-size: clamp(2.4rem, 5.4vw, 4.6rem); }
html body main .staff-row-body h3 { font-size: clamp(1.43rem, 2.6vw, 1.76rem); }
html body main .soda-menu-group h3 { font-size: clamp(1.48rem, 2.2vw, 1.87rem); }
/* Keep only the three inherited feature surfaces in Oakwood lavender/plum. */
body main :is(.soda-menu, .rx-receive-section, #compounding-specialties) { background: var(--oak-mist); }
body main :is(.soda-menu, .rx-receive-section, #compounding-specialties) h2 { color: var(--oak-plum); }
body main .soda-menu-group li, body main #compounding-specialties .specialty-card {
  background: var(--oak-paper); border-color: var(--oak-line);
}
body main #compounding-specialties .specialty-card[open] { border-color: var(--oak-plum); }
body main #compounding-specialties { --specialty-hover-bg: var(--oak-plum); --specialty-hover-ink: var(--oak-paper); --specialty-focus: var(--oak-plum); }
body main #compounding-specialties .specialty-callbar a:hover { background: var(--oak-pale); }

/* The shared template's patient-action rules are intentionally assertive.
   Keep these final shell overrides specific so the compact Oakwood masthead
   cannot fall back to the source site's heavy black treatment. */
html body .topbar { background-color: var(--oak-plum) !important; color: #fffcf8 !important; }
html body .topbar a, html body .topbar .topbar-language-note,
html body .topbar .language-switch button { color: #fffcf8 !important; }
html body .topbar .language-switch button[aria-pressed="true"],
html body .topbar .language-switch button.active { background: #e5ded5 !important; color: #322329 !important; }
html body .topbar .topbar-language-note { border-left-color: rgba(255,252,248,.35) !important; }
html body .site-header { border-top: 0 !important; border-bottom: 1px solid #d8ccc1 !important; }
html body .site-header .btn { border: 1px solid #6e0d31 !important; box-shadow: none !important; }
html body .site-header .btn-primary { background: #6e0d31 !important; color: #fffcf8 !important; }
html body .site-header .btn-outline { background: transparent !important; color: #6e0d31 !important; }
/* Match Hyde/Rosedale's horizontal logo → categories → Rx actions header.
   Oakwood has no universal phone, so the shared drawer trigger takes its
   place on compact screens. No navigation category is moved into More. */
@media (max-width: 1279px) {
  .site-header .menu-btn { margin-left: auto; }
}
@media (min-width: 1280px) {
  .site-header .dd-menu { left: 0; transform: none; }
}
/* The shared layout suppresses Spanish navigation at 1280–1599. Oakwood's
   longer six-category bilingual navigation instead uses a contained second
   row beside the logo, preserving the shared desktop links and actions. */
@media (min-width: 1280px) and (max-width: 1599px) {
  html[lang="es"] body .site-header .wrap {
    display: grid; grid-template-columns: auto minmax(0, 1fr);
    grid-template-rows: auto auto; column-gap: 16px; row-gap: 0;
  }
  html[lang="es"] body .site-header .logo-link { grid-column: 1; grid-row: 1 / 3; }
  html[lang="es"] body .site-header .primary-nav {
    display: block; grid-column: 2; grid-row: 2; justify-self: end;
    width: max-content; max-width: 100%; margin-left: 0;
  }
  html[lang="es"] body .site-header .header-ctas {
    display: flex; grid-column: 2; grid-row: 1; justify-self: end;
  }
  html[lang="es"] body .site-header .menu-btn { display: none !important; }
  html[lang="es"] body .site-header .dd-menu {
    left: auto; right: 0; transform: none;
    max-height: calc(100dvh - 260px);
  }
}

.oakwood-home { overflow: hidden; background: var(--oak-paper); color: var(--oak-ink); }
.oak-wrap { width: min(1120px, calc(100% - 48px)); margin-inline: auto; }
.oak-hero { min-height: 625px; position: relative; isolation: isolate; display: flex; align-items: center; overflow: visible; background: #e5ded5; }
.oak-hero-image { position: absolute; inset: 0 0 0 24%; z-index: -2; background-position: var(--oak-hero-position, center 15%); background-size: cover; background-repeat: no-repeat; mask-image: linear-gradient(90deg, transparent, #000 24%); }
.oak-hero-image-current { background-image: url("/images/oakwood-hero-consultation-044.webp"); }
.oak-hero-image-next { opacity: 0; transition: opacity .95s ease; }
.oak-hero-image-next.is-visible { opacity: 1; }
.oak-hero::after { content:""; position:absolute; inset:0; z-index:-1; background: linear-gradient(90deg, rgba(229,222,213,.94) 0%, rgba(229,222,213,.86) 40%, rgba(229,222,213,.35) 70%, rgba(229,222,213,.12) 100%); }
.oak-hero-inner { padding: clamp(66px, 6.5vw, 90px) 0 clamp(82px, 6.5vw, 96px); }
.oak-eyebrow { position:relative; display: inline-flex; align-items: center; gap: 8px; margin: 0 0 18px; border:0; border-radius:0; padding:0 0 14px; color:var(--oak-plum); font-size: 13px; font-weight: 600; letter-spacing: .01em; background:transparent; }
.oak-eyebrow::after { content:""; position:absolute; left:0; bottom:0; width:48px; height:2px; background:var(--oak-plum); }
.oak-eyebrow svg { width: 16px; height: 16px; fill:none; stroke:currentColor; stroke-width:1.8; }
.oakwood-home .oak-eyebrow { font-family:"Inter",sans-serif; font-size:12px; font-weight:700; letter-spacing:.15em; text-transform:uppercase; }
.oak-hero h1 { max-width: 530px; margin: 0; font-size: clamp(44px, 3.7vw, 56px); line-height: 1.08; color: var(--oak-ink); }
.oak-hero-copy { max-width: 505px; margin: 19px 0 26px; font-size: 17px; line-height: 1.68; }
.oak-hero-message { max-width: 535px; min-height: 275px; transition: opacity .35s ease; }
.oak-hero-message.is-changing { opacity: 0; }
.oak-hero-service-link { display: inline-flex; align-items: center; gap: 12px; min-height: 44px; margin: -13px 0 17px; padding: 0 3px; color: var(--oak-plum); font-size: 15px; font-weight: 700; text-decoration: none; background-image: linear-gradient(currentColor, currentColor); background-size: calc(100% - 6px) 1px; background-position: center calc(50% + .65em); background-repeat: no-repeat; }
.oak-hero-service-link:hover { color: #322329; }
.oak-hero-actions { display: flex; flex-wrap: wrap; gap: 12px; }
.oakwood-home .oak-hero .oak-pill { min-height: 55px; display:inline-flex; align-items:center; gap:10px; padding: 0 20px; border: 0 !important; border-radius: 99px; background-color: #fffcf8 !important; color:#322329 !important; box-shadow: none; font-weight: 700; text-decoration: none; transition: transform .25s ease, background .25s ease; }
.oak-pill svg { width:19px; height:19px; fill:none; stroke:currentColor; stroke-width:1.8; }
.oak-pill:hover { transform: translateY(-3px); background: #fff; color:var(--oak-plum); }
.oak-hero-controls { position: absolute; bottom: 56px; right: max(24px, calc((100% - 1120px)/2)); z-index: 2; display: none; align-items: center; gap: 7px; }
.oak-hero[data-hero-ready] .oak-hero-controls { display: flex; }
.oak-hero-dots { display: flex; align-items: center; padding: 0 3px; border-radius: 99px; background: rgba(255,252,248,.72); }
.oak-hero-controls button { display: inline-grid; flex: none; place-items: center; width: 44px; height: 44px; padding: 0; border: 1px solid rgba(110,13,49,.5); border-radius: 50%; background: rgba(255,252,248,.7); color: var(--oak-plum); cursor: pointer; font: 600 19px "Inter",sans-serif; }
.oak-hero-controls button:hover, .oak-hero-controls button:focus-visible { background: #fffcf8; border-color: var(--oak-plum); }
.oak-hero-controls .oak-hero-dot { border: 0; background: transparent; }
.oak-hero-dot::after { content: ""; width: 8px; height: 8px; border-radius: 50%; background: rgba(110,13,49,.45); transition: width .2s ease, background .2s ease; }
.oak-hero-dot[aria-current="true"]::after { width: 20px; background: var(--oak-plum); }
.oak-hero-play { margin-left: 9px; }
@media (min-width: 901px) { .oak-hero-controls { bottom: 100px; } }
@media (prefers-reduced-motion: reduce) {
  .oak-hero-image-next, .oak-hero-message, .oak-hero-dot::after { transition: none; }
}

.oak-beliefs { position: relative; z-index: 3; display: grid; grid-template-columns: repeat(4, 1fr); gap: 24px; margin-top: -54px; padding: clamp(22px, 3.5vw, 34px); border:1px solid var(--oak-line); border-radius: 20px; background: rgba(255,252,248,.92); box-shadow: 0 18px 44px rgba(43,23,51,.18); }
.oak-beliefs article { display:block; min-width:0; padding: 8px 0; }
.oak-beliefs article + article { border-left: 1px solid var(--oak-line); padding-left: 24px; }
.oak-line-icon { flex: 0 0 42px; height:42px; border-radius: 12px; display:grid; place-items:center; background: #ece1d7; color: var(--oak-ink); font-size: 25px; font-family: Georgia, serif; }
.oak-beliefs h2 { display:flex; align-items:center; gap:9px; margin: 2px 0 7px; font: 400 16px/1.25 "Oakwood Lancelot", Georgia, serif; }
.oak-beliefs h2 > span { min-width:0; overflow-wrap:break-word; }
.oak-beliefs article:nth-child(2) h2 > span { white-space:nowrap; }
.oak-beliefs h2 svg { flex:0 0 21px; width:21px; height:21px; fill:none; stroke:var(--oak-plum); stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
.oak-beliefs p { margin:12px 0 0; color:#5c5350; font-size:16px; line-height:1.65; }

.oak-story { display: grid; grid-template-columns: 1fr 1fr; align-items:center; gap: clamp(48px, 9vw, 128px); padding: 116px 0 120px; }
.oak-story-photo { position:relative; isolation:isolate; min-height:0; aspect-ratio:813 / 500; border-radius: 2px 84px 2px 2px; background:transparent; }
.oak-story-photo::before { content:""; position:absolute; inset:-18px -18px 22px 28px; z-index:-1; border-radius:inherit; background:var(--oak-lilac); }
.oak-story-photo img { width:100%; height:100%; object-fit:cover; display:block; border-radius:inherit; }
.oak-kicker { margin:0 0 17px; color:var(--oak-plum); font-size: 12px; font-weight: 700; letter-spacing: .15em; text-transform: uppercase; }
.oak-story h2, .oak-section-head h2 { margin:0; color:var(--oak-ink); font-size:clamp(39px,4vw,58px); line-height:1.1; }
.oak-story-copy > p:not(.oak-kicker) { max-width: 465px; margin: 23px 0 25px; color:#5b4d50; font-size:16px; line-height:1.75; }
.oak-text-link { display:inline-flex; align-items:center; gap:12px; padding-bottom: 5px; border-bottom:1px solid var(--oak-plum); color:var(--oak-plum); font-size:14px; font-weight:700; text-decoration:none; transition: gap .2s ease; }
.oak-text-link:hover { gap:18px; }

.oak-services { padding: 92px 0; background: linear-gradient(170deg, var(--oak-pale) 0%, var(--oak-paper) 42%, var(--oak-mist) 100%); }
.oak-services-head { max-width: 1120px; margin-bottom: 38px; text-align: left; }
.oak-services-head .oak-kicker { margin-bottom: 13px; }
.oak-services-head h2 { max-width: 640px; margin: 0; color: var(--oak-ink); font: 400 clamp(32px, 2.45vw, 35.2px)/1.15 "Oakwood Lancelot", Georgia, serif; letter-spacing: normal; }
.oak-services-head > p:last-child { max-width: 630px; margin: 18px 0 0; color: #5b4d50; font-size: 16px; line-height: 1.6; }
.oak-service-explorer { display: grid; grid-template-columns: minmax(300px, 380px) 1fr; align-items: stretch; gap: 26px; }
.oak-service-tabs { display: flex; flex-direction: column; gap: 8px; }
.oak-service-tablist { display: contents; }
.oak-service-tab { display: flex; align-items: center; width: 100%; gap: 13px; padding: 12px 16px; border: 1px solid var(--oak-line); border-radius: 13px; background: var(--oak-paper); color: var(--oak-ink); cursor: pointer; font: 500 1rem/1.2 "Inter", sans-serif; text-align: left; text-decoration: none; transition: border-color .16s ease, background .16s ease, color .16s ease, transform .16s ease, box-shadow .16s ease; }
.oak-service-icon { flex: none; display: inline-grid; width: 40px; height: 40px; place-items: center; border-radius: 11px; background: #eadbd0; color: var(--oak-plum); }
.oak-service-icon svg { width: 24px; height: 24px; fill: none; stroke: currentColor; stroke-width: 1.5; stroke-linecap: round; stroke-linejoin: round; }
.oak-service-tab-name { flex: 1; min-width: 0; }
.oak-service-tab > b { flex: none; color: var(--oak-plum); font-size: 19px; font-weight: 300; opacity: 0; transform: translateX(-4px); transition: opacity .16s ease, transform .16s ease; }
.oak-service-tab:hover { border-color: var(--oak-plum); box-shadow: 0 8px 20px rgba(110,13,49,.12); transform: translateX(3px); }
.oak-service-tab:hover > b, .oak-service-tab.is-active > b { opacity: 1; transform: none; }
.oak-service-tab.is-active { border-color: #aea292; background: var(--oak-lilac); box-shadow: 0 10px 26px rgba(110,13,49,.19); color: var(--oak-ink); }
.oak-service-tab.is-active .oak-service-icon { background: rgba(110,13,49,.12); color: var(--oak-ink); }
.oak-service-tab:focus-visible { outline: 3px solid #7b2443; outline-offset: 2px; }
.oak-service-all { border-style: dashed; }
.oak-service-panels { position: relative; min-height: 430px; }
.oak-service-panel { position: absolute; inset: 0; display: grid; grid-template-rows: minmax(0,1fr) auto; overflow: hidden; border: 1px solid var(--oak-line); border-radius: 20px; background: var(--oak-paper); box-shadow: 0 18px 44px rgba(110,13,49,.16); }
.oak-service-panel[hidden] { display: none; }
.oak-service-panel.is-active { animation: oak-service-fade .35s ease; }
@keyframes oak-service-fade { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: none; } }
.oak-service-media { min-height: 0; }
.oak-service-media img { display: block; width: 100%; height: 100%; object-fit: cover; }
.oak-service-panel-body { box-sizing: border-box; display: flex; flex-direction: column; align-items: flex-start; min-height: 232px; gap: 10px; padding: clamp(20px,3vw,30px); }
.oak-service-panel-body h3 { margin: 0; color: var(--oak-ink); font: 400 clamp(22px,2.2vw,27px)/1.1 "Oakwood Lancelot", Georgia, serif; letter-spacing: normal; }
.oak-service-panel-body p { max-width: 58ch; margin: 0; color: #5b4d50; font-size: 15px; line-height: 1.55; }
.oak-service-cta { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; margin-top: 5px; padding: 0 20px; border-radius: 999px; background: #cfc3b5; color: var(--oak-ink); font-size: 14px; font-weight: 700; text-decoration: none; transition: transform .16s ease, background .16s ease; }
.oak-service-cta:hover { transform: translateY(-2px); background: #e5ded5; }
.oak-outline-btn { display:inline-flex; align-items:center; gap:21px; min-height:52px; padding:0 21px; border:1px solid var(--oak-plum); color:var(--oak-plum); font-size:14px; font-weight:700; text-decoration:none; transition:background .2s ease,color .2s ease,gap .2s ease; }
.oak-outline-btn:hover { background:var(--oak-plum); color:var(--oak-paper); gap:28px; }

/* Broad Austin city-area maps remain on the dedicated locations page. The
   homepage is intentionally a short, single-surface branch selector: no
   fictional street address or implied branch pin is added here. */
.oak-locations-home { padding:92px 0 94px; position:relative; overflow:hidden; background:linear-gradient(135deg,#e6d7cb 0%,#f5efe8 47%,#ddcabe 100%); }
.oak-locations-home::before,.oak-locations-home::after { content:""; position:absolute; pointer-events:none; border:1px solid rgba(110,13,49,.17); border-radius:50%; }
.oak-locations-home::before { width:590px; height:590px; right:-290px; top:-240px; }.oak-locations-home::after { width:340px; height:340px; left:-210px; bottom:-180px; }
.oak-location-home-head { position:relative; z-index:1; display:grid; grid-template-columns:minmax(0,1fr) minmax(260px,370px); column-gap:90px; align-items:end; margin-bottom:31px; }
.oak-location-home-head .oak-kicker { grid-column:1; }.oak-location-home-head h2 { grid-column:1; margin:0; color:var(--oak-plum); font:400 clamp(48px,5vw,68px)/.92 "Oakwood Lancelot",Georgia,serif; }
.oak-location-home-head>p:last-child { grid-column:2; grid-row:1 / span 2; margin:0 0 4px; color:#5b4d50; font-size:16px; line-height:1.7; }
.oak-location-finder { position:relative; z-index:1; overflow:hidden; border:1px solid rgba(110,13,49,.25); border-radius:28px 28px 28px 4px; background:rgba(255,252,248,.93); box-shadow:0 20px 42px rgba(110,13,49,.13); }
.oak-location-tabs { display:flex; gap:8px; padding:12px; border-bottom:1px solid var(--oak-line); background:rgba(233,226,217,.68); }
.oak-location-tab { flex:1; display:flex; align-items:center; justify-content:center; gap:10px; min-height:48px; padding:10px 18px; border:1px solid transparent; border-radius:999px; background:transparent; color:var(--oak-plum); cursor:pointer; font:700 14px/1.2 "Inter",sans-serif; text-align:center; }
.oak-location-tab span { display:grid; place-items:center; width:23px; height:23px; border-radius:50%; background:rgba(110,13,49,.12); font-size:10px; letter-spacing:.06em; }
.oak-location-tab:is(:hover,:focus-visible) { background:rgba(207,195,181,.46); }
.oak-location-tab[aria-selected="true"] { border-color:var(--oak-plum); background:var(--oak-plum); color:var(--oak-paper); box-shadow:0 5px 13px rgba(110,13,49,.16); }
.oak-location-tab[aria-selected="true"] span { background:rgba(255,252,248,.18); }
.oak-location-panel { display:grid; grid-template-columns:minmax(250px,.83fr) minmax(270px,1fr); align-items:center; min-height:213px; }
.oak-location-panel[hidden] { display:none; }
.oak-location-panel.is-active { animation:oak-location-in .26s ease both; }
.oak-location-panel-summary { align-self:stretch; padding:28px 30px; background:linear-gradient(145deg,#f5efe8,#ecdfd2); }
.oak-location-index,.oak-overview-card-copy>p { margin:0 0 9px; color:#79535d; letter-spacing:.13em; font:700 10px "Inter",sans-serif; }
.oak-location-panel h3 { margin:0; color:var(--oak-plum); font:400 clamp(33px,3.3vw,44px)/.96 "Oakwood Lancelot",Georgia,serif; }
.oak-location-city { margin:9px 0 0; color:#5b4d50; font-size:14px; }
.oak-location-phone { display:flex; align-items:baseline; gap:9px; margin-top:23px; }
.oak-location-phone span { color:#79535d; font-size:10px; font-weight:700; letter-spacing:.12em; text-transform:uppercase; }
.oak-location-phone a { color:var(--oak-plum); font-size:14px; font-weight:700; text-decoration-thickness:1px; text-underline-offset:4px; }
.oak-location-panel-hours { padding:22px 30px; }
.oak-location-panel-hours .hours-table { width:100%; margin:0; font-size:13px; }
.oak-location-panel-hours .hours-table caption { padding-bottom:8px; color:var(--oak-ink); font:600 13px "Inter",sans-serif; text-align:left; }
.oak-location-panel-hours .hours-table th,.oak-location-panel-hours .hours-table td { padding:4px 3px; border-color:var(--oak-line); }
.oak-location-panel-hours .hours-table td { text-align:right; }
.oak-location-panel-actions { display:flex; flex-direction:column; align-items:stretch; gap:10px; min-width:196px; padding:22px 26px 22px 0; }
.oak-location-panel-actions a { display:inline-flex; align-items:center; justify-content:center; min-height:44px; padding:0 15px; border-radius:999px; font-size:13px; font-weight:700; text-align:center; text-decoration:none; }
.oak-location-call { background:var(--oak-plum); color:var(--oak-paper); }
.oak-location-details { gap:7px; border:1px solid var(--oak-plum); color:var(--oak-plum); }
.oak-location-panel-actions a:is(:hover,:focus-visible) { transform:translateY(-1px); }
.oak-location-call:is(:hover,:focus-visible) { background:#322329; }
.oak-location-details:is(:hover,:focus-visible) { background:var(--oak-pale); }
.oak-locations-overview { padding:74px 0 110px; background:linear-gradient(145deg,#f3eee8,#e9e2d9); }.oak-location-overview-note { max-width:66ch; margin:0 0 34px; color:#5b4d50; line-height:1.65; }.oak-location-overview-grid { display:grid; grid-template-columns:1fr 1fr; gap:24px; }.oak-overview-card { overflow:hidden; border-radius:24px; background:#fffcf8; box-shadow:0 18px 42px rgba(110,13,49,.13); }.oak-overview-art { min-height:196px; display:flex; align-items:center; justify-content:space-between; padding:22px 30px; background:#713149; color:#fffcf8; }.oak-overview-apple-avenue .oak-overview-art { background:#cfc3b5; color:var(--oak-plum); }.oak-overview-art span { font:400 126px/.7 "Oakwood Lancelot",Georgia,serif; }.oak-overview-art small { align-self:flex-end; letter-spacing:.14em; font-size:10px; font-weight:700; }.oak-overview-card-copy { padding:29px 30px 17px; display:grid; gap:10px; }.oak-overview-card-copy h2 { margin:0; color:var(--oak-plum); font:400 42px/1 "Oakwood Lancelot",Georgia,serif; }.oak-overview-card-copy>span { color:#5b4d50; }.oak-overview-card-copy>a { color:var(--oak-plum); font-weight:700; }.oak-overview-open { margin-top:8px; text-decoration:none; }.oak-overview-hours { padding:0 30px 30px; }.oak-overview-hours summary { cursor:pointer; color:var(--oak-plum); font-weight:700; }.oak-overview-hours .hours-table { margin-top:14px; font-size:13px; }
.oak-overview-art,.oak-overview-apple-avenue .oak-overview-art { display:flex; flex-direction:column; align-items:stretch; justify-content:flex-start; min-height:0; padding:0; background:#f0e6dc; }
.oak-overview-art iframe { display:block; width:100%; height:196px; border:0; }
.oak-overview-art small { box-sizing:border-box; display:flex; align-items:center; align-self:auto; width:100%; min-height:38px; padding:0 16px; background:var(--oak-plum); color:#fffcf8; font-size:12px; font-weight:600; letter-spacing:.04em; }
.oak-overview-art .map-loading-status { bottom:38px; border-radius:0; }
.oak-city-map { position:relative; min-height:400px; overflow:hidden; background:#f0e6dc; }
.oak-city-map iframe { position:absolute; inset:0; display:block; width:100%; height:100%; border:0; border-radius:0; }
.oak-branch-map { min-width:0; overflow:hidden; border-radius:10px; }
.oak-locations-page .oak-locations-overview { padding-bottom: 48px; background: var(--oak-mist); color: var(--oak-plum); }
.oak-locations-page .oak-location-overview-note { color: var(--oak-plum); }
.oak-locations-page .oak-location-jump-links .oak-outline-btn { border-color: var(--oak-plum); color: var(--oak-plum); }
.oak-locations-page .oak-location-jump-links .oak-outline-btn:is(:hover, :focus-visible) { background: var(--oak-plum); color: var(--oak-paper); }
.oak-locations-page .oak-location-jump-links .oak-outline-btn:focus-visible { outline-color: var(--oak-plum); }
.oak-location-jump-links { display:flex; flex-wrap:wrap; gap:14px; }
.oak-locations-page .oak-branch-section { scroll-margin-top: 136px; }
.oak-locations-page .oak-branch-section:nth-of-type(even) { background:var(--oak-pale); }
.oak-locations-page .oak-map-caption { flex-wrap:wrap; gap:4px 10px; padding:10px 16px; }
@keyframes oak-location-in { from { opacity:0; transform:translateY(10px); } to { opacity:1; transform:none; } }
.oak-peek-pear-place { color: #fffcf8; }
@media (prefers-reduced-motion: no-preference) {
  .oak-overview-card { transition: transform .28s ease, box-shadow .28s ease; }
  .oak-overview-card:hover, .oak-overview-card:focus-within {
    transform: translateY(-6px);
    box-shadow: 0 24px 46px rgba(110,13,49,.2);
  }
}
@media (prefers-reduced-motion:reduce) { .oak-location-panel { animation:none; } .oak-location-panel-actions a { transform:none; } }

/* About mission only: lavender surrounds the plum panel and labels. */
section[aria-labelledby="mission-h"] { background: var(--oak-pale); }
section[aria-labelledby="mission-h"] .mission-panel { background: var(--oak-plum); color: var(--oak-paper); }
section[aria-labelledby="mission-h"] .mission-panel .kicker { color: var(--oak-lilac); }
section[aria-labelledby="mission-h"] .mission-panel #mission-h,
section[aria-labelledby="mission-h"] .mission-panel .values-list h3 { color: var(--oak-paper); }
section[aria-labelledby="mission-h"] .mission-panel .values-list .icon { background: var(--oak-pale); color: var(--oak-plum); }

/* Hyde's shared carousel lives in a branded plum section, with only
   Oakwood color and heading overrides. All motion/controls stay in site.js. */
.oakwood-home .oak-reviews { overflow: hidden; background: var(--oak-plum); border-radius: 28px; color: var(--oak-paper); }
.oak-reviews .reviews-head { gap: 24px; }
.oak-reviews .reviews-head .section-head { max-width: 720px; }
.oak-reviews .reviews-title { max-width: 17ch; white-space: normal; }
html body .oakwood-home .oak-reviews #reviews-h { color: var(--oak-paper); }
.oak-reviews .reviews-head .section-head > p:last-child { color: var(--oak-paper); line-height: 1.7; }
.oak-reviews .fun-kicker { background: var(--oak-lilac); color: var(--oak-plum); }
.oak-reviews #reviews-h .fun-accent { color: var(--oak-lilac); }
.oak-reviews .reviews-controls .reviews-btn { border-color: var(--oak-paper); color: var(--oak-plum); background: var(--oak-paper); }
.oak-reviews .reviews-controls .reviews-btn:hover:not(:disabled) { background: var(--oak-lilac); color: var(--oak-plum); }
.oak-reviews .reviews-controls .reviews-btn:focus-visible { outline: 3px solid var(--oak-paper); outline-offset: 3px; }
.oak-reviews .reviews-controls .reviews-btn:disabled { opacity: .85; }
.oak-reviews .review-card { background: var(--oak-paper); border-color: var(--oak-line); box-shadow: 0 14px 28px rgba(110,13,49,.1); }
.oak-reviews .review-stars { color: var(--oak-plum); }
.oak-reviews .review-card blockquote p { color: #514449; font-size: 16px; line-height: 1.6; }
.oak-reviews .review-card footer { color: var(--oak-plum); }
.oak-reviews .reviews-cta p { color: var(--oak-paper); font: 500 14px/1.5 "Inter",sans-serif; }
.oak-reviews .reviews-cta .btn-primary { background: var(--oak-paper); border-color: var(--oak-paper); color: var(--oak-plum); }
.oak-reviews .reviews-cta .btn-outline { background: transparent; border-color: var(--oak-paper); color: var(--oak-paper); }
.oak-reviews .reviews-cta .btn:is(:hover, :focus-visible) { background: var(--oak-lilac); border-color: var(--oak-lilac); color: var(--oak-plum); }
.oak-reviews .reviews-cta .btn:focus-visible { outline: 3px solid var(--oak-paper); outline-offset: 4px; }
@media (max-width: 900px) {
  .oak-reviews .reviews-head { flex-wrap: wrap; }
}

/* The source portal promo owns phone layout, buttons, and responsive geometry.
   Only its shadow and accent color are personalized for Oakwood. */
.oakwood-home .portal-promo { box-shadow: 0 18px 44px rgba(110,13,49,.22); }
.oakwood-home .pp-accent { color: #e6d7c9; }
.oakwood-home .portal-promo .pp-btn-solid {
  background: var(--oak-paper); color: var(--oak-plum); border-color: var(--oak-paper);
}
.oakwood-home .portal-promo .pp-btn-solid:is(:hover, :focus-visible) {
  background: var(--oak-mist); color: var(--oak-plum); border-color: var(--oak-mist);
}
.oakwood-home .portal-promo .pp-btn-outline {
  background: transparent; color: var(--oak-paper); border-color: var(--oak-paper);
}
.oakwood-home .portal-promo .pp-btn-outline:is(:hover, :focus-visible) {
  background: var(--oak-paper); color: var(--oak-plum); border-color: var(--oak-paper);
}
.oakwood-home .portal-promo .btn:focus-visible {
  outline: 3px solid var(--oak-paper); outline-offset: 4px;
}

/* Gift shop cards retain the shared layout with Oakwood's own palette. */
body .gift-category-cards {
  background: var(--oak-pale); border-color: var(--oak-line);
}
body .gift-category-card { color: var(--oak-plum); border-color: var(--oak-line); }
body .gift-category-card > svg { color: var(--oak-plum); }
body .gift-visit-card {
  background: linear-gradient(115deg, var(--oak-ink), var(--oak-plum) 60%, #78374f);
  color: var(--oak-paper);
}
body .gift-visit-card h2, body .gift-visit-card p { color: var(--oak-paper); }
body .gift-visit-card .gv-accent, body .gift-visit-card .gv-icon { color: var(--oak-lilac); }
body .gift-visit-card .gv-btn-solid {
  background: var(--oak-paper); color: var(--oak-plum); border-color: var(--oak-paper);
}
body .gift-visit-card .gv-btn-outline {
  background: transparent; color: var(--oak-paper); border-color: var(--oak-paper);
}
body .gift-visit-card .btn:is(:hover, :focus-visible) {
  background: var(--oak-lilac); color: var(--oak-plum); border-color: var(--oak-lilac);
}
body .gift-visit-card .btn:focus-visible { outline: 3px solid var(--oak-paper); outline-offset: 4px; }

/* The patient-portal page imports the Hyde native-app and install styles.
   Retheme only this page's surfaces/chrome; the approved phone UI is imagery. */
#main-content .native-app-page.portal-page {
  --na-red: var(--oak-plum);
  --na-wine: var(--oak-plum);
  --na-ink: var(--oak-ink);
  --na-muted: #5b4d50;
  --na-paper: #fffaf5;
  --na-blush: var(--oak-pale);
  --na-sand: var(--oak-mist);
  --na-gold: var(--oak-lilac);
}
#main-content .portal-page :is(h1, h2, h3) { color: var(--oak-ink); }
#main-content .portal-page .native-app-hero {
  background: var(--oak-mist); border-bottom-color: var(--oak-line);
}
#main-content .portal-page .native-app-crumbs { color: #5b4d50; }
#main-content .portal-page .native-app-crumbs a { color: var(--oak-plum); }
#main-content .portal-page .native-app-eyebrow,
#main-content .portal-page em { color: var(--oak-plum); }
#main-content .portal-page .native-app-button-primary { background: var(--oak-plum); color: #fff; }
#main-content .portal-page .native-app-button-primary:hover { background: var(--oak-ink); color: #fff; }
#main-content .portal-page .native-app-halo-a { background: #e3d2c7; }
#main-content .portal-page .native-app-halo-b { border-color: var(--oak-line); }
#main-content .portal-page .native-app-phone { border-color: var(--oak-ink); background: var(--oak-ink); }
#main-content .portal-page .native-app-phone-back-image { background: var(--oak-mist); }
#main-content .portal-page .native-app-features { background: var(--oak-pale); }
#main-content .portal-page .native-app-feature-list { border-top-color: var(--oak-line); }
#main-content .portal-page .native-app-feature { border-bottom-color: var(--oak-line); }
#main-content .portal-page .native-app-feature-number { color: #78374f; }
#main-content .portal-page .portal-install {
  background: #fffaf5; border-top: 1px solid var(--oak-line);
}
#main-content .portal-page .portal-install-copy .portal-install-note { color: var(--oak-ink); }
body:has(#main-content .portal-page) .cta-bar {
  background: rgba(253,249,255,.94); border-top-color: var(--oak-line);
}


@media (max-width: 900px) {
  .oak-beliefs { grid-template-columns:repeat(2,1fr); }
  .oak-beliefs article:nth-child(3) { border-left:0; padding-left:0; }
  .oak-hero { min-height: 570px; } .oak-story { gap:48px; }
  .oak-location-panel { grid-template-columns:minmax(220px,.75fr) minmax(255px,1fr); }
  .oak-location-panel-actions { grid-column:1 / -1; flex-direction:row; justify-content:flex-end; min-width:0; padding:0 24px 22px; }
  .oak-location-panel-actions a { min-width:190px; }
}
@media (max-width: 650px) {
  .oak-wrap { width:min(100% - 34px, 560px); }
  .oak-hero { align-items:flex-start; min-height:712px; }
  .oak-hero-image { inset: 0; background-position: var(--oak-hero-position-mobile, 61% 15%); mask-image: none; }
  .oak-hero::after { background:linear-gradient(90deg,rgba(229,222,213,.96),rgba(229,222,213,.82)); }
  .oak-hero-inner { padding:64px 0 104px; }
  .oak-hero-message { min-height: 0; }
  .oak-hero-controls { position: static; justify-content: center; flex-wrap: wrap; gap: 1px; margin: 18px auto 0; }
  .oak-hero-dots { order: 4; justify-content: center; width: 100%; }
  .oak-hero-play { margin-left: 0; }
  .oak-hero-service-link { margin-bottom: 12px; }
  .oak-eyebrow { font-size:12px; padding:0 0 14px; }
  .oak-hero h1 { font-size:46px; } .oak-hero-copy { font-size:16px; }
  .oak-pill { width:100%; justify-content:center; }
  .oak-beliefs { width:min(100% - 34px, 560px); grid-template-columns:1fr; gap:19px; margin-top:-31px; padding:25px 23px; }
  .oak-beliefs article + article { border-left:0; border-top:1px solid var(--oak-line); padding:22px 0 0; }
  .oak-story { grid-template-columns:1fr; padding:74px 0 82px; gap:37px; }
  .oak-story-photo { min-height:0; border-radius:2px 61px 2px 2px; }
  .oak-story-photo::before { inset:-12px -10px 16px 20px; }
  .oak-visit { grid-template-columns:1fr; gap:30px; }
  .oak-services { padding:52px 0; } .oak-services-head { margin-bottom:35px; }
  .oak-service-explorer { grid-template-columns: 1fr; }
  .oak-service-tabs { flex-direction: row; overflow-x: auto; padding-bottom: 6px; scrollbar-width: none; }
  .oak-service-tabs::-webkit-scrollbar { display: none; }
  .oak-service-tab { flex: none; width: auto; }
  .oak-service-icon { width:34px; height:34px; }
  .oak-service-tab > b { display: none; }
  .oak-service-panels { min-height: 0; }
  .oak-service-panel { position: static; }
  .oak-service-panel:not(.is-active) { display: none; }
  .oak-service-media img { aspect-ratio: 16/9; height: auto; }
  .oak-service-panel-body { min-height: 282px; }
  .oak-locations-home { padding:72px 0; }
  .oak-location-home-head { display:block; margin-bottom:28px; }
  .oak-location-home-head h2 { font-size:51px; }
  .oak-location-home-head>p:last-child { margin:20px 0 0; }
  .oak-location-finder { border-radius:22px 22px 22px 4px; }
  .oak-location-tabs { gap:6px; padding:8px; }
  .oak-location-tab { min-height:48px; padding:9px 11px; font-size:13px; }
  .oak-location-tab span { width:21px; height:21px; }
  .oak-location-panel { display:block; min-height:0; }
  .oak-location-panel-summary { padding:24px 22px 20px; }
  .oak-location-panel h3 { font-size:39px; }
  .oak-location-phone { margin-top:18px; }
  .oak-location-panel-hours { padding:18px 22px 13px; }
  .oak-location-panel-hours .hours-table { font-size:12px; }
  .oak-location-panel-hours .hours-table th { width:38%; }
  .oak-location-panel-hours .hours-table td { white-space:nowrap; }
  .oak-location-panel-actions { display:grid; grid-template-columns:1fr; gap:9px; padding:5px 22px 22px; }
  .oak-location-panel-actions a { width:auto; min-width:0; }
  .oak-location-overview-grid { grid-template-columns:1fr; }
}
@media (max-width: 480px) { .oak-hero { min-height: 740px; } }
@media (max-width: 360px) { .oak-hero { min-height: 810px; } }
@media (prefers-reduced-motion: no-preference) {
  .oakwood-home > section { animation: oak-rise .65s both; } .oakwood-home > section:nth-child(2){animation-delay:.06s}.oakwood-home > section:nth-child(3){animation-delay:.12s}.oakwood-home > section:nth-child(4){animation-delay:.16s}
  @keyframes oak-rise { from { opacity:0; transform:translateY(16px); } to { opacity:1; transform:translateY(0); } }
}
body .topbar a, body .language-switch button { color: var(--oak-ink); }
body .topbar-language-note { color: var(--oak-ink); border-color: var(--oak-line); }
body .language-switch button[aria-pressed="true"] { background: #e8d7ca; color: var(--oak-ink); }
.topbar .oak-location-shortcuts { display: flex; align-items: center; flex-wrap: wrap; gap: 6px 16px; }
.topbar .oak-location-shortcuts a { font-weight: 600; text-decoration: underline; text-underline-offset: 3px; }
.topbar .oak-demo-label { font-size: .75rem; opacity: .85; }
.site-footer .footer-grid { grid-template-columns: 1.3fr 1.7fr 1fr; }
.site-footer .oak-footer-branches { display: grid; gap: 16px; }
.site-footer .oak-footer-branches p { margin: 5px 0; }
.site-footer .oak-footer-branches strong { color: #fff; }
[data-oak-visit] .oak-visit-note { max-width: 52ch; margin: 0 0 22px; color: #5d5050; line-height: 1.6; }
[data-oak-visit] .oak-visit-selector { display: flex; flex-wrap: wrap; gap: 10px; margin: 0 0 24px; }
[data-oak-visit] .oak-visit-selector button { min-height: 44px; padding: 10px 16px; border: 1px solid var(--oak-plum); border-radius: 999px; background: transparent; color: var(--oak-plum); font: 500 14px "Inter", sans-serif; cursor: pointer; }
[data-oak-visit] .oak-visit-selector button[aria-selected="true"] { background: var(--oak-plum); color: var(--oak-paper); }
[data-oak-visit] .oak-visit-panel[hidden] { display: none !important; }
[data-oak-visit] .oak-visit-panel h3 { margin: 0 0 12px; color: var(--oak-ink); }
[data-oak-visit] .oak-visit-panel > p { margin: 8px 0; }
[data-oak-visit] .oak-visit-panel .hours-table { margin-top: 22px; }
[data-oak-visit] .oak-visit-panel .hours-table caption { font-family: "Inter", sans-serif; font-weight: 500; }
[data-oak-visit] .oak-demo-map { height: 400px; min-height: 400px; width: 100%; }
.oak-locations-intro { max-width: 72ch; color: var(--oak-ink); }
.oak-branch-section { border-top: 1px solid var(--oak-line); }
.oak-branch-section h2 { margin-top: 0; }
.oak-branch-section .hours-table { width: 100%; }
.oak-demo-map { display: grid; min-height: 380px; place-content: center; padding: 32px; border: 1px solid var(--oak-line); border-radius: 10px; background: radial-gradient(circle at 32% 34%, #cfc3b5 0 8%, transparent 9%), radial-gradient(circle at 73% 65%, #aea292 0 7%, transparent 8%), linear-gradient(145deg, #f3eee8, #e6d8ec); text-align: center; }
.oak-demo-map p { max-width: 29ch; margin: 8px auto; }
.oak-demo-map strong { font: 400 26px "Oakwood Lancelot", Georgia, serif; color: var(--oak-plum); }
@media (max-width: 980px) {
  .site-footer .footer-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 650px) {
  .site-footer .footer-grid { grid-template-columns: 1fr; }
  .topbar .oak-location-shortcuts { gap: 4px 11px; }
  .topbar .oak-demo-label { width: 100%; }
}
