/* MDS State-to-State page design system v2 */

:root{
  --navy:#111827;
  --gold:#E8A317;
  --rust:#C4622D;
  --cream:#F5F3EE;
  --ink:#3A3F47;
  --line:#E3DED2;
  --white:#FFFFFF;
}

*{box-sizing:border-box;}

body{
  margin:0;
  background:var(--cream);
  color:var(--ink);
  font-family:'Inter',-apple-system,BlinkMacSystemFont,sans-serif;
  line-height:1.6;
  padding-bottom:0;
}

h1,h2,h3{
  font-family:'Fraunces',Georgia,serif;
  color:var(--navy);
  font-weight:600;
  line-height:1.15;
  margin:0 0 0.5em;
}

h1{font-size:clamp(1.9rem,4vw,2.8rem);}
h2{font-size:1.5rem;margin-top:2.2em;}
h3{font-size:1.1rem;}

p{max-width:none;}

a{color:var(--rust);text-decoration:none;}
a:hover{text-decoration:underline;}
a:focus-visible,button:focus-visible{outline:3px solid var(--rust);outline-offset:2px;}

/* Top nav - dark with gold call block, matches live site pattern */
.site-nav{
  position:relative;z-index:20;
  background:var(--navy);
  color:var(--white);
  padding:0;
  display:flex;align-items:stretch;justify-content:space-between;
}
.site-nav .brand{
  font-family:'Fraunces',serif;font-size:1.2rem;color:var(--white);
  padding:1rem 1.5rem;align-self:center;
}
.site-nav .nav-links{
  display:flex;gap:1.4rem;list-style:none;margin:0;padding:0;
  align-items:center;flex:1;
}
.site-nav .nav-links a{color:var(--gold);font-size:0.95rem;font-weight:600;}
.site-nav .nav-links a:hover{text-decoration:none;opacity:0.85;}
.site-nav .call-block{
  background:var(--rust);color:var(--white);
  padding:0.9rem 1.6rem;font-weight:700;
  display:flex;align-items:center;white-space:nowrap;
}
.site-nav .call-block a{color:var(--white);}

@media (max-width:840px){
  .site-nav{flex-wrap:wrap;}
  .site-nav .nav-links{display:none;}
  .site-nav .call-block{display:none;}
  .site-nav::before{
    content:'\2261';
    color:var(--white);font-size:1.5rem;
    padding:0.7rem 1rem;align-self:center;
  }
}

/* Breadcrumb */
.breadcrumb{
  padding:0.5rem 1.5rem 0;
  font-size:0.85rem;
  color:var(--ink);
  opacity:0.7;
  max-width:1100px;margin:0 auto;
}
.breadcrumb a{color:var(--ink);}

/* Last updated line */
.last-updated{
  max-width:1100px;margin:0 auto;
  padding:0.2rem 1.5rem 0;
  font-size:0.8rem;color:var(--ink);opacity:0.55;
}

/* HERO: background image with overlaid quote card, matches live design */
.hero{
  position:relative;
  background-color:var(--navy);
  display:flex;align-items:center;justify-content:center;
  padding:1.4rem 1.5rem;
  overflow:hidden;
}
.hero .hero-bg{
  position:absolute;inset:0;
  width:100%;height:100%;
  object-fit:cover;object-position:center;
  z-index:0;
}
.hero::after{
  content:'';
  position:absolute;inset:0;
  background:linear-gradient(rgba(15,20,30,0.1),rgba(15,20,30,0.3));
  z-index:1;
}
.hero .quote-card{
  position:relative;z-index:2;
  background:rgba(245,243,238,0.96);
  border-radius:8px;
  padding:0.6rem;
  max-width:400px;width:100%;
  box-shadow:0 8px 30px rgba(0,0,0,0.3);
  line-height:0;
}
.hero .quoteFormContainer{
  width:100%;border:none;display:block;
}
.hero .call-out{
  position:absolute;right:2.5rem;bottom:1.4rem;
  z-index:2;
  color:var(--gold);text-align:right;font-weight:700;
  text-shadow:0 2px 6px rgba(0,0,0,0.5);
}
.hero .call-out .call-label{font-size:1.1rem;}
.hero .call-out .call-number{font-size:1.6rem;display:block;}
@media (max-width:840px){
  .hero{padding:1rem;}
  .hero .call-out{display:none;}
}

/* Page title block, below hero */
.title-block{
  max-width:1100px;margin:0 auto;
  padding:0.8rem 1.5rem 0;
}
.route-strip{
  display:flex;align-items:center;gap:0.75rem;
  margin:0.8rem 0 1.4rem;
  font-family:'Fraunces',serif;
  font-size:1.05rem;
  color:var(--navy);
}
.route-strip .city{white-space:nowrap;}
.route-strip .line{
  flex:1;height:2px;background:var(--line);
  position:relative;
}
.route-strip .line::after{
  content:'';position:absolute;right:-2px;top:-4px;
  width:10px;height:10px;border-radius:50%;
  background:var(--rust);
}

