@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Playfair+Display:ital,wght@0,400;0,500;0,600;1,400;1,500&display=swap');
:root{--cream:#F0F5FF;--paper:#FFFFFF;--sage:#B7CDF2;--green:#183F78;--dark:#183F78;--muted:#526B91;--line:#D7E3F7;--gold:#527EBB}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--cream);color:var(--dark);font:16px/1.7 'DM Sans',Arial,sans-serif}a{color:inherit}img{max-width:100%;display:block}.container{width:min(1160px,calc(100% - 48px));margin:auto}.skip{position:absolute;left:-9999px}.skip:focus{left:10px;top:10px;background:white;padding:10px;z-index:99}.site-header{background:var(--paper);border-bottom:1px solid var(--line)}.header-inner{display:flex;align-items:center;justify-content:space-between;gap:22px;min-height:92px}.brand{display:flex;align-items:center;gap:11px;text-decoration:none;line-height:1.15;flex-shrink:0}.brand-mark{font-size:35px;color:#527EBB}.brand strong{display:block;font:600 26px 'Playfair Display',Georgia,serif}.brand small{display:block;font-size:9px;letter-spacing:2.5px;margin-top:5px}.nav{display:flex;align-items:center;gap:22px}.nav a{text-decoration:none;font-size:13px;font-weight:600;white-space:nowrap}.nav a:hover,.nav a[aria-current]{color:#527EBB}.header-call{background:var(--green);color:white;padding:11px 17px;border-radius:3px;text-decoration:none;font-size:12px;font-weight:700;white-space:nowrap}.header-call:hover,.btn.primary:hover{background:#315F9E}.hero{background:linear-gradient(115deg,#E5EEFF 0%,#F0F5FF 70%);overflow:hidden}.hero-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:75px;align-items:center;padding:80px 0}.eyebrow{font-size:11px;font-weight:700;letter-spacing:2.5px;color:#527EBB;margin:0 0 18px}h1,h2{font-family:'Playfair Display',Georgia,serif;font-weight:400;line-height:1.17;letter-spacing:-.8px}h1{font-size:clamp(44px,5.2vw,74px);margin:0 0 25px}h1 em,h2 em{color:#527EBB;font-weight:400}h2{font-size:clamp(34px,3.8vw,49px);margin:0 0 25px}.lead{font-size:18px;line-height:1.8;max-width:520px;color:#405A81}.actions{display:flex;flex-wrap:wrap;gap:12px;margin:30px 0 15px}.btn{display:inline-block;padding:14px 21px;text-decoration:none;font-weight:700;font-size:13px;border-radius:3px}.primary{background:var(--green);color:white}.secondary{border:1px solid #527EBB;color:var(--green)}.secondary:hover{background:#E4EDFF}.hero-note{font-size:12px;color:var(--muted)}.hero-visual{height:520px;background:linear-gradient(145deg,#B7CDF2,#E0EAFB);position:relative;overflow:hidden;border-radius:180px 180px 8px 8px}.hero-visual img{width:100%;height:100%;object-fit:cover;object-position:center top}.visual-caption{position:absolute;bottom:24px;left:24px;right:24px;background:rgba(255,254,250,.94);padding:19px 24px}.visual-caption span{display:block;color:#527EBB;font-size:11px;letter-spacing:2px;text-transform:uppercase}.visual-caption strong{font:500 20px 'Playfair Display',Georgia,serif}.section{padding:95px 0}.intro-grid{display:grid;grid-template-columns:1fr 1fr;gap:110px}.intro-grid p:not(.eyebrow),.feature-content p{color:#405A81}.text-link{display:inline-block;margin-top:12px;font-weight:700;text-decoration:none;border-bottom:1px solid var(--gold);padding-bottom:3px;color:var(--green)}.feature{background:#E8F0FF}.feature-grid{display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:center}.feature-image{height:420px;background:linear-gradient(135deg,#B7CDF2,#DFE9FA);overflow:hidden}.feature-image img{width:100%;height:100%;object-fit:cover}.feature-content{max-width:450px}.schedule{text-align:center;background:var(--paper)}.schedule-lead{color:var(--muted);max-width:560px;margin:0 auto 38px}.contact-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;text-align:left}.contact-card{display:flex;flex-direction:column;gap:7px;min-height:260px;padding:30px;background:#F0F5FF;border:1px solid var(--line);text-decoration:none;transition:transform .2s,border-color .2s}.contact-card:hover{transform:translateY(-3px);border-color:#527EBB}.contact-icon{font-size:24px;color:#527EBB}.contact-card strong{font:500 28px 'Playfair Display',Georgia,serif}.contact-card span:not(.contact-icon){font-weight:600}.contact-card small{font-size:13px;color:var(--muted)}.contact-card b{margin-top:auto;color:var(--green);font-size:13px}.email-address{overflow-wrap:anywhere}.more{background:#E8F0FF}.link-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:15px}.link-grid a{padding:25px 30px;background:var(--paper);border:1px solid var(--line);text-decoration:none;display:flex;justify-content:space-between;gap:15px;align-items:center}.link-grid a:hover{border-color:#527EBB}.link-grid strong{font:500 22px 'Playfair Display',Georgia,serif}.link-grid span{font-size:12px;color:var(--muted);text-align:right}.narrow{max-width:850px}.policies{background:var(--paper)}details{border-top:1px solid var(--line);padding:19px 0}details:last-child{border-bottom:1px solid var(--line)}summary{cursor:pointer;font-weight:700;list-style-position:outside;padding-left:6px}.policy-body{padding:6px 20px;color:#405A81}footer{background:#183F78;color:#FFFFFF;padding:65px 0 22px}.footer-grid{display:grid;grid-template-columns:2fr 1fr 1.2fr;gap:45px}.footer-brand .brand-mark{color:#B7CDF2}.footer-grid p{font-size:13px;color:#E1EAFA}.footer-grid a{text-decoration:none}.footer-grid a:hover{text-decoration:underline}.footer-grid>div>strong{font-size:13px;text-transform:uppercase;letter-spacing:1.5px}.footer-bottom{border-top:1px solid #527EBB;margin-top:50px;padding-top:22px;font-size:12px;color:#D8E6FA}.image-missing:before{content:'Photo will appear here when the existing Images folder is included';display:grid;place-items:center;text-align:center;height:100%;padding:30px;color:#405A81;font-size:13px}@media(max-width:1100px){.header-inner{flex-wrap:wrap;padding:18px 0}.nav{order:3;width:100%;justify-content:center;flex-wrap:wrap;gap:14px}.hero-grid{gap:35px}}@media(max-width:750px){.container{width:min(100% - 32px,1160px)}.header-inner{gap:12px}.brand strong{font-size:22px}.header-call{padding:10px;font-size:11px}.nav{justify-content:flex-start;overflow-x:auto;flex-wrap:nowrap;padding-bottom:3px}.hero-grid,.intro-grid,.feature-grid{grid-template-columns:1fr;gap:35px}.hero-grid{padding:55px 0}.hero-visual{height:400px;max-width:500px;width:100%;margin:auto}.section{padding:65px 0}.feature-image{height:300px}.contact-grid{grid-template-columns:1fr}.contact-card{min-height:210px}.link-grid{grid-template-columns:1fr}.footer-grid{grid-template-columns:1fr 1fr;gap:25px}.footer-grid>div:first-child{grid-column:1/-1}}@media(max-width:450px){.header-call{width:100%;text-align:center}.nav{font-size:12px}.hero-visual{height:340px}.link-grid a{align-items:flex-start;flex-direction:column}.link-grid span{text-align:left}}

/* Classic Tranquility Blue palette: calm, true-blue, gender-neutral. */
:root{--cream:#F0F5FF;--paper:#FFFFFF;--sage:#B7CDF2;--green:#183F78;--dark:#183F78;--muted:#526B91;--line:#D7E3F7;--gold:#527EBB}
:focus-visible{outline:3px solid #527EBB;outline-offset:3px}
::selection{background:#B7CDF2;color:#183F78}

/* Revision: move the former footer's business/contact details to a prominent top banner. */
.top-banner{background:#183F78;color:#fff}
.top-banner-inner{display:grid;grid-template-columns:minmax(250px,1.25fr) minmax(185px,.85fr) minmax(265px,1.15fr);align-items:center;gap:36px;padding:26px 0}
.top-brand{color:#fff}.top-brand .brand-mark{color:#B7CDF2}.top-brand strong{font-size:clamp(26px,2.7vw,35px)}.top-brand small{color:#DDE9FF;font-size:10px}
.top-detail{display:flex;flex-direction:column;gap:3px;font-size:14px;line-height:1.55;color:#F0F5FF}
.top-label{font-size:11px;font-weight:700;letter-spacing:1.2px;color:#B7CDF2;margin-bottom:5px}
.top-detail a{color:#fff;text-decoration:none;overflow-wrap:anywhere}.top-detail a:hover{text-decoration:underline}
.navigation-row{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:18px 0}
.nav{display:flex;flex-wrap:wrap;gap:10px}
.nav a{display:inline-flex;align-items:center;justify-content:center;min-height:49px;padding:11px 18px;border:2px solid #B7CDF2;border-radius:8px;background:#F0F5FF;color:#183F78;font-size:15px;font-weight:700;box-shadow:0 2px 0 rgba(24,63,120,.08);transition:background .2s,border-color .2s,transform .2s}
.nav a:hover,.nav a[aria-current]{background:#527EBB;border-color:#527EBB;color:#fff;transform:translateY(-1px)}
.header-call{display:inline-flex;align-items:center;justify-content:center;gap:9px;min-height:49px;padding:12px 19px;border-radius:8px;font-size:14px;box-shadow:0 3px 10px rgba(24,63,120,.14)}
.compact-footer{display:flex;justify-content:space-between;gap:20px;align-items:center}.compact-footer p{margin:0;color:#E1EAFA;font-size:14px}.compact-footer a{color:#fff;text-decoration:none}.compact-footer a:hover{text-decoration:underline}
footer{padding:35px 0 22px}.footer-bottom{margin-top:24px}
@media(max-width:1100px){.navigation-row{flex-direction:column;align-items:stretch}.nav{order:0;width:100%;justify-content:center;gap:10px}.header-call{align-self:center}.top-banner-inner{gap:22px}}
@media(max-width:750px){.top-banner-inner{grid-template-columns:1fr 1fr;gap:18px;padding:22px 0}.top-brand{grid-column:1/-1}.top-contact{min-width:0}.navigation-row{padding:14px 0}.nav{flex-wrap:wrap;justify-content:center;overflow:visible}.nav a{flex:1 1 140px;font-size:14px;min-height:48px;padding:10px 12px}.header-call{align-self:stretch}.compact-footer{flex-direction:column;text-align:center;gap:8px}}
@media(max-width:450px){.top-banner-inner{grid-template-columns:1fr}.top-brand{grid-column:auto}.nav a{flex:1 1 125px}.header-call{width:100%}}

/* Larger, more legible footer message and social links. */
.compact-footer p { font-size: 19px; line-height: 1.6; }
.compact-footer a { font-size: 20px; font-weight: 700; text-decoration: underline; text-underline-offset: 4px; }
.compact-footer a:hover { color: #B7CDF2; }
@media (max-width: 750px) { .compact-footer p { font-size: 18px; } .compact-footer a { font-size: 19px; } }

/* Social links styled like the main navigation buttons. */
.footer-social{display:flex;flex-wrap:wrap;justify-content:center;gap:12px}
.footer-social a{display:inline-flex;align-items:center;justify-content:center;min-height:52px;min-width:142px;padding:12px 22px;background:#F0F5FF;color:#183F78;border:2px solid #B7CDF2;border-radius:8px;text-decoration:none;font-size:18px;font-weight:700;box-shadow:0 3px 8px rgba(0,0,0,.12);transition:background .2s,color .2s,border-color .2s,transform .2s}
.footer-social a:hover,.footer-social a:focus-visible{background:#527EBB;color:#fff;border-color:#B7CDF2;text-decoration:none;transform:translateY(-2px)}
@media(max-width:450px){.footer-social{width:100%}.footer-social a{flex:1 1 125px;min-width:0}}

/* On phones and narrow tablets, keep the portrait unobstructed and put its caption below. */
@media (max-width: 750px) {
  .hero-visual { height: auto; overflow: hidden; }
  .hero-visual img { height: 400px; width: 100%; object-fit: cover; object-position: center top; }
  .visual-caption { position: static; inset: auto; padding: 18px 22px 22px; background: #FFFFFF; }
}
@media (max-width: 450px) {
  .hero-visual { height: auto; }
  .hero-visual img { height: 340px; }
}

/* Keep the portrait caption below the photograph at ALL screen widths. */
.hero-visual { height: auto; overflow: visible; border-radius: 180px 180px 8px 8px; background: transparent; }
.hero-visual img { width: 100%; height: 520px; object-fit: cover; object-position: center top; border-radius: 180px 180px 0 0; }
.visual-caption { position: static; inset: auto; display: block; padding: 19px 24px; background: #FFFFFF; border: 1px solid #D7E3F7; border-top: 0; border-radius: 0 0 8px 8px; }
@media (max-width: 750px) { .hero-visual img { height: 400px; } }
@media (max-width: 450px) { .hero-visual img { height: 340px; } }


/* Consistent button corners across the entire website.
   Applies to buttons on Home, Treatments, individual treatment pages,
   Gift Certificates, Special Offers, and the shared header/footer.
   !important is limited to border-radius so page-specific button colors,
   printing, email, and layout remain unchanged. */
.btn, .header-call, .treatment-button, .back-link,
.print-button, .coupon-email-back, .footer-social a,
button.btn, button.print-button {
  border-radius: 8px !important;
}

/* Match outlined navigation/return buttons to the site's pale-blue button backgrounds.
   Override page-local white backgrounds without changing print/email behavior. */
a.btn.secondary, button.btn.secondary, a.back-link, a.coupon-email-back,
.coupon-print-tools a.coupon-email-back, .coupon-email-form a.coupon-email-back {
  background-color: #F0F5FF !important;
  color: #183F78 !important;
  border: 2px solid #B7CDF2 !important;
  border-radius: 8px !important;
  text-decoration: none;
}
a.btn.secondary:hover, button.btn.secondary:hover, a.back-link:hover,
a.coupon-email-back:hover, .coupon-print-tools a.coupon-email-back:hover,
.coupon-email-form a.coupon-email-back:hover {
  background-color: #DCE8FA !important;
  border-color: #527EBB !important;
}

/* Trial: medium-blue footer social buttons, white lettering. */
.footer-social a,
.footer-social a:visited {
  background: #527EBB;
  color: #FFFFFF;
  border-color: #B7CDF2;
}
.footer-social a:hover,
.footer-social a:focus-visible {
  background: #416DAA;
  color: #FFFFFF;
  border-color: #B7CDF2;
}

/* Larger headings for Jim Baer and scheduling contact information. */
.top-detail .top-label {
    font-size: 18px;
}
