/* Final supporting-type system. Headlines and the CURA wordmark remain in Caslon. */
@font-face {
  font-family: 'CURA Text';
  src: url('assets/fonts/lora-variable.ttf') format('truetype');
  font-weight: 400 700;
  font-style: normal;
  font-display: swap;
}
:root {
  --sans: 'Archivo', Arial, sans-serif;
  --copy: 'CURA Text', Georgia, serif;
}
body { font-family: var(--sans); font-weight: 400; }
button, input, textarea, select { font-family: var(--sans); }
p { font-family: var(--copy); font-weight: 400; letter-spacing: 0; line-height: 1.6; }

/* Editorial descriptions have a fuller text face, distinct from display Caslon. */
.hero-copy p:not(.eyebrow),
.inspiration-copy > p:first-of-type { font-size: 18px; line-height: 1.55; max-width: 445px; }
.how-step > p, .how-action > p, .about-strip p,
.cura-edit-content > p:not(.section-label), .pp-edit-story > p,
.content-dialog .dialog-intro, .contact-panel > p,
.about-editorial-copy > p:not(.section-label), .beta-copy > p,
.auth-content > p#auth-description { font-size: 17px; line-height: 1.6; }
.about-strip p { max-width: 620px; }
.inspiration-copy .account-note,
.inspiration-copy .account-note .text-link,
.inspiration-copy .catalogue-scope,
.auth-content .auth-switch, .auth-content .auth-switch .text-link,
.auth-content .catalogue-scope { font-family: var(--copy); font-size: 16px !important; line-height: 1.6; }
.inspiration-copy .account-note .text-link,
.auth-content .auth-switch .text-link { font-weight: 600; }
.inspiration-copy .catalogue-scope { font-weight: 400; }
.about-editorial-mission p { font-size: 16px; }
.footer-top > p { font-family: var(--serif); }

/* Controls and metadata stay compact, robust and consistent. */
.desktop-nav, .mobile-nav, .header-right,
.announcement, .section-label, .eyebrow,
.button, .small-cta, .text-link, .tabs,
.retailer, .product-title, .product-price, .pp-shop-link,
.step-heading, .filter-bar, .search-field, .search-result,
.footer-links, .footer-bottom,
.offer-date, .offer-code, .pp-offer-item h3,
.pp-offer-line, .pp-kicker, .offer-masthead .section-label,
.preview-details summary,
.fresh-carousel-controls, .pp-carousel-controls,
.radar-carousel-controls, .rail-footer { font-family: var(--sans); }
.desktop-nav { font-size: 15px; font-weight: 400; gap: 19px; }
.button, .small-cta { font-weight: 600; font-size: 16px; letter-spacing: -.015em; }
.text-link { font-weight: 500; }
.section-label, .eyebrow { font-weight: 600; font-size: 14px; }
.retailer, .editorial-products .retailer, .content-dialog .retailer {
  font-size: 14px; line-height: 1.4; font-weight: 600; letter-spacing: .015em;
}
.product-title, .editorial-products .product-title, .content-dialog .product-title {
  font-size: 16px; line-height: 1.45; font-weight: 400; letter-spacing: -.01em;
}
.product-price, .editorial-products .product-price, .content-dialog .product-price {
  font-size: 15px; line-height: 1.45; font-weight: 500;
}
.auth-content form label, .contact-panel label, .search-field label {
  font-size: 15px; font-weight: 500;
}
.auth-content input, .contact-panel input, .contact-panel textarea, .search-input {
  font-size: 16px; line-height: 1.5;
}
.fine-print, .preview-note, .example-note, .pp-small,
.pp-preview-note, .pp-disclosure, .contact-note {
  font-family: var(--sans); font-size: 15px !important; line-height: 1.55 !important;
}
.pp-campaign .pp-small, .pp-campaign .pp-disclosure { font-size: 15px !important; }
.content-dialog p:not(.section-label):not(.eyebrow):not(.pp-small):not(.pp-preview-note):not(.offer-date):not(.fine-print):not(.contact-note):not(.form-feedback) {
  font-family: var(--copy);
}
.content-dialog .offer-masthead p:not(.section-label) { font-size: 19px; }
.preview-details p { font-family: var(--copy); font-size: 16px; }
.pp-campaign-copy > p:not(.pp-kicker):not(.pp-small):not(.pp-disclosure) {
  font-family: var(--copy); font-size: 17px;
}
.pp-edit-bottom > p { font-size: 15px; }
.auth-content .preview-note, .auth-content .form-feedback { font-family: var(--sans); }
.product-detail > div > p:not(.eyebrow):not(.fine-print) { font-size: 17px; }

