/* ==========================================================================
   Capital Aesthetic — migrated content system
   --------------------------------------------------------------------------
   Covers every page that carries body.ca-content-page: the 46 treatment
   guides, the 417-article journal and its index, reviews, the gallery,
   memberships and the other pages migrated from the WordPress site.

   It borrows the homepage's editorial v3 language (cream ground, navy serif
   headlines, one blue accent, hairlines instead of boxes) so the archive
   reads as the same practice as the front door. Tokens come from v3.css.
   ========================================================================== */

.ca-content-page{background:var(--ca-white);color:var(--ca-text);font-family:var(--ca-sans)}
.ca-content-page main{overflow:clip}
.ca-content-page .wrap{max-width:var(--ca-wrap)}

/* --------------------------------------------------------------------------
   1. Hero band (cream). Shared by guides, articles, index pages.
   -------------------------------------------------------------------------- */
.ca-content-page .ca-detail-hero{
  position:relative;
  padding:clamp(52px,6.5vw,92px) 0 clamp(44px,5.5vw,76px);
  background:var(--ca-cream);
  border-bottom:1px solid var(--ca-line);
}
.ca-content-page .ca-detail-hero .kicker,
.ca-content-page .ca-eyebrow{
  display:flex;align-items:center;gap:12px;margin:0 0 18px;
  color:var(--ca-blue);font:700 11px/1.2 var(--ca-sans);letter-spacing:.15em;text-transform:uppercase;
}
.ca-content-page .ca-detail-hero .kicker::before,
.ca-content-page .ca-eyebrow::before{content:"";width:34px;height:1px;background:currentColor;flex:none}
.ca-content-page .ca-detail-hero .display{
  max-width:18ch;margin:0;
  color:var(--ca-navy);
  font:500 clamp(2.5rem,5.4vw,5rem)/1 var(--ca-serif);
  letter-spacing:-.04em;text-transform:none;
}
.ca-content-page .ca-detail-hero .display em{font-style:italic;color:var(--ca-blue)}
.ca-content-page .ca-detail-hero .band-lede{
  max-width:54ch;margin:22px 0 0;
  color:var(--ca-muted);font-size:clamp(16.5px,1.35vw,19.5px);line-height:1.62;
}
.ca-content-page .ca-breadcrumb{margin:0 0 26px;font-size:12px;letter-spacing:.04em;color:var(--ca-muted)}
.ca-content-page .ca-breadcrumb a{color:var(--ca-navy);text-decoration:none;border-bottom:1px solid rgba(7,28,61,.25)}
.ca-content-page .ca-breadcrumb a:hover{color:var(--ca-blue);border-color:var(--ca-blue)}
.ca-content-page .ca-article-date{margin:26px 0 0;font-size:13px;letter-spacing:.04em;color:var(--ca-muted)}
.ca-content-page .ca-article-date time{color:var(--ca-navy);font-weight:600}
.ca-content-page .ca-detail-hero .ca-actions{display:flex;flex-wrap:wrap;gap:12px 22px;align-items:center;margin-top:30px}
.ca-content-page .ca-detail-hero .btn{
  min-height:50px;padding:0 24px;border-radius:2px;
  background:var(--ca-navy);color:#fff;font:700 13px/1 var(--ca-sans);letter-spacing:.025em;text-transform:none;
}
.ca-content-page .ca-detail-hero .btn:hover{background:var(--ca-blue)}
.ca-content-page .ca-text-link{
  color:var(--ca-navy);text-decoration:none;font-weight:700;font-size:14px;
  border-bottom:1px solid rgba(7,28,61,.35);padding-bottom:4px;
}
.ca-content-page .ca-text-link:hover{color:var(--ca-blue);border-color:var(--ca-blue)}

/* Treatment guide hero: copy on the left, photograph bleeding off the right. */
.ca-content-page .ca-detail-hero--service{padding:0;border-bottom:0}
.ca-service-hero-grid{
  display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  min-height:min(560px,62vh);align-items:center;
}
.ca-service-hero-grid > div{padding:clamp(56px,7vw,100px) clamp(28px,5vw,72px) clamp(56px,7vw,100px) 0}
.ca-service-hero-grid img{
  position:absolute;top:0;right:0;bottom:0;width:50%;height:100%;
  object-fit:cover;object-position:60% 40%;
}
.ca-service-hero-grid img.is-body{object-position:50% 35%}
.ca-content-page .ca-detail-hero--service::after{
  content:"";position:absolute;left:50%;top:0;bottom:0;width:8%;
  background:linear-gradient(90deg,var(--ca-cream),rgba(247,244,237,0));pointer-events:none;
}
.ca-service-meta{display:flex;flex-wrap:wrap;gap:8px 26px;margin:28px 0 0;padding:0;list-style:none}
.ca-service-meta li{font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--ca-muted);font-weight:700}
.ca-service-meta li b{color:var(--ca-navy);font-weight:700}

/* --------------------------------------------------------------------------
   2. Reading layout: article + sticky aside
   -------------------------------------------------------------------------- */
