/* SOBRA · sunshine palette. Text and photographs remain in the HTML. */
:root {
  --ink: #302819;
  --muted: #70634d;
  --paper: #fffaf0;
  --paper-2: #f8edda;
  --line: rgba(82, 57, 20, .16);
  --white: #fffdf7;
  --green: #ffc63f;
  --sun: #ffd34f;
  --sun-soft: #fff0bd;
}
html, body { background: var(--paper); color: var(--ink); }
body .section, body .approach { background: var(--paper) !important; color: var(--ink); }
body h1, body h2, body h3 { color: var(--ink); }
body .eyebrow { color: var(--muted) !important; }
::selection { background: #ffd34f; color: #302819; }
a:focus-visible, summary:focus-visible { outline: 3px solid #9a5711; outline-offset: 5px; }

/* Warm navigation; the existing links and button actions are unchanged. */
.nav.nav-panel { grid-template-columns: 100px minmax(170px, 1.25fr) minmax(130px, .92fr) minmax(100px, .82fr) minmax(180px, 1.08fr) 140px; }
.nav-panel .nav-cell { background: rgba(255, 253, 246, .94); color: var(--ink) !important; border: 1px solid rgba(113, 81, 23, .1); }
.nav-panel .nav-cell:hover { background: #fff; color: #302819 !important; }
.nav-panel .nav-logo, .nav-panel .nav-cta { background: var(--sun); color: #302819 !important; border-color: transparent; }
.nav-panel .nav-logo:hover, .nav-panel .nav-cta:hover { background: #ffdf78; }
.nav-panel .nav-focus { color: var(--ink) !important; }

/* An editable photograph under a luminous, warm cover. */
.hero { background: #ffe39a !important; color: var(--ink); }
.sunny-hero-photo { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center; opacity: .32; z-index: 0; }
.hero::before { z-index: 1; transform: none; background: radial-gradient(ellipse at 78% 22%, rgba(255, 249, 207, .98) 0, rgba(255, 222, 116, .75) 28%, transparent 60%), linear-gradient(125deg, rgba(255, 248, 225, .96), rgba(255, 227, 149, .78) 58%, rgba(255, 211, 104, .45)); pointer-events: none; }
.hero::after { z-index: 1; inset: -35% -50%; background: linear-gradient(115deg, transparent 35%, rgba(255, 255, 240, 0) 41%, rgba(255, 255, 240, .65) 49%, rgba(255, 255, 240, 0) 57%, transparent 64%); transform: translate3d(-65%, 0, 0); opacity: 0; animation: sunny-sheen 11s ease-in-out infinite; pointer-events: none; }
.hero-inner { z-index: 3; }
.hero .hero-intro { color: #665027 !important; }
.hero-title { color: #302819 !important; max-width: min(100%, 1060px) !important; text-wrap: balance; }
.hero .hero-copy { color: #5d4a2b !important; }
.hero .hero-button { background: #302819 !important; color: #fff8e7 !important; box-shadow: 0 8px 28px rgba(87, 54, 8, .12); }
.hero .hero-button:hover { background: #5a3c18 !important; color: #fff !important; }
.hero-glints { position: absolute; inset: 0; z-index: 2; pointer-events: none; overflow: hidden; }
.hero-glints i { position: absolute; display: block; width: 26px; height: 26px; background: #fffdf1; clip-path: polygon(50% 0, 60% 39%, 100% 50%, 60% 61%, 50% 100%, 40% 61%, 0 50%, 40% 39%); opacity: .2; animation: sunny-glint 7s ease-in-out infinite; }
.hero-glints i:nth-child(1) { left: 12%; top: 28%; }
.hero-glints i:nth-child(2) { right: 14%; top: 35%; width: 38px; height: 38px; animation-delay: -2.8s; }
.hero-glints i:nth-child(3) { right: 23%; bottom: 16%; width: 20px; height: 20px; animation-delay: -5.3s; }
@keyframes sunny-sheen { 0%, 12% { transform: translate3d(-65%, 0, 0); opacity: 0; } 25% { opacity: .48; } 60% { transform: translate3d(65%, 0, 0); opacity: 0; } 100% { transform: translate3d(65%, 0, 0); opacity: 0; } }
@keyframes sunny-glint { 0%, 100% { opacity: .15; transform: scale(.78) rotate(-8deg); } 50% { opacity: .85; transform: scale(1.12) rotate(8deg); } }

/* Warm cards throughout the page. */
.approach-card { background: #f8edda; color: var(--ink); }
.approach-card-2 { background: #ffd565 !important; color: var(--ink) !important; }
.approach-card p, .approach-card-2 p { color: #615137; }
.approach-card-num, .approach-card-2 .approach-card-num { background: #f7c54c !important; color: #302819 !important; }
.approach-card-2 .approach-card-num { background: #fff9e7 !important; }
#directions .dir-list .dir-card { background: #f8edda; }
#directions .dir-list .dir-card:hover { background: #ffedb2; }
#directions .dir-card-media { background: #f1ddb9; }
#directions .dir-card-title, #directions .dir-main h3 { color: var(--ink); }
#directions .dir-main p { color: #70634d; }
.company, .company-sticky { background: #f5dda8; color: var(--ink); }
.company-bg img { filter: saturate(.85); opacity: .42; }
.company-overlay { background: linear-gradient(180deg, rgba(255, 246, 218, .92), rgba(255, 231, 169, .8) 48%, rgba(246, 210, 130, .88)); }
.company-head .eyebrow { color: #70603f !important; }
.company-head h2 { color: var(--ink); }
.company-card { background: #fffaf0; color: var(--ink); box-shadow: 0 14px 40px rgba(106, 70, 12, .09); }
.company-card:nth-child(2) { background: #ffe49c; }
.company-card:nth-child(4) { background: #ffefd0; }
.company-card-icon { background: #ffdb70; color: #614217; }
.company-card-copy { color: #67583e; }
#faq .faq-title h2, #faq .faq-item summary { color: var(--ink); }
#faq .faq-title .eyebrow { color: var(--muted) !important; }
#faq .faq-item { background: #f8edda; }
#faq .faq-plus { background: #ffd34f; color: #493511; }
#faq .faq-item[open] .faq-plus { background: #302819; color: #ffe59b; }
#faq .faq-answer p { color: #67583e; }

/* Contact: an inviting portrait beside the call to action. */
.cta { background: #ffe59b !important; color: var(--ink); padding-top: 72px; min-height: auto; }
.cta::before { display: none; }
.cta-shell { min-height: auto; }
.cta-main { grid-template-columns: minmax(0, 1.05fr) minmax(0, .95fr); gap: 64px 7vw; }
.cta-action { grid-column: 1; grid-row: 1; max-width: 620px; align-self: center; }
.cta h2 { color: var(--ink); max-width: 600px !important; text-wrap: balance; }
.cta-kicker, .cta-label { color: #79603a; }
.cta-action p { color: #675132; }
.cta .cta-button { background: #302819 !important; color: #fff8e7 !important; }
.cta .cta-button:hover { background: #5a3c18 !important; color: #fff !important; }
.cta-portrait { grid-column: 2; grid-row: 1; min-width: 0; margin: 0; }
.cta-portrait img { width: 100%; height: auto; aspect-ratio: 1 / 1; object-fit: cover; object-position: 45% center; border-radius: 12px; }
.cta-portrait figcaption { padding: 10px 0 0; font-size: 11px; line-height: 1.4; color: #745b33; }
.cta-portrait figcaption a { text-decoration: underline; text-underline-offset: 3px; }
.cta-main > .cta-column { grid-row: 2; padding-top: 36px; border-top: 1px solid rgba(82, 57, 20, .2); }
.cta-main > .cta-column:not(.cta-contact) { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); column-gap: 30px; align-content: start; }
.cta-label-company { margin-top: 0; grid-column: 2; grid-row: 1; }
.cta-links-small { grid-column: 2; grid-row: 2; }
.cta-links a, .cta-links-small a, .cta-contact-list, .cta-brand > span { color: var(--ink); }
.cta-links span, .cta-footer, .cta-brand small, .cta-policy, .cta-top { color: #75603b !important; }
.cta-text-link { color: #694213; }
.cta-footer { margin-top: 64px; padding-top: 34px !important; border-top: 1px solid rgba(82, 57, 20, .2); }

@media (max-width: 1100px) and (min-width: 821px) {
  .nav.nav-panel { grid-template-columns: 86px minmax(135px, 1fr) minmax(110px, .8fr) minmax(80px, .7fr) minmax(165px, 1fr) 118px; gap: 6px; }
  .nav-panel .nav-cell { padding-inline: 10px; font-size: 12px; }
}
@media (max-width: 980px) {
  .cta-main { gap: 48px 36px; }
  .cta-action { grid-column: 1; }
  .cta h2 { font-size: 46px !important; }
}
@media (max-width: 820px) {
  .nav.nav-panel { grid-template-columns: 96px minmax(0, 1fr) 132px; }
}
@media (max-width: 760px) {
  .cta-main { display: flex; flex-direction: column; gap: 40px; }
  .cta-action, .cta-portrait, .cta-main > .cta-column { width: 100%; max-width: none; margin: 0; }
  .cta-portrait img { aspect-ratio: 4 / 3; }
  .cta-main > .cta-column { padding-top: 28px; }
  .cta-main > .cta-column:not(.cta-contact) { column-gap: 20px; }
  .cta-footer { margin-top: 40px; }
}
@media (max-width: 640px) {
  .cta { padding-top: 64px; }
  .cta h2 { font-size: 34px !important; }
  .cta-portrait img { border-radius: 8px; }
  .cta-kicker { margin-bottom: 28px; }
  .cta-links strong { font-size: 16px; }
  .cta-links span { font-size: 13px; }
  .cta-label-company { margin-top: 0; }
  .hero-glints i:nth-child(1) { top: 19%; left: 8%; width: 18px; height: 18px; }
  .hero-glints i:nth-child(2) { right: 8%; top: auto; bottom: 18%; width: 26px; height: 26px; }
  .hero-glints i:nth-child(3) { display: none; }
}
@media (max-width: 520px) {
  .nav.nav-panel { grid-template-columns: 76px minmax(0, 1fr) 104px; }
}
@media (max-width: 380px) {
  .nav.nav-panel { grid-template-columns: 72px minmax(0, 1fr) 96px; }
}
@media (prefers-reduced-motion: reduce) {
  .hero::after, .hero-glints i { animation: none !important; }
  .hero::after { opacity: 0; }
  .hero-glints i { opacity: .35; }
}
