/* Gutter Cleaning Companies Nashville — one-page editorial guide */

:root{
  /* field and surfaces */
  --field:      #EFF1F4;
  --white:      #FFFFFF;
  --clay-tint:  #F8EBE4;
  --slate-tint: #E1E8F0;
  --deep:       #182430;
  --deep-soft:  #23303E;

  /* ink */
  --ink:        #151A21;
  --body:       #39424E;
  --muted:      #5C6775;
  --on-deep:    #D8E0E9;
  --on-deep-hi: #FFFFFF;

  /* accent */
  --clay:       #9B3E1F;
  --clay-deep:  #7C3018;
  --clay-lite:  #F3AC81;

  /* lines */
  --line:       #D6DDE5;
  --line-soft:  #E6EAEF;
  --line-clay:  #E7CDBF;
  --line-deep:  #384656;

  --wide: 64rem;
  --read: 42rem;
  --gutter: clamp(1rem, 4vw, 2rem);
  --pad: clamp(1.35rem, 4.4vw, 3rem);
  --r: 20px;

  --sans: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  --serif: ui-serif, Georgia, "Iowan Old Style", "Palatino Linotype", "Times New Roman", serif;
}

*, *::before, *::after { box-sizing: border-box; }

html { -webkit-text-size-adjust: 100%; }

body{
  margin: 0;
  background: var(--field);
  color: var(--body);
  font-family: var(--sans);
  font-size: 1.0625rem;
  line-height: 1.62;
  text-rendering: optimizeLegibility;
}

h1, h2, .mark, .cmp caption{ font-family: var(--serif); }

h1, h2{ color: var(--ink); font-weight: 600; letter-spacing: -0.012em; line-height: 1.18; margin: 0; }

p{ margin: 0 0 1rem; }
p:last-child{ margin-bottom: 0; }

strong, b{ color: var(--ink); font-weight: 650; }

a{ color: var(--clay); text-decoration: underline; text-underline-offset: 3px; text-decoration-thickness: 1px; }
a:hover{ color: var(--clay-deep); text-decoration-thickness: 2px; }

:focus-visible{ outline: 3px solid var(--clay); outline-offset: 3px; border-radius: 3px; }

.skip{
  position: absolute; left: -9999px; top: 0;
  background: var(--deep); color: #fff; padding: .85rem 1.25rem;
  text-decoration: none; z-index: 50;
}
.skip:focus{ left: 0; }

.hold{
  width: 100%;
  max-width: var(--wide);
  margin-inline: auto;
  padding-inline: var(--gutter);
}

/* ---------------------------------------------------------------- topbar -- */

.topbar{
  background: var(--white);
  border-bottom: 1px solid var(--line);
}
.topbar__in{
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  min-height: 60px;
}
.mark{
  margin: 0;
  font-size: .95rem;
  color: var(--ink);
  letter-spacing: -0.005em;
}

.jump{ display: none; }
.jump ul{ list-style: none; display: flex; gap: .15rem; margin: 0; padding: 0; }
.jump a{
  display: flex; align-items: center; min-height: 44px;
  padding: 0 .7rem;
  font-size: .9rem; color: var(--body); text-decoration: none;
  border-radius: 8px;
}
.jump a:hover{ color: var(--clay-deep); background: var(--clay-tint); }

.drawer{ position: relative; }
.drawer summary{
  display: flex; align-items: center; justify-content: center;
  width: 46px; height: 46px; margin-right: -6px;
  border-radius: 10px; cursor: pointer;
  list-style: none;
}
.drawer summary::-webkit-details-marker{ display: none; }
.drawer summary:hover{ background: var(--clay-tint); }
.burger{ display: block; width: 22px; }
.burger i{ display: block; height: 2px; background: var(--ink); border-radius: 2px; }
.burger i + i{ margin-top: 5px; }
.drawer[open] summary{ background: var(--clay-tint); }

