/* Lantana PPC landing page styles (loaded only on the Lantana PPC Landing Page template). */
:root {
  /* ===== BRAND TOKENS: edit these to re-skin the page ===== */
  --brand-dark:#223545;        /* dark blue: headings, hero/form/closing backgrounds, dark buttons */
  --brand-darker:#1a2936;      /* footer, trust-bar border */
  --dark-rgb:34,53,69;         /* --brand-dark as R,G,B for overlays and shadows */
  --brand-accent:#efa89a;      /* buttons / primary CTAs */
  --brand-accent-hover:#ea9584;
  --brand-light:#8cccf0;       /* light blue: icons, eyebrows on dark backgrounds */
  --brand-sage:#47756f;        /* eyebrows, checkmarks, callouts */

  --ink:var(--brand-dark);     /* heading text */
  --text:#4b5c6a;              /* body text */
  --text-muted:#627180;        /* secondary text */
  --line:#dde5e9;              /* borders / dividers */
  --tint:#f5f8fa;              /* light section background */
  --tint-blue:#eef7fc;         /* light blue section background */
  --tint-sage:#eef4f2;         /* light sage background */

  --font-heading:'Fraunces', Georgia, serif;
  --font-body:'Outfit', Arial, Helvetica, sans-serif;
  /* SVG icons (checkmarks, FAQ arrow) can't read variables: their colors are
     hard-coded as %23223545 (dark blue) and %2347756f (sage) further down. */
}
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; color:var(--ink); background:#fff; font-family:var(--font-body); line-height:1.5; }
.heading, .hero h1, .teaser h2, .form-card h3, .program-card h3, .treatment-item h3, .accreditation-card b { font-family:var(--font-heading); }
.form-card h3, .program-card h3, .treatment-item h3 { color:var(--ink); }
#callback .heading { margin:10px 0; }
a, a:visited { color:inherit; text-decoration:none; }
img { display:block; max-width:100%; }
button,input,select { font:inherit; }
.shell { width:min(100% - 32px, 1168px); margin:auto; }
.eyebrow { margin:0; color:var(--brand-sage); font-size:12px; font-weight:700; letter-spacing:.1em; text-transform:uppercase; }
.heading { margin:10px 0 0; color:var(--ink); font-size:clamp(34px,4vw,54px); font-weight:700; letter-spacing:-.015em; line-height:1.07; }
.copy { color:var(--text); font-size:15px; line-height:1.8; }
.btn { display:inline-flex; align-items:center; justify-content:center; gap:9px; border-radius:6px; padding:14px 20px; border:1px solid transparent; font-family:var(--font-body); font-size:16px; font-weight:700; transition:.2s; cursor:pointer; }
.btn:hover { transform:translateY(-1px); }
.btn-yellow { background:var(--brand-accent); color:var(--brand-dark); }
.btn-yellow:hover { background:var(--brand-accent-hover); }
.btn-blue:hover { background:var(--brand-darker); }
.btn-blue { background:var(--brand-dark); color:#fff; }
.btn-outline-dark { border-color:var(--brand-dark); color:var(--brand-dark); background:transparent; }
.btn-outline-light { border-color:rgba(255,255,255,.8); color:#fff; background:transparent; }
.site-header { min-height:70px; background:#fff; }
.site-header .shell { min-height:70px; display:flex; align-items:center; justify-content:space-between; gap:18px; }
.site-logo { width:138px; height:auto; }
.site-header a { display:inline-flex; align-items:center; }
.site-header .site-logo,
.site-header a picture,
.site-header a img { width:138px !important; height:auto !important; max-width:138px !important; display:block; }
.site-header a picture { line-height:0; }
.site-header a picture img { width:100% !important; }
.admissions { display:flex; align-items:center; gap:12px; }
.admissions small { color:var(--brand-dark); font-size:10px; font-weight:800; letter-spacing:.1em; text-transform:uppercase; }
.admissions a { display:flex; align-items:center; gap:7px; padding:9px 12px; border-radius:6px; background:var(--brand-accent); color:var(--brand-dark); font-size:14px; font-weight:800; }
.hero { position:relative; isolation:isolate; overflow:hidden; min-height:490px; color:#fff; background-color:var(--brand-dark); background-size:cover; background-position:center; }
.hero::before { content:""; position:absolute; inset:0; z-index:-1; background:rgba(var(--dark-rgb),.8); }
.hero .shell { min-height:490px; display:flex; align-items:center; padding:76px 0; }
.hero-content { width:min(100%,680px); }
.hero .eyebrow { color:var(--brand-light); }
.hero h1 { margin:18px 0 0; max-width:730px; font-size:clamp(42px,5.1vw,70px); font-weight:700; line-height:1.03; letter-spacing:-.015em; color:#fff; }
.hero-copy { max-width:610px; margin:20px 0 0; color:rgba(255,255,255,.88); font-size:16px; line-height:1.75; }
.hero-actions { display:flex; flex-wrap:wrap; gap:12px; margin-top:26px; }
.rating-pill { display:inline-flex; flex-wrap:wrap; align-items:center; gap:11px; margin-top:26px; padding:10px 16px; border:1px solid rgba(255,255,255,.35); border-radius:999px; background:rgba(255,255,255,.15); color:#fff; font-size:14px; font-weight:700; backdrop-filter:blur(8px); }
.rating-pill i { color:var(--brand-accent); }
.rating-pill span + span { border-left:1px solid rgba(255,255,255,.35); padding-left:11px; color:rgba(255,255,255,.85); }
.trust { background:var(--brand-dark); border-bottom:1px solid var(--brand-darker); color:rgba(255,255,255,.92); padding:0; }
.trust .shell { display:flex; flex-wrap:wrap; justify-content:center; align-items:center; row-gap:12px; padding:16px 0; font-size:12px; font-weight:700; }
.trust-item { display:flex; align-items:center; justify-content:center; gap:8px; padding:0 20px; text-align:center; }
.trust-item i { color:var(--brand-light); font-size:13px; }
section { padding:88px 0; }
.intro-grid { display:grid; grid-template-columns:1fr .92fr; align-items:start; gap:72px; }
.callout { max-width:330px; margin-top:36px; padding:16px 18px; border-left:4px solid var(--brand-sage); border-radius:7px; background:var(--tint-sage); }
.callout p { margin:0; color:var(--brand-sage); font-size:12px; font-weight:800; }
.callout a { display:flex; align-items:center; gap:8px; margin-top:3px; font-size:20px; font-weight:800; letter-spacing:-.03em; }
.callout small { display:block; margin-top:2px; color:var(--text-muted); }
.form-card { padding:30px; border-radius:16px; background:var(--brand-dark); box-shadow:0 14px 36px rgba(var(--dark-rgb),.11); }
.form-card h3 { margin:0; font-size:22px; letter-spacing:-.04em; color:#fff; }
.form-card > p { margin:8px 0 0; color:rgba(255,255,255,.82); font-size:14px; }
.form-grid { display:grid; grid-template-columns:1fr 1fr; gap:12px; margin-top:20px; }
.field { display:block; color:rgba(255,255,255,.9); font-size:12px; font-weight:700; }
.field input,.field select { width:100%; height:44px; margin-top:5px; padding:0 11px; border:1px solid var(--line); border-radius:3px; color:var(--brand-dark); background:#fff; }
.form-grid .submit { grid-column:1/-1; margin-top:4px; }
.form-note { grid-column:1/-1; margin:0; color:rgba(255,255,255,.72); font-size:12px; text-align:center; }
.form-card .btn.submit { background:var(--brand-accent); color:var(--ink); }
.teaser { padding:52px 0; background:var(--tint); border-block:1px solid var(--line); }
.teaser-grid { display:grid; grid-template-columns:.8fr 1.2fr; gap:32px; align-items:center; }
.teaser-grid.no-images { grid-template-columns:1fr; max-width:760px; }
.teaser h2 { margin:9px 0 0; font-size:clamp(28px,3.3vw,41px); letter-spacing:-.015em; line-height:1.08; color:var(--ink); }
.teaser .copy { margin:15px 0 0; }
.teaser-images { display:grid; grid-template-columns:1.18fr .82fr; gap:12px; }
.teaser-images img { width:100%; min-height:250px; height:100%; object-fit:cover; border-radius:8px; }
.accreditation { margin-top:36px; padding-top:28px; border-top:1px solid var(--line); text-align:center; }
.mini-heading { color:var(--brand-sage); font-size:12px; font-weight:800; letter-spacing:.1em; text-transform:uppercase; }
.accreditation-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:40px; width:min(100%,560px); margin:20px auto 0; }
.accreditation-card { min-height:84px; display:flex; align-items:center; gap:12px; padding:12px 16px; border-radius:8px; background:#fff; box-shadow:0 5px 15px rgba(var(--dark-rgb),.07); text-align:left; }
.accreditation-card img { height:50px !important; width:auto !important; object-fit:contain; }
.accreditation-card .icon-circle { flex:0 0 auto; }
.accreditation-card b { display:block; font-size:14px; }
.accreditation-card small { color:var(--text-muted); }
.programs { background:var(--tint-blue); text-align:center; }
.section-intro { max-width:760px; margin:auto; text-align:center; }
.section-intro .copy { margin:14px auto 0; max-width:700px; }
.cards { display:grid; grid-template-columns:repeat(3,1fr); gap:16px; margin-top:48px; text-align:left; }
.program-card { padding:28px; border:1px solid var(--line); border-radius:12px; background:#fff; }
.icon-circle { display:grid; place-items:center; width:44px; height:44px; border-radius:50%; background:var(--brand-light); color:var(--brand-dark); font-size:18px; }
.program-card h3 { margin:20px 0 0; font-size:18px; line-height:1.3; letter-spacing:-.035em; }
.program-card p { margin:12px 0 0; color:var(--text-muted); font-size:14px; line-height:1.7; }
.center-action { margin-top:40px; text-align:center; }
.insurance { text-align:center; background:#fff; }
.logo-grid { display:grid; grid-template-columns:repeat(6,1fr); align-items:center; gap:32px; margin-top:40px; }
.logo-grid div { display:flex; justify-content:center; align-items:center; height:60px; }
.logo-grid img { height:60px; width:auto; max-width:100%; object-fit:contain; }
.carrier-list { display:flex; flex-wrap:wrap; justify-content:center; gap:10px; max-width:820px; margin:36px auto 0; padding:0; list-style:none; }
.carrier-list li { padding:10px 16px; border:1px solid var(--line); border-radius:999px; background:var(--tint-blue); color:var(--ink); font-size:14px; font-weight:700; }
.insurance .copy { max-width:700px; margin:28px auto 0; }
.paired-actions { display:flex; justify-content:center; flex-wrap:wrap; gap:12px; margin-top:30px; }
.insurance-notice { margin:24px 0 0; color:var(--ink); font-family:var(--font-body); font-size:15px; font-weight:700; }
.treatment { background:var(--tint); }
.treatment-list { display:grid; grid-template-columns:1fr 1fr; column-gap:48px; margin-top:48px; text-align:left; }
.treatment-item { display:flex; gap:16px; padding:24px 0; border-bottom:1px solid var(--line); }
.treatment-item .icon-circle { flex:0 0 auto; width:28px; height:28px; margin-top:3px; font-size:13px; }
.treatment-item h3 { margin:0; font-size:18px; letter-spacing:-.03em; }
.treatment-item p { margin:8px 0 0; color:var(--text-muted); font-size:14px; line-height:1.65; }
.gallery { background:#fff; text-align:center; }
.gallery .envira-gallery-image,
.gallery .envira-gallery-wrap img { border-radius:8px !important; }
.gallery .envira-gallery-caption { display:none !important; }
.gallery-intro { display:grid; grid-template-columns:1.3fr .9fr; gap:44px; align-items:center; text-align:left; }
.gallery-intro .heading { margin-top:10px; }
.gallery-intro .copy { margin-top:16px; }
.amenities-box { background:var(--tint-blue); border:1px solid var(--line); border-radius:14px; padding:28px 30px; }
.amenities-heading { margin:0 0 16px; font-family:var(--font-heading); color:var(--ink); font-size:20px; letter-spacing:-.015em; }
.amenities-list ul { list-style:none; margin:0; padding:0; display:grid; gap:13px; }
.amenities-list li { position:relative; padding-left:34px; color:var(--text); font-size:15px; line-height:1.5; }
.amenities-list li::before { content:""; position:absolute; left:0; top:0; width:21px; height:21px; background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='21' height='21' viewBox='0 0 24 24' fill='none'%3E%3Crect x='2' y='2' width='20' height='20' rx='5' fill='%23223545'/%3E%3Cpath d='M7 12.5l3.2 3.2L17 8.5' stroke='%23ffffff' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E"); background-repeat:no-repeat; background-position:center; background-size:contain; }
.faq { background:var(--tint-blue); text-align:center; }
.faq-list { max-width:880px; margin:40px auto 0; border-top:1px solid var(--line); text-align:left; }
.faq-list details { border-bottom:1px solid var(--line); }
.faq-list summary { position:relative; list-style:none; padding:20px 34px 20px 0; color:var(--ink); font-size:14px; font-weight:800; cursor:pointer; }
.faq-list summary::-webkit-details-marker { display:none; }
.faq-list summary::after { content:""; position:absolute; right:2px; top:0; bottom:0; margin:auto 0; width:14px; height:14px; background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%2347756f' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E"); background-repeat:no-repeat; background-position:center; transition:transform .2s; }
.faq-list details[open] summary::after { transform:rotate(180deg); }
.faq-list p { margin:0; padding:0 24px 20px 0; color:var(--text-muted); font-size:14px; line-height:1.75; }
.closing { position:relative; isolation:isolate; overflow:hidden; color:#fff; background-color:var(--brand-dark); background-size:cover; background-position:center; text-align:center; }
.closing::before { content:""; position:absolute; inset:0; z-index:-1; background:rgba(var(--dark-rgb),.8); }
.closing .heading { color:#fff; }
.closing .eyebrow { color:var(--brand-light); }
.closing .copy { max-width:680px; margin:18px auto 0; color:rgba(255,255,255,.85); }
.closing .hero-actions { justify-content:center; }
.closing small { display:block; margin-top:18px; color:rgba(255,255,255,.75); font-weight:700; }
footer { padding:36px 0; background:var(--brand-darker); color:rgba(255,255,255,.75); }
footer .shell { display:flex; align-items:center; justify-content:space-between; gap:20px; }
footer img { height:40px; width:auto; object-fit:contain; }
footer nav { display:flex; gap:24px; align-items:center; font-size:12px; }
footer nav a:last-child { color:var(--brand-accent); font-weight:800; }
.mobile-call { position:fixed; z-index:20; right:0; bottom:0; left:0; display:none; padding:12px; border-top:1px solid var(--line); background:rgba(255,255,255,.95); box-shadow:0 -8px 24px rgba(var(--dark-rgb),.16); transform:translateY(110%); transition:.2s; }
.mobile-call.is-visible { transform:translateY(0); }
.mobile-call .btn { display:flex; width:100%; font-size:16px; }

/* ACF WYSIWYG normalization + checklist */
.wysiwyg > :first-child { margin-top:0; }
.wysiwyg > :last-child { margin-bottom:0; }
.wysiwyg p { margin:0 0 12px; }
.wysiwyg-checklist ul { display:grid; gap:12px; padding:0; margin:28px 0 0; list-style:none; color:var(--text); font-size:14px; }
.wysiwyg-checklist li { position:relative; padding-left:30px; line-height:1.5; }
.wysiwyg-checklist li::before { content:""; position:absolute; left:0; top:3px; width:18px; height:18px; background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 24 24' fill='none' stroke='%2347756f' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'/%3E%3C/svg%3E"); background-repeat:no-repeat; background-position:center; background-size:contain; }

/* Body copy: Outfit @ 16px */
.copy, .hero-copy, .program-card p, .treatment-item p, .form-card > p, .faq-list summary, .faq-list p, .wysiwyg-checklist ul { font-family:var(--font-body); font-size:16px; }
.eyebrow, .mini-heading,
.copy, .copy p, .hero-copy, .hero-copy p, .wysiwyg p, .wysiwyg li,
.callout p, .callout small, .callout a, .amenities-list li,
.rating-pill, .rating-pill span, .trust-item,
footer, footer a { font-family:var(--font-body) !important; }

/* Gravity Forms cleanup (scoped to the LP form card) */
.form-card .gform_wrapper .gfield_required { display:none !important; }
.form-card .gform_wrapper .gfield_label,
.form-card .gform_wrapper .gform-field-label { font-family:var(--font-body); font-size:13px !important; font-weight:700; color:#fff !important; margin-bottom:4px; }
.form-card .gform_wrapper .gform-field-label--type-sub,
.form-card .gform_wrapper .ginput_complex label,
.form-card .gform_wrapper .gfield_description { font-size:11px !important; font-weight:600 !important; color:rgba(255,255,255,.75) !important; }
.form-card .gform_wrapper .gfield_description { padding-top:5px !important; }
.form-card .gform_wrapper input,
.form-card .gform_wrapper select,
.form-card .gform_wrapper textarea { font-family:var(--font-body); font-size:14px !important; background:#fff !important; color:var(--brand-dark) !important; }
.form-card .gform_wrapper .gform_footer,
.form-card .gform_wrapper .gform-footer { display:flex !important; justify-content:center !important; }
.form-card .gform_wrapper .gform_footer input[type="submit"],
.form-card .gform_wrapper .gform_footer button,
.form-card .gform_wrapper .gform_button {
  background:var(--brand-accent) !important; color:var(--ink) !important; border:1px solid transparent !important;
  border-radius:6px !important; padding:14px 24px !important; width:auto !important;
  font-family:var(--font-body) !important; font-size:16px !important; font-weight:700 !important;
  cursor:pointer; transition:.2s;
}
.form-card .gform_wrapper .gform_footer input[type="submit"]:hover,
.form-card .gform_wrapper .gform_footer button:hover { transform:translateY(-1px); }

@media (min-width:700px) { .hero::before { background:linear-gradient(to right,rgba(var(--dark-rgb),.88) 0%,rgba(var(--dark-rgb),.58) 55%,rgba(var(--dark-rgb),.18) 100%); } }
@media (max-width:900px) { .cards { grid-template-columns:repeat(2,1fr); } .logo-grid { grid-template-columns:repeat(4,1fr); } .teaser-grid,.intro-grid { grid-template-columns:1fr; } .gallery-intro { grid-template-columns:1fr; gap:28px; } }
@media (max-width:640px) {
  body { padding-bottom:76px; }
  .admissions small { display:none; }
  .hero { min-height:600px; background-position:60% center; }
  .hero .shell { padding:56px 0; align-items:flex-start; }
  .hero h1 { font-size:42px; }
  .hero-copy { font-size:15px; }
  .hero-actions,.paired-actions { flex-direction:column; }
  .hero-actions .btn,.paired-actions .btn { width:100%; }
  .rating-pill { justify-content:center; text-align:center; gap:0; }
  .rating-pill span + span { border-left:0; padding-left:0; }
  .trust .shell { padding:14px 0; }
  .trust-item { padding:0 16px; }
  section { padding:72px 0; }
  .form-card { padding:24px; }
  .form-grid { gap:10px; }
  .teaser-images { grid-template-columns:1fr 1fr; }
  .teaser-images img { height:150px; min-height:150px; }
  .accreditation-grid { grid-template-columns:1fr; gap:14px; }
  .accreditation-card { width:85%; justify-self:center; }
  .cards,.treatment-list { grid-template-columns:1fr; }
  .logo-grid { grid-template-columns:repeat(2,1fr); gap:22px; }
  footer .shell { flex-direction:column; }
  .amenities-box { padding:20px; }
  .mobile-call { display:block; }
}