/* Town landing pages (built from content/towns/towns.json) */
.t-hero{background:var(--bg-alt);border-bottom:1px solid var(--line)}
.t-hero-grid{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:clamp(1.5rem,4vw,3.5rem);align-items:center;padding:1.2rem 0 clamp(2rem,5vw,3.5rem)}
.t-hero h1{font:800 clamp(2.4rem,6vw,3.8rem)/1 var(--display);text-transform:uppercase;margin:.2rem 0 1rem}
.t-lede{font-size:1.2rem;color:var(--ink-soft);margin:0 0 1.4rem;max-width:60ch}
.t-ctas{display:flex;flex-wrap:wrap;gap:.7rem;margin-bottom:1.4rem}
.t-ctas .btn-line{color:var(--ink)}
.t-trust{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.5rem 1rem;font-weight:600}
.t-trust li{padding-left:1.6rem;position:relative}
.t-trust li::before{content:"";position:absolute;left:0;top:.45em;width:.95rem;height:.55rem;border-left:3px solid var(--red);border-bottom:3px solid var(--red);transform:rotate(-45deg)}
.t-pic{margin:0}
.t-pic img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:6px;background:var(--pebble)}
.t-sec{padding:clamp(2.2rem,5vw,3.5rem) 0}
.t-sec h2{font:800 clamp(1.8rem,4vw,2.4rem)/1.08 var(--display);margin:0 0 .9rem}
.t-sec p{margin:0 0 1em;max-width:68ch}
.t-split{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:clamp(1.5rem,4vw,3.5rem);align-items:start}
.t-calc{background:var(--slate);color:#fff;border-radius:8px;padding:clamp(1.3rem,3vw,1.9rem);border-top:5px solid var(--red)}
.t-calc h2{color:#fff;font-size:1.7rem}
.t-calc label{display:block;font-weight:700;margin-bottom:.4rem}
.t-calc output{font:800 1.4rem var(--display);white-space:nowrap}
.t-calc input[type=range]{width:100%;accent-color:#C4161C;height:2.2rem;margin:0}
.t-price{font:800 clamp(2.4rem,6vw,3.2rem)/1 var(--display);margin:.6rem 0 .5rem!important}
.t-rate,.t-small{color:#C9C6C1;font-size:.95rem}
.t-rate a{color:#fff;font-weight:700}
.t-calc ul{margin:0 0 1.2rem;padding-left:1.1rem;color:#E8E6E2}
.t-small{margin:.8rem 0 0!important}
.t-band{background:var(--bg-alt);border-block:1px solid var(--line)}
.t-steps{list-style:none;padding:0;margin:1.4rem 0 0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1.4rem;counter-reset:s}
.t-steps li{counter-increment:s;border-top:3px solid var(--red);padding-top:.9rem}
.t-steps li::before{content:counter(s);display:block;font:800 2.2rem/1 var(--display);color:var(--red);margin-bottom:.3rem}
.t-steps h3{font:700 1.35rem var(--display);margin:0 0 .3rem}
.t-steps p{color:var(--ink-soft);margin:0;font-size:1rem}
.t-areas{list-style:none;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:.5rem}
.t-areas li{border:2px solid var(--line);border-radius:30px;padding:.4rem .9rem;font-weight:600}
.t-faq details{border-bottom:1px solid var(--line);padding:.2rem 0}
.t-faq summary{cursor:pointer;font-weight:700;font-size:1.1rem;padding:.8rem 2rem .8rem 0;list-style:none;position:relative}
.t-faq summary::-webkit-details-marker{display:none}
.t-faq summary::after{content:"+";position:absolute;right:.2rem;top:.55rem;font:800 1.5rem/1 var(--display);color:var(--red)}
.t-faq details[open] summary::after{content:"\2212"}
.t-faq p{color:var(--ink-soft);margin:0 0 1rem}
.t-others{margin-top:2.4rem}
.t-others h2{font-size:1.6rem!important}
.t-others ul{list-style:none;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:.6rem}
.t-others a{display:inline-block;padding:.55rem 1rem;border:2px solid var(--line);border-radius:4px;font-weight:700;text-decoration:none}
.t-others a:hover{border-color:var(--red);color:var(--red)}
@media (max-width:900px){
  .t-hero-grid,.t-split{grid-template-columns:minmax(0,1fr)}
  .t-pic img{aspect-ratio:16/10}
  .t-steps{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:520px){
  .t-trust{grid-template-columns:minmax(0,1fr)}
  .t-steps{grid-template-columns:minmax(0,1fr)}
  .t-ctas .btn{flex:1 1 100%}
}
