/* ============================================================
   Inner pages — components that only the inner pages need.
   Built on the tokens and pieces in css/home.css, so every page
   shares one look: black hero, mint ground, white containers,
   two-tone headings, green accents, dark contact section.
   ============================================================ */

/* ---- page hero: black, type-led, same header behaviour as the homepage ---- */
.page-hero{background:var(--black);color:#fff;padding-top:clamp(132px,16vh,196px);padding-bottom:clamp(56px,7vw,100px)}
.page-hero h1{color:#fff;font-size:clamp(40px,6.2vw,92px);max-width:17ch}
.page-hero .lead{margin-top:clamp(20px,2.4vw,28px);max-width:58ch;font-size:clamp(17px,1.6vw,21px);line-height:1.55;color:rgba(255,255,255,.74)}
.page-hero .hero-actions{margin-top:clamp(28px,3.4vw,40px)}
.page-hero .meta{margin-top:14px;font-size:15px;color:rgba(255,255,255,.55)}
.crumb{display:flex;flex-wrap:wrap;gap:8px;font-size:12.5px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:rgba(255,255,255,.55);margin-bottom:22px}
.crumb a{color:rgba(255,255,255,.8);border-bottom:1px solid rgba(255,255,255,.3)}
.crumb a:hover{color:var(--accent-2);border-bottom-color:var(--accent-2)}
.page-hero .green{color:var(--accent-2)}

/* ---- section heading spacing on the mint ground ---- */
.stack > * + *{margin-top:clamp(14px,1.6vw,20px)}

/* ---- split container: copy one side, visual or list the other ---- */
.split-box{display:grid;grid-template-columns:1.05fr 1fr;gap:clamp(28px,5vw,72px);align-items:center}
.split-box.flip > :first-child{order:2}
.split-box h2{margin-bottom:20px;max-width:18ch}
.split-box p:not([class]){color:var(--ink-2);font-size:clamp(16px,1.4vw,18px);line-height:1.62;max-width:54ch}
.split-box p + p{margin-top:14px}
.box-actions{margin-top:28px;display:flex;flex-wrap:wrap;align-items:center;gap:16px 26px}
.small-note{margin-top:20px;font-size:15px;color:var(--muted);max-width:56ch}
.small-note a{color:var(--ink);border-bottom:1px solid var(--accent-3)}

/* price as type, deeper green on white */
.price-line{display:flex;align-items:baseline;gap:12px;margin:22px 0 6px}
.price-line .amount{font-size:clamp(46px,6vw,80px);font-weight:500;letter-spacing:-.035em;line-height:1;color:var(--accent-3)}
.price-line .unit{font-size:17px;color:var(--muted)}

/* light version of the homepage's icon tiles */
.tiles-light{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.tiles-light li{
  display:flex;flex-direction:column;gap:14px;padding:18px;border-radius:16px;
  background:var(--ground);font-size:15.5px;line-height:1.45;color:var(--ink);
  transition:transform .25s ease,background .25s ease;
}
.tiles-light li:hover{transform:translateY(-2px);background:var(--accent)}
.tiles-light .ic{width:42px;height:42px;border-radius:12px;background:#fff;display:flex;align-items:center;justify-content:center}
.tiles-light .ic svg{width:20px;height:20px;stroke:var(--accent-3);stroke-width:1.8;fill:none;stroke-linecap:round;stroke-linejoin:round}

/* ---- white cards in a grid: icon, title, text ---- */
.card-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(12px,1.4vw,18px)}
.card-grid.two{grid-template-columns:1fr 1fr}
.card{
  display:flex;flex-direction:column;background:var(--paper);border-radius:var(--radius-frame);
  padding:clamp(22px,2.6vw,32px);transition:transform .25s ease;
}
a.card:hover,.card.lift:hover{transform:translateY(-3px)}
.card h3{font-size:clamp(19px,1.7vw,23px);margin-bottom:10px}
.card p{color:var(--ink-2);font-size:16px;line-height:1.55}
.card-foot{margin-top:auto;padding-top:22px}
/* light outline button for use on white */
.btn-line{background:transparent;color:var(--ink);border-color:var(--ink)}
.btn-line:hover{background:var(--ink);color:#fff}
.card .card-num{font-size:13px;font-weight:600;letter-spacing:.14em;color:var(--accent-3);margin-bottom:16px}
.card-tag,.card .card-tag{font-size:12px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin-bottom:10px}
.card:hover .svc-icon{background:var(--accent);transform:scale(1.06)}
.card.is-accent{background:var(--accent)}
.card.is-accent .svc-icon{background:var(--paper)}
.card.is-dark{background:var(--black);color:#fff}
.card.is-dark h2,.card.is-dark h3{color:#fff}
.card.is-dark p{color:rgba(255,255,255,.72)}
.card .stat-num{font-size:clamp(56px,7vw,96px);font-weight:500;letter-spacing:-.04em;line-height:1}

/* label + figure at the top of a comparison card */
.card .cmp-label{font-size:12.5px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin-bottom:14px}
.card.is-accent .cmp-label{color:var(--accent-3)}
.card .cmp-figure{font-size:clamp(30px,3.2vw,42px);font-weight:500;letter-spacing:-.03em;line-height:1;margin-bottom:6px}
.card .cmp-sub{font-size:15px;color:var(--muted);margin-bottom:22px}

/* ---- case study: laptop + phone mockup beside the copy ---- */
.case-box{display:grid;grid-template-columns:1.12fr 1fr;gap:clamp(28px,5vw,72px);align-items:center}
.case-box.flip .device{order:2}
.device{position:relative;padding:0 9% 13% 0}
.case-box.flip .device{padding:0 0 13% 9%}
.device-laptop{border-radius:14px;overflow:hidden;background:#1b1d1c;box-shadow:0 30px 60px -34px rgba(13,13,13,.6)}
.device-bar{display:flex;gap:6px;padding:10px 12px;background:#2a2d2b}
.device-bar span{width:8px;height:8px;border-radius:50%;background:#555a57}
.device-laptop img{display:block;width:100%;height:auto;aspect-ratio:16/10;object-fit:cover;object-position:top center}
.device-phone{
  position:absolute;right:0;bottom:0;width:28%;min-width:96px;padding:6px;border-radius:20px;
  background:#111;box-shadow:0 26px 50px -24px rgba(13,13,13,.7);
}
.case-box.flip .device-phone{right:auto;left:0}
.device-phone img{display:block;width:100%;height:auto;aspect-ratio:9/19;object-fit:cover;object-position:top center;border-radius:14px}
.case-copy h2,.case-copy h3{font-size:clamp(26px,2.8vw,38px);margin-bottom:8px}
.case-meta{font-size:15px;color:var(--muted);margin-bottom:18px}
.case-copy p:not([class]){color:var(--ink-2);font-size:clamp(16px,1.4vw,18px);line-height:1.6}
.case-stat{
  margin-top:20px;padding:14px 18px;border-radius:14px;background:var(--accent);
  color:var(--ink)!important;font-weight:600;font-size:16px!important;line-height:1.45;
}
.case-list{display:grid;gap:clamp(14px,1.6vw,20px)}

/* plain checklist, used across the inner pages */
.checks-list{display:grid;gap:12px;margin-top:18px}
.checks-list li{position:relative;padding-left:28px;color:var(--ink-2);line-height:1.5}
.checks-list li::before{
  content:"";position:absolute;left:0;top:.42em;width:13px;height:9px;
  border-left:2px solid var(--accent-3);border-bottom:2px solid var(--accent-3);transform:rotate(-45deg);
}
.card.is-dark .checks-list li{color:rgba(255,255,255,.8)}
.card.is-dark .checks-list li::before{border-color:var(--accent-2)}

/* ---- photo in a rounded frame (about) ---- */
.photo-frame{margin:0;border-radius:calc(var(--radius-frame) - 4px);overflow:hidden}
.photo-frame img{display:block;width:100%;height:auto;aspect-ratio:4/5;object-fit:cover;object-position:center 30%}

/* ---- about: Pete and Michelle side by side, same cards as the homepage ---- */
.people.duo{grid-auto-rows:auto;align-self:center}
.people.duo .person{aspect-ratio:4/5;min-height:0}

/* ---- contact methods ---- */
.contact-cards .card{align-items:flex-start}
.contact-cards .card p{font-size:17px;color:var(--ink);font-weight:500;word-break:break-word}

/* ---- price rows (contact page) ---- */
.price-rows{margin-top:24px;border-top:1px solid var(--rule)}
.price-rows li{display:flex;justify-content:space-between;gap:20px;align-items:baseline;padding:16px 0;border-bottom:1px solid var(--rule)}
.price-rows .pr-name{font-size:clamp(17px,1.6vw,20px);font-weight:500}
.price-rows .pr-price{font-size:clamp(17px,1.6vw,20px);font-weight:600;color:var(--accent-3);white-space:nowrap}

/* ---- inline list with dot separators (towns, trades, 404 links) ---- */
.dot-list{display:flex;flex-wrap:wrap;gap:10px 28px;margin-top:22px}
.dot-list li{position:relative;font-size:16px;color:var(--ink-2)}
.dot-list li:not(:last-child)::after{content:"";position:absolute;right:-15px;top:.62em;width:4px;height:4px;border-radius:50%;background:var(--accent-3)}
.dot-list a{color:var(--ink);border-bottom:1px solid var(--accent-3)}
.dot-list a:hover{color:var(--accent-3)}
.page-hero .dot-list li{color:rgba(255,255,255,.7)}
.page-hero .dot-list a{color:#fff;border-bottom-color:var(--accent-2)}

/* ---- work-out-your-monthly selector (services) ---- */
.selector{margin-top:clamp(16px,2vw,24px)}
.selector-title{font-size:12.5px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin-bottom:16px}
.selector-body{display:grid;grid-template-columns:1.3fr .7fr;gap:clamp(20px,4vw,48px);align-items:center}
.selector-opts{display:grid;gap:10px}
.selector-opt{
  position:relative;display:flex;align-items:center;gap:14px;padding:14px 16px;border-radius:14px;
  background:var(--ground);cursor:pointer;transition:background .2s ease;
}
.selector-opt input{position:absolute;inset:0;width:100%;height:100%;margin:0;opacity:0;cursor:pointer}
.selector-opt:hover{background:#e6f1eb}
.selector-opt.is-selected{background:var(--accent)}
.selector-opt:has(input:focus-visible){outline:2px solid var(--ink);outline-offset:2px}
.selector-box{width:22px;height:22px;border-radius:7px;border:2px solid #b9cbc1;background:#fff;flex-shrink:0;position:relative;transition:background .2s,border-color .2s}
.selector-opt.is-selected .selector-box{background:var(--accent-3);border-color:var(--accent-3)}
.selector-box::after{content:"";position:absolute;left:6px;top:2px;width:5px;height:10px;border:solid #fff;border-width:0 2px 2px 0;transform:rotate(45deg) scale(0);transition:transform .15s ease}
.selector-opt.is-selected .selector-box::after{transform:rotate(45deg) scale(1)}
.selector-opt-name{flex:1;font-size:16px;font-weight:500}
.selector-opt-price{font-weight:600;color:var(--ink-2)}
.selector-out{text-align:left;padding-left:clamp(0px,3vw,36px);border-left:1px solid var(--rule)}
.selector-total{font-size:clamp(46px,5.4vw,72px);font-weight:500;letter-spacing:-.035em;line-height:1;color:var(--accent-3)}
.selector-total-unit{font-size:.3em;font-weight:500;color:var(--muted);letter-spacing:0;margin-left:4px}
.selector-note{margin-top:12px;font-size:15px;color:var(--ink-2);max-width:26ch}

/* ---- legal text ---- */
.prose{max-width:760px}
.prose h2{font-size:clamp(24px,2.4vw,32px);margin:clamp(36px,4vw,52px) 0 14px}
.prose h2:first-child{margin-top:0}
.prose h3{font-size:clamp(18px,1.6vw,21px);margin:26px 0 10px}
.prose p{color:var(--ink-2);line-height:1.68;margin-bottom:14px}
.prose strong{color:var(--ink)}
.prose a{color:var(--ink);border-bottom:1px solid var(--accent-3)}
.prose a:hover{color:var(--accent-3)}
.prose ul{display:grid;gap:10px;margin:14px 0 20px}
.prose li{position:relative;padding-left:26px;color:var(--ink-2);line-height:1.55}
.prose li::before{content:"";position:absolute;left:0;top:.45em;width:12px;height:8px;border-left:2px solid var(--accent-3);border-bottom:2px solid var(--accent-3);transform:rotate(-45deg)}
.prose .pricing-note{font-size:15px;color:var(--muted)}

/* text kept for screen readers, hidden on screen */
.visually-hidden{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

/* ---- contact section reused across pages ---- */
.contact .section-intro{max-width:56ch}

@media(max-width:1000px){
  .split-box,.case-box,.selector-body{grid-template-columns:1fr}
  .case-box.flip .device{order:0}
  .card-grid{grid-template-columns:1fr 1fr}
  .selector-out{padding-left:0;border-left:0;padding-top:18px;border-top:1px solid var(--rule)}
}
@media(max-width:640px){
  .card-grid,.card-grid.two,.tiles-light{grid-template-columns:1fr}
  .price-rows li{flex-direction:column;gap:4px}
}