.ca-content-page .ca-detail-layout{
  display:grid;grid-template-columns:minmax(0,1fr) 296px;
  gap:clamp(40px,6vw,96px);align-items:start;
  padding-top:clamp(40px,5vw,72px);padding-bottom:clamp(72px,8vw,120px);
}
.ca-content-page .ca-lead{grid-column:1/-1;margin:0 0 clamp(8px,2vw,24px)}
.ca-content-page .ca-lead img{
  display:block;width:100%;height:auto;max-height:560px;aspect-ratio:21/9;object-fit:cover;border-radius:2px;
}
.ca-content-page .ca-lead figcaption{margin-top:10px;font-size:12.5px;color:var(--ca-muted)}

.ca-content-page .ca-article{
  min-width:0;max-width:740px;overflow-wrap:anywhere;
  font-size:17.5px;line-height:1.76;color:var(--ca-text);
}
.ca-content-page .ca-article [data-migration-body] > p:first-child:not(:has(img)):not(.ca-source-note){
  font-size:1.16em;line-height:1.6;color:var(--ca-navy);
}
.ca-content-page .ca-article p{margin:0 0 1.35em}
.ca-content-page .ca-article h1,
.ca-content-page .ca-article h2,
.ca-content-page .ca-article h3{font-family:var(--ca-serif);color:var(--ca-navy);font-weight:500;letter-spacing:-.025em}
.ca-content-page .ca-article h1{font-size:clamp(1.9rem,3vw,2.6rem);line-height:1.1;margin:0 0 .6em}
.ca-content-page .ca-article h2{font-size:clamp(1.7rem,2.6vw,2.3rem);line-height:1.15;margin:2.2em 0 .65em}
.ca-content-page .ca-article h2:first-child{margin-top:0}
.ca-content-page .ca-article h3{font-size:clamp(1.35rem,1.9vw,1.6rem);line-height:1.25;margin:1.9em 0 .55em}
.ca-content-page .ca-article h4{font:700 1.02rem/1.45 var(--ca-sans);color:var(--ca-navy);margin:1.6em 0 .5em}
.ca-content-page .ca-article h5,
.ca-content-page .ca-article h6{
  font:700 11.5px/1.4 var(--ca-sans);letter-spacing:.14em;text-transform:uppercase;color:var(--ca-blue);margin:2em 0 .6em;
}
.ca-content-page .ca-article a{
  color:var(--ca-blue);text-decoration:underline;text-decoration-thickness:1px;
  text-decoration-color:rgba(31,93,138,.38);text-underline-offset:3px;
  transition:color .15s ease,text-decoration-color .15s ease;
}
.ca-content-page .ca-article a:hover{color:var(--ca-navy);text-decoration-color:var(--ca-navy)}
.ca-content-page .ca-article strong,.ca-content-page .ca-article b{color:var(--ca-navy);font-weight:600}
.ca-content-page .ca-article ul,.ca-content-page .ca-article ol{margin:0 0 1.5em;padding-left:1.35em}
.ca-content-page .ca-article li{margin:.45em 0;padding-left:.2em}
.ca-content-page .ca-article li::marker{color:var(--ca-blue)}
.ca-content-page .ca-article blockquote{
  margin:2em 0;padding:6px 0 6px 28px;border-left:2px solid var(--ca-blue);
  font:italic 500 1.3rem/1.5 var(--ca-serif);color:var(--ca-navy);
}
.ca-content-page .ca-article blockquote p{margin:0}
.ca-content-page .ca-article hr{border:0;border-top:1px solid var(--ca-line);margin:2.6em 0}
.ca-content-page .ca-article img,.ca-content-page .ca-article video{
  display:block;max-width:100%;height:auto;margin:1.8em auto;border-radius:2px;
}
.ca-content-page .ca-article p > img:only-child{margin:0 auto}
.ca-content-page .ca-article figure{margin:2em 0}
.ca-content-page .ca-article figure img{margin:0}
.ca-content-page .ca-article figcaption{margin-top:10px;font-size:13px;color:var(--ca-muted)}
.ca-content-page .ca-article table{
  display:block;max-width:100%;overflow-x:auto;border-collapse:collapse;margin:2em 0;font-size:15px;
}
.ca-content-page .ca-article th,.ca-content-page .ca-article td{padding:12px 14px;border:1px solid var(--ca-line);text-align:left;vertical-align:top}
.ca-content-page .ca-article th{background:var(--ca-blue-pale);color:var(--ca-navy);font-weight:600}
.ca-content-page .ca-article iframe{max-width:100%}