.drawer__panel{
  position: absolute; right: -6px; top: calc(100% + 8px); z-index: 30;
  min-width: 15rem;
  background: var(--white);
  border: 1px solid var(--line);
  border-radius: 14px;
  box-shadow: 0 14px 34px rgba(21,26,33,.16);
  padding: .35rem;
}
.drawer__panel ul{ list-style: none; margin: 0; padding: 0; }
.drawer__panel a{
  display: flex; align-items: center; min-height: 46px;
  padding: 0 .85rem; border-radius: 10px;
  color: var(--ink); text-decoration: none; font-size: 1rem;
}
.drawer__panel a:hover{ background: var(--clay-tint); color: var(--clay-deep); }
.drawer__panel li + li{ border-top: 1px solid var(--line-soft); }

@media (min-width: 54em){
  .jump{ display: block; }
  .drawer{ display: none; }
}

/* -------------------------------------------------------------- masthead -- */

.mast{
  background:
    radial-gradient(120% 145% at 92% -20%, #FBEDE5 0%, rgba(251,237,229,0) 62%),
    var(--white);
  border-bottom: 4px solid var(--clay);
}
.mast__in{
  padding-block: clamp(2.25rem, 7vw, 4.25rem) clamp(2rem, 6vw, 3.5rem);
}

/* full-bleed regions share one content edge */
.topbar__in, .mast__in, .foot .hold{ padding-inline: var(--pad); }
.mast h1{
  font-size: clamp(1.85rem, 6.2vw, 3.05rem);
  max-width: 20ch;
  margin-bottom: clamp(1.1rem, 3vw, 1.6rem);
}
.answer{
  font-size: clamp(1.09rem, 2.6vw, 1.3rem);
  line-height: 1.52;
  color: var(--ink);
  max-width: 34rem;
  margin-bottom: clamp(1.25rem, 3.5vw, 1.85rem);
}
.answer-more{
  max-width: var(--read);
  color: var(--body);
  border-left: 3px solid var(--line-clay);
  padding-left: clamp(.9rem, 2.5vw, 1.25rem);
}

@media (min-width: 62em){
  .mast__in{
    display: grid;
    grid-template-columns: 1.05fr .95fr;
    column-gap: clamp(2rem, 4vw, 3.5rem);
    align-items: start;
  }
  .mast h1{ grid-column: 1 / -1; max-width: 24ch; }
  .answer{ margin-bottom: 0; max-width: none; }
  .answer-more{ max-width: none; }
}

/* -------------------------------------------------------------- sections -- */

.sec{ margin-block: clamp(1.75rem, 5vw, 3.25rem); }

.sec--kinds,
.sec--compare,
.sec--companies{
  width: min(100% - (2 * var(--gutter)), var(--wide));
  margin-inline: auto;
  border-radius: var(--r);
}
.sec__in{ padding: clamp(1.5rem, 4.4vw, 2.9rem) var(--pad); }

.lead{ margin-bottom: clamp(1.35rem, 3.6vw, 2rem); }
.lead h2{
  font-size: clamp(1.4rem, 4.2vw, 2.05rem);
  max-width: 26ch;
  margin-bottom: .8rem;
}
.lead__answer{
  max-width: var(--read);
  font-size: clamp(1.02rem, 2.2vw, 1.11rem);
  color: var(--ink);
  margin-bottom: 0;
}

/* --- 1. kinds of company: white sheet + model grid ------------------------ */

.sec--kinds{
  background: var(--white);
  border: 1px solid var(--line);
  box-shadow: 0 1px 2px rgba(21,26,33,.04);
}
.sec--kinds .lead{
  border-bottom: 1px solid var(--line-soft);
  padding-bottom: clamp(1.1rem, 3vw, 1.6rem);
}

.models{
  list-style: none;
  margin: 0 0 clamp(1.4rem, 3.5vw, 2rem);
  padding: 0;
  display: grid;
  gap: clamp(.85rem, 2.2vw, 1.15rem);
}
.model{
  border: 1px solid var(--line);
  border-top: 3px solid var(--clay);
  border-radius: 12px;
  padding: clamp(.9rem, 2.4vw, 1.15rem);
  background: #FCFDFE;
}
.model strong{
  display: block;
  font-family: var(--serif);
  font-size: 1.06rem;
  font-weight: 600;
  color: var(--clay-deep);
  margin-bottom: .3rem;
  line-height: 1.3;
}
.model span{ display: block; font-size: 1rem; }

@media (min-width: 40em){ .models{ grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 64em){ .models{ grid-template-columns: repeat(3, 1fr); } }

.aside{
  max-width: var(--read);
  background: var(--clay-tint);
  border-radius: 12px;
  padding: clamp(.95rem, 2.6vw, 1.25rem);
  color: var(--ink);
}

/* --- 2. what to compare: clay panel + ruled question list ----------------- */

.sec--compare{ background: var(--clay-tint); }
.sec--compare .lead{
  border-bottom: 1px solid var(--line-clay);
  padding-bottom: clamp(1.1rem, 3vw, 1.6rem);
}

.asks{ list-style: none; margin: 0 0 clamp(1.5rem, 4vw, 2.15rem); padding: 0; }
.ask{
  padding-block: clamp(.85rem, 2.4vw, 1.05rem);
  border-bottom: 1px solid var(--line-clay);
}
.ask:first-child{ border-top: 1px solid var(--line-clay); }
.ask strong{
  display: block;
  font-size: 1.05rem;
  color: var(--ink);
  margin-bottom: .2rem;
}
.ask span{ display: block; color: var(--body); }

@media (min-width: 50em){
  .ask{
    display: grid;
    grid-template-columns: minmax(13rem, 21rem) 1fr;
    column-gap: clamp(1.25rem, 3vw, 2.5rem);
    align-items: baseline;
  }
  .ask strong{ margin-bottom: 0; }
}

.close{ max-width: var(--read); color: var(--ink); }

/* --- 3. two companies: cool panel + comparison table ---------------------- */

.sec--companies{
  --wide: 72rem;
  background: var(--slate-tint);
}
.sec--companies .lead{
  border-bottom: 1px solid #CBD6E2;
  padding-bottom: clamp(1.1rem, 3vw, 1.6rem);
}

.cmp{
  background: var(--white);
  border-radius: 16px;
  padding: clamp(1rem, 2.6vw, 1.6rem);
}
.cmp table{ width: 100%; border-collapse: collapse; }
.cmp caption{
  display: block;
  width: 100%;
  caption-side: top;
  text-align: left;
  font-size: 1rem;
  color: var(--ink);
  margin-bottom: 1rem;
  max-width: 60ch;
}

/* mobile: complete labelled records */
.cmp thead{
  position: absolute;
  width: 1px; height: 1px;
  overflow: hidden;
  clip-path: inset(50%);
  white-space: nowrap;
}
.cmp table, .cmp tbody, .cmp tr, .cmp th, .cmp td{ display: block; }
.cmp tbody tr{
  border: 1px solid var(--line);
  border-radius: 12px;
  padding: clamp(.85rem, 2.4vw, 1.1rem);
}
.cmp tbody tr + tr{ margin-top: .85rem; }
.cmp tbody th{
  text-align: left;
  font-family: var(--serif);
  font-size: 1.08rem;
  font-weight: 600;
  color: var(--ink);
  padding-bottom: .35rem;
  border-bottom: 1px solid var(--line-soft);
}
.cmp tbody td{ padding-top: .8rem; font-size: 1rem; }
.cmp tbody td::before{
  content: attr(data-label);
  display: block;
  font-size: .8rem;
  font-weight: 700;
  letter-spacing: .05em;
  text-transform: uppercase;
  color: var(--clay-deep);
  margin-bottom: .2rem;
}

@media (min-width: 56em){
  .cmp table{ display: table; table-layout: fixed; }
  .cmp caption{ display: table-caption; width: auto; }
  .cmp thead{
    position: static;
    width: auto; height: auto;
    overflow: visible;
    clip-path: none;
    white-space: normal;
    display: table-header-group;
  }
  .cmp tbody{ display: table-row-group; }
  .cmp tr{ display: table-row; }
  .cmp th, .cmp td{ display: table-cell; }
  .cmp tbody tr{ border: 0; border-radius: 0; padding: 0; }
  .cmp tbody tr + tr{ margin-top: 0; }
  .cmp thead th{
    text-align: left;
    font-size: 1.02rem;
    font-weight: 650;
    color: var(--ink);
    padding: 0 1.1rem .7rem 0;
    border-bottom: 2px solid var(--clay);
    vertical-align: bottom;
    width: 34%;
  }
  .cmp thead th:first-child{
    width: 32%;
    font-family: var(--sans);
    font-size: .84rem;
    font-weight: 700;
    letter-spacing: .05em;
    text-transform: uppercase;
    color: var(--muted);
    border-bottom-color: var(--line);
  }
  .cmp tbody th{
    font-size: 1rem;
    padding: 1.05rem 1.4rem 1.05rem 0;
    border-bottom: 1px solid var(--line-soft);
    vertical-align: top;
  }
  .cmp tbody td{
    padding: 1.05rem 1.1rem 1.05rem 0;
    border-bottom: 1px solid var(--line-soft);
    vertical-align: top;
    font-size: .99rem;
  }
  .cmp tbody td:last-child{ padding-right: 0; }
  .cmp tbody td::before{ display: none; }
  .cmp tbody tr:last-child th,
  .cmp tbody tr:last-child td{ border-bottom: 0; padding-bottom: 0; }
}

.notes{
  margin-top: clamp(1.1rem, 3vw, 1.5rem);
  background: var(--white);
  border-radius: 16px;
  padding: clamp(1rem, 2.6vw, 1.6rem);
}
.notes p{ max-width: 66ch; }
.notes p + p{
  margin-top: 1.1rem;
  padding-top: 1.1rem;
  border-top: 1px solid var(--line-soft);
  margin-bottom: 0;
}

/* --- 4. practical booking checks: full-bleed close band ------------------ */

.sec--signals{
  background: var(--deep);
  color: var(--on-deep);
  margin-bottom: 0;
}
.sec--signals .sec__in{ padding-block: clamp(2.25rem, 6.5vw, 4rem); }
.sec--signals h2{ color: var(--on-deep-hi); }
.sec--signals .lead__answer{ color: var(--on-deep-hi); }
.sec--signals .lead{
  border-bottom: 1px solid var(--line-deep);
  padding-bottom: clamp(1.2rem, 3vw, 1.7rem);
}
.signals{
  list-style: none;
  margin: clamp(1.4rem, 4vw, 2.2rem) 0 0;
  padding: 0;
  display: grid;
  gap: .85rem;
}
.signals li{
  min-width: 0;
  padding: 1.05rem 1.1rem;
  border: 1px solid var(--line-deep);
  border-radius: 12px;
  background: rgba(255,255,255,.05);
}
.signals strong{
  display: block;
  color: var(--on-deep-hi);
  margin-bottom: .35rem;
}
.signals span{ display: block; }
.signal-close{
  max-width: 44rem;
  margin-top: 1.35rem;
  color: var(--on-deep-hi);
}
@media (min-width: 46em){
  .signals{ grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
.sec--signals a{ color: var(--clay-lite); }
.sec--signals a:hover{ color: #FFD3B8; }
.sec--signals :focus-visible{ outline-color: var(--clay-lite); }

/* ---------------------------------------------------------------- footer -- */

.foot{
  background: var(--deep-soft);
  color: #AFBCCA;
  padding-block: clamp(1.5rem, 4vw, 2.25rem);
}
.foot p{ font-size: .92rem; max-width: 60ch; margin: 0; }

/* ------------------------------------------------------------- 404 page --- */

.gone{ background: var(--deep); color: var(--on-deep); }
.gone .sec__in{ padding-block: clamp(3rem, 12vw, 6rem); }
.gone h1{ color: var(--on-deep-hi); font-size: clamp(1.7rem, 5.5vw, 2.6rem); margin-bottom: 1rem; }
.gone p{ max-width: 44ch; }
.gone a{
  display: inline-flex; align-items: center; min-height: 46px;
  margin-top: 1.25rem; padding: 0 1.15rem;
  border: 1px solid var(--clay-lite); border-radius: 10px;
  color: var(--clay-lite); text-decoration: none;
}
.gone a:hover{ background: rgba(243,172,129,.12); }
.gone :focus-visible{ outline-color: var(--clay-lite); }

/* --------------------------------------------------------------- motion --- */

@media (prefers-reduced-motion: reduce){
  *{ animation: none !important; transition: none !important; scroll-behavior: auto !important; }
}
