/* ==========================================================================
   canary.css  ·  Canary Water Treatment UI kit v0.1
   Requires tokens.css (generated from tokens.json) loaded first.
   Cascade layers keep the kit predictable inside any host site:
   anything the host writes outside these layers wins over the kit.
   ========================================================================== */
@layer canary.base, canary.surfaces, canary.layout, canary.components, canary.utilities;

/* ---------- base: scoped to .cn-root so it never restyles the host ---------- */
@layer canary.base {
  .cn-root{overflow-wrap:break-word;font-family:var(--font-sans);font-size:16px;line-height:24px;color:var(--ink);background:var(--cream-50);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
  .cn-root *,.cn-root *::before,.cn-root *::after{box-sizing:border-box}
  .cn-root img,.cn-root svg{display:block;max-width:100%}
  .cn-root h1,.cn-root h2,.cn-root h3,.cn-root p,.cn-root ul,.cn-root dl,.cn-root dd,.cn-root figure{margin:0}
  .cn-root ul{padding:0;list-style:none}
  .cn-root a{color:inherit}
  .cn-root button{font:inherit;color:inherit;cursor:pointer}
  .cn-root :focus-visible{outline:3px solid var(--sunshine-500);outline-offset:3px;border-radius:6px}
  .cn-root .cn-icon{width:1.25em;height:1.25em;flex:none;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
  .cn-sr{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
}

/* ---------- surfaces: each section declares one; children read the variables ---------- */
@layer canary.surfaces {
  .cn-surface{--surface-bg:var(--cream-50);--surface-heading:var(--forest-900);--surface-text:var(--ink);--surface-muted:var(--ink-muted);--surface-accent:var(--gold-700);--surface-line:var(--line);
    --btn-primary-bg:var(--sunshine-400);--btn-primary-hover:var(--sunshine-500);--btn-primary-text:var(--forest-950);--btn-outline:var(--forest-900);--card-bg:var(--paper);
    background:var(--surface-bg);color:var(--surface-text)}
  .cn-surface[data-surface="cream"]{--surface-bg:var(--cream-100)}
  .cn-surface[data-surface="forest"]{--surface-bg:var(--forest-900);--surface-heading:var(--cream-100);--surface-text:var(--cream-100);--surface-muted:#C9D3CB;--surface-accent:var(--sunshine-400);--surface-line:rgba(247,234,218,.18);--btn-outline:var(--cream-100);--card-bg:var(--forest-700)}
  .cn-surface[data-surface="footer"]{--surface-bg:var(--forest-950);--surface-heading:var(--cream-100);--surface-text:var(--cream-100);--surface-muted:#B9C6BD;--surface-accent:var(--sunshine-400);--surface-line:rgba(247,234,218,.16);--btn-outline:var(--cream-100)}
  .cn-surface[data-surface="water"]{--surface-bg:var(--sky-100);--surface-accent:var(--sky-700)}
  .cn-surface[data-surface="sage"]{--surface-bg:var(--sage-100);--surface-accent:var(--sage-700);--btn-primary-bg:var(--forest-900);--btn-primary-hover:var(--forest-700);--btn-primary-text:var(--cream-100)}
  .cn-surface[data-surface="sunshine"]{--surface-bg:var(--sunshine-400);--surface-heading:var(--forest-950);--surface-text:var(--forest-950);--surface-muted:var(--forest-900);--surface-accent:var(--forest-900);--btn-primary-bg:var(--forest-900);--btn-primary-hover:var(--forest-700);--btn-primary-text:var(--cream-100);--btn-outline:var(--forest-950)}
  .cn-surface[data-surface="scenic"]{--surface-bg:var(--cream-100)}
}

/* ---------- layout ---------- */
@layer canary.layout {
  .cn-container{width:min(1200px,100% - 32px);margin-inline:auto}
  .cn-section{padding-block:var(--space-16)}
  @media (min-width:960px){.cn-section{padding-block:var(--space-24)}.cn-container{width:min(1200px,100% - 64px)}}
  .cn-section-head{max-width:640px;margin-bottom:var(--space-8);display:grid;gap:var(--space-3)}
  .cn-section-head--center{margin-inline:auto;text-align:center;justify-items:center}
  .cn-grid-2{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--space-8)}
  .cn-grid-2 > *{min-width:0}
  @media (min-width:960px){.cn-grid-2{grid-template-columns:7fr 5fr;gap:var(--space-12)}.cn-section-head{margin-bottom:var(--space-12)}}
}

/* ---------- components ---------- */
@layer canary.components {
  /* Type */
  .cn-eyebrow{display:inline-flex;align-items:center;gap:10px;font-size:13px;line-height:16px;font-weight:700;letter-spacing:2px;text-transform:uppercase;color:var(--surface-accent)}
  .cn-eyebrow::before,.cn-eyebrow::after{content:"";width:24px;height:2px;border-radius:2px;background:var(--sunshine-400)}
  .cn-eyebrow--left::before{display:none}
  .cn-display{font-family:var(--font-display);font-weight:800;color:var(--surface-heading);font-size:34px;line-height:38px;letter-spacing:-.3px}
  .cn-h2{font-family:var(--font-display);font-weight:700;color:var(--surface-heading);font-size:28px;line-height:34px}
  .cn-h3{font-family:var(--font-display);font-weight:700;color:var(--surface-heading);font-size:22px;line-height:28px}
  @media (min-width:960px){.cn-display{font-size:48px;line-height:52px}.cn-h2{font-size:36px;line-height:42px}.cn-h3{font-size:24px;line-height:30px}}
  .cn-lead{font-size:18px;line-height:28px;color:var(--surface-muted)}
  .cn-muted{color:var(--surface-muted)}
  .cn-fine{font-size:12px;line-height:18px;color:var(--surface-muted)}
  .cn-link{color:var(--surface-heading);font-weight:600;text-decoration:underline;text-underline-offset:4px;background:none;border:0;padding:0}
  /* .cn-hit: grows the tap area to ≥44px without changing the visual size */
  .cn-hit{position:relative}
  .cn-hit::after{content:"";position:absolute;left:-8px;right:-8px;top:50%;height:44px;transform:translateY(-50%)}

  /* Button */
  .cn-btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:48px;padding:12px 24px;border-radius:var(--radius-pill);border:2px solid transparent;font-weight:700;font-size:16px;line-height:20px;text-decoration:none;white-space:nowrap;transition:background-color .15s,transform .1s}
  .cn-btn:active{transform:translateY(1px)}
  .cn-btn--primary{background:var(--btn-primary-bg);color:var(--btn-primary-text)}
  .cn-btn--primary:hover{background:var(--btn-primary-hover)}
  .cn-btn--outline{background:transparent;border-color:var(--btn-outline);color:var(--btn-outline)}
  .cn-btn--outline:hover{background:color-mix(in srgb,var(--btn-outline) 8%,transparent)}
  .cn-btn--lg{min-height:58px;font-size:18px;padding:16px 28px}
  .cn-btn--block{width:100%}
  .cn-btn--icon{width:48px;padding:0;border-color:var(--line-strong);color:var(--forest-900);background:var(--paper)}

  /* Utility bar */
  .cn-utility{font-size:14px;line-height:20px}
  .cn-utility__inner{display:flex;justify-content:center;gap:20px;padding-block:8px;flex-wrap:wrap}
  .cn-utility__item{display:inline-flex;align-items:center;gap:6px}
  .cn-utility__item .cn-icon{color:var(--sunshine-400)}
  .cn-utility__item--desk{display:none}
  @media (min-width:960px){.cn-utility__inner{justify-content:space-between}.cn-utility__item--desk{display:inline-flex}}

  /* Header */
  .cn-header{position:relative;z-index:20;border-bottom:1px solid var(--line)}
  .cn-header__inner{display:grid;grid-template-columns:48px 1fr 48px;align-items:center;gap:12px;padding-block:6px}
  .cn-header__brand{justify-self:center;display:block;width:132px}
  .cn-header__nav{display:none}
  .cn-header__actions{display:flex;justify-content:flex-end;align-items:center;gap:16px}
  .cn-header__phone,.cn-header__cta{display:none}
  .cn-header__menu{width:48px;height:48px;border:0;background:none;display:grid;place-items:center;color:var(--forest-900)}
  .cn-header__menu .cn-icon{width:26px;height:26px}
  .cn-mobile-nav{display:none;border-top:1px solid var(--line);padding:8px 16px 16px}
  .cn-mobile-nav[data-open]{display:grid}
  .cn-mobile-nav a{padding:14px 0;border-bottom:1px solid var(--line);font-weight:600;text-decoration:none}
  @media (min-width:960px){
    .cn-header__inner{grid-template-columns:auto 1fr auto;gap:40px;padding-block:14px}
    .cn-header__brand{justify-self:start;width:168px;order:-1}
    .cn-header__menu,.cn-header__icon-phone{display:none}
    .cn-header__nav{display:flex;gap:24px;font-weight:600;font-size:16px;white-space:nowrap;justify-content:center}
    .cn-header__nav a{text-decoration:none}
    .cn-header__nav a:hover{color:var(--forest-700);text-decoration:underline;text-underline-offset:6px}
    .cn-header__phone{display:inline-flex;align-items:center;gap:8px;font-weight:700;font-size:20px;text-decoration:none;color:var(--forest-900)}
    .cn-header__cta{display:inline-flex}
    .cn-mobile-nav[data-open]{display:none}
  }

  /* Breadcrumb */
  .cn-breadcrumb{display:none;flex-wrap:wrap;gap:8px;font-size:15px;color:var(--surface-muted);margin-bottom:var(--space-4)}
  @media (min-width:640px){.cn-breadcrumb{display:flex}}
  .cn-breadcrumb a{text-decoration:none;color:var(--surface-text)}
  .cn-breadcrumb li+li::before{content:"/";margin-right:8px;color:var(--line-strong)}

  /* Media slot: placeholder until the asset exists (see asset-manifest.json) */
  .cn-media{position:relative;overflow:hidden;background:var(--cream-100);border-radius:var(--radius-md)}
  .cn-media > img,.cn-media > picture,.cn-media > picture img,.cn-media > svg{width:100%;height:100%;object-fit:cover}

  /* Gallery */
  .cn-gallery{display:grid;gap:var(--space-3);align-content:start;align-self:start;min-width:0}
  @media (min-width:960px){.cn-gallery{position:sticky;top:24px}}
  .cn-gallery__stage{position:relative;border-radius:var(--radius-xl);overflow:hidden;box-shadow:var(--shadow-card)}
  .cn-gallery__slide{display:none}
  .cn-gallery__slide[data-active]{display:block}
  .cn-gallery__slide .cn-media{border-radius:0}
  .cn-gallery__badge{position:absolute;left:14px;top:14px;z-index:2;display:inline-flex;align-items:center;gap:8px;padding:8px 14px 8px 10px;border-radius:var(--radius-pill);background:var(--forest-900);color:var(--cream-100);font-weight:600;font-size:14px;line-height:18px}
  .cn-gallery__badge .cn-icon{color:var(--sunshine-400);width:22px;height:22px}
  .cn-gallery__nav{position:absolute;top:50%;transform:translateY(-50%);z-index:2;width:44px;height:44px;border-radius:50%;border:0;background:var(--paper);color:var(--forest-900);display:grid;place-items:center;box-shadow:var(--shadow-card)}
  .cn-gallery__nav--prev{left:12px}.cn-gallery__nav--next{right:12px}
  .cn-gallery__count{position:absolute;right:12px;bottom:12px;z-index:2;padding:3px 12px;border-radius:var(--radius-pill);background:var(--paper);font-weight:600;font-size:14px;color:var(--ink)}
  .cn-gallery__stage{touch-action:pan-y}
  .cn-gallery__thumbs{display:none;grid-template-columns:repeat(5,1fr);gap:var(--space-2)}
  @media (min-width:640px){.cn-gallery__thumbs{display:grid}}
  .cn-gallery__dots{display:flex;justify-content:center;gap:2px}
  .cn-gallery__dots button{width:28px;height:28px;border:0;background:none;padding:0;display:grid;place-items:center}
  .cn-gallery__dots button::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--line-strong);transition:width .2s}
  .cn-gallery__dots button[aria-current="true"]::before{width:22px;border-radius:4px;background:var(--forest-900)}
  @media (min-width:640px){.cn-gallery__dots{display:none}}
  .cn-gallery__thumb{padding:0;border:2px solid transparent;border-radius:var(--radius-md);overflow:hidden;background:none}
  .cn-gallery__thumb[aria-current="true"]{border-color:var(--forest-900)}
  .cn-gallery__thumb .cn-media{border-radius:calc(var(--radius-md) - 2px)}

  /* Purchase panel */
  .cn-purchase{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--space-4);align-content:start;min-width:0}
  

  /* Review summary */
  .cn-reviews{display:flex;align-items:center;gap:10px;flex-wrap:wrap;font-size:15px}
  .cn-stars{display:inline-flex;gap:2px;color:var(--gold-700)}
  .cn-stars .cn-icon{width:18px;height:18px;fill:currentColor;stroke:none}
  .cn-stars--empty .cn-icon{fill:none;stroke:currentColor;stroke-width:1.6}
  .cn-stars--empty{color:var(--line-strong)}
  .cn-surface[data-surface="forest"] .cn-stars{color:var(--sunshine-400)}

  /* Price block (compact) */
  .cn-price{position:relative;overflow:hidden;background:var(--sunshine-100);border:1px solid #EFDC9A;border-radius:var(--radius-lg);padding:14px 18px}
  .cn-price__body{position:relative;z-index:1;display:grid;gap:4px}
  .cn-price__fig{font-family:var(--font-display);font-weight:800;font-size:48px;line-height:50px;color:var(--forest-900);white-space:nowrap}
  .cn-price__fig span{font-size:28px}
  .cn-price__line{display:flex;flex-wrap:wrap;align-items:center;gap:2px 6px;font-size:15px;line-height:20px;color:var(--ink);max-width:62%}
  .cn-price__terms-link{display:inline-flex;align-items:center;gap:5px;font-size:15px;font-weight:600}
  .cn-price__terms-link .cn-icon{width:17px;height:17px;text-decoration:none}
  .cn-price__art{position:absolute;right:0;bottom:0;width:44%;max-width:240px;aspect-ratio:13/6;pointer-events:none;border-radius:0 0 var(--radius-lg) 0}
  @media (min-width:960px){.cn-price__fig{font-size:60px;line-height:62px}.cn-price__fig span{font-size:32px}}

  /* Financing terms (dialog) */
  .cn-terms{display:grid;border-top:1px solid var(--line);margin:4px 0}
  .cn-terms div{display:flex;justify-content:space-between;gap:16px;padding:10px 0;border-bottom:1px solid var(--line)}
  .cn-terms dt{color:var(--ink-muted)}
  .cn-terms dd{font-weight:700;color:var(--ink);text-align:right}
  .cn-assure{display:flex;gap:10px;align-items:flex-start;padding:12px 14px;border-radius:var(--radius-md);background:var(--sage-100);font-size:15px;line-height:21px;color:var(--ink)}
  .cn-assure .cn-icon{width:22px;height:22px;color:var(--sage-700);margin-top:-1px}

  /* Booking card (primary CTA, real-time slots). Adapts to its own width:
     side-by-side ≥ 540px (as in the reference), stacked button row below that. */
  .cn-purchase{container-type:inline-size}
  .cn-booking{display:grid;grid-template-columns:auto 1fr;gap:12px 14px;align-items:center;padding:16px;background:var(--sage-100);border:1px solid #CBD6BF;border-radius:var(--radius-lg)}
  .cn-booking__icon{width:40px;height:40px;color:var(--success);stroke-width:1.75;align-self:start;margin-top:2px}
  .cn-booking__info{display:grid;gap:2px;min-width:0}
  .cn-booking__label{font-size:15px;line-height:20px;color:var(--ink)}
  .cn-booking__time{font-family:var(--font-display);font-weight:700;font-size:24px;line-height:30px;color:var(--forest-900)}
  .cn-booking__alt{font-size:15px;line-height:20px;color:var(--ink)}
  .cn-booking__alt-btn{background:none;border:0;padding:0;font:inherit;font-weight:700;color:var(--forest-900);text-decoration:underline;text-decoration-color:rgba(23,55,44,.3);text-underline-offset:3px;white-space:nowrap}
  .cn-booking__alt-btn:hover{text-decoration-color:currentColor}
  .cn-booking__actions{grid-column:1/-1;display:flex;align-items:center;gap:16px}
  .cn-booking__actions .cn-btn{flex:1}
  .cn-booking__actions .cn-link{white-space:nowrap}
  .cn-booking .cn-btn--primary{--btn-primary-bg:var(--forest-900);--btn-primary-hover:var(--forest-700);--btn-primary-text:var(--cream-100);min-height:52px;font-size:17px}
  .cn-booking[data-state="loading"] .cn-booking__time{color:var(--ink-muted)}
  .cn-booking[data-state="empty"] .cn-booking__alt{display:none}
  @container (max-width:340px){.cn-booking__actions{flex-direction:column;align-items:stretch;text-align:center}}
  @container (min-width:540px){
    .cn-booking{grid-template-columns:auto 1fr auto;padding:16px 20px}
    .cn-booking__actions{grid-column:auto;flex-direction:column;align-items:center;gap:10px;padding-left:20px;border-left:1px solid #B9C7AC}
    .cn-booking__time{white-space:nowrap}
  }

  /* Slot picker */
  .cn-slots{display:grid;gap:14px;max-height:56dvh;overflow:auto;padding:2px}
  .cn-slots__day{display:grid;gap:8px}
  .cn-slots__day h3{font:700 13px/16px var(--font-sans);letter-spacing:1.5px;text-transform:uppercase;color:var(--ink-muted)}
  .cn-slots__grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:8px}
  .cn-slot{min-height:48px;padding:8px 10px;border:1.5px solid var(--line-strong);border-radius:var(--radius-md);background:var(--paper);font-weight:600;font-size:15px;color:var(--ink)}
  .cn-slot:hover{border-color:var(--forest-700)}
  .cn-slot[aria-pressed="true"]{border-color:var(--forest-900);background:var(--forest-900);color:var(--cream-100)}

  /* Option tiles (finish) */
  .cn-options{border:0;padding:0;margin:0;min-width:0}
  .cn-options legend{font-family:var(--font-display);font-weight:700;font-size:22px;line-height:28px;color:var(--surface-heading);margin-bottom:12px;padding:0}
  .cn-options legend span{font-family:var(--font-sans);font-weight:400;font-size:16px;color:var(--surface-muted)}
  .cn-options__grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--space-2)}
  @media (min-width:960px){.cn-options__grid{gap:var(--space-3)}}
  .cn-tile{position:relative;display:grid;justify-items:center;gap:6px;padding:10px 4px 12px;background:var(--paper);border:1.5px solid var(--line-strong);border-radius:var(--radius-md);font-weight:600;font-size:14px;line-height:17px;text-align:center;cursor:pointer}
  .cn-tile input{position:absolute;inset:0;opacity:0;cursor:pointer;margin:0}
  .cn-tile .cn-media{width:56px;height:56px;background:transparent;border-radius:8px}
  @media (min-width:960px){.cn-tile .cn-media{width:72px;height:72px}}
  .cn-tile:has(input:checked){border-color:var(--forest-900);box-shadow:0 0 0 3px rgba(23,55,44,.14)}
  .cn-tile:has(input:checked)::after{content:"";position:absolute;top:-9px;right:-9px;width:24px;height:24px;border-radius:50%;background:var(--forest-900) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23F7EADA' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 12.5l4 4 8-9'/%3E%3C/svg%3E") center/14px no-repeat}
  .cn-tile:has(input:focus-visible){outline:3px solid var(--sunshine-500);outline-offset:2px}

  /* Add-on (Canary Care+) */
  .cn-addon{position:relative;display:grid;grid-template-columns:auto 1fr;gap:12px;padding:16px;background:var(--paper);border:1.5px solid var(--line);border-radius:var(--radius-lg);cursor:pointer}
  .cn-addon__name::after{content:"";position:absolute;inset:0;border-radius:inherit}  /* whole card toggles */
  .cn-addon a{position:relative;z-index:1}
  .cn-addon:has(input:checked){border-color:var(--forest-900);background:var(--sage-100)}
  .cn-addon__check{width:24px;height:24px;margin:3px 0 0;accent-color:var(--forest-900)}
  .cn-addon__top{display:flex;justify-content:space-between;align-items:baseline;gap:10px;flex-wrap:wrap}
  .cn-addon__name{font-family:var(--font-display);font-weight:700;font-size:20px;line-height:26px;color:var(--forest-900)}
  .cn-addon__price{font-family:var(--font-display);font-weight:700;font-size:20px;color:var(--forest-900);white-space:nowrap}
  .cn-badge{display:inline-block;margin-left:6px;padding:2px 8px;border-radius:var(--radius-pill);background:var(--success);color:#fff;font:700 11px/16px var(--font-sans);letter-spacing:1px;text-transform:uppercase;vertical-align:3px}
  .cn-checklist{display:flex;flex-wrap:wrap;gap:4px 16px;margin:8px 0;font-size:15px}
  .cn-checklist li{display:inline-flex;align-items:center;gap:6px}
  .cn-checklist .cn-icon{color:var(--sage-700);width:18px;height:18px}
  .cn-surface[data-surface="forest"] .cn-checklist .cn-icon{color:var(--sunshine-400)}

  /* CTA group + trust */
  .cn-cta-group{display:grid;gap:12px;justify-items:center}
  .cn-trust{display:grid;grid-template-columns:repeat(3,1fr);padding-top:var(--space-2)}
  .cn-trust__item{display:flex;flex-direction:column;align-items:center;gap:6px;padding:4px 8px;text-align:center;font-weight:600;font-size:14px;line-height:18px;color:var(--surface-heading)}
  .cn-trust__item+.cn-trust__item{border-left:1px solid var(--surface-line)}
  .cn-trust__item .cn-icon{width:28px;height:28px}
  @media (min-width:480px){.cn-trust__item{flex-direction:row;text-align:left;font-size:15px}}

  /* Steps */
  .cn-steps{display:grid;gap:var(--space-4)}
  @media (min-width:960px){.cn-steps{grid-template-columns:repeat(3,1fr);gap:var(--space-6)}}
  .cn-step{display:grid;grid-template-columns:1fr 42%;gap:12px;align-items:center;background:var(--paper);border-radius:var(--radius-lg);padding:14px;box-shadow:var(--shadow-card)}
  .cn-step__text{display:grid;grid-template-columns:auto 1fr;gap:4px 12px;align-items:start}
  .cn-step__num{grid-row:span 2;width:40px;height:40px;border-radius:50%;background:var(--sunshine-400);color:var(--forest-950);font:800 18px/40px var(--font-display);text-align:center}
  @media (min-width:960px){.cn-step{grid-template-columns:1fr;padding:0 0 24px;overflow:hidden}.cn-step .cn-media{order:-1;border-radius:0}.cn-step__text{padding:0 24px}}

  /* Comparison */
  .cn-compare{display:grid;gap:var(--space-4);max-width:920px;margin-inline:auto}
  @media (min-width:768px){.cn-compare{grid-template-columns:1fr 1fr;gap:var(--space-6)}}
  .cn-compare__card{border-radius:var(--radius-xl);padding:var(--space-6);background:rgba(255,255,255,.6);display:grid;gap:12px;align-content:start}
  .cn-compare__card[data-surface="forest"]{background:var(--surface-bg);box-shadow:var(--shadow-raised)}
  .cn-compare__card .cn-media{width:96px;height:96px;background:transparent}
  @media (min-width:960px){.cn-compare__card .cn-media{width:120px;height:120px}}
  .cn-compare__list li{display:flex;gap:10px;padding:10px 0;border-top:1px solid var(--surface-line)}
  .cn-compare__list .cn-icon{margin-top:2px}
  .cn-compare__card:not([data-surface]) .cn-compare__list .cn-icon{color:var(--ink-muted)}
  .cn-compare__card[data-surface] .cn-compare__list .cn-icon{color:var(--sunshine-400)}

  /* Spec list */
  .cn-specs{display:grid;border-top:1px solid var(--line)}
  .cn-specs div{display:grid;grid-template-columns:minmax(120px,40%) 1fr;gap:16px;padding:12px 0;border-bottom:1px solid var(--line)}
  .cn-specs dt{color:var(--ink-muted)}
  .cn-specs dd{font-weight:600}
  .cn-tbd{display:inline-block;padding:0 6px;border-radius:4px;background:#F6E9C0;color:#5C4507;font-weight:600;font-size:14px}

  /* Horizon divider */
  .cn-horizon{display:block;width:100%;height:56px;background:var(--surface-bg)}
  @media (min-width:960px){.cn-horizon{height:96px}}
  .cn-horizon__pin{stroke:var(--sky-300)}
  @media (max-width:639px){.cn-horizon__pin{display:none}}

  /* Trust section */
  .cn-guarantees{display:grid;gap:var(--space-4)}
  .cn-guarantee{display:grid;grid-template-columns:auto 1fr;gap:4px 14px;padding:var(--space-4) 0;border-top:1px solid var(--surface-line)}
  .cn-guarantee .cn-icon{grid-row:span 2;width:28px;height:28px;color:var(--sunshine-400)}
  .cn-guarantee strong{font-size:18px}
  .cn-portrait{border-radius:var(--radius-xl)}

  /* Care+ */
  .cn-care{display:grid;gap:var(--space-8);align-items:center}
  @media (min-width:960px){.cn-care{grid-template-columns:1fr 1.4fr}}
  .cn-care__art{justify-self:center;width:160px;background:transparent}
  @media (min-width:960px){.cn-care__art{width:240px}}
  .cn-plan{display:grid;gap:var(--space-4)}

  /* FAQ */
  .cn-faq{display:grid;gap:10px;max-width:820px;margin-inline:auto}
  .cn-faq details{background:var(--paper);border-radius:var(--radius-md);box-shadow:0 1px 2px rgba(23,55,44,.06)}
  .cn-faq summary{list-style:none;display:flex;justify-content:space-between;gap:16px;align-items:center;padding:18px 20px;font-weight:700;font-size:18px;line-height:24px;cursor:pointer}
  .cn-faq summary::-webkit-details-marker{display:none}
  .cn-faq summary .cn-icon{transition:transform .2s;color:var(--forest-700)}
  .cn-faq details[open] summary .cn-icon{transform:rotate(180deg)}
  .cn-faq details p{padding:0 20px 20px;color:var(--ink-muted)}

  /* Scenic final CTA */
  .cn-scenic{position:relative;overflow:hidden;padding-top:var(--space-16);padding-bottom:0}
  .cn-scenic__burst{position:absolute;left:50%;bottom:120px;width:900px;max-width:none;transform:translateX(-50%);color:var(--sunshine-400);opacity:.55;pointer-events:none}
  .cn-scenic__inner{position:relative;z-index:1;display:grid;gap:var(--space-6);align-items:end}
  @media (min-width:960px){.cn-scenic__inner{grid-template-columns:1.2fr 1fr}.cn-scenic__burst{left:70%;bottom:60px}}
  .cn-scenic__copy{display:grid;gap:var(--space-4);padding-bottom:var(--space-8)}
  .cn-scenic__mascot{justify-self:center;width:200px;background:transparent;margin-bottom:-24px;position:relative;z-index:2}
  @media (min-width:960px){.cn-scenic__mascot{width:360px;justify-self:end;margin-bottom:-40px}}
  .cn-scenic__edge{position:relative;z-index:1;width:100%;aspect-ratio:3/2;border-radius:0;background:transparent}
  @media (min-width:640px){.cn-scenic__edge{aspect-ratio:24/5}}
  .cn-scenic__actions{display:flex;flex-wrap:wrap;gap:12px;align-items:center}

  /* Footer */
  .cn-footer{padding-block:var(--space-16) var(--space-24)}
  .cn-footer__inner{display:grid;gap:var(--space-8)}
  @media (min-width:960px){.cn-footer__inner{grid-template-columns:1.2fr 1fr 1fr 1fr}.cn-footer{padding-block:var(--space-16)}}
  .cn-footer__brand{width:150px;background:transparent}
  @media (min-width:960px){.cn-footer__brand{width:180px}}
  .cn-footer h3{font:700 13px/16px var(--font-sans);letter-spacing:2px;text-transform:uppercase;color:var(--sunshine-400);margin-bottom:12px}
  .cn-footer li a{display:block;padding:10px 0}
  .cn-footer a{text-decoration:none;color:var(--surface-muted)}
  .cn-footer a:hover{color:var(--cream-100);text-decoration:underline}
  .cn-phone{display:inline-block;padding:9px 0;font:700 22px/26px var(--font-sans);letter-spacing:.5px;color:var(--cream-100)!important}
  .cn-footer__legal{grid-column:1/-1;padding-top:var(--space-6);border-top:1px solid var(--surface-line)}

  /* Sticky mobile bar */
  .cn-sticky.cn-surface{background:var(--paper)}
  .cn-sticky{position:fixed;left:0;right:0;bottom:0;z-index:30;display:flex;gap:10px;align-items:center;padding:10px 16px calc(10px + env(safe-area-inset-bottom));background:var(--paper);box-shadow:var(--shadow-sticky);transform:translateY(110%);transition:transform .25s}
  .cn-sticky[data-visible]{transform:none}
  .cn-sticky__sum{flex:1;min-width:0;line-height:18px}
  .cn-sticky__sum strong{display:block;font-family:var(--font-display);font-size:20px;line-height:24px;color:var(--forest-900)}
  .cn-sticky__sum span{font-size:13px;color:var(--ink-muted)}
  @media (min-width:960px){.cn-sticky{display:none}}
  @media (max-width:959px){.cn-footer{padding-bottom:calc(var(--space-24) + env(safe-area-inset-bottom))}}

  /* Availability dialog */
  /* Dialogs: bottom sheet on phones (thumb reach), centered card ≥640px */
  .cn-dialog{border:0;padding:0;color:var(--ink);box-shadow:var(--shadow-raised);width:100%;max-width:100%;margin:auto 0 0;border-radius:24px 24px 0 0;max-height:92dvh;overflow:auto;overscroll-behavior:contain}
  .cn-dialog[open]{animation:cn-sheet .22s ease-out}
  @keyframes cn-sheet{from{transform:translateY(40px);opacity:.4}}
  .cn-dialog .cn-dialog__body{padding-bottom:calc(28px + env(safe-area-inset-bottom))}
  .cn-dialog .cn-dialog__body::before{content:"";justify-self:center;width:40px;height:4px;border-radius:2px;background:var(--line-strong);margin:-14px 0 2px}
  @media (min-width:640px){.cn-dialog{width:min(480px,calc(100% - 32px));margin:auto;border-radius:var(--radius-xl)}.cn-dialog .cn-dialog__body::before{display:none}}
  .cn-dialog::backdrop{background:rgba(15,37,29,.55)}
  .cn-dialog__body{position:relative;padding:28px 20px;display:grid;gap:14px;background:var(--cream-50)}
  @media (min-width:640px){.cn-dialog__body{padding:28px}}
  .cn-dialog__close{position:absolute;right:10px;top:10px;width:44px;height:44px;border-radius:50%;border:0;background:var(--cream-100);display:grid;place-items:center}
  .cn-field{display:grid;gap:6px;font-weight:600}
  .cn-input{min-height:52px;padding:12px 14px;border:1.5px solid var(--line-strong);border-radius:var(--radius-sm);font:400 17px var(--font-sans);color:var(--ink);background:var(--paper);width:100%}
  .cn-input:focus{outline:none;border-color:var(--forest-700);box-shadow:0 0 0 3px rgba(34,80,63,.18)}
  .cn-result{padding:12px 14px;border-radius:var(--radius-sm);font-weight:600}
  .cn-result[data-tone="ok"]{background:#E3F0E7;color:var(--success)}
  .cn-result[data-tone="no"]{background:#F8E4E1;color:var(--error)}
}

/* ---------- utilities ---------- */
@layer canary.utilities {
  .cn-stack-2{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--space-2)}
  .cn-stack-4{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--space-4)}
  .cn-center{text-align:center}
  .cn-hide-desk{}
  @media (min-width:960px){.cn-hide-desk{display:none!important}}
}
