/* Extermanix Pest Solutions — site styles */

@font-face{font-family:'Antenna';src:url('../assets/fonts/Antenna-Regular.otf') format('opentype');font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:'Antenna';src:url('../assets/fonts/Antenna-Medium.otf') format('opentype');font-weight:500;font-style:normal;font-display:swap}
@font-face{font-family:'Antenna';src:url('../assets/fonts/Antenna-Bold.otf') format('opentype');font-weight:700;font-style:normal;font-display:swap}
@font-face{font-family:'Antenna';src:url('../assets/fonts/Antenna-Black.otf') format('opentype');font-weight:900;font-style:normal;font-display:swap}
@font-face{font-family:'Antenna';src:url('../assets/fonts/Antenna-BlackItalic.otf') format('opentype');font-weight:900;font-style:italic;font-display:swap}

html,body{margin:0;padding:0;background:#FFFFFF;scroll-behavior:smooth}
body{font-family:'Antenna',Helvetica,Arial,sans-serif;color:#1A1A1A;-webkit-font-smoothing:antialiased}
a{color:#D71920}a:hover{color:#A31217}
*{box-sizing:border-box}
img{max-width:100%}
input,select,textarea,button{font-family:'Antenna',Helvetica,Arial,sans-serif}

/* hover/focus states converted from the design's style-hover/style-focus attrs */
.xh0:hover{color:#D71920 !important}
.xh1:hover{background:#B5151B !important;color:#FFFFFF !important}
.xh2:hover{background:#FFFFFF !important;color:#121212 !important}
.xh3:hover{border-color:#D71920 !important;color:#D71920 !important}
.xh4:hover{background:#2E2E2E !important;color:#FFFFFF !important}
.xh5:hover{color:#FFFFFF !important}
.xh6:hover{background:#B5151B !important}
.xh7:hover{background:#D71920 !important;color:#FFFFFF !important}
.xh8:hover{border-color:#D71920 !important;box-shadow:0 4px 20px rgba(215,25,32,0.10) !important}
.xh9:hover{background:#F4F3F1 !important;color:#B5151B !important}
.xf10:focus{border-color:#D71920 !important}
.xh11:hover{background:#FBFAF9 !important}

/* mobile nav */
.nav-toggle{display:none;border:none;background:none;cursor:pointer;padding:8px;align-items:center}
header{position:sticky}

/* buttons */
.btn-red{display:inline-block;text-decoration:none;background:#D71920;color:#FFFFFF;font-size:16px;font-weight:700;padding:16px 30px;border-radius:4px}
.btn-red:hover{background:#B5151B;color:#FFFFFF}
.btn-ghost{display:inline-block;text-decoration:none;border:2px solid #FFFFFF;color:#FFFFFF;font-size:16px;font-weight:700;padding:14px 30px;border-radius:4px}
.btn-ghost:hover{background:#FFFFFF;color:#121212}
.btn-line{display:inline-block;text-decoration:none;border:1px solid #C9C6C1;color:#121212;font-size:16px;font-weight:700;padding:15px 30px;border-radius:4px}
.btn-line:hover{border-color:#D71920;color:#D71920}
.btn-sm{font-size:14px;padding:12px 22px}
.btn-line.btn-sm{padding:11px 22px}

/* home hero (photo is admin-swappable via --hero-img, set from content/site-images.json) */
.hero{--hero-img:url('../assets/photos/hero-family.jpg');
  background:
  linear-gradient(100deg, rgba(12,10,9,0.92) 0%, rgba(12,10,9,0.72) 38%, rgba(12,10,9,0.28) 68%, rgba(12,10,9,0.10) 100%),
  var(--hero-img) center 30%/cover no-repeat #121212;
  border-bottom:4px solid #D71920}
.hero-inner{max-width:1200px;margin:0 auto;padding:110px 32px 118px;display:flex;flex-direction:column;gap:20px;align-items:flex-start}
.hero-kicker{border:1px solid rgba(255,255,255,0.35);color:#E8E6E2;font-size:12px;font-weight:700;letter-spacing:2.5px;padding:8px 16px;border-radius:3px}
.hero-title{margin:0;font-family:'Antenna',Helvetica,Arial,sans-serif;font-weight:900;font-style:italic;font-size:56px;line-height:1.03;color:#FFFFFF;max-width:640px;text-wrap:balance}
.hero-sub{margin:0;font-size:17.5px;line-height:1.65;color:#E4E1DC;max-width:520px;text-wrap:pretty;text-shadow:0 1px 8px rgba(0,0,0,0.35)}
.hero-ctas{display:flex;gap:14px;flex-wrap:wrap;margin-top:6px}

/* product cards */
.pcard{background:#FFFFFF;border:1px solid #E8E6E2;border-radius:10px;overflow:hidden;display:flex;flex-direction:column}
.pcard-img{position:relative;aspect-ratio:4/3;background:#F0EFEC;border-bottom:1px solid #E8E6E2;overflow:hidden}
.pcard-img img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}
.pcard-body{padding:30px;display:flex;flex-direction:column;gap:12px}
.pcard-badge{align-self:flex-start;background:#FBEAEA;color:#D71920;font-size:11px;font-weight:700;letter-spacing:1.5px;padding:5px 10px;border-radius:3px}

/* rapid refund band */
.refund-band{position:relative;border-radius:12px;overflow:hidden;min-height:330px;display:flex;align-items:center}
.refund-band>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 35%}
.refund-card{position:relative;margin:26px;max-width:470px;background:#FFFFFF;border-radius:10px;padding:32px 34px;box-shadow:0 12px 44px rgba(0,0,0,0.28);display:flex;flex-direction:column;gap:14px}
@media (max-width:640px){
  .refund-band{min-height:0;flex-direction:column;align-items:stretch}
  .refund-band>img{position:relative;height:180px}
  .refund-card{margin:0;max-width:none;border-radius:0}
}

/* blog */
.blog-feature{display:grid;grid-template-columns:1fr 1fr;gap:36px;align-items:center;text-decoration:none;padding-bottom:48px;border-bottom:1px solid #E8E6E2}
.blog-feature-img{border-radius:10px;overflow:hidden;height:320px}
.blog-feature-img img{width:100%;height:100%;object-fit:cover;display:block}
.blog-feature-body{display:flex;flex-direction:column;gap:14px;align-items:flex-start}
.blog-card{display:flex;flex-direction:column;text-decoration:none;background:#FFFFFF;border:1px solid #E8E6E2;border-radius:10px;overflow:hidden}
.blog-card:hover{border-color:#D71920;box-shadow:0 4px 20px rgba(215,25,32,0.10)}
.blog-card-img{height:170px}
.blog-card-img img{width:100%;height:100%;object-fit:cover;display:block}
.blog-card-body{padding:22px;display:flex;flex-direction:column;gap:8px}
.blog-card-meta{font-size:11px;font-weight:700;letter-spacing:1.5px;color:#D71920}
.article-body{max-width:740px;margin:0 auto;display:flex;flex-direction:column;gap:22px}
.article-body h2{margin:18px 0 0;font-family:'Antenna',Helvetica,Arial,sans-serif;font-weight:900;font-size:24px;color:#121212}
.article-body p{margin:0;font-size:16px;line-height:1.75;color:#3A3A3A}
.article-body ul,.article-body ol{margin:0;padding-left:22px;display:flex;flex-direction:column;gap:8px}
.article-body li{font-size:16px;line-height:1.65;color:#3A3A3A}
.article-body strong{color:#121212}

/* photo tiles */
.tiles{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.tile{margin:0;display:flex;flex-direction:column;gap:12px}
.tile img{width:100%;aspect-ratio:4/5;object-fit:cover;border-radius:8px;display:block}
.tile figcaption{font-size:13.5px;line-height:1.5;color:#9B9893}

/* uniform image wells for inner pages */
.imgwell{position:relative;background:#F0EFEC;border-radius:10px;aspect-ratio:4/3;overflow:hidden;max-width:100%}
.imgwell img{position:absolute;inset:28px;width:calc(100% - 56px);height:calc(100% - 56px);object-fit:contain;display:block}
.imgwell.tall{aspect-ratio:3/4}
.imgwell.white{background:#FFFFFF;border:1px solid #E8E6E2}
.photo-cover{border-radius:10px;overflow:hidden}
.photo-cover img{width:100%;height:100%;object-fit:cover;display:block}

/* FAQ accordion */
.faq-item{border:1px solid #E8E6E2;border-radius:8px;overflow:hidden}
.faq-q{width:100%;border:none;cursor:pointer;background:#FFFFFF;display:flex;justify-content:space-between;align-items:center;gap:16px;padding:20px 24px;text-align:left}
.faq-q:hover{background:#FBFAF9}
.faq-q span:first-child{font-family:'Antenna';font-size:16px;font-weight:700;color:#121212}
.faq-icon{font-family:'Antenna';font-size:20px;font-weight:900;color:#D71920;flex-shrink:0}
.faq-a{padding:0 24px 22px;border-top:1px solid #F0EFEC}
.faq-a p{margin:14px 0 0;font-size:14.5px;line-height:1.7;color:#4A4A4A}
.faq-a[hidden]{display:none}

/* chat widget */
#chat-panel[hidden]{display:none !important}
#chat-messages .msg{font-size:14px;line-height:1.5;padding:10px 14px;border-radius:10px;max-width:85%}
#chat-messages .msg.agent{align-self:flex-start;background:#FFFFFF;color:#1A1A1A}
#chat-messages .msg.user{align-self:flex-end;background:#D71920;color:#FFFFFF}

/* contact form */
#form-success[hidden],#form-error[hidden],#form-card[hidden]{display:none !important}

/* ---------------- responsive (mobile-first: QR traffic is mostly phones) ---------------- */

/* Tablet & phone: hamburger nav, single-column layout, one consistent gutter */
@media (max-width:900px){
  .nav-toggle{display:flex}
  .site-nav{display:none !important;position:absolute;top:76px;left:0;right:0;background:#FFFFFF;flex-direction:column !important;align-items:stretch !important;gap:0 !important;padding:8px 20px 16px;border-bottom:1px solid #E8E6E2;box-shadow:0 16px 32px rgba(0,0,0,0.12)}
  .site-nav.open{display:flex !important}
  /* big, easy-to-tap nav rows */
  .site-nav a{padding:15px 8px !important;font-size:16px !important;border-bottom:1px solid #F0EFEC !important;border-radius:0 !important;text-align:left;background:transparent !important;color:#1A1A1A !important;width:auto !important}
  .site-nav a:last-child{border-bottom:none !important;margin-top:8px;background:#D71920 !important;color:#FFFFFF !important;border-radius:5px !important;text-align:center;font-weight:700}

  /* every inline multi-column grid collapses to a single column.
     minmax(0,1fr) (not plain 1fr) lets the column shrink below content min-width,
     which prevents inputs/long tokens from blowing the layout past the viewport. */
  [style*="grid-template-columns"]{grid-template-columns:minmax(0,1fr) !important}
  .tiles{grid-template-columns:minmax(0,1fr) !important}
  .blog-feature{grid-template-columns:1fr}
  .blog-feature-img{height:210px}

  /* ONE consistent side gutter on every section wrapper (kills the 20px/32px mismatch) */
  [style*="max-width:1200px"],
  [style*="max-width:1080px"],
  [style*="max-width:960px"],
  [style*="max-width:900px"],
  [style*="max-width:860px"],
  [style*="max-width:820px"],
  [style*="max-width:760px"],
  [style*="max-width:740px"],
  [style*="max-width:720px"]{padding-left:20px !important;padding-right:20px !important}
}

/* Phone: tighter type & spacing, readable hero, comfy forms */
@media (max-width:600px){
  html,body{overflow-x:hidden}

  h1{font-size:32px !important;line-height:1.1 !important}
  h2{font-size:24px !important;line-height:1.18 !important}

  /* hero: darker top-to-bottom overlay so the white headline is always legible on the photo */
  .hero{background:
    linear-gradient(180deg, rgba(12,10,9,0.78) 0%, rgba(12,10,9,0.52) 52%, rgba(12,10,9,0.74) 100%),
    var(--hero-img) center/cover no-repeat #121212 !important}
  .hero-inner{padding:52px 20px 58px !important}
  .hero-title{font-size:33px !important}
  .hero-sub{font-size:16px !important}
  .hero-ctas{gap:12px;width:100%}
  .hero-ctas .btn-red,.hero-ctas .btn-ghost{flex:1 1 100%;text-align:center;box-sizing:border-box}

  /* trim the largest vertical section padding (side gutters already handled above) */
  [style*="padding:88px 32px"],
  [style*="padding:72px 32px"]{padding-top:46px !important;padding-bottom:46px !important}
  [style*="padding:64px 32px"]{padding-top:42px !important;padding-bottom:42px !important}

  /* product image wells: cap width and use a friendlier height on phones */
  .imgwell[style*="height:400px"]{aspect-ratio:auto !important;height:300px !important}

  /* forms & confirmation cards: less inner padding on small screens */
  #support-form{padding:24px !important}
  #form-success{padding:34px 22px !important}

  /* chat widget spans the width */
  #chat-panel{right:12px !important;left:12px !important;width:auto !important}
}