/* In This Guide TOC box */
.guide-toc{
  background:#EEF1F6;
  border-left:4px solid var(--navy);
  border-radius:4px;
  padding:1.2rem 1.5rem;
  margin:1.5rem 0 2rem;
}
.guide-toc .label{
  font-size:0.78rem;text-transform:uppercase;letter-spacing:0.06em;
  color:var(--navy);font-weight:700;margin-bottom:0.7rem;
}
.guide-toc ol{
  display:grid;grid-template-columns:repeat(2,1fr);
  gap:0.4rem 1.5rem;
  margin:0;padding:0 0 0 1.1rem;
  font-size:0.92rem;
}
@media (max-width:600px){
  .guide-toc ol{grid-template-columns:1fr;}
}

main{max-width:1100px;margin:0 auto;padding:0 1.5rem 3rem;}

/* Route facts block */
.route-facts{
  display:flex;flex-wrap:wrap;gap:0;
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
  margin:1.5rem 0 2.5rem;
}
.route-facts .fact{
  flex:1;min-width:140px;
  padding:1rem 1.2rem;
  border-right:1px solid var(--line);
}
.route-facts .fact:last-child{border-right:none;}
.route-facts .fact .label{
  font-size:0.78rem;text-transform:uppercase;letter-spacing:0.04em;
  color:var(--ink);opacity:0.6;margin-bottom:0.3rem;
}
.route-facts .fact .value{
  font-family:'Fraunces',serif;font-size:1.2rem;color:var(--navy);
}

/* FAQ accordion */
.faq details{
  border-bottom:1px solid var(--line);
  padding:1rem 0;
}
.faq summary{
  font-family:'Fraunces',serif;
  font-size:1.05rem;color:var(--navy);
  cursor:pointer;
  list-style:none;
  display:flex;justify-content:space-between;align-items:center;
}
.faq summary::-webkit-details-marker{display:none;}
.faq summary::after{
  content:'+';font-size:1.4rem;color:var(--rust);
}
.faq details[open] summary::after{content:'\2212';}
.faq .answer{margin-top:0.75rem;max-width:68ch;}

/* Rate table */
.rate-table{
  width:100%;border-collapse:collapse;
  margin:1.2rem 0;font-size:0.95rem;
}
.rate-table th{
  background:var(--navy);color:var(--white);
  text-align:left;padding:0.75rem 1rem;font-weight:600;
}
.rate-table td{
  padding:0.7rem 1rem;border-bottom:1px solid var(--line);
}
.rate-table tr:nth-child(even) td{background:#F7F5F0;}

.cta-inline{
  display:inline-flex;align-items:center;gap:0.75rem;flex-wrap:wrap;
  margin-top:1rem;
}
.cta-inline .btn{
  background:var(--rust);color:var(--white);
  padding:0.7rem 1.4rem;border-radius:4px;
  font-weight:600;
}
.cta-inline .btn:hover{text-decoration:none;opacity:0.92;}
.cta-inline .phone{
  color:var(--navy);font-weight:600;
}
.cta-inline .phone a{color:var(--rust);}

/* Sticky mobile CTA bar */
.mobile-cta{
  display:none;
}
@media (max-width:840px){
  .mobile-cta{
    display:flex;
    position:fixed;bottom:0;left:0;right:0;z-index:30;
    box-shadow:0 -2px 10px rgba(0,0,0,0.2);
  }
  .mobile-cta a{
    flex:1;color:var(--white);text-align:center;
    padding:0.9rem 0.5rem;font-weight:700;font-size:0.95rem;
  }
  .mobile-cta .quote-btn{background:var(--rust);}
  .mobile-cta .call-btn{background:var(--navy);}
  body{padding-bottom:60px;}
}

/* Footer */
footer{
  background:var(--navy);color:var(--white);
  padding:2.5rem 1.5rem;
  font-size:0.9rem;
}
footer .footer-grid{
  max-width:1100px;margin:0 auto;
  display:grid;grid-template-columns:repeat(3,1fr);gap:2rem;
}
@media (max-width:640px){
  footer .footer-grid{grid-template-columns:1fr;}
}
footer a{color:var(--white);opacity:0.85;}
footer a:hover{opacity:1;}
footer h3{color:var(--white);font-size:1rem;}
.copyright{
  text-align:center;padding:1rem 0 0;opacity:0.6;font-size:0.8rem;
}
