/* Purchase page: the home's Fraunces/Archivo typography and celestial palette.
   Loaded last; scoped so the reading and home keep their own compositions. */
.rf-body.rf-page-unlock {
  --ec-plum:#402047; --ec-ink:#28132e; --ec-muted:#6c576b; --ec-cta:#cf086b;
  --ec-cta-hover:#aa0656; --ec-line:#dfd2dc; --rf-purple:#402047;
  --rf-purple-text:#5d435e; --rf-sans:"Archivo",sans-serif; --rf-serif:"Fraunces",Georgia,serif;
  background:#fff; color:#28132e;
}
.rf-page-unlock [id] { scroll-margin-top:26px; }
.rf-page-unlock :focus-visible { outline:3px solid #cf086b; outline-offset:5px; }
.rf-page-unlock .rf-topbar { background:#28132e; padding:9px 20px; font-size:11px; font-weight:400; }
.rf-page-unlock .rf-header { background:#fff; border-color:#eee5ed; padding-block:23px; }
.rf-page-unlock .rf-logo { color:#28132e; }
.rf-page-unlock .rf-logo__mark { color:#28132e; }
.rf-body.rf-page-unlock .rf-btn { border:0; border-radius:4px; background:#cf086b; box-shadow:none; font-weight:600; transition:background .2s,transform .2s; }
.rf-body.rf-page-unlock .rf-btn::after { display:none; }
.rf-body.rf-page-unlock .rf-btn:hover { background:#aa0656; }
.rf-body.rf-page-unlock .rf-btn:active { transform:translateY(1px); }
.rf-page-unlock .rf-product { padding:40px 0 58px; background:linear-gradient(150deg,#fff 40%,#fcf5fa); border-bottom:1px solid #e9dce6; }
.rf-page-unlock .rf-product .rf-wrap { width:min(1456px,100%); padding-inline:clamp(24px,4.4vw,68px); }
.rf-page-unlock .rf-product__grid { gap:32px; }
.rf-page-unlock .rf-personal-summary { margin-bottom:19px; }
.rf-page-unlock .rf-personal-summary > div > span { color:#71516e; font-size:11px; font-weight:500; margin-bottom:7px; }
.rf-page-unlock .rf-personal-summary strong { font-size:clamp(24px,2.2vw,32px); font-weight:500; color:#28132e; }
.rf-page-unlock .rf-gallery__track { border-color:#ddcbdc; border-radius:8px; box-shadow:0 14px 34px -25px #40204760; }
.rf-page-unlock .rf-gallery__thumbs button { border-radius:5px; padding:5px; background:#fff; font-weight:500; }
.rf-page-unlock .rf-gallery__thumbs button[aria-pressed=true] { background:#fae7ee; border-color:#cf086b; box-shadow:inset 0 0 0 1px #cf086b; }
.rf-page-unlock .rf-gallery__caption { color:#6c576b; }
.rf-page-unlock .rf-gallery__reassurance { margin-top:16px; font-weight:500; }
.rf-preview-progress { display:flex; gap:17px; padding:23px; margin-top:24px; border:1px solid #deccdf; border-radius:7px; background:#f4ecf7; }
.rf-preview-progress__icon { flex:none; display:grid; place-items:center; align-self:center; width:49px; height:49px; border:1px solid #ceadcc; border-radius:50%; color:#563360; }
.rf-preview-progress__icon .rf-ico { width:31px; height:31px; }
.rf-preview-progress__copy { flex:1; min-width:0; }
.rf-preview-progress__copy > p { margin:0 0 13px; font:500 clamp(19px,1.65vw,24px)/1.2 var(--rf-serif); color:#402047; }
.rf-preview-progress__track { display:block; height:5px; background:#e0cde4; border-radius:9px; overflow:hidden; }
.rf-preview-progress__track i { display:block; width:var(--watched); height:100%; background:#ad136a; border-radius:inherit; }
.rf-preview-progress__note { display:flex; flex-wrap:wrap; align-items:center; gap:4px; margin-top:10px; font-size:11px; line-height:1.5; color:#5d435e; }
.rf-preview-progress__note .rf-ico { width:12px; height:12px; margin-right:3px; }
.rf-preview-progress__note > span { flex-basis:100%; font-size:10px; color:#725870; margin-top:3px; }
.rf-page-unlock .rf-product__info { min-width:0; }
.rf-page-unlock .rf-rating { margin:0 0 18px; font-size:11px; gap:7px; }
.rf-page-unlock .rf-rating__watch { margin-left:auto; color:#402047; font-size:11px; }
.rf-page-unlock .rf-offer-kicker { font-size:12px; font-weight:500; color:#765069; margin:0 0 9px; }
.rf-page-unlock .rf-h1--product { font-size:clamp(37px,3.5vw,54px); font-weight:500; line-height:1.05; margin:0 0 18px; color:#28132e; }
.rf-page-unlock .rf-for { border:0; border-left:2px solid #b983aa; border-radius:0; padding:8px 12px; background:#f5edf6; margin-bottom:17px; }
.rf-page-unlock .rf-for b { font-size:14px; font-weight:600; }
.rf-page-unlock .rf-for > span { font-size:11px; }
.rf-page-unlock .rf-offer-intro { color:#5d435e; font-size:15px; line-height:1.65; font-weight:400; margin-bottom:18px; max-width:none; }
/* A compact deadline strip makes the offer tangible at package selection. */
.rf-page-unlock [data-rf-promo][hidden],
.rf-page-unlock [data-rf-after-promo][hidden] { display:none !important; }
.rf-page-unlock .rf-topbar { background:#402047; padding:10px 20px; }
.rf-anniversary-bar { display:flex; justify-content:center; align-items:center; flex-wrap:wrap; gap:7px 24px; width:fit-content; margin:auto; color:#fff; text-decoration:none; font-size:14px; line-height:1.4; }
.rf-anniversary-bar__title { display:inline-flex; align-items:center; gap:9px; font-weight:500; }
.rf-anniversary-bar__title .rf-ico { width:15px; height:15px; color:#efcfa1; }
.rf-page-unlock .rf-anniversary-bar__title b { background:#f6deae; color:#402047; border-radius:3px; padding:4px 9px; font-size:14px; font-weight:700; }
.rf-anniversary-bar__deadline { display:inline-flex; align-items:baseline; gap:7px; color:#eddaea; }
.rf-offer-clock { white-space:nowrap; font-variant-numeric:tabular-nums; font-weight:600; letter-spacing:.015em; }
.rf-anniversary-bar .rf-offer-clock { color:#f6deae; font-size:17px; font-weight:700; }
.rf-page-unlock .rf-sticky__summary { flex:none; }
.rf-page-unlock .rf-sticky__offer { display:block; margin-bottom:4px; font-size:9px; font-weight:600; color:#a30a54; white-space:nowrap; }
.rf-page-unlock .rf-sticky__price { display:flex; align-items:baseline; gap:8px; }
.rf-page-unlock .rf-sticky__price s { color:#6c576b; font-size:11px; }
.rf-page-unlock .rf-sticky .rf-btn { flex:1; max-width:330px; min-width:0; padding-inline:12px; font-size:13px; line-height:1.35; }
.rf-modal__saving { display:flex; flex-wrap:wrap; align-items:center; gap:6px; padding:11px 0; margin:0; color:#8e1452; font-size:11px; border-bottom:1px solid #e8dce5; }
.rf-modal__saving > .rf-ico { width:14px; height:14px; }
.rf-modal__saving > strong { margin-left:auto; font-weight:600; }
.rf-page-unlock .rf-paylogos { opacity:1; margin-top:19px; gap:7px; }
.rf-page-unlock .rf-paylogos span { color:#68586b; border:0; background:transparent; border-radius:0; font-size:10px; padding:2px 4px; }

/* Compact reassurance: a personal dedication framed by the site's own tarot art. */
.ec-unlock-personal { background:#fff; border-block:1px solid #ebbbd1; padding:54px 0; }
.ec-unlock-personal__layout { display:grid; grid-template-columns:280px minmax(0,1fr); align-items:center; gap:clamp(40px,6vw,88px); max-width:1180px; margin-inline:auto; }
.ec-unlock-personal__visual { position:relative; width:280px; height:274px; }
.ec-unlock-personal__card { position:absolute; top:30px; left:62px; display:grid; place-items:center; width:156px; height:216px; border:1px solid #c9a777; border-radius:5px; background:#402047; color:#eccb98; box-shadow:0 10px 22px -15px #40204780; }
.ec-unlock-personal__card::before { content:""; position:absolute; inset:7px; border:1px solid currentColor; opacity:.4; border-radius:2px; pointer-events:none; }
.ec-unlock-personal__card--left { transform:translate(-46px,5px) rotate(-18deg); }
.ec-unlock-personal__card--right { transform:translate(46px,5px) rotate(18deg); background:#623454; }
.ec-unlock-personal__card .ec-card-illustration { width:126px; height:164px; }
.ec-unlock-personal__card--front { top:8px; left:51px; display:flex; flex-direction:column; justify-content:flex-start; width:178px; height:252px; padding:7px; background:#fff5e4; color:#402047; transform:rotate(-3deg); box-shadow:0 12px 28px -13px #40204770; }
.ec-unlock-personal__card--front::before { display:none; }
.ec-unlock-personal__card--front img { display:block; flex:none; width:100%; height:177px; object-fit:cover; object-position:50% 24%; border-radius:0; }
.ec-unlock-personal__card-signature { margin-top:12px; font:italic 400 21px/1.2 var(--story-serif); color:#583047; }
.ec-unlock-personal__card-label { max-width:100%; margin-top:5px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:10px; color:#775d61; }
.ec-unlock-narrative .ec-unlock-personal h2 { margin:0 0 21px; max-width:19ch; font-size:clamp(36px,4.3vw,60px); line-height:1.08; color:#402047; }
.ec-unlock-personal__copy > p { max-width:49ch; margin:0; color:#57334e; font-size:clamp(16px,1.6vw,20px); line-height:1.65; }
.ec-unlock-personal__signature { display:block; margin-top:23px; padding-top:17px; border-top:1px solid #d9a8c0; color:#8e1452; font-size:13px; font-weight:600; }
@media (min-width:601px) and (max-width:959px) {
  .ec-unlock-personal__layout { grid-template-columns:220px minmax(0,1fr); gap:36px; }
  .ec-unlock-personal__visual { width:220px; height:240px; }
  .ec-unlock-personal__card { left:32px; }
  .ec-unlock-personal__card--front { left:21px; }
}
@media (max-width:600px) {
  .ec-unlock-personal { padding:28px 0 40px; }
  .ec-unlock-personal__layout { grid-template-columns:1fr; gap:20px; text-align:center; }
  .ec-unlock-personal__visual { width:218px; height:208px; justify-self:center; }
  .ec-unlock-personal__card { top:25px; left:54px; width:110px; height:154px; }
  .ec-unlock-personal__card--left { transform:translate(-34px,4px) rotate(-18deg); }
  .ec-unlock-personal__card--right { transform:translate(34px,4px) rotate(18deg); }
  .ec-unlock-personal__card--front { top:5px; left:39px; width:140px; height:192px; padding:6px; }
  .ec-unlock-personal__card--front img { height:129px; }
  .ec-unlock-personal__card .ec-card-illustration { width:86px; height:119px; }
  .ec-unlock-personal__card-label { margin-top:4px; font-size:9px; }
  .ec-unlock-personal__card-signature { margin-top:9px; font-size:17px; }
  .ec-unlock-narrative .ec-unlock-personal h2 { margin-inline:auto; font-size:clamp(32px,8.6vw,46px); }
  .ec-unlock-personal__copy > p { margin-inline:auto; }
  .ec-unlock-personal__signature { margin-top:22px; font-size:12px; }
}

/* One compact celestial spread: five sealed cards, then the purchase action. */
.ec-unlock-narrative .ec-unlock-reveal { position:relative; overflow:hidden; background:#29103a; color:#fff; padding:54px 0 24px; }
.ec-unlock-reveal__heading { position:relative; z-index:1; text-align:center; }
.ec-unlock-narrative .ec-unlock-reveal__heading h2 { margin:0; color:#fff8ee; font-size:clamp(36px,4.2vw,56px); font-weight:500; line-height:1.12; text-wrap:balance; }
.ec-unlock-steps { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:28px; max-width:1000px; margin:28px auto 6px; padding:0; list-style:none; }
.ec-unlock-steps > li { position:relative; display:grid; grid-template-columns:28px minmax(0,1fr); align-items:start; gap:11px; }
.ec-unlock-steps__number { display:grid; place-items:center; width:28px; height:28px; border:1px solid #a38466; border-radius:50%; color:#ecd1ad; font:500 15px/1 var(--story-serif); }
.ec-unlock-narrative .ec-unlock-steps h3 { margin:2px 0 7px; color:#fff3de; font:500 20px/1.25 var(--story-serif); }
.ec-unlock-steps p { margin:0; color:#dec8e1; font-size:12px; line-height:1.6; }
.ec-unlock-spread { position:relative; max-width:1000px; margin:0 auto; }
.ec-unlock-spread__dedication { display:flex; align-items:center; justify-content:center; gap:8px; margin:4px 0 0; color:#e8cda6; font-size:12px; line-height:1.5; text-align:center; overflow-wrap:anywhere; }
.ec-unlock-spread__dedication .rf-ico { flex:none; width:14px; height:14px; }
.ec-unlock-reveal__action { position:relative; text-align:center; margin:20px auto 0; }
.ec-unlock-reveal__action > p { margin:0 0 18px; color:#f5e9f3; font-size:16px; line-height:1.5; text-wrap:balance; }
.rf-body .ec-unlock-reveal__action .rf-btn { min-width:310px; min-height:54px; }
.ec-unlock-reveal__assurance { display:flex; flex-wrap:wrap; justify-content:center; gap:9px 24px; margin:14px 0 0; color:#dcc8df; font-size:11px; line-height:1.5; }
.ec-unlock-reveal__assurance > span { display:inline-flex; align-items:center; gap:6px; }
.ec-unlock-reveal__assurance .rf-ico { width:13px; height:13px; color:#ecd1ad; }
.ec-unlock-process__more { display:flex; align-items:flex-start; gap:12px; max-width:52ch; margin:25px 0 0; padding-top:20px; border-top:1px solid #624369; color:#dbc5de; font-size:12px; line-height:1.7; }
.ec-unlock-process__more .rf-ico { flex:none; width:20px; height:20px; margin-top:2px; color:#ecd1ad; }
.ec-unlock-process__more b { color:#fff; font-weight:600; }
/* Elena's introduction follows the spread on the same night background. */
.ec-unlock-chapter { --chapter-top:44px; display:grid; grid-template-columns:minmax(0,.85fr) minmax(0,1fr); gap:clamp(44px,5.5vw,88px); align-items:start; margin-top:42px; padding:var(--chapter-top) 0 30px; border-top:1px solid #624369; }
.ec-unlock-chapter__portrait { position:relative; margin:0; padding:10px; border:1px solid #c9a777; border-radius:10px; background:linear-gradient(160deg,#4b2456,#33163f); box-shadow:0 30px 60px -36px #000; }
.ec-unlock-chapter__portrait::before { content:""; position:absolute; z-index:1; inset:18px; border:1px solid #ecd1ad88; border-radius:4px; pointer-events:none; }
.ec-unlock-chapter__portrait img { display:block; width:100%; height:clamp(340px,30vw,420px); object-fit:cover; object-position:50% 30%; border-radius:5px; }
.ec-unlock-chapter__portrait figcaption { position:absolute; z-index:2; left:50%; bottom:-15px; translate:-50% 0; padding:5px 18px 6px; border:1px solid #c9a777; border-radius:30px; background:#29103a; color:#ecd1ad; font:italic 400 15px/1.2 var(--story-serif); white-space:nowrap; }
.ec-unlock-chapter__copy { position:relative; min-width:0; }
.ec-unlock-chapter__intro { margin:0 0 14px; color:#ecd1ad; font-size:11px; font-weight:600; letter-spacing:.14em; text-transform:uppercase; }
.ec-unlock-narrative .ec-unlock-chapter h2 { margin:0 0 24px; color:#fff; font-size:clamp(36px,3.3vw,48px); font-weight:500; line-height:1.08; }
.ec-unlock-chapter__copy > p:not([class]) { max-width:46ch; margin:0 0 22px; color:#dbc5de; font-size:14px; line-height:1.7; }
.ec-unlock-chapter__copy > .rf-btn { margin-top:10px; }

/* Reuse the home's Elena section with its current, compact composition. */
.ec-unlock-narrative .ec-meet,.ec-unlock-narrative .ec-meet__inner { min-height:660px; }
.ec-unlock-narrative .ec-meet__portrait { inset:0 53% 0 0; }
.ec-unlock-narrative .ec-meet__copy { width:47%; padding:64px 0; }
.ec-unlock-narrative .ec-meet h2 { width:100%; margin:0 0 25px; padding:0; font-size:clamp(39px,3.7vw,54px); }
.ec-unlock-narrative .ec-meet__copy > p:not(.ec-meet__intro) { font-size:15px; line-height:1.75; }
.ec-unlock-narrative .ec-meet small { font-size:11px; }
.ec-unlock-narrative .ec-meet__halo { animation:none; opacity:.12; }


.ec-unlock-guarantee { position:relative; overflow:hidden; padding:78px 0; background:#f0e6f4; }
.ec-unlock-guarantee__layout { display:grid; grid-template-columns:.75fr 1.25fr; gap:70px; align-items:center; }
.ec-unlock-guarantee__seal { position:relative; isolation:isolate; width:288px; height:288px; display:flex; flex-direction:column; align-items:center; justify-content:center; justify-self:center; padding-bottom:24px; border:1px solid #d9b77e; border-radius:50%; color:#f5dcaf; background:radial-gradient(circle at 35% 25%,#57305f,#28132e 78%); box-shadow:inset 0 0 0 7px #38203f,inset 0 0 0 8px #aa865b,0 18px 38px -18px #40204766; }
.ec-unlock-guarantee__seal::before,.ec-unlock-guarantee__seal::after { content:""; position:absolute; z-index:-1; inset:-13px; border:1px solid #b79bba; border-radius:50%; pointer-events:none; }
.ec-unlock-guarantee__seal::after { inset:-26px; border-color:#d5c2da; }
.ec-unlock-guarantee__seal > span { display:flex; margin-bottom:10px; }
.ec-unlock-guarantee__seal .rf-ico { width:28px; height:28px; }
.ec-unlock-guarantee__seal b { font:500 132px/.86 var(--story-serif); letter-spacing:-.07em; padding-right:.07em; color:#fff4de; }
.ec-unlock-guarantee__seal strong { font:500 23px/1.25 var(--story-serif); margin:9px 0 0; color:#f5dcaf; }
.ec-unlock-guarantee__seal small { position:absolute; bottom:15px; left:-14px; right:-14px; padding:12px 10px; border:1px solid #d6b078; border-radius:3px; background:#f5dcaf; color:#38203f; box-shadow:0 5px 12px #28132e24; font:600 14px/1.3 var(--story-sans); text-align:center; }
.ec-unlock-guarantee__seal i { position:absolute; right:11px; top:12px; color:#f5dcaf; font-size:30px; line-height:1; font-style:normal; text-shadow:0 2px 8px #28132e55; }
.ec-unlock-narrative .ec-unlock-guarantee h2 { color:#402047; font-size:clamp(35px,3.7vw,53px); line-height:1.12; margin:0 0 22px; }
.ec-unlock-guarantee__copy > p { font-size:15px; color:#624764; max-width:53ch; margin:0 0 23px; }
.ec-unlock-guarantee__copy ul { display:flex; flex-wrap:wrap; list-style:none; gap:12px 19px; padding:0; margin:0 0 29px; }
.ec-unlock-guarantee__copy li { display:flex; align-items:center; gap:6px; font-size:11px; color:#523757; }
.ec-unlock-guarantee__copy li .rf-ico { width:15px; height:15px; }
.ec-unlock-guarantee__help { display:block; width:fit-content; margin-top:17px; font-size:11px; color:#684467; text-underline-offset:4px; }
.ec-unlock-narrative .ec-questions { background:#fbf7fa; padding-block:85px; }
.ec-unlock-narrative .ec-questions__layout { grid-template-columns:.8fr 1.2fr; gap:75px; }
.ec-unlock-narrative .ec-faq summary { font-size:14px; padding-block:22px; }
.ec-unlock-narrative .ec-faq details > p { font-size:13px; }
.ec-unlock-narrative .ec-questions .ec-section-heading { position:sticky; top:40px; align-self:start; }
.ec-unlock-narrative .ec-questions .ec-section-heading h2 { font-size:clamp(40px,4vw,58px); }
.ec-unlock-narrative .ec-questions .ec-text-link { margin-top:20px; font-size:12px; }

.ec-unlock-final { position:relative; isolation:isolate; overflow:hidden; background:#28132e; padding:75px 0 72px; text-align:center; }
.ec-unlock-final::before,.ec-unlock-final::after { content:""; position:absolute; z-index:-1; width:650px; height:650px; top:-210px; left:-400px; border:1px solid #69486a; border-radius:50%; box-shadow:0 0 0 35px #28132e,0 0 0 36px #513454,0 0 0 74px #28132e,0 0 0 75px #432b48; opacity:.7; }
.ec-unlock-final::after { top:auto; left:auto; bottom:-420px; right:-300px; }
.ec-unlock-final__moon { display:block; color:#ecce9f; margin-bottom:20px; }
.ec-unlock-final__moon .rf-ico { width:45px; height:45px; }
.ec-unlock-narrative .ec-unlock-final h2 { font-size:clamp(36px,4.1vw,60px); line-height:1.1; color:#fff; margin:0 0 23px; }
.ec-unlock-final p { color:#dcc9dc; font-size:15px; margin:0 0 30px; }
.ec-unlock-final__offer { display:flex; flex-wrap:wrap; justify-content:center; align-items:center; gap:7px 18px; margin:-7px 0 22px; font-size:12px; line-height:1.5; color:#e2cfe0; }
.ec-unlock-final__offer strong { color:#f6deae; font-weight:600; }
.ec-unlock-final__assurance { display:flex; flex-wrap:wrap; justify-content:center; gap:12px 23px; margin-top:23px; color:#dbc6d9; font-size:10px; }
.ec-unlock-final__assurance span { display:flex; align-items:center; gap:6px; }
.ec-unlock-final__assurance .rf-ico { width:14px; height:14px; }
.rf-page-unlock .rf-footer { background:#fff; border:0; padding-block:48px 38px; }
.rf-page-unlock .rf-footer__logo { color:#402047; font-weight:500; }
.rf-page-unlock .rf-footer__tag { font-size:12px; }
.rf-page-unlock .rf-footer__legal { color:#6c576b; }
.rf-page-unlock .rf-sticky { border-top:1px solid #d9c6d8; background:#fffcfe; }
.rf-page-unlock .rf-modal__panel { border-radius:10px; border-color:#e2cfe0; }
.rf-page-unlock .rf-modal__title { color:#402047; font-weight:500; }
.rf-page-unlock .rf-modal__total { color:#402047; }
@media (min-width:960px) {
  .rf-page-unlock .rf-product__grid { grid-template-columns:1fr 1fr; grid-template-areas:"media info"; column-gap:clamp(38px,4.6vw,70px); align-items:start; }
  /* Give Elena her own editorial pause between the stories and guarantee. */
  .ec-unlock-narrative .ec-meet {
    display:grid;
    grid-template-columns:minmax(0,.9fr) minmax(0,1fr);
    align-items:stretch;
    gap:clamp(48px,5.5vw,88px);
    width:min(1456px,100%);
    min-height:0;
    margin:clamp(80px,6.4vw,112px) auto;
    padding-inline:clamp(24px,5.2vw,84px);
    background:transparent;
  }
  .ec-unlock-narrative .ec-meet__portrait {
    position:relative;
    z-index:0;
    inset:auto;
    min-height:580px;
    overflow:hidden;
    border-radius:10px;
    box-shadow:0 18px 45px -30px #40204745;
  }
  .ec-unlock-narrative .ec-meet__portrait img { position:absolute; inset:0; }
  .ec-unlock-narrative .ec-meet__inner { width:100%; min-height:0; padding:0; }
  .ec-unlock-narrative .ec-meet__copy { width:100%; padding:30px 0; }
  .ec-unlock-narrative .ec-meet h2 { background:transparent; }
  .ec-unlock-narrative .ec-meet__copy > p:not(.ec-meet__intro) { max-width:55ch; }
}
@media (max-width:1100px) {
  .rf-page-unlock .rf-rating { flex-wrap:wrap; }
  .rf-page-unlock .rf-rating__watch { margin-left:0; }
  .ec-unlock-guarantee__layout { gap:55px; }
  .ec-unlock-guarantee__seal { width:248px; height:248px; }
  .ec-unlock-guarantee__seal b { font-size:112px; }
}
@media (max-width:959px) {
  .ec-unlock-chapter { --chapter-top:48px; grid-template-columns:minmax(0,.8fr) minmax(0,1fr); gap:36px; }
  .ec-unlock-chapter__portrait img { height:380px; }
  .ec-unlock-narrative .ec-unlock-chapter h2 { font-size:36px; }
  .ec-unlock-chapter__copy > p:not([class]) { font-size:13px; }
  .ec-unlock-narrative .ec-meet,.ec-unlock-narrative .ec-meet__inner { min-height:650px; }
  .ec-unlock-narrative .ec-meet h2 { font-size:38px; }
  .rf-page-unlock .rf-footer { padding-bottom:calc(100px + env(safe-area-inset-bottom,0px)); }
  .rf-page-unlock .rf-product { padding-top:25px; }
  .rf-page-unlock .rf-product .rf-wrap { max-width:700px; padding-inline:26px; }
  .rf-page-unlock .rf-product__info { padding-top:8px; }
  .rf-page-unlock .rf-h1--product { font-size:43px; }
  .ec-unlock-narrative .rf-wrap { padding-inline:32px; }
  .ec-unlock-guarantee__layout { grid-template-columns:.7fr 1.3fr; gap:45px; }
  .ec-unlock-guarantee__seal { width:222px; height:222px; padding-bottom:28px; }
  .ec-unlock-guarantee__seal b { font-size:96px; }
  .ec-unlock-guarantee__seal strong { font-size:20px; }
  .ec-unlock-guarantee__seal small { bottom:8px; padding-block:10px; font-size:12px; }
  .ec-unlock-narrative .ec-unlock-guarantee h2 { font-size:36px; }
  .ec-unlock-narrative .ec-questions__layout { grid-template-columns:1fr; gap:30px; }
  .ec-unlock-narrative .ec-questions .ec-section-heading { position:static; }
  .ec-unlock-narrative .ec-questions .ec-section-heading h2 + p { max-width:48ch; }
}
@media (max-width:600px) {
  .ec-unlock-process__more { font-size:12px; }
  .ec-unlock-chapter { grid-template-columns:104px minmax(0,1fr); gap:14px 20px; align-items:center; margin-top:30px; padding:28px 0 8px; }
  .ec-unlock-chapter__portrait { grid-column:1; grid-row:1 / 3; padding:4px; }
  .ec-unlock-chapter__portrait::before { inset:8px; }
  .ec-unlock-chapter__portrait img { height:139px; object-position:50% 22%; }
  .ec-unlock-chapter__portrait figcaption { bottom:-8px; padding:3px 7px; font-size:10px; }
  .ec-unlock-chapter__copy { display:contents; }
  .ec-unlock-chapter__intro { grid-column:2; align-self:end; margin:0; font-size:9px; line-height:1.5; letter-spacing:.07em; }
  .ec-unlock-narrative .ec-unlock-chapter h2 { grid-column:2; align-self:start; font-size:clamp(23px,6.8vw,28px); margin:0; }
  .ec-unlock-chapter__copy > p:not([class]) { grid-column:1 / -1; max-width:none; font-size:13px; margin:12px 0 0; }
  .ec-unlock-chapter__copy > .rf-btn { grid-column:1 / -1; width:100%; margin-top:0; font-size:13px; }
  .ec-unlock-chapter__copy > .ec-unlock-process__more { display:none; }
  .ec-unlock-narrative .ec-meet { min-height:0; padding-top:365px; }
  .ec-unlock-narrative .ec-meet__portrait { inset:0 0 auto; height:340px; }
  .ec-unlock-narrative .ec-meet__portrait img { object-position:50% 33%; }
  .ec-unlock-narrative .ec-meet__inner { min-height:0; }
  .ec-unlock-narrative .ec-meet__copy { width:100%; padding:0 0 54px; }
  .ec-unlock-narrative .ec-meet h2 { font-size:38px; }
  .ec-unlock-narrative .ec-meet__copy > p:not(.ec-meet__intro) { font-size:14px; }
  .rf-body .ec-unlock-narrative .ec-meet .rf-btn { width:100%; }
  .rf-page-unlock .rf-topbar { font-size:10px; padding-block:8px; }
  .rf-anniversary-bar { column-gap:14px; font-size:12px; }
  .rf-anniversary-bar__title { gap:7px; }
  .rf-page-unlock .rf-anniversary-bar__title b { font-size:12px; }
  .rf-anniversary-bar .rf-offer-clock { font-size:15px; }
  .ec-unlock-final__offer { flex-direction:column; font-size:11px; gap:4px; }
  .rf-page-unlock .rf-header { padding-block:18px; }
  .rf-page-unlock .rf-product { padding:21px 0 39px; }
  .rf-page-unlock .rf-product .rf-wrap { padding-inline:20px; }
  .rf-page-unlock .rf-product__grid { gap:31px; }
  .rf-page-unlock .rf-personal-summary strong { font-size:25px; }
  .rf-page-unlock .rf-personal-summary { margin-bottom:16px; }
  .rf-preview-progress { padding:17px 15px; gap:11px; margin-top:20px; }
  .rf-preview-progress__icon { width:37px; height:37px; }
  .rf-preview-progress__icon .rf-ico { width:24px; height:24px; }
  .rf-preview-progress__copy > p { font-size:19px; }
  .rf-page-unlock .rf-rating { gap:7px; margin-bottom:18px; }
  .rf-page-unlock .rf-rating__watch { margin-left:auto; }
  .rf-page-unlock .rf-rating .rf-score-stars .rf-stars svg { width:12px; height:12px; }
  .rf-page-unlock .rf-rating a { font-size:10px; }
  .rf-page-unlock .rf-h1--product { font-size:38px; }
  .rf-page-unlock .rf-offer-intro { font-size:14px; }
  .rf-page-unlock .rf-for b { font-size:13px; }
  .rf-page-unlock .rf-for > span { font-size:10px; }
  .ec-unlock-narrative .rf-wrap { padding-inline:24px; }
  .ec-unlock-guarantee { padding:65px 0 49px; }
  .ec-unlock-guarantee__layout { grid-template-columns:1fr; gap:61px; }
  .ec-unlock-guarantee__seal { width:240px; height:240px; }
  .ec-unlock-guarantee__seal::before { inset:-11px; }
  .ec-unlock-guarantee__seal::after { inset:-22px; }
  .ec-unlock-guarantee__seal b { font-size:112px; }
  .ec-unlock-guarantee__seal .rf-ico { width:26px; height:26px; }
  .ec-unlock-guarantee__seal strong { margin-top:7px; }
  .ec-unlock-guarantee__seal small { font-size:13px; }
  .ec-unlock-narrative .ec-unlock-guarantee h2 { font-size:34px; }
  .ec-unlock-guarantee__copy > p { font-size:14px; }
  .ec-unlock-guarantee__copy ul { display:grid; gap:13px; }
  .ec-unlock-guarantee__copy .rf-btn { width:100%; font-size:13px; padding-inline:15px; }
  .ec-unlock-guarantee__help { margin-inline:auto; }
  .ec-unlock-narrative .ec-questions { padding-block:52px; }
  .ec-unlock-narrative .ec-questions .ec-section-heading h2 { font-size:40px; }
  .ec-unlock-narrative .ec-questions .ec-section-heading h2 + p { font-size:13px; margin-top:19px; }
  .ec-unlock-narrative .ec-faq summary { font-size:13px; }
  .ec-unlock-narrative .ec-faq details > p { font-size:12px; line-height:1.8; }
  .ec-unlock-final { padding:52px 0; }
  .ec-unlock-narrative .ec-unlock-final h2 { font-size:36px; }
  .ec-unlock-final p { font-size:13px; }
  .ec-unlock-final .rf-btn { width:100%; font-size:14px; }
  .ec-unlock-final__assurance { gap:12px; font-size:9px; }
}
@media (prefers-reduced-motion:reduce) {
  .rf-page-unlock .rf-btn { transition:none; }
}

@media (max-width:380px) {
  .rf-page-unlock .rf-sticky { gap:8px; padding-inline:10px; }
  .rf-page-unlock .rf-sticky .rf-btn { font-size:12px; padding-inline:8px; }
}

/* Mobile: 20 px side gutters across the /unlock page; the top bar keeps 10 px and the
   gallery bleeds back out to 10 px so the visuals stay as large as possible. */
@media (max-width:600px) {
  .rf-page-unlock .rf-topbar { padding-inline:10px; }
  .rf-page-unlock .rf-wrap,
  .rf-page-unlock .rf-product .rf-wrap,
  .rf-page-unlock .ec-unlock-narrative .rf-wrap,
  .rf-page-unlock .ec-video-series .ec-video-series__inner { padding-inline:20px; }
  .rf-page-unlock .rf-gallery { width:calc(100% + 20px); margin-inline:-10px; }
}

/* All five card positions fit at once on phones; no carousel or extra reading step. */
@media (max-width:600px) {
  .ec-unlock-narrative .ec-unlock-reveal { padding-top:34px; padding-bottom:24px; }
  .ec-unlock-narrative .ec-unlock-reveal__heading h2 { max-width:15ch; margin-inline:auto; font-size:36px; }
  .ec-unlock-steps { grid-template-columns:1fr; gap:14px; max-width:420px; margin:22px auto 0; }
  .ec-unlock-steps > li { grid-template-columns:24px minmax(0,1fr); gap:10px; }
  .ec-unlock-steps > li:not(:last-child)::after { content:""; position:absolute; top:29px; bottom:-9px; left:11px; width:1px; background:#a384664d; }
  .ec-unlock-steps__number { width:24px; height:24px; font-size:13px; }
  .ec-unlock-narrative .ec-unlock-steps h3 { margin:2px 0 4px; font-size:17px; }
  .ec-unlock-steps p { font-size:12px; line-height:1.5; }
  .ec-unlock-spread__dedication { margin-top:0; gap:6px; font-size:10px; }
  .ec-unlock-spread__dedication .rf-ico { width:12px; height:12px; }
  .ec-unlock-reveal__action { margin-top:20px; }
  .ec-unlock-reveal__action > p { max-width:30ch; margin:0 auto 15px; font-size:14px; }
  .rf-body .ec-unlock-reveal__action .rf-btn { width:100%; min-width:0; min-height:52px; padding-inline:15px; font-size:14px; }
  .ec-unlock-reveal__assurance { gap:7px; margin-top:12px; font-size:10px; }
  .ec-unlock-reveal__assurance > span { justify-content:center; flex-basis:100%; }
}
