:root{
  /* Keep your existing scheme: orange + charcoal + whites. Tweak ONLY if you already have exact hex values. */
  --brand-orange:#f06030;
  --charcoal:#2b2b2b;
  --muted:#5a5a5a;
  --bg:#ffffff;
  --bg-soft:#f6f6f6;
  --border:#e8e8e8;
  --shadow: 0 10px 30px rgba(0,0,0,.08);
  --radius:14px;
  --max:1120px;
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  font-family: system-ui, -apple-system, Segoe UI, Roboto, Inter, Arial, sans-serif;
  color:var(--charcoal);
  background:var(--bg);
  line-height:1.55;
}
a{color:inherit}
img{max-width:100%; height:auto; display:block}
.container{max-width:var(--max); margin:0 auto; padding:0 20px}
.skip-link{
  position:absolute; left:-999px; top:auto; width:1px; height:1px; overflow:hidden;
}
.skip-link:focus{left:20px; top:20px; width:auto; height:auto; background:#fff; padding:10px 12px; border:1px solid var(--border); border-radius:10px; z-index:9999}

header{
  position:sticky; top:0; z-index:50;
  background:rgba(255,255,255,.92);
  backdrop-filter:saturate(160%) blur(10px);
  border-bottom:1px solid var(--border);
}
.nav{
  display:flex; align-items:center; justify-content:space-between;
  gap:16px; padding:14px 0;
}
.brand{
  display:flex; align-items:center; gap:12px; text-decoration:none;
}
.brand img{width:44px; height:44px}
.brand .name{font-weight:700; letter-spacing:.2px}
.nav-links{
  display:flex; gap:18px; align-items:center;
}
.nav-links a{
  text-decoration:none; color:var(--muted);
  font-weight:600; font-size:.95rem;
}
.nav-links a:hover{color:var(--charcoal)}
.nav-actions{display:flex; gap:10px; align-items:center}

.btn{
  display:inline-flex; align-items:center; justify-content:center;
  gap:10px;
  padding:10px 14px;
  border-radius:999px;
  border:1px solid transparent;
  font-weight:700;
  text-decoration:none;
  cursor:pointer;
  transition:transform .08s ease, box-shadow .2s ease, background .2s ease, border-color .2s ease;
  white-space:nowrap;
}
.btn:active{transform:translateY(1px)}
.btn.primary{background:var(--brand-orange); color:#fff; box-shadow:0 8px 22px rgba(240,96,48,.25)}
.btn.primary:hover{box-shadow:0 10px 26px rgba(240,96,48,.33)}
.btn.secondary{background:#fff; border-color:var(--border); color:var(--charcoal)}
.btn.secondary:hover{border-color:#d7d7d7}
.btn.ghost{background:transparent; border-color:transparent; color:var(--muted)}
.btn.ghost:hover{color:var(--charcoal)}

.mobile-toggle{
  display:none;
  border:1px solid var(--border);
  border-radius:12px;
  padding:10px 12px;
  background:#fff;
  font-weight:700;
}

main{min-height:60vh}

.hero{
  padding:28px 0 18px;
  background:linear-gradient(180deg, #fff 0%, var(--bg-soft) 100%);
}
.hero-grid{
  display:grid;
  grid-template-columns: 1.15fr .85fr;
  gap:28px;
  align-items:start;
}
.kicker{
  display:inline-flex; gap:8px; align-items:center;
  font-size:.9rem; font-weight:700; color:var(--muted);
  background:#fff; border:1px solid var(--border);
  border-radius:999px; padding:8px 12px;
}
.kicker .dot{width:8px; height:8px; border-radius:999px; background:var(--brand-orange)}
h1{font-size:2.35rem; line-height:1.15; margin:14px 0 10px}
.lede{font-size:1.05rem; color:var(--muted); margin:0 0 18px}
.hero-actions{display:flex; flex-wrap:wrap; gap:10px; margin-top:14px}

.card{
  background:#fff;
  border:1px solid var(--border);
  border-radius:var(--radius);
  box-shadow:var(--shadow);
}
.hero-card{
  padding:18px;
}
.hero-card .img{
  border-radius:12px;
  overflow:hidden;
  border:1px solid var(--border);
  background:linear-gradient(135deg, rgba(240,96,48,.12), rgba(43,43,43,.04));
  aspect-ratio: 4 / 3;
  display:flex; align-items:center; justify-content:center;
  color:var(--muted);
  text-align:center;
  padding:18px;
}

.section{padding:44px 0}
.section.soft{background:var(--bg-soft); border-top:1px solid var(--border); border-bottom:1px solid var(--border)}
.section h2{margin:0 0 12px; font-size:1.6rem}
.section p{margin:0 0 10px; color:var(--muted)}

.grid-3{display:grid; grid-template-columns:repeat(3,1fr); gap:14px}
.grid-2{display:grid; grid-template-columns:repeat(2,1fr); gap:14px}
.grid-cards{display:grid; grid-template-columns:repeat(3,1fr); gap:14px}

.tile{
  padding:16px;
}
.tile h3{margin:0 0 6px; font-size:1.02rem}
.tile p{margin:0; color:var(--muted); font-size:.97rem}

.icon{
  width:40px; height:40px; border-radius:12px;
  background:rgba(240,96,48,.12);
  display:flex; align-items:center; justify-content:center;
  font-weight:900; color:var(--brand-orange);
  border:1px solid rgba(240,96,48,.22);
  margin-bottom:10px;
}

.steps{
  display:grid; grid-template-columns:repeat(3,1fr); gap:14px;
}
.step{padding:16px}
.step .num{
  width:34px; height:34px; border-radius:12px;
  background:#fff; border:1px solid var(--border);
  display:flex; align-items:center; justify-content:center;
  font-weight:900;
  margin-bottom:10px;
}
hr.sep{border:none; border-top:1px solid var(--border); margin:18px 0}

.cta{
  padding:22px;
  display:flex; align-items:center; justify-content:space-between; gap:16px;
}
.cta h2{margin:0; font-size:1.45rem}
.cta p{margin:6px 0 0; color:var(--muted)}
.cta .actions{display:flex; gap:10px; flex-wrap:wrap}

.page-hero{
  padding:38px 0 16px;
  background:linear-gradient(180deg,#fff 0%, var(--bg-soft) 100%);
  border-bottom:1px solid var(--border);
}
.page-hero h1{margin:0 0 8px}
.breadcrumbs{font-size:.92rem; color:var(--muted)}
.breadcrumbs a{text-decoration:none; color:var(--muted)}
.breadcrumbs a:hover{color:var(--charcoal)}

.list{
  margin:0; padding:0; list-style:none;
}
.list li{
  padding:12px 0;
  border-bottom:1px solid var(--border);
}
.list li:last-child{border-bottom:none}
.list strong{display:block}
.badge{
  display:inline-flex; align-items:center;
  padding:6px 10px;
  border-radius:999px;
  background:#fff; border:1px solid var(--border);
  font-size:.85rem; font-weight:700; color:var(--muted);
}
.form{
  display:grid; gap:12px;
}
.field label{display:block; font-weight:700; margin:0 0 6px}
.field input,.field select,.field textarea{
  width:100%;
  padding:12px 12px;
  border:1px solid var(--border);
  border-radius:12px;
  font:inherit;
  background:#fff;
}
.field textarea{min-height:120px; resize:vertical}
.note{font-size:.92rem; color:var(--muted)}
.two-col{display:grid; grid-template-columns:1fr 1fr; gap:14px; align-items:start}
.map{
  width:100%; height:360px; border:1px solid var(--border); border-radius:var(--radius);
  overflow:hidden; background:#fff;
}

footer{
  border-top:1px solid var(--border);
  padding:28px 0;
  background:#fff;
}
.footer-grid{
  display:grid; grid-template-columns: 1.2fr .8fr .8fr;
  gap:18px;
}
.small{font-size:.92rem; color:var(--muted)}
.footer-links a{text-decoration:none; color:var(--muted); display:block; padding:4px 0}
.footer-links a:hover{color:var(--charcoal)}
.copy{margin-top:14px; font-size:.85rem; color:var(--muted)}

.callbar{
  display:none;
  position:fixed; bottom:14px; left:14px; right:14px; z-index:70;
  background:#fff; border:1px solid var(--border); border-radius:999px;
  box-shadow:var(--shadow);
  padding:10px;
  justify-content:space-between; align-items:center;
}
.callbar .left{display:flex; flex-direction:column; gap:2px; padding-left:8px}
.callbar .left strong{font-size:.95rem}
.callbar .left span{font-size:.85rem; color:var(--muted)}

@media (max-width: 980px){
  .hero-grid{grid-template-columns:1fr}
  .grid-cards{grid-template-columns:repeat(2,1fr)}
  .grid-3{grid-template-columns:1fr}
  .steps{grid-template-columns:1fr}
  .two-col{grid-template-columns:1fr}
  .footer-grid{grid-template-columns:1fr}
  .nav-links{display:none}
  .mobile-toggle{display:inline-flex}
  .nav.open .nav-links{
    display:flex; flex-direction:column; align-items:flex-start;
    width:100%;
    padding:10px 0 2px;
    gap:10px;
  }
  .nav{flex-wrap:wrap}
  .callbar{display:flex}
}

/* Business hours table */
.hours-table{
  width:100%;
  border-collapse:separate;
  border-spacing:0;
  overflow:hidden;
}
.hours-table td{
  padding:10px 10px;
  border-top:1px solid var(--border);
  vertical-align:top;
}
.hours-table tr:first-child td{border-top:none}
.hours-table .day{
  font-weight:800;
  width:40%;
  color:var(--charcoal);
}
.hours-table .time{
  color:var(--muted);
  font-weight:700;
}
.hours-table tr.today td{
  background:rgba(240,96,48,.10);
}
.hours-table tr.today .day,
.hours-table tr.today .time{
  color:var(--charcoal);
}
.today-pill{
  display:inline-flex;
  margin-left:8px;
  font-size:.72rem;
  font-weight:900;
  padding:3px 8px;
  border-radius:999px;
  background:rgba(240,96,48,.16);
  border:1px solid rgba(240,96,48,.30);
  color:var(--brand-orange);
  transform:translateY(-1px);
}

/* Hero card layout polish (reduce empty space around image) */
.hero-card{padding:0}
.hero-card .img{
  border-radius: var(--radius) var(--radius) 12px 12px;
  border-left:none;
  border-right:none;
  border-top:none;
}
.hero-card .hero-card-body{padding:16px}

/* Hero spacing tune */
.hero .kicker{margin-top:0}

/* Header social icons */
.social-icons{
  display:flex;
  align-items:center;
  gap:10px;
  margin-right:12px;
}
.social-icons a{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:32px;
  height:32px;
  border-radius:999px;
  border:1px solid var(--border);
  color:var(--muted);
  background:#fff;
  transition:all .2s ease;
}
.social-icons a:hover{
  color:var(--brand-orange);
  border-color:rgba(240,96,48,.55);
  background:rgba(240,96,48,.08);
}
.social-icons svg{
  width:16px;
  height:16px;
  fill:currentColor;
}
@media (max-width: 820px){
  .social-icons{display:none;}
}


/* Motion + delight (subtle, professional) */
.reveal{opacity:0; transform:translateY(10px); transition:opacity .6s ease, transform .6s ease;}
.reveal.in{opacity:1; transform:none;}
@media (prefers-reduced-motion: reduce){
  .reveal{opacity:1; transform:none; transition:none;}
}

/* Accordion */
.accordion{border:1px solid var(--border); border-radius:var(--radius); overflow:hidden; background:#fff;}
.accordion details{border-top:1px solid var(--border);}
.accordion details:first-child{border-top:none;}
.accordion summary{
  list-style:none;
  cursor:pointer;
  padding:14px 14px;
  font-weight:800;
  display:flex;
  align-items:center;
  justify-content:space-between;
}
.accordion summary::-webkit-details-marker{display:none;}
.accordion .acc-body{padding:0 14px 14px 14px;}
.acc-icon{width:22px;height:22px;border-radius:999px;border:1px solid var(--border);
  display:inline-flex;align-items:center;justify-content:center;color:var(--muted);font-weight:900;}
details[open] .acc-icon{background:rgba(240,96,48,.10); border-color:rgba(240,96,48,.35); color:var(--brand-orange);}

/* Testimonials */
.testimonial{padding:16px; border:1px solid var(--border); border-radius:var(--radius); background:#fff;}
.testimonial .quote{font-weight:700; color:var(--charcoal);}
.testimonial .meta{margin-top:10px; display:flex; gap:10px; align-items:center;}
.avatar{width:36px;height:36px;border-radius:999px;background:linear-gradient(135deg, rgba(240,96,48,.18), rgba(240,96,48,.04)); border:1px solid rgba(240,96,48,.25);}

/* Sticky mobile CTA */
.sticky-cta{
  position:fixed; left:12px; right:12px; bottom:12px; z-index:40;
  display:none; gap:10px; align-items:center; justify-content:space-between;
  background:#fff; border:1px solid var(--border); border-radius:999px;
  padding:10px 10px; box-shadow:0 18px 45px rgba(0,0,0,.10);
}
.sticky-cta a{flex:1; text-align:center; padding:10px 12px; border-radius:999px; font-weight:900;}
.sticky-cta .call{border:1px solid var(--border); color:var(--charcoal); background:#fff;}
.sticky-cta .book{background:var(--brand-orange); color:#fff;}
@media (max-width: 820px){
  .sticky-cta{display:flex;}
  body{padding-bottom:78px;}
}

/* Hero image polish: allow real image later */
.hero-photo{
  width:100%; height:240px; border-radius:var(--radius);
  background:radial-gradient(circle at 30% 20%, rgba(240,96,48,.18), rgba(255,255,255,0) 55%),
             linear-gradient(135deg, rgba(240,96,48,.08), rgba(0,0,0,0) 55%),
             #fafafa;
  border:1px solid var(--border);
  display:flex; align-items:center; justify-content:center; text-align:center; padding:0;
}

/* Prevent menu items from wrapping */
.nav-links a.nowrap{white-space:nowrap;}

/* Nav polish */
.nav-links{
  gap:14px;
}
.nav-links a{
  position:relative;
}
.nav-links a::after{
  content:"";
  position:absolute;
  left:0;
  right:0;
  bottom:-6px;
  height:2px;
  background:var(--brand-orange);
  transform:scaleX(0);
  transform-origin:left;
  transition:transform .2s ease;
  border-radius:999px;
  opacity:.9;
}
.nav-links a:hover::after{
  transform:scaleX(1);
}
.nav-links a.active{
  color:var(--charcoal);
  font-weight:900;
}
.nav-links a.active::after{
  transform:scaleX(1);
}

/* Slightly tighter header spacing on smaller widths */
@media (max-width: 1024px){
  .nav-links{gap:12px;}
}
@media (max-width: 920px){
  .nav-links{gap:10px;}
}

/* Brand logo sizing */
.brand img{
  max-height:42px;
  width:auto;
}

/* Visually hidden utility */
.sr-only{
  position:absolute !important;
  width:1px; height:1px;
  padding:0; margin:-1px;
  overflow:hidden; clip:rect(0,0,0,0);
  white-space:nowrap; border:0;
}

/* Header cleanup for logo-with-text */
.brand .name{
  display:none; /* logo already contains the name */
}
.brand img{
  max-height:46px; /* slightly larger for the combined logo */
}

/* Keep header items aligned nicely */
.nav{
  align-items:center;
}
.nav-actions{
  align-items:center;
}

/* Social icons: smaller + less spacing */
.social-icons{
  gap:8px;
  margin-right:10px;
}
.social-icons a{
  width:30px;
  height:30px;
}
.social-icons svg{
  width:15px;
  height:15px;
}

/* Header logo visibility fix */
.brand-logo{
  display:block;
  max-height:46px;
  width:auto;
}
.brand{
  display:flex;
  align-items:center;
}

/* Checklist styling */
.checklist{list-style:none; padding:0; margin:12px 0 0 0; display:grid; gap:10px;}
.checklist li{display:flex; gap:10px; align-items:flex-start;}
.tick{width:22px; height:22px; border-radius:999px; border:1px solid rgba(240,96,48,.35);
  display:inline-flex; align-items:center; justify-content:center; color:var(--brand-orange);
  background:rgba(240,96,48,.10); font-weight:900; flex:0 0 22px; margin-top:1px;}
.card{border:1px solid var(--border); border-radius:var(--radius); background:#fff;}
.pad{padding:16px;}
.note{border-left:4px solid rgba(240,96,48,.55); background:rgba(240,96,48,.06); padding:12px 12px; border-radius:12px;}
.divider{height:1px; background:var(--border);}
.page-head{margin-bottom:14px;}


/* Motion + reveal */
@keyframes fadeUp{
  from{opacity:0; transform:translateY(18px);}
  to{opacity:1; transform:translateY(0);}
}
.hero-animate{opacity:0; animation:fadeUp .8s ease-out forwards;}
.hero-animate.delay-1{animation-delay:.12s;}
.hero-animate.delay-2{animation-delay:.24s;}
.hero-animate.delay-3{animation-delay:.36s;}
.hero-animate.delay-4{animation-delay:.48s;}

.reveal{opacity:0; transform:translateY(20px); transition:opacity .7s ease, transform .7s ease;}
.reveal.visible{opacity:1; transform:translateY(0);}

/* Animated checklist (runs when section becomes visible) */
.reveal .checklist li{
  opacity:0;
  transform:translateX(-8px);
}
.reveal.visible .checklist li,
.reveal.in .checklist li{
  animation:slideIn .42s ease forwards;
}
.reveal.visible .checklist li:nth-child(1){animation-delay:.05s;}
.reveal.in .checklist li:nth-child(1){animation-delay:.05s;}
.reveal.visible .checklist li:nth-child(2){animation-delay:.10s;}
.reveal.in .checklist li:nth-child(2){animation-delay:.10s;}
.reveal.visible .checklist li:nth-child(3){animation-delay:.15s;}
.reveal.in .checklist li:nth-child(3){animation-delay:.15s;}
.reveal.visible .checklist li:nth-child(4){animation-delay:.20s;}
.reveal.in .checklist li:nth-child(4){animation-delay:.20s;}
.reveal.visible .checklist li:nth-child(5){animation-delay:.25s;}
.reveal.in .checklist li:nth-child(5){animation-delay:.25s;}
.reveal.visible .checklist li:nth-child(6){animation-delay:.30s;}
.reveal.in .checklist li:nth-child(6){animation-delay:.30s;}
.reveal.visible .checklist li:nth-child(7){animation-delay:.35s;}
.reveal.in .checklist li:nth-child(7){animation-delay:.35s;}
.reveal.visible .checklist li:nth-child(8){animation-delay:.40s;}
.reveal.in .checklist li:nth-child(8){animation-delay:.40s;}
.reveal.visible .checklist li:nth-child(9){animation-delay:.45s;}
.reveal.in .checklist li:nth-child(9){animation-delay:.45s;}
.reveal.visible .checklist li:nth-child(10){animation-delay:.50s;}
.reveal.in .checklist li:nth-child(10){animation-delay:.50s;}

@keyframes slideIn{
  to{opacity:1; transform:translateX(0);}
}

/* Hero illustration animation (SVG) */
.hero-photo{position:relative; overflow:hidden;}
.hero-anim{
  position:absolute;
  inset:0;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:0;
}
.hero-anim svg{width:100%; height:100%;}
.hero-anim .stroke{
  fill:none;
  stroke:rgba(38,38,38,.85);
  stroke-width:2.2;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.hero-anim .accent{stroke:var(--brand-orange);}
.hero-anim .soft{fill:rgba(240,96,48,.10);}
.hero-anim .fill-dark{fill:rgba(38,38,38,.85);}
@keyframes draw{from{stroke-dashoffset:320;} to{stroke-dashoffset:0;}}
@keyframes floaty{0%{transform:translateY(0);} 50%{transform:translateY(-6px);} 100%{transform:translateY(0);}}
@keyframes blink{0%,90%,100%{opacity:1;} 95%{opacity:.25;}}
.hero-anim .graph-line{stroke-dasharray:320; stroke-dashoffset:320; animation:draw 2.4s ease forwards;}
.hero-anim .coin{animation:floaty 2.2s ease-in-out infinite;}
.hero-anim .coin.c2{animation-delay:.25s;}
.hero-anim .coin.c3{animation-delay:.5s;}
.hero-anim .cursor{animation:blink 1.7s ease-in-out infinite;}
.hero-photo.has-bg .hero-anim{display:none;}

@media (prefers-reduced-motion: reduce){
  .hero-animate{animation:none; opacity:1;}
  .reveal{transition:none; opacity:1; transform:none;}
  .hero-anim .graph-line,
  .hero-anim .coin,
  .hero-anim .cursor{animation:none;}
}

.hero-photo .placeholder{
  display:flex;
  width:100%;
  height:100%;
  align-items:center;
  justify-content:center;
  padding:18px;
  text-align:center;
}

/* Footer address */
.footer-address{margin-top:10px; line-height:1.45;}

/* Hero layout refinements */
.hero-grid-top{
  align-items:start;
}
.hero-right{
  display:flex;
  flex-direction:column;
  gap:14px;
}
.hero-right .card.tile{
  margin-top:0 !important;
}

/* Seasonal banner */
.season-banner{
  background: var(--brand-orange);
  color:#fff;
  padding:10px 0;
  text-align:center;
  font-weight:700;
}
/* Dashboard number style */
.num{font-size:34px;font-weight:800;line-height:1;}

/* Business hours highlight */
.hours-table tr.is-today td{ font-weight:700; }
.hours-table tr.is-today td.time{ text-decoration: underline; text-underline-offset: 3px; }

/* Blog post layout */
@media (max-width: 920px){
  .blog-post-grid{ grid-template-columns: 1fr !important; }
}