@media (max-width: 700px) {
  .hero-copy p:not(.eyebrow) { font-size: 16px; line-height: 1.5; }
  .inspiration-copy > p:first-of-type { font-size: 18px; line-height: 1.55; }
  .how-step > p, .how-action > p, .about-strip p,
  .cura-edit-content > p:not(.section-label), .pp-edit-story > p,
  .content-dialog .dialog-intro, .contact-panel > p,
  .about-editorial-copy > p:not(.section-label), .beta-copy > p,
  .auth-content > p#auth-description { font-size: 16px; }
  .inspiration-copy .account-note, .inspiration-copy .account-note .text-link,
  .inspiration-copy .catalogue-scope, .auth-content .auth-switch,
  .auth-content .auth-switch .text-link, .auth-content .catalogue-scope {
    font-size: 15px !important;
  }
  .button, .small-cta { font-size: 15px; }
  .product-title, .editorial-products .product-title, .content-dialog .product-title { font-size: 15px; }
  .retailer, .editorial-products .retailer, .content-dialog .retailer { font-size: 13px; }
  .announcement { font-size: 12px; }
  .section-head { gap: 18px; }
}

/* Position feedback remains available to assistive technology, without page counters. */
:is(.fresh-carousel-controls,.pp-carousel-controls,.radar-carousel-controls,.edits-carousel-controls,.trending-carousel .rail-footer)>span {
  position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0;
}
.product-carousel :is(.fresh-carousel-controls,.pp-carousel-controls,.radar-carousel-controls,.edits-carousel-controls,.rail-footer) { min-height:0;height:0;margin:0;padding:0; }
.inspiration-copy > p:first-of-type { font-size:18px !important; }
.inspiration-copy .fine-print { font-family:var(--copy);font-size:16px !important;font-weight:400; }
@media(max-width:700px){.inspiration-copy .fine-print{font-size:15px !important}}

.brand-names img[data-media="logoHelloMolly"]{filter:grayscale(1) brightness(0)}

/* Limited font trial: hero description only. */
@font-face {
  font-family: 'Alte Haas Grotesk';
  src: url('assets/fonts/alte-haas-grotesk-regular.ttf') format('truetype');
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}
.hero-copy p:not(.eyebrow) {
  font-family: 'Alte Haas Grotesk', Arial, sans-serif;
  font-weight: 400;
}

/* Inspiration section: shared left edge with varied vertical spacing. */
.inspiration-copy { padding-block: 24px; }
.inspiration-copy h2 {
  -webkit-text-stroke: .45px currentColor;
  margin: 0 0 24px;
}
.inspiration-copy > p:first-of-type {
  font-family: 'Alte Haas Grotesk', Arial, sans-serif;
  max-width: 370px;
  margin-left: 0;
  line-height: 1.55;
}
.inspiration-copy .button {
  margin: 36px 0 22px;
  padding-inline: 30px;
  min-width: 150px;
  justify-content: center;
}
.inspiration-copy .account-note { margin-left: 0; }
@media (max-width: 700px) {
  .inspiration-copy { padding-block: 8px 16px; }
  .inspiration-copy h2 { margin-bottom: 18px; }
  .inspiration-copy .button { margin: 28px 0 20px; }
}

