/* Lily's open, typography-led layout. Shared by every page. */
@font-face {
  font-family: Manrope;
  src: url('assets/manrope.woff') format('woff');
  font-style: normal;
  font-weight: 200 800;
  font-display: swap;
}
:root { --sans: Manrope, 'Avenir Next', 'Segoe UI', sans-serif; }
body { font-family: var(--sans); line-height: 1.8; }
button, input { font-family: inherit; }
.wordmark span, .signature span { font-family: var(--sans); }
.eyebrow { font-size: .875rem; font-weight: 500; letter-spacing: .13em; line-height: 1.6; }
h3 { letter-spacing: -.02em; }
.lead { font-size: 1.0625rem; line-height: 1.9; }
.button, .nav-cta { font-weight: 500; letter-spacing: .01em; }
.text-link { text-decoration-thickness: 1px; text-underline-offset: 6px; }
.report-section .button.primary { color: #fff; margin-block: 8px; }
.progress-header { flex-wrap: wrap; gap: 8px 18px; }
.site-logo { display: flex; align-items: center; width: 172px; flex: 0 0 auto; max-width: calc(100% - 88px); text-decoration: none; }
.site-logo img { display: block; width: 100%; height: auto; }
.nav-toggle { border: 0; background: none; color: var(--ink); padding: 12px 0 12px 18px; font-size: .9375rem; }

/* Original brand assets keep their own colours and aspect ratios. */
.brand-logo { display: block; max-width: 100%; height: auto; }
.brand-logo-dermalogica { width: 250px; }
.brand-logo-circadia { width: 142px; }
.brand-logo-space { min-height: 112px; display: flex; align-items: center; justify-content: center; margin-bottom: 24px; }
.science-section { background: #f8f1f3; }
.science-grid { display: grid; grid-template-columns: minmax(0,.9fr) minmax(0,1.1fr); gap: 64px; padding-block: 85px; }
.science-copy > p:not(.eyebrow) { max-width: 440px; }
.science-brands { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 32px; }
.science-brands article { min-width: 0; border-top: 1px solid var(--line); padding-top: 18px; }
.science-brands h3 { font-size: 1.4rem; }
.science-brands p { font-size: .9375rem; }
.science-brands .text-link { font-size: .875rem; }
.brand-story-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 68px; margin-top: 48px; text-align: left; }
.brand-story-grid article { min-width: 0; border-top: 1px solid var(--line); padding-top: 26px; }
.brand-story-grid h3 { font-size: 1.65rem; }
.brand-story-grid .brand-source { font-size: .8125rem; margin-top: 22px; }
.brand-source a { text-underline-offset: 4px; }
.brand-story > .brand-story-closing { margin-top: 44px; }
.analysis-brand-logo { display: block; width: 220px; max-width: 100%; height: auto; margin: 26px 0; }
.analysis-treatment-link { font-size: .9375rem; margin-top: 22px; }
.analysis-treatment-link a { text-underline-offset: 4px; }

/* Hydrafacial treatment detail uses a native, keyboard-accessible disclosure. */
.hydrafacial-details { margin: 0 0 24px; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.hydrafacial-details summary { cursor: pointer; padding-block: 14px; color: var(--rose); font-size: .9375rem; font-weight: 600; line-height: 1.6; }
.hydrafacial-details summary::marker { color: var(--rose); }
.hydrafacial-details > p { margin-block: 8px 18px; }
.hydrafacial-steps { margin: 0 0 22px; padding-left: 1.4rem; }
.hydrafacial-steps li { padding-left: .2rem; margin-bottom: 16px; font-size: .9375rem; line-height: 1.75; }
.hydrafacial-steps li::marker { color: var(--rose); font-weight: 600; }
.hydrafacial-steps strong, .hydrafacial-steps span { display: block; }
.hydrafacial-steps strong { margin-bottom: 3px; }
.hydrafacial-treatment .hydrafacial-source { font-size: .8125rem; line-height: 1.7; }
.hydrafacial-treatment .hydrafacial-source a { font-size: inherit; }
.treatments p a { font-size: inherit; }

@media (max-width: 1000px) {
  .science-grid { grid-template-columns: 1fr; gap: 42px; }
  .science-copy > p:not(.eyebrow) { max-width: 650px; }
}
@media (max-width: 650px) {
  .science-grid { padding-block: 55px; }
  .science-brands, .brand-story-grid { grid-template-columns: 1fr; gap: 32px; }
  .brand-story-grid { margin-top: 32px; }
}

@media screen {
  header { min-height: 108px; padding-block: 26px; }
  header nav { gap: 22px; }
  header nav a { font-size: .875rem; }
  header nav a:not(.nav-cta) { padding-block: 8px; }
  .nav-cta { background: var(--rose); color: white; padding: 12px 22px; }
  .nav-cta:hover, .nav-cta[aria-current=page] { color: white; background: #633446; }
  .button, .nav-cta { border-radius: 2px; min-height: 48px; }
  .button { padding: 15px 26px; }
  .secondary { border-color: #b596a2; }
  .hero { grid-template-columns: minmax(0,1.2fr) minmax(0,.8fr); gap: 64px; padding-block: 70px 90px; }
  .hero-copy, .hero-copy .lead { max-width: 600px; }
  .hero .actions { gap: 22px 28px; }

  /* The offer is a quiet line of copy, with a normal text link. */
  .intake-announcement {
    display: flex; flex-wrap: wrap; align-items: baseline; gap: 3px 18px;
    padding: 0; margin: 28px 0 0; border: 0; border-radius: 0;
    background: none; color: var(--rose); font-size: .875rem; line-height: 1.7;
    box-shadow: none; text-decoration: none;
  }
  .intake-announcement span { font: italic 1.25rem/1.5 var(--serif); }
  .intake-announcement a { text-decoration-thickness: 1px; text-underline-offset: 5px; }
  a.intake-announcement { margin: 0 0 24px; font: italic 1.25rem/1.5 var(--serif); }
  .intake-announcement:hover { text-decoration: none; }
  a.intake-announcement:hover, .intake-announcement a:hover { text-decoration: underline; }

  /* The original flower stands on the page, without an enclosing card. */
  .brand-panel, .laser-brand { background: none; border: 0; border-radius: 0; box-shadow: none; }
  .brand-panel { min-height: 0; padding: 16px 12px; justify-content: center; }
  .panel-top { margin-top: 0; font-size: .75rem; letter-spacing: .19em; }
  .brand-panel img { width: 75%; max-width: 310px; height: auto; margin: 32px auto 30px; }
  .panel-bottom { justify-content: center; text-align: center; font-size: 1.3rem; line-height: 1.45; }
  .laser-brand { padding: 35px 20px; }
  .intro-strip { background: var(--flow-blush); padding-block: 28px 56px; }
  .intro-strip p { font-size: .9375rem; }
  .intro-strip strong { font-size: 1.8rem; }

  /* An editorial introduction, followed by open rows rather than tiles. */
  .home-discover { display: grid; grid-template-columns: minmax(0,.9fr) minmax(0,1.1fr); gap: 85px; padding-block: 100px; }
  .home-discover .section-heading { display: block; margin: 0; }
  .home-discover .section-heading > p { max-width: 350px; }
  .home-discover-grid { display: block; }
  .home-discover-grid article { padding: 28px 0; border-top: 0; border-bottom: 1px solid var(--line); }
  .home-discover-grid article:first-child { padding-top: 0; }
  .home-discover-grid article:last-child { border-bottom: 0; padding-bottom: 0; }
  .home-discover-grid h3 { font-size: 1.85rem; margin-bottom: 12px; }
  .home-discover-grid p { font-size: 1rem; margin-bottom: 12px; max-width: 470px; }
  .home-discover-grid a { font-size: .9375rem; align-self: flex-start; }
  .section-heading { gap: 60px; margin-bottom: 44px; }
  .concern-list { border: 0; gap: 0 34px; }
  .concern-list li { border: 0; border-bottom: 1px solid var(--line); padding: 22px 0; font-size: clamp(1.25rem,2vw,1.65rem); line-height: 1.4; overflow-wrap: normal; }
  .concerns-bottom { margin-top: 36px; }
  .concerns-bottom p { font-size: 1rem; }
  .treatments { border: 0; gap: 32px; }
  .treatments article, .treatments article:nth-child(-n+2) { padding: 26px 0; border: 0; border-top: 1px solid var(--line); }
  .treatments p, .steps p, .scanner-steps p, .faq details p { font-size: 1rem; }
  .proskin-treatment h3 { margin-bottom: 8px; }
  .proskin-treatment .treatment-duration { color: var(--rose); font-size: .875rem; margin-bottom: 18px; }
  .scope-grid { border: 0; gap: 60px; }
  .scope-grid article, .scope-grid article + article { padding: 24px 0; border: 0; border-top: 1px solid var(--line); }
  .scope-category { letter-spacing: .08em; }
  .intake-offer { padding: 0 0 26px; border: 0; border-bottom: 1px solid var(--line); border-radius: 0; background: none; box-shadow: none; }
  .intake-offer h3 { font-size: 2.2rem; }
  .scanner-steps { margin-top: 8px; }
  .laser-video { border: 0; border-radius: 0; box-shadow: none; background: none; }
  .video-caption { padding: 18px 0 0; }
  .booking-card, .journey-card, .portal-shell { background: transparent; border: 0; border-radius: 0; box-shadow: none; }
  .booking-card { padding: 0; }
  .booking-card li p { font-size: 1rem; }
  .booking-card .button { width: auto; }
  .journey-card, #journey:has(#journey-result:not([hidden])) .journey-card { padding: 0; min-width: 0; }
  .journey-card .help, .choice { font-size: 1rem; }
  .choice { border: 0; border-bottom: 1px solid var(--line); border-radius: 0; background: none; padding: 16px 0; margin: 0; line-height: 1.65; }
  .choice:hover { background: #79445505; }
  .choice:has(input:checked) { background: none; color: var(--rose); border-bottom-color: var(--rose); font-weight: 600; }
  .choice input { margin: 0 3px 0 0; }
  .progress-header { font-size: .75rem; }
  .ingredient-card { border: 0; border-top: 1px solid var(--line); background: none; padding: 22px 0 0; margin: 24px 0; }
  .ingredient-use { border: 0; padding-top: 0; }
  .report-section p, .report-section li { font-size: 1rem; }
  .demo-notice { background: none; border: 0; border-bottom: 1px solid var(--line); border-radius: 0; padding: 0 0 25px; font-size: .9375rem; }
  .portal-shell { gap: 42px; overflow: visible; }
  .portal-sidebar { background: none; padding: 0; }
  .portal-tabs button { background: none; padding: 13px 0; border: 0; font-size: .9375rem; }
  .portal-tabs button:hover { background: none; color: var(--rose); text-decoration: underline; text-underline-offset: 5px; }
  .portal-tabs button[aria-selected=true] { background: none; border: 0; color: var(--rose); text-decoration: underline; text-underline-offset: 7px; font-weight: 600; }
  .portal-side-note { padding-left: 0; }
  .portal-content { padding: 0; }
  .portal-grid { gap: 28px; }
  .portal-box, .portal-next { border: 0; border-top: 1px solid var(--line); background: none; padding: 22px 0 0; margin: 22px 0; }
  .portal-label { font-size: .8125rem; letter-spacing: .06em; }
  .portal-box p, .portal-next p { font-size: 1rem; }
  .contact-info-grid article { border: 0; padding-top: 0; }
  .contact { background: linear-gradient(180deg,var(--paper),#f1e6e9); padding-block: 100px 75px; }
  .contact .eyebrow, .contact p { color: var(--muted); }
  .contact h2 { color: var(--ink); }
  .contact h2 em, .contact-links { color: var(--rose); }
  .contact .light { color: white; background: var(--rose); }
  .contact .light:hover { background: #633446; }
  footer.wrap { background: #f1e6e9; color: var(--ink); border-top: 1px solid var(--line); }
  footer > span, footer > a:last-child, footer nav a { color: var(--muted); }
}

@media screen and (min-width: 1001px) {
  .treatments { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

@media screen and (max-width: 1250px) {
  header { flex-wrap: wrap; }
  header { justify-content: space-between; align-items: center; gap: 12px; }
  header nav { width: 100%; flex-direction: column; align-items: stretch; gap: 0; padding: 14px 0 8px; }
  header nav a:not(.nav-cta) { font-size: 1rem; padding-block: 10px; }
  header nav .nav-cta { align-self: flex-start; margin-top: 14px; }
  .home-discover { gap: 45px; }
}
@media screen and (max-width: 900px) {
  .hero, .laser-hero { grid-template-columns: 1fr; gap: 45px; }
  .hero h1 { font-size: clamp(2.8rem,8vw,4.5rem); }
  .hero-copy { max-width: 660px; }
  .brand-panel { max-width: 390px; width: 100%; margin-inline: auto; }
  .brand-panel img { max-width: 240px; margin-block: 24px; }
  .home-discover, .scanner-grid, .journey-section { grid-template-columns: 1fr; gap: 42px; }
  .home-discover .section-heading > p { max-width: 500px; }
  .home-discover-grid p { max-width: 560px; }
  .concern-list { grid-template-columns: repeat(2,minmax(0,1fr)); }
}
@media screen and (max-width: 700px) {
  header { min-height: 85px; padding-block: 18px; }
  .hero { padding-block: 40px 50px; }
  .hero .actions { align-items: flex-start; gap: 18px 24px; }
  .hero .actions .button { max-width: 100%; }
  .intake-announcement { gap: 4px 14px; }
  .brand-panel { padding: 12px 0; }
  .brand-panel img { max-width: 220px; }
  .panel-bottom { font-size: 1.2rem; }
  .intro-strip { padding-block: 12px 38px; }
  .intro-strip strong { font-size: 1.5rem; }
  .home-discover { padding-block: 60px; }
  .home-discover-grid h3 { font-size: 1.65rem; }
  .section-heading { margin-bottom: 28px; }
  .concern-list { column-gap: 22px; }
  .concern-list li { font-size: 1.2rem; padding-block: 18px; }
  .scope-grid { gap: 12px; }
  .treatments { gap: 0; }
  .booking-grid { gap: 35px; }
  .journey-card, #journey:has(#journey-result:not([hidden])) .journey-card { padding: 0; }
  .portal-shell { gap: 32px; }
  .portal-sidebar { padding: 0; }
  .portal-tabs { grid-template-columns: 1fr; gap: 0; }
  .portal-tabs button { padding: 11px 0; }
  .portal-content { padding: 0; }
  .contact { padding-block: 65px 55px; }
  .contact-links { flex-direction: column; gap: 10px; font-size: .9375rem; }
  footer.wrap { padding-block: 28px; }
}
@media screen and (max-width: 380px) {
  .concern-list { grid-template-columns: 1fr; }
  .hero .actions { flex-direction: column; }
}
