/*
 * Lewis Pain homepage sections (hero, reviews and recognition, conditions, care team,
 * getting started, Hormones & Weight Loss, visit). Ported from mockups/homepage-v5/assets/site.css,
 * the design Josh accepted on 2026-10-15, with every selector scoped to .lp-home so nothing
 * reaches the header, footer or interior templates. Header, menu, footer, booking chooser and
 * phone action bar come from site.css. Loaded only on the front page and Full width pages.
 *
 * Regenerate after a homepage design change rather than editing by hand where possible.
 * 0.3.0 (approved homepage comment, staging review handoff 2026-10-23): one neutral soft-white
 * light surface instead of the cream and mint bands, white cards with fine green-gray borders
 * and softer shadows, outlined light secondary buttons on the dark hero and closing card, the
 * treatment list to the right of the condition cards, and tighter phone spacing.
 */
.lp-home {--ink:#13201c; --ink-2:#34443f; --muted:#56655f; --paper:#fbfbf9; --bone:#f3f1eb; --mist:#eef1ee; --white:#fff;
  --spruce:#1a3d36; --spruce-2:#132f2a; --night:#10251f; --slate:#3a6a60;
  --teal:#0f8c75; --teal-deep:#0b6f5d; --mint:#d1e6e1; --line:#e1e8e4; --line-2:#c9d3ce;
  --shadow-1:0 1px 2px rgba(16,37,31,.04),0 4px 14px -8px rgba(16,37,31,.12);
  --shadow-2:0 2px 6px rgba(16,37,31,.05),0 18px 36px -22px rgba(16,37,31,.26);
  --card-line:#e2e8e4;
  --deep:radial-gradient(110% 130% at 100% 0%,#2c5649 0%,rgba(44,86,73,0) 58%),linear-gradient(115deg,#25493f 0%,#20433a 48%,#1b3b33 100%);
  --star:#c08a2e; --flag:#fff3d1; --flag-ink:#554010;
  --wrap:1240px; --gutter:clamp(20px,4vw,40px); --space:clamp(44px,6.5vw,88px); font-size:17px; line-height:1.6; color:var(--ink); }
.lp-home button { -webkit-tap-highlight-color:transparent; }
.lp-home button { font:inherit; cursor:pointer; }
.lp-home .hero :focus-visible, .lp-home .team :focus-visible, .lp-home footer :focus-visible, .lp-home .close-card :focus-visible { outline-color:var(--mint); }
.lp-home h1, .lp-home h2, .lp-home h3, .lp-home p, .lp-home figure, .lp-home blockquote { margin:0; }
.lp-home h1, .lp-home h2, .lp-home h3 { line-height:1.1; letter-spacing:-.03em; text-wrap:balance; }
.lp-home h1 { font-size:clamp(42px,5vw,66px); font-weight:650; }
.lp-home h2 { font-size:clamp(30px,3.4vw,44px); font-weight:650; color:var(--spruce); }
.lp-home h3 { font-size:20px; font-weight:650; color:var(--spruce); letter-spacing:-.015em; }
.lp-home img { display:block; max-width:100%; height:auto; }
.lp-home svg { width:20px; height:20px; flex:none; }
.lp-home ul, .lp-home ol { list-style:none; margin:0; padding:0; }
.lp-home .wrap { width:100%; max-width:var(--wrap); margin-inline:auto; padding-inline:var(--gutter); }
.lp-home .section { padding-block:var(--space); }
.lp-home .eyebrow { display:flex; align-items:center; gap:12px; margin-bottom:14px; font-size:12px; font-weight:650; letter-spacing:.16em; text-transform:uppercase; color:var(--teal-deep); }
.lp-home .eyebrow::before { content:""; flex:none; width:24px; height:1.5px; background:currentColor; opacity:.7; }
.lp-home .lead { max-width:56ch; color:var(--ink-2); font-size:18px; }
.lp-home .text-link { display:inline-flex; align-items:center; gap:8px; font-weight:600; }
.lp-home .text-link svg { width:17px; height:17px; transition:transform .15s; }
.lp-home .text-link:hover svg { transform:translateX(3px); }
.lp-home .text-button { padding:4px 0; border:0; background:none; color:var(--teal-deep); text-decoration:underline; text-underline-offset:4px; font-weight:600; }
.lp-home .actions { display:flex; flex-wrap:wrap; gap:12px; align-items:center; }
.lp-home .btn { display:inline-flex; align-items:center; justify-content:center; gap:9px; min-height:52px; padding:13px 24px; border:1px solid transparent; border-radius:2px; font-size:15.5px; font-weight:650; letter-spacing:.005em; line-height:1.3; text-decoration:none; background:var(--teal-deep); color:#fff; box-shadow:0 8px 18px -14px rgba(11,111,93,.8); transition:background .15s,border-color .15s,color .15s,box-shadow .15s,transform .15s; }
.lp-home .btn:hover { background:var(--spruce); text-decoration:none; transform:translateY(-1px); }
.lp-home .btn-outline { color:var(--spruce); border-color:rgba(26,61,54,.38); background:transparent; box-shadow:none; }
.lp-home .btn-outline:hover { background:#fff; border-color:var(--spruce); }
.lp-home .btn-light { background:#eff5f4; color:var(--spruce); box-shadow:0 14px 28px -18px rgba(0,0,0,.7); }
.lp-home .btn-light:hover { background:#fff; }
.lp-home .hero { background:var(--deep); border-top:1px solid #2c5248; color:#fff; }
.lp-home .hero-grid { display:grid; grid-template-columns:1.12fr 1fr; gap:clamp(32px,5vw,72px); align-items:center; padding-block:clamp(44px,5.5vw,76px); }
.lp-home .hero .eyebrow { color:var(--mint); }
.lp-home .hero h1 { font-size:clamp(40px,4.3vw,60px); letter-spacing:-.035em; }
.lp-home .hero .lead { margin-top:24px; color:#e9f0ed; max-width:47ch; font-size:18px; line-height:1.65; }
.lp-home .hero .actions { margin-top:32px; }
/* On the dark hero: soft-white primary, outlined light secondary (Call). */
.lp-home .hero .btn-outline { background:transparent; border-color:rgba(222,234,229,.62); color:#fff; box-shadow:none; }
.lp-home .hero .btn-outline:hover { background:rgba(255,255,255,.1); border-color:#fff; }
.lp-home .hero .quiet { margin-top:16px; font-size:15px; color:var(--mint); }
.lp-home .hero .quiet button { color:#fff; font-size:15px; font-weight:500; }
.lp-home .hero-photo { box-shadow:0 26px 60px -30px #0b1d18; }
.lp-home .hero-photo img { width:100%; aspect-ratio:5/4; object-fit:cover; }
.lp-home .caption { display:grid; grid-template-columns:1fr 1fr; padding:14px 10px; background:var(--night); font-size:14px; font-weight:600; text-align:center; line-height:1.4; }
.lp-home .caption span { display:block; color:#bdcfc9; font-size:12px; font-weight:400; }
.lp-home .caption > div + div { border-left:1px solid #2f4a43; }
.lp-home .proof { background:var(--paper); border-bottom:1px solid var(--line); padding-block:clamp(24px,3.5vw,44px); }
.lp-home .proof-panel { display:grid; grid-template-columns:2fr 1fr; background:#fff; border:1px solid var(--card-line); border-radius:2px; box-shadow:var(--shadow-1); }
.lp-home .reviews { padding:clamp(22px,2.6vw,32px); min-width:0; }
.lp-home .awards { padding:clamp(22px,2.6vw,32px); border-left:1px solid var(--line); background:linear-gradient(180deg,#fff,#f8faf8); }
.lp-home .band-head { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:10px 24px; margin-bottom:20px; }
.lp-home .band-head h2 { font-size:22px; letter-spacing:-.02em; }
.lp-home .band-head .eyebrow { margin-bottom:4px; }
.lp-home .rating { display:flex; align-items:center; gap:12px; }
.lp-home .rating-score { font-size:34px; font-weight:700; color:var(--spruce); letter-spacing:-.03em; line-height:1; }
.lp-home .stars { display:flex; gap:2px; color:var(--star); }
.lp-home .stars svg { width:17px; height:17px; }
.lp-home .rating small { display:block; color:var(--muted); font-size:13px; line-height:1.35; }
.lp-home .review-cards { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px; }
.lp-home .review-card { display:flex; flex-direction:column; gap:12px; padding:18px; background:var(--paper); border:1px solid var(--line); }
.lp-home .review-card .stars svg { width:14px; height:14px; }
.lp-home .review-card p { color:var(--muted); font-size:14.5px; line-height:1.55; flex:1; }
.lp-home .review-card footer { display:flex; align-items:center; gap:10px; font-size:13px; color:var(--muted); background:none; padding:0; }
.lp-home .avatar { display:grid; place-items:center; width:30px; height:30px; border-radius:50%; background:var(--mint); color:var(--spruce); font-size:13px; font-weight:700; }
.lp-home .review-card footer b { display:block; color:var(--ink); font-weight:600; }
.lp-home .placeholder-copy { font-style:italic; }
.lp-home .reviews .band-head { margin-bottom:12px; }
.lp-home .band-links { display:flex; flex-wrap:wrap; gap:8px 26px; margin-top:14px; font-size:15px; }
.lp-home .band-links .quiet-link { color:var(--muted); }
.lp-home .award-list { display:grid; gap:10px; }
.lp-home .award { display:grid; grid-template-columns:52px 1fr; gap:14px; align-items:center; min-height:76px; padding:12px 14px; border-radius:2px; background:#f6f9f7; }
.lp-home .award .award-mark { display:grid; place-items:center; width:52px; height:52px; border-radius:50%; color:var(--teal-deep); background:#e3efea; }
.lp-home .award-mark svg { width:26px; height:26px; }
.lp-home .award strong { display:block; color:var(--spruce); font-size:15px; line-height:1.3; }
.lp-home .award div > span { display:block; color:var(--muted); font-size:13px; line-height:1.4; }
.lp-home .conditions-layout { display:grid; grid-template-columns:minmax(0,2fr) minmax(0,.9fr); grid-template-areas:"intro intro" "cards treat"; gap:36px clamp(24px,3vw,40px); }
.lp-home .conditions-intro { grid-area:intro; max-width:660px; }
.lp-home .conditions-intro .lead { margin-top:14px; font-size:17px; }
.lp-home .area-wrap { grid-area:cards; display:flex; flex-direction:column; }
.lp-home .all-conditions { margin-top:16px; }
.lp-home .area-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px; }
.lp-home .area { position:relative; display:flex; flex-direction:column; min-height:100%; padding:22px 20px 20px; background:#fff; border:1px solid var(--card-line); border-radius:2px; box-shadow:var(--shadow-1); color:var(--ink); text-decoration:none; transition:box-shadow .15s,transform .15s; }
.lp-home .area:hover { box-shadow:var(--shadow-2); transform:translateY(-2px); }
.lp-home .area-icon { display:grid; place-items:center; width:46px; height:46px; margin-bottom:16px; border-radius:50%; background:#eef2f0; color:var(--teal-deep); }
.lp-home .area-icon svg { width:26px; height:26px; }
.lp-home .area h3 { font-size:19px; }
.lp-home .area ul { margin-top:10px; color:var(--muted); font-size:14.5px; line-height:1.5; }
.lp-home .area li + li { margin-top:3px; }
.lp-home .area .go { display:flex; align-items:center; gap:6px; margin-top:auto; padding-top:16px; color:var(--teal-deep); font-size:14px; font-weight:600; }
.lp-home .area .go svg { width:16px; height:16px; }
.lp-home .area:hover .go { text-decoration:underline; text-underline-offset:4px; }
/* The treatment list is secondary to the condition cards: a plain panel beside them. */
.lp-home .treatments { grid-area:treat; display:flex; flex-direction:column; padding:24px 22px 20px; background:#fff; border:1px solid var(--card-line); border-radius:2px; }
.lp-home .treatments .text-link { margin-top:auto; align-self:flex-start; }
.lp-home .treatments h3 { font-size:17px; letter-spacing:0; }
.lp-home .treatments p { margin:4px 0 0; color:var(--muted); font-size:14.5px; line-height:1.5; }
.lp-home .treat-list { list-style:none; margin:12px 0 16px; padding:0; border-top:1px solid var(--line-2); }
.lp-home .treat-list a { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:10px 2px; border-bottom:1px solid var(--line-2); color:var(--ink); font-size:15px; font-weight:500; text-decoration:none; }
.lp-home .treat-list a svg { flex:none; width:15px; height:15px; color:var(--teal-deep); opacity:.55; transition:opacity .15s, transform .15s; }
.lp-home .treat-list a:hover { color:var(--teal-deep); }
.lp-home .treat-list a:hover svg { opacity:1; transform:translateX(2px); }

.lp-home .team { background:radial-gradient(90% 120% at 0% 0%,#24493f 0%,rgba(36,73,63,0) 60%),var(--spruce); color:#e3ece8; }
.lp-home .team h2 { color:#fff; }
.lp-home .team .eyebrow { color:var(--mint); }
.lp-home .team-head { display:flex; flex-wrap:wrap; justify-content:space-between; align-items:end; gap:16px 48px; margin-bottom:32px; }
.lp-home .team-head .lead { margin-top:0; max-width:44ch; }
.lp-home .team .lead { color:#d5e2dd; margin-top:16px; font-size:17px; }
.lp-home .team-cards { display:grid; grid-template-columns:1fr 1fr; gap:18px; }
.lp-home .person { display:grid; grid-template-columns:190px 1fr; background:rgba(255,255,255,.055); border-radius:2px; box-shadow:0 24px 50px -32px rgba(0,0,0,.7); }
.lp-home .person img { width:190px; height:100%; min-height:238px; object-fit:cover; }
.lp-home .person > div { display:flex; flex-direction:column; padding:26px 28px; }
.lp-home .person h3 { color:#fff; font-size:23px; }
.lp-home .person .role { color:var(--mint); font-size:14px; font-weight:600; margin-top:4px; }
.lp-home .person .bio { margin:12px 0 14px; color:#d5e2dd; font-size:15.5px; line-height:1.6; }
.lp-home .person a { margin-top:auto; color:#fff; font-size:15px; }
.lp-home .start { background:var(--paper); }
.lp-home .start-head { display:flex; flex-wrap:wrap; justify-content:space-between; align-items:end; gap:18px 40px; margin-bottom:30px; }
.lp-home .start-head .lead { margin-top:12px; font-size:17px; }
.lp-home .start-grid { display:grid; grid-template-columns:1.15fr 1fr; gap:18px; }
.lp-home .start-card { background:#fff; border:1px solid var(--card-line); border-radius:2px; box-shadow:var(--shadow-1); padding:clamp(22px,2.6vw,32px); }
.lp-home .start-card > h3 { font-size:18px; margin-bottom:18px; }
.lp-home .steps { counter-reset:step; display:grid; gap:18px; }
.lp-home .steps li { position:relative; padding-left:50px; }
.lp-home .steps li::before { counter-increment:step; content:counter(step); position:absolute; left:0; top:0; display:grid; place-items:center; width:32px; height:32px; background:var(--spruce); color:#fff; border-radius:50%; font-size:14px; font-weight:700; }
.lp-home .steps li:not(:last-child)::after { content:""; position:absolute; left:15.5px; top:38px; bottom:-14px; width:1px; background:var(--line-2); }
.lp-home .steps h4 { margin:3px 0 4px; font-size:16.5px; color:var(--spruce); }
.lp-home .steps p { color:var(--muted); font-size:15px; line-height:1.55; }
.lp-home .faq details { border-bottom:1px solid var(--line); }
.lp-home .faq details:first-child { border-top:1px solid var(--line); }
.lp-home .faq summary { position:relative; list-style:none; cursor:pointer; padding:14px 34px 14px 0; color:var(--spruce); font-size:16px; font-weight:620; line-height:1.4; }
.lp-home .faq summary::-webkit-details-marker { display:none; }
.lp-home .faq summary::after { content:""; position:absolute; top:50%; right:6px; width:9px; height:9px; margin-top:-6px; border-right:1.75px solid var(--teal-deep); border-bottom:1.75px solid var(--teal-deep); transform:rotate(45deg); transition:transform .2s,margin-top .2s; }
.lp-home .faq details[open] summary::after { margin-top:-1px; transform:rotate(-135deg); }
.lp-home .faq summary:hover { color:var(--teal-deep); }
.lp-home .faq details p { padding-bottom:14px; color:var(--muted); font-size:15px; }
.lp-home .resources { display:grid; grid-template-columns:1fr 1fr; gap:10px; margin-top:20px; }
.lp-home .resources .btn { min-height:46px; }
.lp-home .wellness { background:var(--paper); border-top:1px solid var(--line); }
.lp-home .wellness-layout { display:grid; grid-template-columns:minmax(0,.82fr) minmax(0,2fr); gap:clamp(28px,4vw,56px); align-items:center; }
.lp-home .wellness .lead { margin-top:14px; font-size:17px; }
.lp-home .wellness-body { display:grid; grid-template-columns:1.25fr 1fr; gap:18px 36px; align-items:center; }
.lp-home .wellness-services { display:grid; gap:10px; }
.lp-home .wellness-services a { display:flex; justify-content:space-between; align-items:center; gap:12px; padding:14px 18px; background:#fff; border:1px solid var(--card-line); border-radius:2px; box-shadow:var(--shadow-1); color:var(--ink); text-decoration:none; transition:box-shadow .15s,transform .15s; }
.lp-home .wellness-services a:hover { box-shadow:var(--shadow-2); transform:translateY(-1px); }
.lp-home .wellness-services b { display:block; color:var(--spruce); font-size:17px; font-weight:650; }
.lp-home .wellness-services span { display:block; color:var(--muted); font-size:14px; line-height:1.4; }
.lp-home .wellness-services a svg { color:var(--teal-deep); width:18px; }
.lp-home .wellness-cta p { color:var(--muted); font-size:15.5px; margin-bottom:18px; }
.lp-home #visit { border-top:1px solid var(--line); }
.lp-home .visit-grid { display:grid; grid-template-columns:1.05fr 1fr 1fr; border:1px solid var(--card-line); border-radius:2px; background:#fff; box-shadow:var(--shadow-1); }
.lp-home .visit-photo { position:relative; min-height:100%; }
.lp-home .visit-photo img { width:100%; height:100%; min-height:340px; object-fit:cover; }
.lp-home .visit-info { padding:clamp(24px,2.8vw,36px); }
.lp-home .visit-info h2 { font-size:clamp(28px,2.6vw,34px); margin-bottom:20px; }
.lp-home .visit-info h3 { font-size:13px; letter-spacing:.1em; text-transform:uppercase; color:var(--muted); margin-bottom:6px; }
.lp-home address { font-style:normal; color:var(--ink); }
.lp-home .visit-info .text-link { font-size:15px; margin-top:6px; }
.lp-home .hours { border-collapse:collapse; width:100%; font-size:15px; margin-top:2px; }
.lp-home .hours th { text-align:left; font-weight:500; padding:4px 16px 4px 0; color:var(--ink); }
.lp-home .hours td { text-align:right; padding:4px 0; white-space:nowrap; color:var(--muted); }
.lp-home .hours tr + tr { border-top:1px solid var(--line); }
.lp-home .visit-info .block + .block { margin-top:22px; }
.lp-home .close-card { display:flex; flex-direction:column; justify-content:center; padding:clamp(26px,3vw,40px); background:var(--deep); color:#d7e4df; }
.lp-home .close-card .eyebrow { color:var(--mint); }
.lp-home .close-card h2 { color:#fff; font-size:clamp(28px,2.6vw,34px); }
.lp-home .close-card p { margin-top:14px; font-size:16px; }
.lp-home .close-card .actions { flex-direction:column; align-items:stretch; margin-top:24px; gap:10px; }
.lp-home .close-card .btn-outline { background:transparent; border-color:rgba(222,234,229,.62); color:#fff; box-shadow:none; }
.lp-home .close-card .btn-outline:hover { background:rgba(255,255,255,.1); border-color:#fff; }
@media (max-width:1180px) {
  .lp-home .conditions-layout, .lp-home .wellness-layout { grid-template-columns:1fr; }
  .lp-home .conditions-layout { grid-template-areas:"intro" "cards" "treat"; }
  .lp-home .treat-list { columns:2; column-gap:32px; }
  .lp-home .treat-list li { break-inside:avoid; }
  .lp-home .visit-grid { grid-template-columns:1fr 1fr; }
  .lp-home .visit-photo { grid-column:1/-1; }
  .lp-home .visit-photo img { min-height:0; height:300px; }
}
@media (max-width:860px) {
  .lp-home .hero-grid { grid-template-columns:1fr; }
  .lp-home .hero h1 { max-width:none; }
  .lp-home .hero-photo { max-width:620px; }
  .lp-home .proof-panel { grid-template-columns:1fr; }
  .lp-home .awards { border-left:0; border-top:1px solid var(--line); }
  .lp-home .award-list { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .lp-home .area-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .lp-home .team-cards { grid-template-columns:1fr; }
  .lp-home .start-grid { grid-template-columns:1fr; }
  .lp-home .wellness-body { grid-template-columns:1fr; }
}
@media (max-width:600px) {
  .lp-home .hero-grid { gap:28px; padding-block:32px 36px; }
  .lp-home #visit { padding-bottom:36px; }
  .lp-home .hero h1 { font-size:clamp(38px,11vw,46px); }
  .lp-home .hero .lead { margin-top:18px; font-size:16.5px; }
  .lp-home .hero .actions { display:grid; grid-template-columns:1fr; margin-top:26px; gap:10px; }
  .lp-home .caption { font-size:13px; padding:12px 6px; }
  .lp-home .caption span { font-size:11px; }
  .lp-home .proof { padding-block:20px 28px; }
  .lp-home .proof .wrap { padding-inline:12px; }
  .lp-home .reviews, .lp-home .awards { padding:20px 16px; }
  .lp-home .rating-score { font-size:30px; }
  .lp-home .review-cards { display:flex; overflow-x:auto; scroll-snap-type:x mandatory; gap:10px; margin-inline:-16px; padding-inline:16px; scrollbar-width:none; }
  .lp-home .review-card { flex:0 0 82%; scroll-snap-align:start; }
  .lp-home .award-list { grid-template-columns:1fr; }
  .lp-home .award { min-height:64px; }
  .lp-home .treatments { padding:20px 16px 18px; }
  .lp-home .area-grid { gap:10px; }
  .lp-home .area { padding:16px 14px; }
  .lp-home .area-icon { width:38px; height:38px; margin-bottom:12px; }
  .lp-home .area-icon svg { width:22px; height:22px; }
  .lp-home .area h3 { font-size:16.5px; }
  .lp-home .area ul { font-size:13.5px; }
  .lp-home .area .go { font-size:13px; padding-top:12px; }
  .lp-home .treat-list { columns:1; }
  .lp-home .person { grid-template-columns:112px 1fr; }
  .lp-home .person img { width:112px; min-height:170px; }
  .lp-home .person > div { padding:16px; }
  .lp-home .person h3 { font-size:19px; }
  .lp-home .person .bio { font-size:14.5px; }
  .lp-home .start-head { margin-bottom:22px; }
  .lp-home .start-head .btn, .lp-home .wellness-cta .btn { width:100%; }
  .lp-home .wellness-cta .actions, .lp-home .close-card .actions { display:grid; grid-template-columns:1fr; }
  .lp-home .wellness-services a { font-size:17px; }
  .lp-home .visit-grid { grid-template-columns:1fr; }
  .lp-home .visit-photo img { height:220px; }
  .lp-home .resources { grid-template-columns:1fr; }
}
@media (prefers-reduced-motion:reduce) {
  .lp-home .btn:hover, .lp-home .area:hover, .lp-home .wellness-services a:hover { transform:none; }
}
/* Theme integration: undo Blocksy heading and table defaults inside the homepage sections. */
.lp-home h1 { color:inherit; }
.lp-home :is(h1, h2, h3, h4) { text-decoration:none; }
.lp-home .hours, .lp-home .hours :is(th, td) { border:0; background:none; }
.lp-home .hours tr + tr { border-top:1px solid var(--line); }