/* Approved global supporting-type hierarchy, November review. */
@font-face{font-family:'Alte Haas Grotesk';src:url('assets/fonts/alte-haas-grotesk-bold.ttf') format('truetype');font-weight:600 900;font-style:normal;font-display:swap}
:root{--sans:'Alte Haas Grotesk',Arial,sans-serif;--copy:'Alte Haas Grotesk',Arial,sans-serif}
h1 em,h2 em,h3 em,.edit-title em,.content-dialog em{font-style:normal!important}
h1,h2,.content-dialog h2,.section-head h2,.brand-note h2{-webkit-text-stroke:.45px currentColor}
.button,.small-cta{border-radius:14px;justify-content:center;gap:0}
.small-cta{border-radius:18px;padding:12px 20px;min-height:46px}
.button span:empty,.text-link span:empty{display:none}
.step-two{background:#d7e8e3}
.shortlist-logo{width:190px;height:auto;object-fit:contain;margin-bottom:26px}
.pp-campaign-copy{display:flex;flex-direction:column;justify-content:center;gap:30px;padding-block:56px}
.pp-campaign-copy h2{margin:0}
.pp-campaign-copy .pp-campaign-logo{margin:0}
.pp-campaign-copy .pp-offer-line{margin:0}
.pp-campaign-actions{margin:4px 0 0}
.offer-brand-logo{margin-bottom:24px!important}
.offer-masthead>div:last-child p{margin-top:24px}
.content-dialog .offer-intro{max-width:none;font-size:17px;margin-block:28px 34px}
.offer-date span:empty{display:none}
.pp-retailer-bottom{margin-top:24px}
.pp-edit-bottom{display:flex;gap:24px;align-items:center}
.brand-note h2{color:var(--burgundy);font-size:clamp(42px,4.6vw,68px);margin-bottom:54px;-webkit-text-stroke:.55px currentColor}
#fresh-products{grid-auto-columns:calc((100% - 88px)/5)}
#trending-products{display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr));grid-auto-flow:row;gap:34px 22px;overflow:visible;scroll-snap-type:none}
.trending .rail-footer{display:none}
.trend-more,.collection-more{display:flex;margin:38px auto 0}
.trend-more[hidden]{display:none}
.pp-collection-grid{grid-template-columns:repeat(5,minmax(0,1fr));gap:32px 20px;margin-top:34px}
.pp-collection-footer{display:flex;justify-content:space-between;gap:24px;margin-top:44px;flex-wrap:wrap}
.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
@media(max-width:1000px){#fresh-products{grid-auto-columns:calc((100% - 44px)/3)}.pp-collection-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:700px){#fresh-products{grid-auto-columns:calc((100% - 16px)/2)}#trending-products,.pp-collection-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:28px 16px}.pp-campaign-copy{padding-block:38px;gap:26px}.shortlist-logo{width:160px}.brand-note h2{margin-bottom:38px}}
#fresh-products{gap:22px}
#fresh-products>.product{flex:0 0 calc((100% - 88px)/5)}
@media(max-width:1000px){#fresh-products>.product{flex-basis:calc((100% - 44px)/3)}}
@media(max-width:700px){#fresh-products{gap:16px}#fresh-products>.product{flex-basis:calc((100% - 16px)/2)}}

/* Princess Polly collection campaign banner; copy stays live and accessible. */
.pp-collection-banner{position:relative;isolation:isolate;aspect-ratio:3/1;min-height:240px;overflow:hidden;margin:4px 0 26px;background:var(--burgundy)}
.pp-collection-banner>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 40%}
.pp-collection-banner:after{content:'';position:absolute;inset:0;z-index:0;background:linear-gradient(0deg,rgba(32,14,20,.78),transparent 75%);pointer-events:none}
.content-dialog .pp-collection-banner h2{position:absolute;z-index:1;left:4%;right:4%;bottom:9%;margin:0;color:#fffefa;font-size:clamp(34px,4.5vw,66px);line-height:1.06;max-width:100%}
@media(max-width:700px){.pp-collection-banner{aspect-ratio:1.7/1;min-height:230px}.pp-collection-banner>img{object-position:35% 40%}.content-dialog .pp-collection-banner h2{font-size:38px;left:6%;right:6%;bottom:8%;max-width:300px}}

/* Balance retailer identity and the two distinct destinations. */
.pp-edit>.section-head{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:32px}
.pp-heading-actions{display:flex;flex-direction:column;align-items:flex-end;gap:22px}
.pp-heading-actions .shortlist-logo{width:190px;margin:0}
.pp-edit-bottom{display:flex;align-items:center;justify-content:space-between;gap:28px;margin-top:32px}
.pp-edit-bottom .pp-retailer-bottom{margin:0;color:var(--burgundy);font-weight:700}
.pp-edit-bottom .pp-retailer-bottom:hover{color:#491126}
@media(max-width:700px){.pp-edit>.section-head{gap:18px}.pp-heading-actions{gap:18px;max-width:150px}.pp-heading-actions .shortlist-logo{width:145px}.pp-heading-actions .text-link{font-size:14px;text-align:right}.pp-edit-bottom{gap:20px;align-items:flex-start;flex-wrap:wrap}.pp-edit-bottom .text-link{font-size:14px}}

/* About story: photo caption without a coloured panel, concise adjacent copy. */
.about-editorial{align-items:center}
.about-editorial-photo>span{left:6%;right:6%;bottom:7%;padding:0;max-width:none;background:none;color:var(--brown);font-family:var(--sans);font-weight:400;font-size:23px;line-height:1.25;letter-spacing:0}
.about-editorial-copy{padding:20px 0}
.about-editorial-copy h2{margin-bottom:28px}
.about-editorial-copy>p:not(.section-label){margin-bottom:22px}
.about-editorial-copy .button{margin-top:10px}
@media(max-width:700px){.about-editorial{gap:30px}.about-editorial-photo{min-height:360px;aspect-ratio:4/5;max-height:500px}.about-editorial-photo img{object-position:50% 70%!important}.about-editorial-photo>span{font-size:20px;bottom:7%;left:6%;right:6%;padding:0;max-width:none}.about-editorial-copy{padding:0}.about-editorial-copy h2{margin-bottom:24px}}

/* About photo caption refinement. */
.about-editorial-photo>span{font-size:18px;font-weight:700;left:5%;right:5%;bottom:3.5%}
@media(max-width:700px){.about-editorial-photo>span{font-size:16px;left:5%;right:5%;bottom:3.5%}}

/* Shared editorial banner and grid for all CURA collections. */
.collection-banner{margin-top:0;margin-bottom:26px}
.collection-page>.dialog-intro{margin:0 0 26px;max-width:650px}
.collection-products{grid-template-columns:repeat(4,minmax(0,1fr));gap:34px 22px}
.collection-page .filter-bar{margin-bottom:32px}
@media(max-width:700px){.collection-products{grid-template-columns:repeat(2,minmax(0,1fr));gap:28px 16px}.collection-page>.dialog-intro{margin-bottom:22px}.content-dialog .collection-banner h2{font-size:38px;max-width:88%}}

/* A photo-specific editorial caption, distinct from interface typography. */
.about-editorial-photo>span{font-family:'Bodoni Moda',Georgia,serif;font-size:30px;font-weight:400;line-height:1.08;letter-spacing:-.025em;color:#fff;left:5%;right:auto;bottom:4%;text-shadow:0 1px 8px rgba(30,20,15,.42);-webkit-text-stroke:.15px currentColor}
@media(max-width:700px){.about-editorial-photo>span{font-size:27px;left:5%;right:auto;bottom:4%}}

/* Keep collection switching in the heading's reading path. */
.trending>.section-head{display:flex;flex-direction:column;align-items:flex-start;gap:24px;margin-bottom:30px}
.trending .tabs{display:flex;justify-content:flex-start;gap:28px;margin:0}
.trending .tabs button{font-size:16px;min-height:44px;padding:4px 0 10px;color:var(--muted)}
.trending .tabs button[aria-selected="true"]{color:var(--burgundy);font-weight:700;border-bottom:2px solid var(--burgundy)}
@media(max-width:700px){.trending>.section-head{gap:18px;margin-bottom:24px}.trending .tabs{gap:24px}.trending .tabs button{font-size:15px}}

/* Identify the retailer campaign without repeated introductory copy. */
.content-dialog .pp-offer-details .offer-intro{font-family:var(--sans);font-size:20px;font-weight:700;line-height:1.4;margin:30px 0 34px;color:var(--burgundy);max-width:none}
@media(max-width:700px){.content-dialog .pp-offer-details .offer-intro{font-size:18px;margin:24px 0 28px}}
.pp-edit-bottom>.button{min-height:48px;padding:13px 24px;border:0;color:#fffefa}
.video-dialog>h2{margin-bottom:26px}


/* Temporary PP campaign identifier, distinct from CURA's editorial masthead. */
.pp-offer-details .offer-masthead-simple{display:block;padding:38px 42px;min-height:0}
.content-dialog .offer-masthead-simple h2{font-size:clamp(40px,5vw,70px);margin:0;max-width:none}
.content-dialog .pp-offer-details .pp-promo-strip{display:grid;grid-template-columns:1fr 1.2fr auto;align-items:center;gap:28px;background:#211a17;color:#fffefa;padding:26px 30px;margin:26px 0 34px}
.pp-promo-identity img{width:190px;height:auto;object-fit:contain;filter:brightness(0) invert(1);margin-bottom:13px}
.pp-promo-identity>span{font-size:15px;font-weight:400;color:#fffefa}
.pp-promo-strip>strong{font-family:var(--sans);font-size:clamp(26px,3vw,40px);font-weight:700;line-height:.98;letter-spacing:-.04em;color:#fffefa}
.pp-promo-strip>strong>span{color:#d9ff4d}
.pp-promo-ticket{align-self:stretch;display:flex;flex-direction:column;justify-content:center;gap:12px;background:#f4efe9;color:var(--burgundy);padding:17px 22px;clip-path:polygon(0 0,100% 0,100% 43%,94% 50%,100% 57%,100% 100%,0 100%,0 57%,6% 50%,0 43%)}
.pp-promo-ticket>span{font-size:12px;font-weight:700;letter-spacing:.05em}
.pp-promo-ticket i{display:block;height:23px;background:repeating-linear-gradient(90deg,#30251f 0 2px,transparent 2px 4px,#30251f 4px 5px,transparent 5px 8px)}
@media(max-width:900px){.content-dialog .pp-offer-details .pp-promo-strip{grid-template-columns:1fr 1fr;gap:24px}.pp-promo-ticket{display:none}}
@media(max-width:600px){.pp-offer-details .offer-masthead-simple{padding:28px 24px}.content-dialog .pp-offer-details .pp-promo-strip{grid-template-columns:1fr;padding:24px;gap:22px;margin:20px 0 28px}.pp-promo-identity img{width:170px}.pp-promo-strip>strong{font-size:34px;line-height:1.02}}

/* Clean phone demo and PP campaign action */
.pp-edit-bottom>.button{background:#000;color:#fff;border-radius:4px}
.pp-edit-bottom>.button:hover{background:#242424}
.video-dialog{width:min(1180px,96vw,calc((100svh - 64px)*1.607));max-height:94svh;padding:0;border:0;overflow:visible;background:#f8f7f3}
.video-dialog video{display:block;width:100%;height:auto;max-height:calc(100svh - 64px);object-fit:contain;background:#f8f7f3}
.video-dialog>.close{position:absolute;right:8px;top:8px;width:36px;height:36px;min-height:36px;border-radius:50%;background:#fffefaeb;color:#30251f;z-index:2;font-size:28px;line-height:1}

.how-image.step-one>.mini-label,.how-image.step-two>.mini-label{font-size:13px;line-height:1.25}

.video-dialog{width:min(1180px,96vw,calc((100svh - 132px)*1.607));max-height:94svh;overflow:hidden}
.video-dialog video{max-height:calc(100svh - 132px)}
.journey-controls{display:flex;align-items:center;gap:14px;padding:13px 18px 15px;background:#f8f7f3;color:#30251f;min-height:58px}
.journey-controls button{display:grid;place-items:center;min-width:34px;min-height:34px;font-size:21px;border-radius:4px}
.journey-controls button:hover{background:#e9e5de}
#journey-time{font-family:var(--sans);font-size:13px;font-variant-numeric:tabular-nums;white-space:nowrap}
#journey-seek{flex:1;min-width:40px;accent-color:#681c35;cursor:pointer;height:24px}
.video-dialog:fullscreen{width:100%;height:100%;max-height:none;display:flex;flex-direction:column;justify-content:center;background:#f8f7f3}
.video-dialog:fullscreen video{max-height:calc(100svh - 70px);flex:1;min-height:0}
@media(max-width:600px){.journey-controls{gap:8px;padding:10px}.journey-controls button{min-width:28px}#journey-time{font-size:11px}}

/* Four-phone walkthrough supplied by CURA. */
.how .section-head{margin-bottom:36px}
.phone-process{width:100%;max-width:1600px;margin:0 auto;background:#f8edf6;overflow:hidden}
.phone-process-wide{display:block;width:100%;height:auto;object-fit:contain}
.phone-process-mobile{display:none}
.how .how-action{margin-top:30px;gap:24px;align-items:center}
@media(max-width:700px){.how .section-head{margin-bottom:26px}.phone-process-wide{display:none}.phone-process-mobile{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px 0;padding:8px 0}.phone-process-panel{position:relative;aspect-ratio:512/979;overflow:hidden}.phone-process-panel img{display:block;width:400%;max-width:none;height:100%;object-fit:fill;transform:translateX(calc(var(--panel)* -25%))}.how .how-action{margin-top:26px;align-items:flex-start;gap:16px;flex-wrap:wrap}}
@media(max-width:440px){.phone-process-mobile{grid-template-columns:1fr;gap:20px;max-width:360px;margin:0 auto}.phone-process-panel{width:100%}}

/* Live CURA captions and individually framed phone screens. */
.phone-process.phone-process-cards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:30px;background:transparent;overflow:visible}
.process-card{min-width:0;text-align:left}
.process-card .process-phone{display:block;width:100%;height:auto;aspect-ratio:390/804;fill:initial;stroke:none;max-width:300px;margin:0 auto}
.process-caption{width:100%;max-width:300px;margin:30px auto 0}
.process-caption h3{font-family:var(--sans);font-size:20px;font-weight:700;line-height:1.25;letter-spacing:0;margin:0 0 10px}
.process-caption p{font-family:var(--sans);font-size:16px;font-weight:400;line-height:1.55;margin:0;max-width:none}
.how .how-action{display:flex;flex-direction:column;justify-content:center;align-items:center;gap:12px;margin-top:46px;text-align:center;flex-wrap:nowrap}
.how .how-action>p{font-family:var(--sans);font-size:14px;font-weight:400;line-height:1.5;letter-spacing:.01em;color:#766d65;max-width:340px;margin:0}
.how .how-action>.button{min-width:220px}
@media(max-width:700px){.how .how-action{margin-top:36px;align-items:center;gap:12px}.how .how-action>p{max-width:290px}}
@media(max-width:900px){.phone-process.phone-process-cards{grid-template-columns:repeat(2,minmax(0,1fr));gap:36px 30px}.process-caption{max-width:300px;margin:26px auto 0}}
@media(max-width:480px){.phone-process.phone-process-cards{grid-template-columns:1fr;gap:38px}.process-card{max-width:320px;margin:0 auto}.process-caption{margin-top:26px}.process-caption h3{font-size:20px}.process-caption p{font-size:16px}}

/* Softer action buttons, with extra rounding on the navigation CTA. */
.button{border-radius:18px}
.small-cta{border-radius:24px}
.pp-edit-bottom>.button{border-radius:8px}
.journey-controls button{border-radius:7px}

.process-phone .process-wordmark{font-family:'CURA Caslon',Georgia,serif;font-weight:400;font-synthesis:none;font-size:29px;letter-spacing:-.025em;fill:#30251f;stroke:none}
