/* Basic reset and variables */
* { box-sizing: border-box; margin: 0; padding: 0; }
:root {
  --brand-bg: #fff7f7;
  --brand-accent: #c62828; /* primary red */
  --brand-accent-light: #ff8a80; /* light red */
  --brand-accent-rgb: 198,40,40;
  --brand-dark: #7f0e15;
  --text-color: #2b1213;
  --muted: #6d4c4c;
  --card-bg: #ffffff;
  --border: #f0d6d6;
  --radius-sm: 4px;
  --radius-md: 8px;
  --radius-lg: 18px;
  --shadow-sm: 0 2px 4px rgba(0,0,0,.05);
  --shadow-md: 0 4px 14px -2px rgba(0,0,0,.18);
  --gradient-accent: linear-gradient(135deg, #c62828 0%, #ff5252 70%);
  --gradient-soft: linear-gradient(135deg, #ffe5e5 0%, #fff7f7 65%);
  --hero-h1-size: clamp(2.1rem,4.5vw,3.1rem); /* unified hero heading size */
}
body { font-family: system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,sans-serif; line-height: 1.55; color: var(--text-color); background: #fffafa; -webkit-font-smoothing: antialiased; }

h1,h2,h3 { font-weight: 600; line-height: 1.2; }
.subtitle { color: var(--muted); font-size: 1.05rem; max-width: 56ch; }
.section-intro { color: var(--muted); margin-bottom: 1.5rem; }
.visually-hidden { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }

a { color: var(--brand-accent); text-decoration: none; transition: color .2s; }
a:hover, a:focus { text-decoration: underline; }

header.site-header { background: var(--card-bg); border-bottom: 1px solid var(--border); padding: .85rem 1.25rem; display: flex; align-items: center; gap: 1rem; position: sticky; top:0; z-index: 40; }
header .logo { font-weight: 700; font-size: 1.25rem; letter-spacing: .5px; background: var(--gradient-accent); -webkit-background-clip:text; color: transparent; }
.nav-list { list-style: none; display: flex; gap: 1.25rem; }
.nav-list a { padding: .4rem .75rem; border-radius: var(--radius-sm); font-size: .95rem; font-weight: 500; }
.nav-list a[aria-current="page"] { background: rgba(var(--brand-accent-rgb), .08); color: var(--brand-accent); box-shadow: inset 0 0 0 1px rgba(var(--brand-accent-rgb), .16); }

main { max-width: 1180px; margin: 0 auto; padding: 2rem 1.25rem 4rem; }

/* HOME HERO (aligned with other hero sections) */
.home-hero { display:grid; gap: 2rem; grid-template-columns: repeat(auto-fit,minmax(300px,1fr)); align-items:center; padding: 3rem clamp(1rem,4vw,3rem); margin: 1rem 0 2.5rem; position:relative; background: var(--gradient-soft); border-radius: var(--radius-lg); overflow:hidden; }
.home-hero::after { content:""; position:absolute; inset:0; background: radial-gradient(circle at 85% 20%, rgba(var(--brand-accent-rgb), .08), transparent 60%); pointer-events:none; }
.hero-body h1 { font-size: var(--hero-h1-size); margin-bottom: .85rem; background: var(--gradient-accent); -webkit-background-clip: text; color: transparent; }
.hero-visual .hero-image { width:100%; max-width:440px; aspect-ratio: 4/3; object-fit:cover; border-radius:18px; box-shadow:0 8px 28px -6px rgba(0,0,0,.25); }
@media (min-width: 1100px){ .hero-visual .hero-image { max-width:480px; } }

/* SINCE BADGE & CALLOUT CIRCLES */
.since-badge { display:inline-block; background:#fff; color: var(--brand-dark); padding:.55rem .85rem; border:1px solid var(--border); border-radius:999px; font-size:.7rem; letter-spacing:.55px; text-transform:uppercase; font-weight:600; margin:-.25rem 0 .85rem; box-shadow:0 2px 4px rgba(0,0,0,.06); }
.since-badge strong { color: var(--brand-accent); }
.callout-row { display:flex; flex-wrap:wrap; gap:.65rem; margin: 1.1rem 0 .9rem; }
.callout-badge { --c-size:108px; position:relative; width:var(--c-size); height:var(--c-size); border-radius:50%; background: var(--gradient-accent); display:flex; align-items:center; justify-content:center; color:#fff; font-weight:600; font-size:.7rem; text-align:center; line-height:1.15; letter-spacing:.55px; text-transform:uppercase; box-shadow:0 6px 18px -6px rgba(var(--brand-accent-rgb), .55); overflow:hidden; }
.callout-badge::before { content:""; position:absolute; inset:0; border-radius:inherit; background: radial-gradient(circle at 30% 25%, rgba(255,255,255,.35), transparent 70%); mix-blend-mode: screen; }
.callout-badge.pulse { animation: pulseBadge 3.2s ease-in-out infinite; }
.callout-badge.rotate, .callout-badge.rotate-alt { animation:none; }
.c-text { padding:.6rem .55rem; position:relative; z-index:2; }
@keyframes pulseBadge { 0% { transform:scale(.97); box-shadow:0 0 0 0 rgba(198,40,40,.55);} 55% { transform:scale(1); box-shadow:0 0 0 14px rgba(198,40,40,0);} 100% { transform:scale(.97); box-shadow:0 0 0 0 rgba(198,40,40,0);} }
@media (max-width:640px){ .callout-badge { --c-size:90px; font-size:.55rem; } }

/* HERO STATS (small inline list) */
.hero-stats { list-style:none; display:flex; flex-wrap:wrap; gap:1.35rem; font-size:.65rem; letter-spacing:.5px; text-transform:uppercase; color: var(--muted); margin-top:.3rem; }
.hero-stats li { display:flex; flex-direction:column; align-items:flex-start; gap:.15rem; }
.hero-stats strong { font-size:1.25rem; font-weight:600; background: var(--gradient-accent); -webkit-background-clip:text; color:transparent; line-height:1; }

/* FEATURE CARDS */
.features-section { margin: 0 0 4rem; }
.features-section .section-header.center { text-align:center; }
.features-grid { display:grid; gap:1.5rem; grid-template-columns: repeat(auto-fit,minmax(220px,1fr)); }
.feature-card { background: var(--card-bg); border:1px solid var(--border); padding:1.25rem 1.1rem 1.35rem; border-radius: var(--radius-md); box-shadow: var(--shadow-sm); position:relative; overflow:hidden; transition: border-color .25s, transform .25s; }
.feature-card:hover { transform: translateY(-4px); border-color: rgba(var(--brand-accent-rgb), .35); }
.feature-card h3 { font-size:.95rem; letter-spacing:.5px; text-transform:uppercase; margin-bottom:.45rem; color: var(--brand-accent); }
.feature-card p { font-size:.85rem; color: var(--muted); }

/* SERVICES PAGE */
.services-hero { display: grid; gap: 2rem; grid-template-columns: repeat(auto-fit,minmax(300px,1fr)); align-items: center; background: var(--gradient-soft); padding: 3rem clamp(1rem,4vw,3rem); border-radius: var(--radius-lg); position: relative; overflow: hidden; margin: 1rem 0 2.5rem; }
.services-hero h1 { font-size: var(--hero-h1-size); margin-bottom: .75rem; background: var(--gradient-accent); -webkit-background-clip: text; color: transparent; }
.hero-badges { display: flex; flex-wrap: wrap; gap: .6rem; margin-top: 1.25rem; }
.badge { background: var(--card-bg); color: var(--brand-dark); padding: .45rem .75rem; font-size: .65rem; letter-spacing: .6px; font-weight: 600; text-transform: uppercase; border-radius: 24px; box-shadow: var(--shadow-sm); border: 1px solid var(--border); }

.service-list-section { margin-bottom: 3rem; }
.service-list.enhanced { display: grid; gap: 1.75rem; grid-template-columns: repeat(auto-fit,minmax(240px,1fr)); }
.service-card { position: relative; display: flex; gap: 1rem; background: var(--card-bg); padding: 1.25rem 1.1rem 1.35rem; border: 1px solid var(--border); border-radius: var(--radius-md); box-shadow: var(--shadow-sm); transition: box-shadow .25s, transform .25s, border-color .25s; overflow: hidden; }
.service-card:hover { box-shadow: var(--shadow-md); transform: translateY(-4px); border-color: rgba(var(--brand-accent-rgb), .35); }
.icon-circle { display:inline-flex; align-items:center; justify-content:center; width: 46px; height: 46px; background: var(--gradient-accent); color:#fff; font-weight:600; border-radius: 50%; font-size:.95rem; box-shadow: 0 4px 10px -2px rgba(var(--brand-accent-rgb), .4); }
.service-content h3 { font-size: 1.05rem; margin-bottom: .4rem; color: var(--brand-dark); }
.service-content p { font-size: .9rem; margin-bottom: .65rem; color: var(--muted); }
.service-points { list-style: none; font-size: .75rem; display: flex; flex-direction: column; gap: .35rem; }
.service-points li { position: relative; padding-left: 1rem; }
.service-points li::before { content:""; position:absolute; width:6px; height:6px; left:0; top: .45rem; background: var(--brand-accent); border-radius: 50%; }

/* Decorative gallery strip */
.image-strip { display:grid; gap:1rem; grid-template-columns: repeat(auto-fit,minmax(180px,1fr)); margin: 0 0 3rem; }
.image-strip figure { position:relative; overflow:hidden; border-radius: var(--radius-md); border:1px solid var(--border); background:#fff; aspect-ratio:4/3; display:flex; align-items:center; justify-content:center; }
.image-strip figure img { width:100%; height:100%; object-fit:cover; filter: saturate(1.05); }
.image-strip figcaption { position:absolute; inset:auto 0 0 0; background: linear-gradient(to top, rgba(0,0,0,.55), transparent 70%); color:#fff; font-size:.65rem; padding:.4rem .55rem; letter-spacing:.5px; text-transform:uppercase; }

/* WHY CHOOSE */
.why-choose { background: var(--brand-bg); padding: 2.5rem clamp(1rem,4vw,3rem); border-radius: var(--radius-lg); margin-bottom: 3rem; position: relative; overflow:hidden; }
.why-choose h2 { text-align:center; font-size: clamp(1.8rem,3.8vw,2.3rem); margin-bottom: 1.75rem; color: var(--brand-dark); }
.why-grid { display:grid; gap: 1.5rem; grid-template-columns: repeat(auto-fit,minmax(200px,1fr)); }
.why-item { background: var(--card-bg); padding: 1.1rem 1rem 1.25rem; border:1px solid var(--border); border-radius: var(--radius-md); box-shadow: var(--shadow-sm); transition: border-color .25s, transform .25s; }
.why-item:hover { transform: translateY(-4px); border-color: rgba(var(--brand-accent-rgb), .4); }
.why-item h3 { font-size: .85rem; letter-spacing: .5px; text-transform: uppercase; margin-bottom: .5rem; color: var(--brand-accent); }
.why-item p { font-size: .75rem; color: var(--muted); }

/* ABOUT SIMPLIFIED */
.about-hero { display:grid; gap:2rem; grid-template-columns: repeat(auto-fit,minmax(300px,1fr)); align-items:center; background: var(--gradient-soft); padding: 3rem clamp(1rem,4vw,3rem); border-radius: var(--radius-lg); margin:1rem 0 2.5rem; position:relative; overflow:hidden; }
.about-hero h1 { font-size: var(--hero-h1-size); background: var(--gradient-accent); -webkit-background-clip:text; color:transparent; margin-bottom:.75rem; }
.history-timeline { margin:0 0 3.5rem; }
.history-timeline h2 { font-size: clamp(1.6rem,3vw,2.1rem); margin-bottom:1.25rem; color: var(--brand-dark); }
.timeline-list { list-style:none; padding-left:0; display:flex; flex-direction:column; gap:1rem; position:relative; }
.timeline-list::before { content:""; position:absolute; left:10px; top:0; bottom:0; width:2px; background: linear-gradient(var(--brand-accent), transparent); border-radius:2px; }
.timeline-list li { display:grid; grid-template-columns: 90px 1fr; gap:.75rem; padding-left:1.25rem; position:relative; }
.timeline-list li::before { content:""; position:absolute; left:4px; top:.55rem; width:12px; height:12px; background: var(--brand-accent); border:2px solid #fff; border-radius:50%; box-shadow:0 0 0 2px rgba(var(--brand-accent-rgb), .3); }
.tl-year { font-weight:600; font-size:.8rem; color: var(--brand-accent); text-transform:uppercase; letter-spacing:.5px; }
.tl-text { font-size:.85rem; color: var(--muted); }

/* CONTACT */
.contact-hero { display:grid; gap:2rem; grid-template-columns: repeat(auto-fit,minmax(300px,1fr)); align-items:center; background: var(--gradient-soft); padding: 3rem clamp(1rem,4vw,3rem); border-radius: var(--radius-lg); margin:1rem 0 2.5rem; }
.contact-layout { display:grid; gap:2.5rem; grid-template-columns: repeat(auto-fit,minmax(320px,1fr)); align-items:start; margin: 0 0 4rem; }
.contact-form { background: var(--card-bg); border:1px solid var(--border); padding:1.5rem 1.25rem 1.8rem; border-radius: var(--radius-md); box-shadow: var(--shadow-sm); }
.contact-form .form-row { display:flex; gap:1rem; flex-wrap:wrap; }
.contact-form .field { flex:1 1 160px; display:flex; flex-direction:column; gap:.4rem; }
.contact-form .field.full { flex: 1 0 100%; }
.contact-form textarea { resize:vertical; }
.contact-form .form-actions { margin-top: .5rem; }
.contact-info { background: var(--brand-bg); border:1px solid var(--border); padding:1.5rem 1.25rem 1.8rem; border-radius: var(--radius-md); position:relative; overflow:hidden; }
.contact-info::before { content:""; position:absolute; inset:0; background: radial-gradient(circle at 80% 15%, rgba(var(--brand-accent-rgb), .12), transparent 60%); }
.info-list { list-style:none; display:flex; flex-direction:column; gap:.5rem; font-size:.85rem; color: var(--muted); padding-left:0; }
.info-list strong { font-weight:600; color: var(--brand-dark); }

/* CTA */
.cta-band { background: var(--gradient-accent); padding: 3.25rem clamp(1.25rem,4vw,3rem); border-radius: var(--radius-lg); color:#fff; position:relative; overflow:hidden; box-shadow: 0 10px 28px -6px rgba(var(--brand-accent-rgb), .45); }
.cta-band.alt { background: linear-gradient(135deg, #ff5252 0%, var(--brand-accent) 100%); }
.cta-content { max-width: 680px; position:relative; z-index:2; }
.cta-content h2 { font-size: clamp(1.9rem,3.5vw,2.5rem); margin-bottom: .6rem; }
.cta-content p { font-size: .95rem; margin-bottom: 1rem; color: rgba(255,255,255,.9); }

/* Buttons */
.btn { display:inline-flex; align-items:center; justify-content:center; gap:.5rem; font-weight:600; border:none; cursor:pointer; text-decoration:none; line-height:1; white-space:nowrap; }
.btn-primary { background:#fff; color: var(--brand-accent); padding:.85rem 1.35rem; border-radius: var(--radius-md); font-size:.9rem; box-shadow: 0 4px 14px -3px rgba(0,0,0,.25); transition: transform .25s, box-shadow .25s; }
.btn-primary:hover { transform: translateY(-3px); box-shadow: 0 10px 24px -6px rgba(0,0,0,.35); text-decoration:none; }
.btn-outline { padding:.85rem 1.35rem; border-radius: var(--radius-md); font-size:.9rem; border:1px solid var(--brand-accent); color: var(--brand-accent); background: rgba(var(--brand-accent-rgb), .05); backdrop-filter: blur(4px); transition: background .25s, transform .25s; }
.btn-outline:hover { background: rgba(var(--brand-accent-rgb), .12); text-decoration:none; transform: translateY(-3px); }

/* Footer */
footer { text-align: center; padding: 3rem 1rem 2.5rem; font-size: .8rem; color: var(--muted); }
.footer-location { margin:0 auto 1.25rem; max-width:760px; font-size:.9rem; color: var(--muted); display:flex; flex-direction:column; gap:.85rem; text-align:center; }
.footer-location address { font-style:normal; font-weight:600; letter-spacing:.6px; color: var(--brand-dark); font-size:1.05rem; }
.footer-location address a { color: var(--brand-dark); text-decoration:none; border-bottom:1px dotted rgba(var(--brand-accent-rgb), .4); }
.footer-location address a:hover { color: var(--brand-accent); border-color: var(--brand-accent); }
.hours-list { list-style:none; margin:0 auto; padding:0; display:grid; gap:.4rem .75rem; grid-template-columns: repeat(auto-fit,minmax(160px,1fr)); max-width:640px; }
.hours-list li { background: #fff; border:1px solid var(--border); border-radius: 30px; padding:.45rem .85rem .5rem; display:flex; align-items:center; justify-content:center; gap:.35rem; box-shadow: var(--shadow-sm); position:relative; }
.hours-list li strong { color: var(--brand-accent); font-weight:600; font-size:.8rem; letter-spacing:.75px; text-transform:uppercase; }
.hours-list time { font-variant-numeric: tabular-nums; font-weight:600; color: var(--brand-dark); font-size:.85rem; }
.hours-list .closed { font-weight:600; color:#fff; background: var(--brand-accent); padding:.2rem .55rem .25rem; border-radius:12px; font-size:.6rem; letter-spacing:.5px; text-transform:uppercase; }
@media (max-width:520px){
  .footer-location { font-size:.95rem; }
  .footer-location address { font-size:1rem; }
  .hours-list li strong { font-size:.75rem; }
  .hours-list time { font-size:.8rem; }
}
@media (max-width: 760px){
  header.site-header { flex-wrap:wrap; padding: .75rem 1rem; }
  .nav-toggle { display:inline-flex; align-items:center; justify-content:center; }
  .site-header nav { order: 3; width:100%; position:relative; }
  .site-header nav .nav-list { flex-direction:column; gap:.25rem; padding:0; margin:0; }
  .mobile-nav-panel { background: var(--card-bg); border:1px solid var(--border); border-radius: var(--radius-md); margin-top:.75rem; padding:.75rem .75rem .9rem; box-shadow: var(--shadow-md); animation: navDrop .4s cubic-bezier(.16,.68,.43,.99); }
  .mobile-nav-panel li a { display:block; padding:.65rem .75rem; border-radius: var(--radius-sm); }
  .mobile-nav-panel li a[aria-current="page"], .mobile-nav-panel li a:hover { background: rgba(var(--brand-accent-rgb), .08); text-decoration:none; }
  @keyframes navDrop { 0% { opacity:0; transform: translateY(-6px) scale(.98); } 100% { opacity:1; transform: translateY(0) scale(1); } }
  .features-grid, .service-list.enhanced, .image-strip, .why-grid, .timeline-list, .contact-layout { grid-template-columns: 1fr; }
  .home-hero { padding: 2.5rem 1.25rem 2.5rem; }
}
@media (max-width: 640px){
  footer { padding:2.25rem 1rem 2rem; }
  .review-promo { margin-bottom:1.6rem; }
  .footer-location { gap:1.1rem; }
  .footer-location address { font-size:1rem; line-height:1.25; }
  /* Stack hours list vertically for better readability */
  .hours-list { display:flex; flex-direction:column; gap:.55rem; max-width:520px; width:100%; }
  .hours-list li { width:100%; justify-content:space-between; padding:.6rem .9rem .55rem; border-radius: var(--radius-md); gap:.85rem; }
  .hours-list li strong { flex:0 0 74px; text-align:left; font-size:.68rem; letter-spacing:.65px; }
  .hours-list time { font-size:.9rem; font-weight:600; }
  .hours-list .closed { font-size:.55rem; letter-spacing:.6px; }
}
@media (max-width:400px){
  .hours-list li { padding:.55rem .75rem .5rem; }
  .hours-list time { font-size:.85rem; }
}
@media (min-width: 761px){
  .site-header { align-items: flex-end; }
  .site-header nav { position:relative; padding-top:.6rem; }
  .site-header nav::after { content:""; position:absolute; left:0; right:0; bottom:0; height:1px; background: var(--border); }
  .site-header .nav-list { gap:.4rem; flex-direction:row; background:transparent; box-shadow:none; padding:0; margin:0; }
  .site-header .nav-list.mobile-nav-panel { border:none; }
  .site-header .nav-list li { position:relative; z-index:2; }
  .site-header .nav-list a { background: rgba(var(--brand-accent-rgb), .06); border:1px solid transparent; border-bottom:none; border-radius: var(--radius-sm) var(--radius-sm) 0 0; padding:.6rem 1rem .55rem; position:relative; top:1px; font-size:.85rem; font-weight:600; letter-spacing:.4px; transition: background .25s, color .25s, border-color .25s; }
  .site-header .nav-list a:hover { background: rgba(var(--brand-accent-rgb), .12); text-decoration:none; }
  .site-header .nav-list a[aria-current="page"] { background:#fff; border-color: var(--border); box-shadow: 0 3px 6px -3px rgba(0,0,0,.25); color: var(--brand-dark); }
  .nav-toggle { display:none !important; }
  #primaryNav[hidden] { display:block !important; } /* ensure nav visible on desktop even if hidden attr present */
}

/* Mobile Nav Toggle (hamburger) */
.nav-toggle { display:none; align-items:center; justify-content:center; gap:4px; background: var(--gradient-accent); color:#fff; border:none; padding:.55rem .7rem; border-radius: var(--radius-sm); cursor:pointer; font-weight:600; font-size:.75rem; line-height:1; position:relative; box-shadow: 0 3px 10px -3px rgba(var(--brand-accent-rgb), .55); z-index:80; }
.nav-toggle:focus-visible { outline:2px solid rgba(var(--brand-accent-rgb), .55); outline-offset:3px; }
.nav-toggle .bar { display:block; width:20px; height:2px; background:#fff; margin:3px 0; border-radius:2px; transition: transform .4s cubic-bezier(.68,-0.55,.27,1.55), opacity .4s; }
.nav-toggle.active .bar:nth-child(2){ opacity:0; }
.nav-toggle.active .bar:nth-child(1){ transform: translateY(5px) rotate(45deg); }
.nav-toggle.active .bar:nth-child(3){ transform: translateY(-5px) rotate(-45deg); }
/* Enhanced hamburger visibility */
.nav-toggle { width:44px; height:40px; padding:0; justify-content:center; }
.nav-toggle .bar { width:24px; height:3px; background:#fff; margin:4px 0; }
.nav-toggle .hamburger-fallback { display:none; font-size:24px; line-height:1; color:#fff; }
@supports not (aspect-ratio: 1 / 1) { /* extremely old browsers fallback show symbol */
  .nav-toggle .bar { display:none; }
  .nav-toggle .hamburger-fallback { display:inline-block; }
}
@media (max-width:760px){ .nav-toggle { display:inline-flex !important; } }


}
@media (max-width:760px){
  /* Enhanced mobile panel styling */
  #primaryNav { position:relative; z-index:70; width:100%; }
  #primaryNav[hidden] { display:none; }
  #primaryNav:not([hidden]) .nav-list.mobile-nav-panel { animation: navSlide .35s cubic-bezier(.4,.7,.2,1); }
  .nav-list.mobile-nav-panel { flex-direction:column; gap:.35rem; padding:.55rem .65rem .75rem; background:#ffffff; border:1px solid var(--border); border-radius: var(--radius-md); box-shadow: 0 10px 28px -8px rgba(0,0,0,.25); }
  .nav-list.mobile-nav-panel a { background: rgba(var(--brand-accent-rgb), .05); border:1px solid transparent; font-weight:600; letter-spacing:.4px; }
  .nav-list.mobile-nav-panel a:hover, .nav-list.mobile-nav-panel a[aria-current="page"] { background: rgba(var(--brand-accent-rgb), .12); border-color: rgba(var(--brand-accent-rgb), .25); text-decoration:none; }
  @keyframes navSlide { 0% { opacity:0; transform: translateY(-6px); } 100% { opacity:1; transform: translateY(0); } }
}

/* REVIEW PROMO BOX */
.review-promo { background: linear-gradient(135deg,#c62828 0%,#ff5252 65%); color:#fff; padding:1.35rem 1.25rem 1.4rem; border-radius: var(--radius-lg); box-shadow:0 10px 26px -10px rgba(var(--brand-accent-rgb), .55), 0 4px 12px -4px rgba(0,0,0,.25); margin:0 auto 2rem; max-width:880px; position:relative; overflow:hidden; }
.review-promo::before, .review-promo::after { content:""; position:absolute; width:220px; height:220px; border-radius:50%; background: radial-gradient(circle at 30% 30%, rgba(255,255,255,.55), rgba(255,255,255,0)); opacity:.22; pointer-events:none; }
.review-promo::before { top:-70px; left:-60px; }
.review-promo::after { bottom:-80px; right:-60px; }
.review-promo h2 { font-size: clamp(1.15rem,2.2vw,1.55rem); margin:0 0 .55rem; letter-spacing:.75px; text-transform:uppercase; background: linear-gradient(90deg,#fff,#ffe1e1); -webkit-background-clip:text; color:transparent; }
.review-promo p { margin:0; font-size:.85rem; letter-spacing:.35px; max-width:58ch; line-height:1.4; }
.review-promo a.review-link { display:inline-flex; align-items:center; gap:.5rem; margin-top:.9rem; background:#fff; color: var(--brand-accent); font-weight:700; font-size:.75rem; letter-spacing:.8px; text-transform:uppercase; padding:.7rem 1.15rem .65rem; border-radius:40px; text-decoration:none; box-shadow:0 6px 18px -6px rgba(0,0,0,.4); transition: transform .3s, box-shadow .3s, background .3s; }
.review-promo a.review-link:hover { transform: translateY(-3px); box-shadow:0 12px 28px -10px rgba(0,0,0,.55); text-decoration:none; }
.review-promo a.review-link:focus-visible { outline:2px solid #fff; outline-offset:3px; }
@media (max-width:600px){ .review-promo { padding:1.15rem 1rem 1.2rem; } .review-promo h2 { letter-spacing:.55px; } }

.homepage-location .hours-list {
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:.55rem;
  max-width:480px;
}
.homepage-location .hours-list li {
  width:100%;
}
/* --- Map / Find Us section styling --- */
.map-section {
  position: relative;
  margin: 3rem 0 4rem;
  padding: 2.75rem clamp(1rem,4vw,2.75rem) 3rem;
  background: var(--gradient-soft);
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-sm);
  overflow: hidden;
}
.map-section::before,
.map-section::after {
  content:"";
  position:absolute;
  width:340px;
  height:340px;
  border-radius:50%;
  background: radial-gradient(circle at 35% 35%, rgba(var(--brand-accent-rgb), .12), rgba(var(--brand-accent-rgb),0) 70%);
  top:-140px;
  left:-120px;
  pointer-events:none;
  opacity:.6;
}
.map-section::after {
  top:auto;
  left:auto;
  bottom:-160px;
  right:-140px;
  background: radial-gradient(circle at 65% 65%, rgba(var(--brand-accent-rgb), .10), rgba(var(--brand-accent-rgb),0) 70%);
}
.map-header {
  text-align:center;
  max-width:760px;
  margin:0 auto 1.6rem;
}
.map-header h2 {
  font-size: clamp(1.75rem,3.2vw,2.15rem);
  margin:0 0 .6rem;
  background: var(--gradient-accent);
  -webkit-background-clip:text;
  color:transparent;
  letter-spacing:.75px;
}
.map-note {
  margin:0;
  color: var(--muted);
  font-size:.9rem;
  letter-spacing:.35px;
}
.map-embed-wrapper {
  position:relative;
  width:100%;
  max-width:960px;
  margin:0 auto 1.1rem;
  aspect-ratio: 16 / 9;
  border:1px solid var(--border);
  border-radius: var(--radius-md);
  overflow:hidden;
  background:#fff;
  box-shadow:0 6px 20px -6px rgba(0,0,0,.15);
}
.map-embed-wrapper::before {
  content:"Loading map…";
  position:absolute;
  inset:0;
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:.75rem;
  letter-spacing:.5px;
  color: var(--muted);
  background: repeating-linear-gradient(45deg,#fff,#fff 6px,#fff7f7 6px,#fff7f7 12px);
  animation: fadeOutMapOverlay .6s ease .4s forwards;
}
@keyframes fadeOutMapOverlay { to { opacity:0; visibility:hidden; } }
.map-embed {
  width:100%;
  height:100%;
  border:0;
  display:block;
}
.map-link {
  text-align:center;
  font-size:.7rem;
  letter-spacing:.6px;
  text-transform:uppercase;
  font-weight:600;
}
.map-link a {
  display:inline-block;
  background:#fff;
  border:1px solid var(--border);
  padding:.6rem 1rem .55rem;
  border-radius:40px;
  box-shadow: var(--shadow-sm);
  text-decoration:none;
  transition: background .25s, transform .25s, box-shadow .25s;
}
.map-link a:hover {
  background: rgba(var(--brand-accent-rgb), .08);
  transform: translateY(-3px);
  text-decoration:none;
  box-shadow: var(--shadow-md);
}
@media (max-width:780px){
  .map-section { padding:2.1rem 1.25rem 2.3rem; }
  .map-embed-wrapper { aspect-ratio: 4 / 3; }
}
@media (max-width:480px){
  .map-embed-wrapper { aspect-ratio: 1 / 1; }
  .map-link { font-size:.6rem; }
}