/* Tandera town pages (/areas/). Uses the colour and font tokens from /styles.css. */
.town-page{font-size:18px;}
.town-hero{padding:140px 48px 56px;background:var(--warm-white);}
.town-hero .section-inner,.town-section .section-inner{max-width:1080px;margin:0 auto;}
.town-crumbs{font-size:15px;color:var(--muted);margin-bottom:18px;}
.town-crumbs a{color:var(--muted);text-decoration:none;}.town-crumbs a:hover{color:var(--sky-blue-deep);text-decoration:underline;}
.town-crumbs span{margin:0 4px;}
.town-hero .page-title{margin:10px 0 16px;}
.town-hero .section-intro{max-width:680px;font-size:20px;line-height:1.6;color:var(--soft-charcoal);}
.town-ctas{display:flex;flex-wrap:wrap;gap:12px;margin:28px 0 24px;}
.town-ctas .btn-primary,.town-ctas .btn-secondary{font-size:17px;min-height:48px;}
.town-trust{list-style:none;display:flex;flex-wrap:wrap;gap:10px;padding:0;margin:0 0 18px;}
.town-trust li{font-size:15px;color:var(--deep-blue);background:var(--sky-blue-soft);border-radius:100px;padding:8px 14px;}
.town-trust li::before{content:'\2713';margin-right:7px;color:var(--sky-blue-deep);font-weight:600;}
.town-byline{font-size:15px;color:var(--muted);margin:0;}
.town-section{padding:64px 48px;}
.town-section.alt{background:var(--warm-white);border-top:1px solid var(--light-border);border-bottom:1px solid var(--light-border);}
.town-section h2{font-family:'Playfair Display',serif;font-weight:400;font-size:34px;line-height:1.2;margin-bottom:16px;}
.town-section h3{font-family:'Playfair Display',serif;font-weight:400;font-size:24px;margin-bottom:12px;}
.town-section p{font-size:18px;line-height:1.7;color:var(--soft-charcoal);margin-bottom:14px;max-width:720px;}
.town-narrow{max-width:820px !important;}
.town-two{display:grid;grid-template-columns:1.4fr 1fr;gap:48px;align-items:start;}
.town-aside{background:var(--cream);border:1px solid var(--light-border);border-radius:16px;padding:28px;}
.town-section.alt .town-aside{background:#fff;}
.town-aside p{font-size:17px;}
.town-areas{font-size:16px !important;color:var(--muted) !important;}
.town-list{list-style:none;padding:0;margin:8px 0 16px;}
.town-list li{font-size:18px;line-height:1.6;color:var(--soft-charcoal);padding:8px 0 8px 28px;position:relative;}
.town-list li::before{content:'\2713';position:absolute;left:0;color:var(--sky-blue-deep);font-weight:600;}
.town-list-x li::before{content:'\2715';color:var(--terracotta);}
.town-list-x li{font-size:17px;padding-top:5px;padding-bottom:5px;}
.town-book,.town-res,.town-steps{list-style:none;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:16px;margin:8px 0 16px;}
.town-book li,.town-res li,.town-steps li{background:var(--warm-white);border:1px solid var(--light-border);border-radius:14px;padding:22px;display:flex;flex-direction:column;gap:6px;}
.town-section.alt .town-book li,.town-section.alt .town-res li,.town-section.alt .town-steps li{background:#fff;}
.town-book strong,.town-res strong,.town-steps strong{font-weight:500;font-size:18px;color:var(--charcoal);}
.town-book span,.town-res span,.town-steps span{font-size:17px;line-height:1.6;color:var(--soft-charcoal);}
.town-res a{color:var(--sky-blue-deep);}
.town-steps{counter-reset:s;}.town-steps li{counter-increment:s;}
.town-steps li::before{content:counter(s);font-family:'Playfair Display',serif;font-size:30px;color:var(--sky-blue-deep);}
.town-note{font-size:15px !important;color:var(--muted) !important;}
.town-note a{color:var(--sky-blue-deep);}
.town-example{font-size:18px;}
.town-table-wrap{overflow-x:auto;margin:16px 0;}
.town-price{width:100%;border-collapse:collapse;background:#fff;border:1px solid var(--light-border);border-radius:14px;overflow:hidden;font-size:17px;}
.town-price th,.town-price td{padding:16px;text-align:left;border-bottom:1px solid var(--light-border);vertical-align:top;line-height:1.5;}
.town-price thead th{font-size:13px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);font-weight:500;background:var(--cream);}
.town-price tbody th{font-weight:400;color:var(--charcoal);}
.town-price .price{font-family:'Playfair Display',serif;font-size:24px;white-space:nowrap;color:var(--charcoal);}
.town-price tr.us{background:var(--sky-blue-soft);}.town-price tr.us th{font-weight:500;color:var(--deep-blue);}
.town-testimonial{margin-top:8px;}
.town-faq{max-width:820px;}
.town-faq-item{border-bottom:1px solid var(--light-border);padding:18px 0;}
.town-faq-item summary{cursor:pointer;font-size:19px;font-weight:500;color:var(--charcoal);list-style:none;padding:6px 36px 6px 0;position:relative;line-height:1.4;}
.town-faq-item summary::-webkit-details-marker{display:none;}
.town-faq-item summary::after{content:'+';position:absolute;right:4px;top:0;font-size:26px;color:var(--sky-blue-deep);}
.town-faq-item[open] summary::after{content:'\2212';}
.town-faq-item summary:focus-visible{outline:2px solid var(--sky-blue);outline-offset:4px;border-radius:4px;}
.town-faq-item p{margin:10px 0 0;}
.town-chips{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:12px;}
.town-chip{display:inline-flex;align-items:center;min-height:44px;padding:8px 18px;border-radius:100px;border:1px solid var(--light-border);background:#fff;color:var(--deep-blue);text-decoration:none;font-size:16px;}
.town-chip:hover{border-color:var(--sky-blue);color:var(--sky-blue-deep);}
.town-pcard{border:1px solid rgba(255,255,255,0.15);border-radius:16px;padding:24px 20px;text-decoration:none;transition:border-color .25s;display:flex;flex-direction:column;align-items:center;gap:12px;}
.town-pcard:hover{border-color:rgba(58,172,220,0.5);}
.town-pcard .platform-name{font-size:15px;}.town-pcard .platform-sub{font-size:13px;}
.town-call{margin-top:18px;color:rgba(255,255,255,0.85) !important;font-size:17px !important;}
.town-call a{color:#fff;font-weight:500;}
.town-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:18px;margin:8px 0 18px;}
.town-card{display:flex;flex-direction:column;gap:8px;background:var(--warm-white);border:1px solid var(--light-border);border-radius:18px;padding:26px;text-decoration:none;color:var(--charcoal);transition:border-color .2s,box-shadow .2s;}
.town-card:hover{border-color:var(--sky-blue);box-shadow:0 12px 32px rgba(14,58,82,0.08);}
.town-card-town{font-family:'Playfair Display',serif;font-size:26px;line-height:1.2;color:var(--charcoal);}
.town-card-lead{font-size:17px;line-height:1.5;color:var(--soft-charcoal);}
.town-card-price{font-size:22px;color:var(--deep-blue);margin-top:4px;}
.town-card-price small{font-size:14px;color:var(--muted);}
.town-card-cta{margin-top:auto;padding-top:8px;font-size:16px;font-weight:500;color:var(--sky-blue-deep);}
.more-link{color:var(--sky-blue-deep);font-weight:500;text-decoration:underline;text-underline-offset:3px;}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0;}
.town-hero-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:48px;align-items:center;}
.town-hero-photo{margin:0;}
.town-hero-photo img{width:100%;height:auto;aspect-ratio:640/520;object-fit:cover;border-radius:24px;box-shadow:0 24px 60px rgba(14,58,82,0.12);display:block;}
.town-hero-photo figcaption,.town-card-credit{font-size:13px;color:var(--muted);margin-top:8px;text-align:right;}
.town-hero-photo figcaption a{color:var(--muted);}
.town-who{margin:22px 0 6px;}
.town-who-label{font-size:17px !important;font-weight:500;color:var(--charcoal) !important;margin:0 0 10px !important;}
.town-who-btn{display:inline-flex;align-items:center;min-height:46px;padding:10px 18px;margin:0 8px 8px 0;border:1.5px solid var(--light-border);border-radius:100px;background:#fff;color:var(--charcoal);text-decoration:none;font-size:16px;font-weight:500;}
.town-who-btn:hover,.town-who-btn:focus-visible{border-color:var(--sky-blue);color:var(--sky-blue-deep);}
.town-form{background:#fff;border:1px solid var(--light-border);border-radius:20px;padding:28px;display:flex;flex-direction:column;gap:14px;box-shadow:0 24px 60px rgba(14,58,82,0.06);}
.town-form label{display:flex;flex-direction:column;gap:6px;font-size:16px;font-weight:500;color:var(--charcoal);}
.town-form label span{font-weight:400;color:var(--muted);}
.town-form input[type=text],.town-form input[type=tel],.town-form input[type=email],.town-form select,.town-form textarea{font:inherit;font-size:17px;padding:12px 14px;border:1.5px solid var(--light-border);border-radius:12px;background:var(--warm-white);color:var(--charcoal);min-height:48px;}
.town-form input:focus,.town-form select:focus,.town-form textarea:focus{outline:2px solid var(--sky-blue);outline-offset:1px;border-color:var(--sky-blue);}
.town-form textarea{resize:vertical;}
.town-form .town-check{flex-direction:row;align-items:center;gap:10px;font-weight:400;}
.town-form .town-check input{width:20px;height:20px;}
.town-form button{justify-content:center;font-size:17px;min-height:50px;cursor:pointer;font-family:inherit;}
.town-form-note{font-size:14px !important;color:var(--muted) !important;margin:0 !important;}
.town-form-note a{color:var(--muted);}
.town-form-status{font-size:17px;color:var(--deep-blue);margin:0 !important;min-height:1em;}
.town-field-hp{position:absolute;left:-9999px;top:auto;width:1px;height:1px;overflow:hidden;}
.town-card-img{width:100%;height:auto;aspect-ratio:600/360;object-fit:cover;border-radius:12px;margin:-8px 0 10px;display:block;}
@media (max-width:900px){.town-hero-grid{grid-template-columns:1fr;gap:28px;}.town-hero-photo img{aspect-ratio:16/10;border-radius:18px;}}
@media (prefers-reduced-motion: reduce){.town-page *{transition:none !important;animation:none !important;}}
@media (max-width:820px){
  .town-hero{padding:110px 16px 40px;}
  .town-section{padding:44px 16px;}
  .town-two{grid-template-columns:1fr;gap:28px;}
  .town-section h2{font-size:28px;}
  .town-hero .section-intro{font-size:18px;}
  .town-ctas a{flex:1 1 100%;justify-content:center;}
  .town-price .price{font-size:20px;}
}
@media (max-width:600px){
  .town-price thead{display:none;}
  .town-price tr{display:block;padding:14px 16px;border-bottom:1px solid var(--light-border);}
  .town-price tr:last-child{border-bottom:0;}
  .town-price th,.town-price td{display:block;padding:2px 0;border:0;}
  .town-price .price{font-size:26px;padding:4px 0 6px;}
  .town-price tbody th{font-weight:500;}
}
