
:root{
  --bg:#fbf8f3;
  --paper:#f8f4ee;
  --card:#ffffff;
  --line:#e7ddd0;
  --text:#25322c;
  --muted:#56635c;
  --green:#315b45;
  --green-dark:#264b39;
  --terracotta:#c66b3d;
  --terracotta-dark:#aa572d;
  --gold:#dba75e;
  --mint:#eaf1ef;
  --peach:#f6ece5;
  --sand:#f2ede6;
  --shadow:0 14px 36px rgba(55,41,26,.08);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--text);font:16px/1.6 system-ui,-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif}
a{color:inherit;text-decoration:none}
img{max-width:100%;display:block}
button,input,select,textarea{font:inherit}
.skip-link{position:absolute;left:-9999px}
.skip-link:focus{left:12px;top:12px;background:#fff;padding:10px 14px;border-radius:10px;z-index:1000}
.container{width:min(100% - 48px, 1240px);margin-inline:auto}
.site-header{position:sticky;top:0;z-index:40;background:rgba(255,255,255,.95);backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}
.navbar{display:flex;align-items:center;justify-content:space-between;gap:26px;min-height:86px}
.logo{display:inline-flex;align-items:center;gap:12px;text-decoration:none}
.logo img{width:68px;height:auto}
.logo-name{font-family:Georgia,Cambria,"Times New Roman",serif;font-size:28px;font-weight:700;line-height:1.15;color:var(--green-dark);white-space:nowrap}
.navlinks{display:flex;align-items:center;gap:28px;font-size:15px;font-weight:600;color:#31413a}
.navlinks a{padding:28px 0 24px;border-bottom:2px solid transparent}
.navlinks a:hover,.navlinks a.active{color:var(--green);border-bottom-color:var(--green)}
.nav-actions{display:flex;align-items:center;gap:14px}
.phone-link{display:inline-flex;align-items:center;gap:8px;color:var(--green);font-weight:700;font-size:16px}
.phone-link svg{width:18px;height:18px}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:52px;padding:13px 22px;border-radius:12px;border:1px solid transparent;font-weight:700;transition:.2s ease;cursor:pointer;white-space:nowrap}
.btn-green{background:var(--green);color:#fff}.btn-green:hover{background:#284c39}
.btn-rust{background:var(--terracotta);color:#fff}.btn-rust:hover{background:var(--terracotta-dark)}
.btn-light{background:#fff;color:var(--green);border-color:#cfc0ac}.btn-light:hover{background:#faf5ef}
.mobile-toggle{display:none;border:1px solid var(--line);background:#fff;border-radius:12px;padding:8px 11px;color:var(--green)}
.mobile-toggle svg{width:24px;height:24px}
.mobile-menu{display:none;background:#fff;border-top:1px solid var(--line)}
.mobile-menu.open{display:block}
.mobile-menu a{display:block;padding:14px 24px;border-bottom:1px solid var(--line);font-weight:600}
.dropdown{position:relative}
.dropdown-toggle{display:inline-flex;align-items:center;gap:6px}
.dropdown-toggle svg{width:14px;height:14px}
.dropdown-menu{position:absolute;left:-14px;top:66px;opacity:0;visibility:hidden;transform:translateY(8px);background:#fff;border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow);min-width:250px;padding:10px;transition:.16s ease}
.dropdown:hover .dropdown-menu,.dropdown:focus-within .dropdown-menu{opacity:1;visibility:visible;transform:translateY(0)}
.dropdown-menu a{display:block;padding:10px 12px;border-radius:10px}
.dropdown-menu a:hover{background:var(--sand)}
.section{padding:64px 0}
.page-section{padding:54px 0}
.section-title{font-family:Georgia,Cambria,"Times New Roman",serif;color:var(--green-dark);font-size:clamp(34px,4.5vw,56px);line-height:1.05;letter-spacing:-.02em;margin:0}
.section-subtitle{font-family:Georgia,Cambria,"Times New Roman",serif;color:var(--green-dark);font-size:clamp(28px,3.1vw,44px);line-height:1.1;margin:0}
.lead{font-size:18px;color:#435048;line-height:1.75;margin:18px 0 0}
.center{text-align:center}
.eyebrow{display:flex;align-items:center;justify-content:center;gap:14px;margin:0 0 10px;color:var(--green-dark);font:700 14px/1 Georgia,serif}
.eyebrow:before,.eyebrow:after{content:"";width:42px;height:2px;background:#d8a66c;border-radius:5px}
.home-hero{position:relative;padding:40px 0 24px;background:
  linear-gradient(90deg, rgba(249,245,239,.98) 0%, rgba(249,245,239,.92) 36%, rgba(249,245,239,.45) 58%, rgba(249,245,239,.12) 75%, rgba(249,245,239,.08) 100%),
  url('../img/hero-desert-photo.png') center/cover no-repeat;border-bottom:1px solid var(--line)}
.hero-inner{position:relative;min-height:380px;display:grid;grid-template-columns:1.05fr .95fr;gap:30px;align-items:start}
.hero-copy{padding:16px 0 8px;max-width:600px}
.hero-copy h1{font-family:Georgia,Cambria,"Times New Roman",serif;font-size:clamp(50px,5vw,72px);line-height:1.03;letter-spacing:-.03em;color:var(--green-dark);margin:0 0 18px}
.hero-copy p{font-size:18px;line-height:1.75;color:#37443c;max-width:460px;margin:0}
.hero-actions{display:flex;gap:14px;flex-wrap:wrap;margin-top:26px}
.trust-chips{display:flex;flex-wrap:wrap;gap:10px;margin-top:18px}
.chip{display:inline-flex;align-items:center;gap:10px;background:#fff;border:1px solid #dfd4c6;border-radius:16px;padding:11px 14px;color:#425047;font-size:14px;font-weight:600}
.chip-icon{display:inline-grid;place-items:center;width:20px;height:20px;border:1.5px solid #7b9b7e;border-radius:50%;font-size:12px;color:var(--green)}
.hero-side{position:relative;min-height:360px;display:flex;align-items:flex-start;justify-content:flex-end}
.hero-badge{position:absolute;right:28px;top:26px;width:270px;background:rgba(255,251,247,.96);border:1px solid #d8cfc4;border-radius:28px;padding:24px 24px 18px;box-shadow:0 12px 24px rgba(84,61,33,.12);z-index:2}
.hero-heart{width:62px;height:62px;border-radius:50%;background:#3f6d52;color:#fff;display:grid;place-items:center;margin:-54px auto 14px;border:8px solid rgba(255,251,247,.95);font-size:30px}
.hero-badge h3{font-family:Georgia,serif;font-size:28px;line-height:1.22;color:var(--green-dark);text-align:center;margin:0 0 14px}
.hero-badge p{font-size:16px;line-height:1.75;text-align:center;color:#34423a;margin:0 0 16px}
.hero-doodle{height:52px;background:linear-gradient(180deg,transparent 58%, #d6a165 58%, #d6a165 61%, transparent 61%);position:relative}
.hero-doodle:before{content:"";position:absolute;left:50%;top:6px;transform:translateX(-50%);width:30px;height:36px;border-radius:14px 14px 0 0;background:#6f8f63}
.home-services .cards{display:grid;grid-template-columns:repeat(4,1fr);gap:22px;margin-top:30px}
.service-card{position:relative;background:#fff;border:1px solid var(--line);border-radius:22px;padding:28px 24px 22px;text-align:center;min-height:255px}
.service-card.soft-green{background:#f3f3ee}.service-card.soft-peach{background:#f6ede7}.service-card.soft-mint{background:#eef4f3}.service-card.soft-sand{background:#f5efe5}
.service-icon{display:grid;place-items:center;width:74px;height:74px;border-radius:50%;margin:-54px auto 18px;color:#fff;font-size:28px;box-shadow:0 8px 18px rgba(62,40,24,.14)}
.service-icon.green{background:#567d5f}.service-icon.rust{background:#d07d53}.service-icon.teal{background:#3aa4ae}.service-icon.gold{background:#d4a146}
.service-card h3{font-family:Georgia,serif;font-size:28px;line-height:1.2;color:#283f33;margin:0 0 12px}
.service-card p{margin:0 auto;color:#47544c;line-height:1.7;max-width:190px}
.service-card .learn{display:inline-block;margin-top:18px;color:var(--green);font-weight:700}
.why-band{background:var(--paper);border:1px solid var(--line);border-radius:20px;padding:24px 24px 18px}
.why-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:0;margin-top:18px}
.why-item{padding:18px 22px;display:grid;grid-template-columns:58px 1fr;gap:14px;align-items:flex-start}
.why-item + .why-item{border-left:1px solid #eadfd2}
.why-item .icon{display:grid;place-items:center;width:50px;height:50px;border-radius:50%;background:#eef2e8;color:var(--green);font-size:22px}
.why-item:nth-child(2) .icon{background:#fbefe8;color:var(--terracotta)}
.why-item:nth-child(3) .icon{background:#eaf3f3;color:#30a1aa}
.why-item:nth-child(4) .icon{background:#fcf1df;color:#cb982d}
.why-item h4{margin:0 0 4px;font-size:20px;color:#31423a}
.why-item p{margin:0;color:#4c5a52;line-height:1.65;font-size:15px}
.senior-panel{display:grid;grid-template-columns:230px 1fr 345px;gap:28px;align-items:stretch;background:#f7eee6;border:1px solid var(--line);border-radius:22px;overflow:hidden}
.senior-photo{background:url('../img/senior-section-photo.png') center/cover no-repeat;min-height:290px}
.senior-copy{padding:30px 0 26px 0}
.senior-copy h3{font-family:Georgia,serif;font-size:52px;line-height:1.02;margin:0 0 14px;color:var(--green-dark)}
.senior-copy h3 span{display:block;color:var(--terracotta)}
.senior-copy p{margin:0 0 14px;line-height:1.75;color:#49564e;font-size:17px;max-width:440px}
.checks{display:grid;gap:10px;margin-top:18px}
.checks div{display:flex;align-items:center;gap:10px;font-weight:600;color:#33423a}
.checks .dot{display:grid;place-items:center;width:18px;height:18px;border-radius:50%;background:#4f8d62;color:#fff;font-size:12px}
.senior-actions{padding:20px 20px 20px 0;display:grid;gap:14px;align-content:center}
.action-card{background:#fff;border:1px solid #e1d6c8;border-radius:16px;padding:16px 16px 16px 16px;display:grid;grid-template-columns:66px 1fr;gap:14px;align-items:center}
.action-icon{width:60px;height:60px;border-radius:50%;display:grid;place-items:center;color:#fff;font-size:26px}
.action-card:nth-child(1) .action-icon{background:#497757}
.action-card:nth-child(2) .action-icon{background:#c86c3f}
.action-card:nth-child(3) .action-icon{background:#63c5ca}
.action-card h4{margin:0;font-size:16px;color:#36453d;font-weight:600}
.action-card .big{font-size:19px;color:#224336;font-weight:800;margin-top:2px}
.action-card p{margin:2px 0 0;color:#5c6961;font-size:14px;line-height:1.45}
.action-card .mini-btn{display:inline-flex;margin-top:10px;background:var(--terracotta);color:#fff;padding:8px 15px;border-radius:10px;font-weight:700}
.action-card .text-link{display:inline-flex;margin-top:6px;color:#2f8a8d;font-weight:700}
.testimonials{position:relative}
.review-shell{background:#fff;border:1px solid var(--line);border-radius:20px;padding:20px 20px 14px;display:grid;grid-template-columns:repeat(3,1fr);gap:0;align-items:start}
.review{padding:10px 22px 8px}.review + .review{border-left:1px solid #eadfd2}
.review .quote-mark{color:#d3914f;font-size:26px;font-family:Georgia,serif}
.review p{margin:8px 0 8px;color:#39473f;line-height:1.75}
.review strong{display:block;color:#243a30;font-weight:600;margin-bottom:6px}
.stars{color:#d39b3d;letter-spacing:3px;font-size:18px}
.carousel-arrow{position:absolute;top:55%;transform:translateY(-50%);width:48px;height:48px;border-radius:50%;border:1px solid #d9cdbd;background:#fff;display:grid;place-items:center;color:#3d624b;font-size:24px}
.carousel-arrow.left{left:-10px}.carousel-arrow.right{right:-10px}
.service-area{display:grid;grid-template-columns:1.25fr .75fr;gap:24px;align-items:start;border-top:1px solid #efe6db;padding-top:8px}
.service-area h3{font-family:Georgia,serif;font-size:50px;line-height:1.02;margin:0;color:var(--green-dark)}
.area-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px 14px;margin-top:14px;max-width:560px}
.area-item{display:flex;gap:8px;align-items:flex-start;color:#33423a;font-size:15px}.area-item .pin{color:#2f5b45}
.area-visuals{display:grid;grid-template-columns:.9fr 1.2fr;gap:0;border-radius:0;overflow:hidden}
.map-shot{background:url('../img/map-arizona-crop.png') center/cover no-repeat;min-height:140px}.city-shot{background:url('../img/desert-city-crop.png') center/cover no-repeat;min-height:140px}
.cta-band{margin-top:22px;background:linear-gradient(90deg,#2c5b45 0%, #2b6a4c 100%);border-radius:0;padding:20px 28px;display:grid;grid-template-columns:1fr auto;gap:20px;align-items:center;color:#fff}
.cta-left{display:flex;align-items:center;gap:18px}.cta-doodle{width:84px;height:64px;background:url('../img/saguaro-logo.png') left center/contain no-repeat;filter:brightness(1.3) saturate(.7)}
.cta-band h3{font-family:Georgia,serif;font-size:44px;line-height:1.05;margin:0 0 6px}.cta-band p{margin:0;color:#eaf0ec;font-size:17px}
.cta-actions{display:grid;gap:10px;min-width:300px}
.cta-actions .btn{min-height:48px;padding:12px 18px}
.site-footer{background:#f5f1ea;border-top:1px solid var(--line)}
.footer-main{display:grid;grid-template-columns:auto 1fr auto;gap:26px;align-items:center;padding:14px 0 18px}
.footer-main .logo img{width:150px}
.footer-links{display:flex;justify-content:center;gap:26px;flex-wrap:wrap;font-size:15px;color:#34433b}
.footer-copy{text-align:center;color:#4e5a53;font-size:14px;padding-bottom:14px}
.socials{display:flex;gap:10px}.social{width:34px;height:34px;border-radius:50%;background:#315b45;color:#fff;display:grid;place-items:center;font-size:16px;font-weight:700}
/* Inner pages */
.page-hero{padding:56px 0 50px;background:linear-gradient(90deg, rgba(249,245,239,.95), rgba(249,245,239,.82)), url('../img/hero-desert-photo.png') center/cover no-repeat;border-bottom:1px solid var(--line)}
.breadcrumb{font-size:14px;color:#5b6860;margin-bottom:10px}
.page-lead{max-width:760px;color:#435048;font-size:18px;line-height:1.8;margin-top:14px}
.content-card{background:#fff;border:1px solid var(--line);border-radius:22px;padding:28px;box-shadow:0 10px 22px rgba(56,42,28,.05)}
.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:24px}.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}.service-list{display:grid;grid-template-columns:repeat(2,1fr);gap:18px}.service-tile{background:#fff;border:1px solid var(--line);border-radius:20px;padding:22px}.service-tile h3{font-family:Georgia,serif;color:var(--green-dark);font-size:28px;margin:0 0 10px}.service-tile p{margin:0 0 14px;color:#49564e}.faq-list{display:grid;gap:14px}.faq-item{background:#fff;border:1px solid var(--line);border-radius:16px;padding:18px 20px}.faq-item h3{margin:0 0 8px;color:#294739;font-size:19px}.faq-item p{margin:0;color:#56635c}
.contact-grid{display:grid;grid-template-columns:1fr .9fr;gap:24px}.form-card{background:#fff;border:1px solid var(--line);border-radius:20px;padding:24px}.form-grid{display:grid;gap:14px}.field{display:grid;gap:7px;font-weight:600;color:#2e3f36}.field input,.field select,.field textarea{padding:12px 14px;border-radius:12px;border:1px solid #d7c9b6;background:#fff}.field textarea{min-height:130px}.notice{display:none;margin-top:10px;color:#2f5b45;font-weight:600}
.band-links{display:flex;gap:14px;flex-wrap:wrap;margin-top:18px}
@media (max-width: 1100px){
  .navlinks,.nav-actions{display:none}.mobile-toggle{display:block}.hero-inner,.senior-panel,.service-area,.contact-grid,.grid-2{grid-template-columns:1fr}.home-services .cards,.why-grid,.grid-3{grid-template-columns:repeat(2,1fr)}.why-item + .why-item{border-left:0}.why-item{border-top:1px solid #eadfd2}.why-item:first-child,.why-item:nth-child(2){border-top:0}.senior-copy{padding:28px 24px 0}.senior-actions{padding:0 24px 24px}.area-grid{grid-template-columns:repeat(3,1fr)}.footer-main{grid-template-columns:1fr;justify-items:center;text-align:center}.carousel-arrow{display:none}.service-list{grid-template-columns:1fr}.cta-band{grid-template-columns:1fr}.cta-actions{min-width:0}
}
@media (max-width: 700px){
  body{font-size:17px}.container{width:min(100% - 28px, 1240px)}.logo img{width:160px}.section{padding:50px 0}.page-section{padding:42px 0}.home-hero{padding:24px 0 16px}.hero-inner{min-height:auto;gap:16px}.hero-copy h1{font-size:52px}.hero-badge{position:relative;right:auto;top:auto;width:auto;margin-top:18px}.hero-side{min-height:auto}.hero-actions .btn,.cta-actions .btn,.btn{width:100%}.trust-chips{display:grid}.home-services .cards,.why-grid,.review-shell,.grid-3,.area-grid,.area-visuals{grid-template-columns:1fr}.review + .review{border-left:0;border-top:1px solid #eadfd2}.senior-panel{gap:0}.senior-photo{min-height:230px}.senior-copy h3{font-size:42px}.service-area h3,.cta-band h3{font-size:38px}.cta-left{align-items:flex-start;flex-direction:column}.footer-links{gap:14px}.action-card{grid-template-columns:58px 1fr}
}

/* ============================================================================
   RESPONSIVE REFINEMENTS
   ----------------------------------------------------------------------------
   Everything above this line is the original mockup stylesheet, unmodified.
   This block only overrides small-screen behaviour; desktop rendering is
   deliberately left exactly as designed.

   What was wrong on phones:
     1. No text-size-adjust guard, so Android/iOS silently inflated body text —
        the single biggest cause of the oversized, clipped headings.
     2. Heading sizes were fixed pixel values (h1 was 52px) or had clamp()
        FLOORS above what a 360px screen can hold (h1 floor was 50px), so the
        headline could never shrink below the viewport width.
     3. The logo grew on small screens (150px → 160px) instead of shrinking,
        crowding the wordmark against the hamburger.
     4. One breakpoint (700px) served everything from a 320px phone to a 699px
        tablet, so real phones got tablet-sized type.
     5. Nothing prevented horizontal overflow when something did misbehave.
   ========================================================================== */

/* 1. Stop mobile browsers scaling text up on their own. */
html {
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
}

/* 5. Nothing should ever scroll the page sideways.
   `clip` rather than `hidden` on purpose: `hidden` makes body a scroll
   container, which silently breaks `position:sticky` on .site-header. `clip`
   contains the overflow without that side effect. Browsers too old to know
   `clip` simply ignore the line — no guard, but nothing breaks either. */
body { overflow-x: clip; }

/* height:auto is kept off svg — the nav icons set explicit width AND height,
   and only img/video actually need the aspect-ratio correction. */
img, video { max-width: 100%; height: auto; }
svg { max-width: 100%; }

/* Long words (URLs, emails) must wrap rather than push the layout wide. */
h1, h2, h3, h4, p, a, .logo-name { overflow-wrap: break-word; }

/* Service-area grid.
   The original 4-column layout was sized for twelve short city names. With four
   areas — one of them "Black Canyon City" — a quarter-width column splits the
   name across two lines, which reads as a layout fault rather than a place.
   Two columns give every entry room, and nowrap guarantees a place name is
   never broken mid-name. (Re-enabled to wrap on the narrowest phones below,
   where two columns are tighter than the longest name.) */
.area-grid { grid-template-columns: repeat(2, 1fr); max-width: 480px; }
.area-item { white-space: nowrap; }

/* Service-area visuals.
   This block was a two-panel split — an Arizona map (.map-shot) beside a
   desert-city photo (.city-shot) at .9fr/1.2fr. In the narrow right-hand
   column the map panel collapses to a thin strip, and because it is a
   center/cover background you see only a fragment of the map's location star,
   which reads as a rendering glitch rather than a map.
   A statewide map is also the wrong picture now that coverage is four
   north-valley communities rather than all of Arizona. Show the photo alone. */
.area-visuals { grid-template-columns: 1fr; }
.map-shot { display: none; }

/* Process steps (/process/).
   Replaces the emoji row, which rendered as full-colour cartoon glyphs — they
   varied by platform and clashed with the muted brand palette. The numbered
   badge reuses the circular icon language of the service cards, so the page
   reads as part of the same system. Marked up as an <ol> because the steps are
   genuinely sequential; the list chrome is reset here. */
.process-steps { list-style: none; margin: 0; padding: 0; }

.process-step { text-align: center; }

.step-number {
  display: grid;
  place-items: center;
  width: 56px;
  height: 56px;
  margin: 0 auto 18px;
  border-radius: 50%;
  background: var(--green);
  color: #fff;
  font-family: Georgia, Cambria, "Times New Roman", serif;
  font-size: 24px;
  font-weight: 700;
  line-height: 1;
  box-shadow: 0 8px 18px rgba(62, 40, 24, .14);
}

.process-step h3 {
  font-family: Georgia, Cambria, "Times New Roman", serif;
  color: var(--green-dark);
  font-size: 24px;
  line-height: 1.2;
  margin: 0 0 10px;
}

.process-step p { margin: 0; color: var(--muted); line-height: 1.7; }

/* --- Tablets and large phones ------------------------------------------- */
@media (max-width: 700px) {
  /* Fluid, with floors that actually fit a narrow screen. */
  .hero-copy h1              { font-size: clamp(30px, 8.5vw, 44px); }
  .section-title             { font-size: clamp(26px, 7vw, 40px); }
  .section-subtitle          { font-size: clamp(22px, 6vw, 32px); }
  .senior-copy h3            { font-size: clamp(24px, 6.5vw, 34px); }
  .service-area h3,
  .cta-band h3               { font-size: clamp(22px, 6vw, 30px); }

  /* 3. The header and footer logos are deliberately different sizes (68px vs
     150px on desktop). The original mobile rule was a bare `.logo img`, which
     hit both and blew the header mark up to 160px — bigger than its own
     desktop size — crushing the wordmark against the hamburger. Target each
     one explicitly instead. */
  .navbar .logo img          { width: 56px; }
  .footer-main .logo img     { width: 120px; }
  .logo-name                 { font-size: clamp(18px, 5vw, 24px); }
  .navbar                    { gap: 12px; min-height: 68px; }

  /* Give the headline and body copy the full column on a phone. */
  .hero-copy,
  .hero-copy p,
  .senior-copy p             { max-width: none; }

  /* The mockup collapsed this to a single column here; two reads better and
     matches the desktop layout above. */
  .area-grid                 { grid-template-columns: repeat(2, 1fr); }
}

/* --- Phones (new tier — previously handled by the 700px rules) ----------- */
@media (max-width: 480px) {
  .navbar .logo img          { width: 50px; }
  .footer-main .logo img     { width: 104px; }
  .navbar                    { gap: 10px; min-height: 62px; }
  .container                 { width: min(100% - 24px, 1240px); }

  .section                   { padding: 40px 0; }
  .page-section              { padding: 32px 0; }
  .page-hero                 { padding: 36px 0 32px; }

  /* Decorative circles scale down so they stop dominating the viewport. */
  .hero-heart                { width: 52px; height: 52px; font-size: 24px; margin-top: -46px; }
  .action-icon               { width: 48px; height: 48px; font-size: 22px; }
  .action-card               { grid-template-columns: 48px 1fr; }

  /* Full-width tap targets, comfortably sized. */
  .hero-actions .btn,
  .cta-actions .btn,
  .btn                       { width: 100%; padding-block: 13px; }
  .trust-chips               { gap: 8px; }

  /* Two columns still fit, but on a ~320px screen the column is narrower than
     "Black Canyon City" — allow wrapping again so it can never overflow. */
  .area-grid                 { grid-template-columns: repeat(2, 1fr); }
  .area-item                 { white-space: normal; }
}