/* Button-styled links inside article bodies win over the generic link rule. */
.ca-content-page .ca-article a.ca-tier__book,.ca-content-page .ca-article a.ca-related__book{color:#fff;text-decoration:none}
.ca-content-page .ca-article .ca-consult a.btn{color:var(--ca-navy);text-decoration:none}
.ca-content-page .ca-article a.ca-tier__book:hover{color:#fff}
.ca-content-page .ca-article p > a.ca-tier__book{margin:6px 0 0;padding:0 22px}

/* Migration notes: quiet, one hairline, no coloured boxes. */
.ca-content-page .ca-article .ca-source-note,
.ca-content-page .ca-article .ca-archive-note,
.ca-content-page .ca-article .ca-image-caption{
  font-size:13.5px;line-height:1.6;color:var(--ca-muted);background:none;border:0;padding:0;
}
.ca-content-page .ca-article .ca-source-note{padding:0 0 18px;margin:0 0 30px;border-bottom:1px solid var(--ca-line)}
.ca-content-page .ca-article .ca-archive-note{margin:44px 0 0;padding:18px 0 0;border-top:1px solid var(--ca-line)}
.ca-content-page .ca-article .ca-image-caption{margin:0 0 8px}

/* Two-image comparison figures and gallery groups from the source site. */
.ca-content-page .ca-article figure:has(> img + img),
.ca-content-page .ca-article .ca-source-gallery{
  display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:1.8em 0 1em;
}
.ca-content-page .ca-article figure:has(> img + img) > img,
.ca-content-page .ca-article .ca-source-gallery img{width:100%;height:100%;object-fit:cover;margin:0}

/* Consultation close: a navy card, the same button language as the home. */
.ca-content-page .ca-consult{
  margin:clamp(44px,5vw,64px) 0 0;padding:clamp(30px,3.5vw,44px);
  background:var(--ca-navy);color:#fff;border-radius:2px;border:0;
}
.ca-content-page .ca-consult h2{margin:0 0 10px;color:#fff;font:500 clamp(1.6rem,2.3vw,2.1rem)/1.12 var(--ca-serif);letter-spacing:-.03em}
.ca-content-page .ca-consult p{margin:0 0 24px;max-width:52ch;color:rgba(255,255,255,.76);font-size:16px;line-height:1.6}
.ca-content-page .ca-consult .btn,.ca-content-page .ca-consult .btn--accent{
  display:inline-flex;align-items:center;gap:10px;min-height:50px;padding:0 24px;border-radius:2px;
  background:#fff;color:var(--ca-navy);font:700 13px/1 var(--ca-sans);letter-spacing:.025em;text-transform:none;text-decoration:none;
}
.ca-content-page .ca-consult .btn::after{content:"\2192";font-size:16px;font-weight:400}
.ca-content-page .ca-consult .btn:hover{background:var(--ca-blue-soft)}

/* Aside: a cream register that stays with the reader. */
.ca-content-page .ca-related{
  position:sticky;top:calc(var(--nav-h,89px) + 24px);
  padding:26px 26px 22px;background:var(--ca-cream);border:1px solid var(--ca-line);border-radius:2px;
  font-size:15px;overflow-wrap:anywhere;
}
.ca-content-page .ca-related h2{
  display:flex;align-items:center;gap:12px;margin:0 0 6px;
  color:var(--ca-blue);font:700 11px/1.2 var(--ca-sans);letter-spacing:.15em;text-transform:uppercase;
}
.ca-content-page .ca-related h2::before{content:"";width:22px;height:1px;background:currentColor;flex:none}
.ca-content-page .ca-related ul{list-style:none;margin:0 0 18px;padding:0}
.ca-content-page .ca-related li{margin:0;border-bottom:1px solid var(--ca-line)}
.ca-content-page .ca-related li a{
  display:flex;justify-content:space-between;align-items:center;gap:14px;padding:11px 0;
  color:var(--ca-navy);text-decoration:none;font-weight:500;line-height:1.35;
}
.ca-content-page .ca-related li a::after{content:"\2192";flex:none;color:var(--ca-blue);opacity:0;transform:translateX(-4px);transition:opacity .15s ease,transform .15s ease}
.ca-content-page .ca-related li a:hover{color:var(--ca-blue)}
.ca-content-page .ca-related li a:hover::after{opacity:1;transform:none}
.ca-content-page .ca-related > a{
  display:inline-block;margin:6px 18px 0 0;color:var(--ca-navy);text-decoration:none;font-weight:700;font-size:13px;
  border-bottom:1px solid rgba(7,28,61,.35);padding-bottom:3px;
}
.ca-content-page .ca-related > a:hover{color:var(--ca-blue);border-color:var(--ca-blue)}
.ca-content-page .ca-related .ca-related__book{
  display:flex;align-items:center;justify-content:center;gap:10px;margin:22px 0 0;min-height:48px;
  background:var(--ca-navy);color:#fff;border:0;border-radius:2px;font:700 13px/1 var(--ca-sans);text-decoration:none;
}
.ca-content-page .ca-related .ca-related__book::after{content:"\2192";font-weight:400;font-size:15px}
.ca-content-page .ca-related .ca-related__book:hover{background:var(--ca-blue)}

/* --------------------------------------------------------------------------
   3. Journal index
   -------------------------------------------------------------------------- */
.ca-journal-hero{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:clamp(28px,5vw,80px);align-items:end}
.ca-journal-hero .band-lede{margin-top:20px}
.ca-search-field{position:relative;max-width:520px}
.ca-search-field svg{position:absolute;left:16px;top:50%;width:18px;height:18px;transform:translateY(-50%);color:var(--ca-muted);pointer-events:none}
.ca-content-page .ca-search-label{display:block;margin:0 0 10px;font:700 11px/1.2 var(--ca-sans);letter-spacing:.15em;text-transform:uppercase;color:var(--ca-blue)}
.ca-content-page #blog-search{
  width:100%;min-height:54px;padding:12px 16px 12px 46px;
  font:16px/1.4 var(--ca-sans);color:var(--ca-text);
  background:#fff;border:1px solid var(--ca-line);border-radius:2px;
  transition:border-color .15s ease,box-shadow .15s ease;
}
.ca-content-page #blog-search:focus{outline:0;border-color:var(--ca-blue);box-shadow:0 0 0 3px rgba(31,93,138,.14)}
.ca-content-page #blog-count{margin:12px 0 0;font-size:12.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--ca-muted)}

.ca-topics{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 clamp(30px,4vw,46px);padding:0;list-style:none}
.ca-topics button{
  min-height:38px;padding:0 16px;border:1px solid var(--ca-line);border-radius:999px;
  background:#fff;color:var(--ca-navy);font:600 13px/1 var(--ca-sans);cursor:pointer;
  transition:background .15s ease,color .15s ease,border-color .15s ease;
}
.ca-topics button:hover{border-color:var(--ca-blue);color:var(--ca-blue)}
.ca-topics button[aria-pressed="true"]{background:var(--ca-navy);border-color:var(--ca-navy);color:#fff}

.ca-content-page .ca-blog-list{
  list-style:none;margin:0;padding:0;
  display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(34px,4vw,52px) 28px;
}
.ca-content-page .ca-blog-list li{margin:0;padding:0;background:none;border:0;overflow-wrap:anywhere}
.ca-content-page .ca-blog-list li[hidden]{display:none}
.ca-content-page .ca-blog-list a{display:block;color:var(--ca-navy);text-decoration:none}
.ca-content-page .ca-blog-list figure{
  margin:0 0 18px;aspect-ratio:4/3;overflow:hidden;border-radius:2px;background:var(--ca-blue-pale);
}
.ca-content-page .ca-blog-list img{width:100%;height:100%;object-fit:cover;transition:transform .6s ease}
.ca-content-page .ca-blog-list a:hover img{transform:scale(1.035)}
.ca-content-page .ca-blog-list figure.is-empty{display:grid;place-items:center;background:var(--ca-cream);color:var(--ca-navy)}
.ca-content-page .ca-blog-list figure.is-empty span{font:500 2.4rem/1 var(--ca-serif);letter-spacing:-.04em;opacity:.35}
.ca-content-page .ca-blog-list .kicker{
  display:block;margin:0 0 10px;color:var(--ca-blue);font:700 11px/1.3 var(--ca-sans);letter-spacing:.13em;text-transform:uppercase;
}
.ca-content-page .ca-blog-list .kicker span{color:var(--ca-muted);font-weight:600;letter-spacing:.06em;text-transform:none}
.ca-content-page .ca-blog-list h2{
  margin:0;font:500 clamp(1.25rem,1.5vw,1.45rem)/1.25 var(--ca-serif);letter-spacing:-.02em;color:var(--ca-navy);
  transition:color .15s ease;
}
.ca-content-page .ca-blog-list a:hover h2{color:var(--ca-blue)}
.ca-content-page .ca-blog-list p.ca-blog-excerpt{margin:10px 0 0;font-size:14.5px;line-height:1.55;color:var(--ca-muted)}
.ca-content-page .ca-blog-list li.is-paged{display:none}
.ca-content-page .ca-blog-more{display:flex;justify-content:center;margin:clamp(40px,5vw,60px) 0 0}
.ca-content-page .ca-blog-more button{
  min-height:52px;padding:0 28px;border:1px solid rgba(7,28,61,.42);border-radius:2px;
  background:transparent;color:var(--ca-navy);font:700 13px/1 var(--ca-sans);cursor:pointer;
  transition:background .15s ease,color .15s ease,border-color .15s ease;
}
.ca-content-page .ca-blog-more button:hover{background:var(--ca-navy);border-color:var(--ca-navy);color:#fff}
.ca-content-page #blog-empty{padding:40px 0;color:var(--ca-muted);font-size:17px}

.ca-content-page .ca-more-information{background:var(--ca-cream);border-top:1px solid var(--ca-line)}
.ca-content-page .ca-more-information .h2{font:500 clamp(1.9rem,3vw,2.6rem)/1.05 var(--ca-serif);letter-spacing:-.035em;color:var(--ca-navy);margin:0 0 28px}
.ca-content-page .ca-more-information ul{columns:3;column-gap:40px;padding:0;margin:0;list-style:none}
.ca-content-page .ca-more-information li{break-inside:avoid;margin:0;border-bottom:1px solid var(--ca-line)}
.ca-content-page .ca-more-information li a{display:block;padding:12px 0;color:var(--ca-navy);text-decoration:none;font-weight:500}
.ca-content-page .ca-more-information li a:hover{color:var(--ca-blue)}

/* --------------------------------------------------------------------------
   4. Reviews
   -------------------------------------------------------------------------- */
.ca-content-page .ca-review-intro{max-width:64ch;margin:0 0 clamp(30px,4vw,44px);color:var(--ca-muted);font-size:16px;line-height:1.6}
.ca-content-page .ca-review-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}
.ca-content-page .ca-review-grid .q,
.ca-content-page .ca-article figure:has(> blockquote){
  position:relative;margin:0;padding:clamp(30px,3.5vw,44px) clamp(26px,3vw,40px) 30px;
  background:#fff;border:1px solid var(--ca-line);border-left:0;border-radius:2px;
  display:flex;flex-direction:column;justify-content:space-between;
}
.ca-content-page .ca-article figure:has(> blockquote){margin:0 0 20px;background:var(--ca-cream)}
.ca-content-page .ca-review-grid .q::before,
.ca-content-page .ca-article figure:has(> blockquote)::before{
  content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--ca-blue);
}
.ca-content-page .ca-review-grid .q blockquote,
.ca-content-page .ca-article figure:has(> blockquote) blockquote{
  margin:0 0 26px;padding:0;border:0;
  font:500 clamp(1.25rem,1.6vw,1.55rem)/1.4 var(--ca-serif);font-style:normal;letter-spacing:-.015em;color:var(--ca-navy);
}
.ca-content-page .ca-review-grid .q blockquote::before,
.ca-content-page .ca-article figure:has(> blockquote) blockquote::before{
  content:"\201C";display:block;margin-bottom:6px;color:var(--ca-blue);font:500 3rem/0.6 var(--ca-serif);opacity:.7;
}
.ca-content-page .ca-review-grid .q figcaption,
.ca-content-page .ca-article figure:has(> blockquote) figcaption{
  margin:0;font:700 13px/1.4 var(--ca-sans);letter-spacing:.02em;text-transform:none;color:var(--ca-navy);
}
.ca-content-page .ca-review-grid .q figcaption .src{display:block;margin-top:4px;font-weight:500;font-size:12px;color:var(--ca-muted)}
.ca-content-page .ca-review-sources{margin:clamp(30px,4vw,44px) 0 0;display:flex;flex-wrap:wrap;gap:12px 28px;font-size:14px}
.ca-content-page .ca-review-sources a{color:var(--ca-navy);text-decoration:none;font-weight:700;border-bottom:1px solid rgba(7,28,61,.35);padding-bottom:3px}
.ca-content-page .ca-review-sources a:hover{color:var(--ca-blue);border-color:var(--ca-blue)}

/* --------------------------------------------------------------------------
   5. Gallery pairs (built by tools/polish-pages.py)
   -------------------------------------------------------------------------- */
.ca-content-page .ca-pairs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:28px 24px;margin:0 0 2em}
.ca-content-page .ca-pair{margin:0;background:#fff;border:1px solid var(--ca-line);border-radius:2px;overflow:hidden}
.ca-content-page .ca-pair__frames{display:grid;grid-template-columns:1fr 1fr;gap:2px;background:var(--ca-line)}
.ca-content-page .ca-pair__frames span{position:relative;display:block;aspect-ratio:3/4;background:var(--ca-blue-pale)}
.ca-content-page .ca-pair__frames img{width:100%;height:100%;object-fit:cover;margin:0;border-radius:0}
.ca-content-page .ca-pair__frames span::after{
  position:absolute;left:10px;bottom:10px;padding:5px 8px;border-radius:2px;
  background:rgba(7,28,61,.86);color:#fff;font:700 10px/1 var(--ca-sans);letter-spacing:.14em;text-transform:uppercase;
}
.ca-content-page .ca-pair__frames span:first-child::after{content:"Before"}
.ca-content-page .ca-pair__frames span:last-child::after{content:"After";background:var(--ca-blue)}
.ca-content-page .ca-pair figcaption{display:flex;flex-wrap:wrap;gap:6px 22px;padding:14px 18px 16px;margin:0;font-size:13px;color:var(--ca-muted)}
.ca-content-page .ca-pair figcaption b{color:var(--ca-navy);font-weight:600}
.ca-content-page .ca-gallery-note{font-size:14px;color:var(--ca-muted);margin:0 0 30px}

/* --------------------------------------------------------------------------
   6. Membership tiers (built by tools/polish-pages.py)
   -------------------------------------------------------------------------- */
.ca-content-page .ca-tiers{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;margin:1.5em 0 2.5em}
.ca-content-page .ca-tier{
  display:flex;flex-direction:column;padding:30px 28px 28px;
  background:#fff;border:1px solid var(--ca-line);border-top:3px solid var(--ca-navy);border-radius:2px;
}
.ca-content-page .ca-tier--featured{border-top-color:var(--ca-blue);background:var(--ca-cream)}
.ca-content-page .ca-tier__name{margin:0 0 14px;font:700 11px/1.3 var(--ca-sans);letter-spacing:.15em;text-transform:uppercase;color:var(--ca-blue)}
.ca-content-page .ca-tier__price{margin:0 0 14px;font:500 clamp(2rem,2.8vw,2.6rem)/1 var(--ca-serif);letter-spacing:-.035em;color:var(--ca-navy)}
.ca-content-page .ca-tier__price small{font:600 13px/1 var(--ca-sans);letter-spacing:.02em;color:var(--ca-muted);margin-left:4px}
.ca-content-page .ca-tier__lede{margin:0 0 16px;font-size:15px;line-height:1.5;color:var(--ca-navy);font-weight:600}
.ca-content-page .ca-tier ul{margin:0 0 16px;padding:0;list-style:none}
.ca-content-page .ca-tier li{margin:0;padding:9px 0 9px 22px;position:relative;font-size:14.5px;line-height:1.45;border-top:1px solid var(--ca-line)}
.ca-content-page .ca-tier li::before{content:"";position:absolute;left:0;top:16px;width:10px;height:1px;background:var(--ca-blue)}
.ca-content-page .ca-tier__fine{margin:auto 0 0;padding-top:8px;font-size:12.5px;color:var(--ca-muted)}
.ca-content-page .ca-tier__book{
  display:inline-flex;align-items:center;justify-content:center;gap:10px;margin-top:20px;min-height:46px;
  background:var(--ca-navy);color:#fff;border-radius:2px;font:700 13px/1 var(--ca-sans);text-decoration:none;
}
.ca-content-page .ca-tier__book::after{content:"\2192";font-weight:400;font-size:15px}
.ca-content-page .ca-tier__book:hover{background:var(--ca-blue)}
.ca-content-page .ca-terms{margin:0 0 2em;padding:20px 24px;background:var(--ca-blue-pale);border-radius:2px;font-size:14px;line-height:1.6;color:var(--ca-navy)}
.ca-content-page .ca-terms p{margin:0 0 .5em}
.ca-content-page .ca-terms p:last-child{margin:0}
.ca-content-page .ca-bundles{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;margin:0 0 2em}
.ca-content-page .ca-bundle{padding:24px 26px;border:1px solid var(--ca-line);border-radius:2px;background:#fff}
.ca-content-page .ca-bundle h3{margin:0 0 6px;font-size:1.35rem}
.ca-content-page .ca-bundle p{margin:0;color:var(--ca-muted);font-size:15px}

/* --------------------------------------------------------------------------
   7. Services hub directory (generated into services.html): photo category
      cards with the guides as pills, not a hairline list.
   -------------------------------------------------------------------------- */
.ca-service-directory{padding:clamp(80px,8vw,128px) 0;background:var(--ca-cream);color:var(--ca-text);border-top:1px solid var(--ca-line)}
.ca-service-directory .kicker{
  display:flex;align-items:center;gap:12px;margin:0 0 18px;
  color:var(--ca-blue);font:700 11px/1.2 var(--ca-sans);letter-spacing:.15em;text-transform:uppercase;
}
.ca-service-directory .kicker::before{content:"";width:34px;height:1px;background:currentColor}
.ca-service-directory .ca-directory-head{display:flex;align-items:end;justify-content:space-between;gap:40px;margin-bottom:clamp(36px,4.5vw,60px)}
.ca-service-directory .h2{margin:0;max-width:16ch;font:500 clamp(2.5rem,4.6vw,4.6rem)/.98 var(--ca-serif);letter-spacing:-.045em;color:var(--ca-navy);text-transform:none}
.ca-service-directory .h2 em{font-style:italic;color:var(--ca-blue)}
.ca-service-directory .ca-directory-lede{max-width:44ch;margin:0;color:var(--ca-muted);font-size:clamp(16px,1.25vw,19px);line-height:1.6}
.ca-service-directory .ca-directory-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:24px}
.ca-dir-card{
  grid-column:span 2;display:flex;flex-direction:column;overflow:hidden;
  background:#fff;border:1px solid var(--ca-line);border-radius:2px;
  transition:transform .25s ease,box-shadow .25s ease;
}
.ca-dir-card:hover{transform:translateY(-3px);box-shadow:0 18px 40px rgba(7,28,61,.09)}
.ca-dir-card--wide{grid-column:span 3}
.ca-dir-card figure{margin:0;aspect-ratio:16/9;overflow:hidden;background:var(--ca-blue-pale);position:relative}
.ca-dir-card--wide figure{aspect-ratio:2/1}
.ca-dir-card figure img{width:100%;height:100%;object-fit:cover;object-position:var(--pos,50% 40%);transition:transform .7s ease}
.ca-dir-card:hover figure img{transform:scale(1.035)}
.ca-dir-card figure::after{content:"";position:absolute;left:0;right:0;bottom:0;height:3px;background:var(--tone,var(--ca-navy))}
.ca-dir-card__body{display:flex;flex-direction:column;flex:1;padding:24px 26px 28px}
.ca-dir-card .ca-directory-count{display:block;margin:0 0 10px;font:700 11px/1.3 var(--ca-sans);letter-spacing:.14em;text-transform:uppercase;color:var(--ca-blue)}
.ca-dir-card h3{margin:0 0 8px;font:500 clamp(1.6rem,2vw,2.1rem)/1.05 var(--ca-serif);letter-spacing:-.03em;color:var(--ca-navy)}
.ca-dir-card p{margin:0 0 18px;color:var(--ca-muted);font-size:15px;line-height:1.55}
.ca-dir-card ul{display:flex;flex-wrap:wrap;gap:8px;margin:auto 0 0;padding:0;list-style:none}
.ca-dir-card li{margin:0;border:0}
.ca-dir-card li a{
  display:inline-flex;align-items:center;min-height:36px;padding:0 14px;
  border:1px solid rgba(7,28,61,.18);border-radius:999px;background:var(--ca-cream);
  color:var(--ca-navy);font:600 13px/1 var(--ca-sans);text-decoration:none;white-space:nowrap;
  transition:background .15s ease,color .15s ease,border-color .15s ease;
}
.ca-dir-card li a:hover{background:var(--ca-navy);border-color:var(--ca-navy);color:#fff}
.ca-dir-card--cta{grid-column:1/-1;background:var(--ca-navy);color:#fff;border-color:var(--ca-navy)}
.ca-dir-card--cta .ca-dir-card__body{flex-direction:row;align-items:center;justify-content:space-between;gap:28px 48px;flex-wrap:wrap;padding:clamp(30px,3vw,44px) clamp(28px,3vw,48px)}
.ca-dir-card--cta .ca-dir-card__body > div{max-width:640px}
.ca-dir-card--cta .ca-directory-count{color:#b9d2e2}
.ca-dir-card--cta h3{color:#fff;font-size:clamp(1.8rem,2.4vw,2.5rem)}
.ca-dir-card--cta p{margin:0;color:rgba(255,255,255,.74);font-size:16px}
.ca-dir-card--cta .ca-btn{flex:none;margin:0;background:#fff;color:var(--ca-navy)}
.ca-dir-card--cta .ca-btn:hover{background:var(--ca-blue-soft)}

/* --------------------------------------------------------------------------
   8. Homepage patient experiences (index.html)
   -------------------------------------------------------------------------- */
.ca-client-reviews .ca-review-triptych{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.ca-client-reviews .ca-review-triptych[hidden]{display:none!important}
.ca-client-reviews .ca-quote{
  position:relative;margin:0;padding:clamp(28px,3vw,40px) clamp(24px,2.6vw,36px) 28px;
  background:#fff;color:var(--ca-text);border-radius:2px;
  display:flex;flex-direction:column;justify-content:space-between;
}
.ca-client-reviews .ca-quote blockquote{
  margin:0 0 28px;font:500 clamp(1.25rem,1.55vw,1.5rem)/1.38 var(--ca-serif);letter-spacing:-.018em;color:var(--ca-navy);
}
.ca-client-reviews .ca-quote blockquote::before{
  content:"\201C";display:block;margin-bottom:4px;color:var(--ca-blue);font:500 3rem/0.6 var(--ca-serif);opacity:.65;
}
.ca-client-reviews figcaption{font:700 13px/1.4 var(--ca-sans);color:var(--ca-navy)}
.ca-client-reviews figcaption span{display:block;margin-top:4px;font-size:12px;font-weight:500;color:var(--ca-muted)}
.ca-client-reviews .ca-review-foot{display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap;margin-top:28px}
.ca-client-reviews .ca-review-controls{display:flex;align-items:center;gap:14px;margin:0;color:rgba(255,255,255,.72)}
.ca-client-reviews .ca-review-controls [role="status"]{font-size:12px;letter-spacing:.12em;text-transform:uppercase;min-width:5ch;text-align:center}
.ca-client-reviews .ca-pager{
  width:46px;height:46px;display:inline-grid;place-items:center;padding:0;
  border:1px solid rgba(255,255,255,.4);border-radius:999px;background:transparent;color:#fff;
  font:400 18px/1 var(--ca-sans);cursor:pointer;transition:background .15s ease,border-color .15s ease,color .15s ease;
}
.ca-client-reviews .ca-pager:hover,.ca-client-reviews .ca-pager:focus-visible{background:#fff;border-color:#fff;color:var(--ca-navy);outline:0}
.ca-client-reviews .ca-text-link--light{color:#fff;border-color:rgba(255,255,255,.4)}
.ca-client-reviews .ca-text-link--light:hover{color:#b9d2e2;border-color:#b9d2e2}
.ca-client-reviews .ca-btn--outline{color:#fff;border-color:rgba(255,255,255,.42)}
.ca-client-reviews .ca-btn--outline:hover{color:var(--ca-navy);background:#fff;border-color:#fff}

/* --------------------------------------------------------------------------
   9. Responsive
   -------------------------------------------------------------------------- */
@media (max-width:1100px){
  .ca-service-directory .ca-directory-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .ca-dir-card,.ca-dir-card--wide{grid-column:span 1}
  .ca-content-page .ca-more-information ul{columns:2}
}
@media (max-width:960px){
  .ca-content-page .ca-detail-layout{grid-template-columns:1fr;gap:44px}
  .ca-content-page .ca-related{position:static}
  .ca-content-page .ca-blog-list{grid-template-columns:repeat(2,minmax(0,1fr))}
  .ca-journal-hero{grid-template-columns:1fr}
  .ca-service-directory .ca-directory-head{flex-direction:column;align-items:flex-start;gap:14px}
}
@media (max-width:760px){
  .ca-content-page .ca-detail-hero{padding:44px 0 40px}
  .ca-content-page .ca-detail-hero .display{max-width:none;font-size:clamp(2.1rem,8.6vw,3rem);overflow-wrap:anywhere}
  .ca-content-page .ca-detail-hero--service{padding:0}
  .ca-service-hero-grid{grid-template-columns:1fr;min-height:0}
  .ca-service-hero-grid > div{order:2;padding:36px 0 44px}
  .ca-service-hero-grid img{position:relative;order:1;width:calc(100% + 2 * var(--gut));margin:0 calc(-1 * var(--gut));height:250px}
  .ca-content-page .ca-detail-hero--service::after{display:none}
  .ca-content-page .ca-article{font-size:16.5px}
  .ca-content-page .ca-lead img{aspect-ratio:16/10}
  .ca-content-page .ca-review-grid,.ca-content-page .ca-pairs,.ca-content-page .ca-tiers,.ca-content-page .ca-bundles{grid-template-columns:1fr}
  .ca-content-page .ca-article figure:has(> img + img),.ca-content-page .ca-article .ca-source-gallery{gap:6px}
  .ca-service-directory .ca-directory-grid{grid-template-columns:1fr;gap:20px}
  .ca-client-reviews .ca-review-triptych{grid-template-columns:1fr}
  .ca-client-reviews .ca-review-foot{flex-direction:column;align-items:flex-start}
}
@media (max-width:600px){
  .ca-content-page .ca-blog-list{grid-template-columns:1fr;gap:34px}
  .ca-content-page .ca-more-information ul{columns:1}
  .ca-content-page .ca-detail-layout{padding-top:30px}
  .ca-content-page .ca-consult{padding:28px 22px}
}
.ca-content-page .ca-tier__price small{display:block;margin:0 0 6px}
.ca-content-page .ca-tiers + *{margin-top:0}
.ca-content-page .ca-article a.ca-tier__book--inline{display:inline-flex;padding:0 24px;margin:4px 0 24px;color:#fff;text-decoration:none}
.ca-content-page .ca-article .ca-tier ul{margin:18px 0 16px}
/* RepeatMD store entry on /memberships/ (tools/shop-links.py) */
.ca-content-page .ca-shopbar{display:flex;align-items:center;justify-content:space-between;gap:16px 28px;flex-wrap:wrap;margin:1.5em 0 0;padding:22px 26px;background:var(--ca-navy);color:#fff;border-radius:2px}
.ca-content-page .ca-shopbar__k{margin:0 0 6px;font:700 11px/1.3 var(--ca-sans);letter-spacing:.15em;text-transform:uppercase;color:rgba(255,255,255,.7)}
.ca-content-page .ca-shopbar__t{margin:0;font-size:15px;line-height:1.5;color:#fff;max-width:44ch}
.ca-content-page .ca-article .ca-shopbar a.ca-tier__book{margin:0;padding:0 22px;background:#fff;color:var(--ca-navy)}
.ca-content-page .ca-article .ca-shopbar a.ca-tier__book:hover{background:var(--ca-cream);color:var(--ca-navy)}
.ca-content-page .ca-shopbar + .ca-tiers{margin-top:20px}
/* Tier buttons share one baseline: fine print + button sit at the card bottom.
   .ca-article p (margin:0 0 1.35em) otherwise beats .ca-tier__fine's auto top margin. */
.ca-content-page .ca-article .ca-tier > .ca-tier__fine{margin:auto 0 0}
.ca-content-page .ca-article .ca-tier:not(:has(> .ca-tier__fine)) > .ca-tier__book{margin-top:auto}
.ca-content-page .ca-article .ca-tier > .ca-tier__fine + .ca-tier__book{margin-top:20px}
h1, h2, h3 { text-wrap: balance; }
.ca-content-page .ca-shopbar__acts{display:flex;gap:10px;flex-wrap:wrap}
.ca-content-page .ca-article .ca-shopbar a.ca-shopbar__alt{background:transparent;color:#fff;box-shadow:inset 0 0 0 1px rgba(255,255,255,.55)}
.ca-content-page .ca-article .ca-shopbar a.ca-shopbar__alt:hover{background:rgba(255,255,255,.12);color:#fff}
