/* 8skin editorial details — printed labels, patterned margins, fine rules. */
:root{--editorial-sky:#cde5fc;--editorial-light:#eef7ff;--editorial-lemon:#f5efad}
header{border-bottom:0;position:relative}header:after{content:'';position:absolute;bottom:0;left:0;right:0;height:4px;border-block:1px solid var(--blue)}
.avatar{box-shadow:3px 3px 0 #cde5fc;border-color:var(--blue)}
.correspondence-heading{padding:9px 0;border-top:0;border-bottom:1px solid var(--blue)}
.correspondence-heading>span{font-size:11px;letter-spacing:.12em}.correspondence-heading time{background:var(--editorial-light);border:1px solid var(--blue);padding:5px 8px;border-radius:3px;position:relative}
.correspondence-title{padding:26px 19px 22px;margin-bottom:39px;background-color:#e6f2ff;background-image:linear-gradient(90deg,#94bee53b 50%,transparent 50%),linear-gradient(#94bee53b 50%,transparent 50%);background-size:20px 20px;border-bottom:1px solid #a9c9e8}
.correspondence-title:after{height:8px;bottom:-8px;background:radial-gradient(circle at 8px 0,#a9c9e8 7.5px,transparent 8px) 0 0/16px 8px repeat-x}
.cover-paper{position:relative;border:1px solid var(--blue);border-radius:3px 24px 3px 3px;padding:31px 15px 20px;background:#fff;box-shadow:5px 5px 0 #94bce4;min-width:0}
.cover-paper:before{content:'';position:absolute;top:7px;left:7px;right:7px;bottom:7px;border:1px solid #c7dbee;border-radius:0 17px 0 0;pointer-events:none}
.correspondence-title h1{position:relative;font-size:27px;padding-right:52px;line-height:1.95;letter-spacing:.005em;z-index:1}
.correspondence-title h1 span{background:var(--blue);color:#fff;padding:4px 6px;box-shadow:3px 3px 0 #bddcff}
.correspondence-title .letter-author{display:table;font-size:14px;color:var(--blue);border-bottom:1px solid var(--blue);padding:0 3px 4px;margin-top:18px;position:relative;z-index:1}
.cover-sticker{position:absolute;top:-21px;left:10px;width:62px;height:43px;background:var(--blue);color:#fff;clip-path:polygon(50% 0,59% 15%,76% 3%,78% 23%,98% 17%,90% 38%,100% 50%,87% 62%,95% 85%,74% 78%,73% 98%,55% 85%,43% 100%,34% 82%,13% 94%,18% 70%,0 69%,11% 49%,0 31%,21% 30%,18% 9%,39% 18%);font:900 12px/1.05 Arial,sans-serif;display:flex;align-items:center;justify-content:center;flex-direction:column;text-align:center;transform:rotate(-12deg);z-index:2}
.letter-issue{top:17px;right:11px;width:56px;height:56px;background:var(--editorial-lemon);border:1px solid var(--blue);outline:1px dashed var(--blue);outline-offset:-5px;box-shadow:2px 3px 0 #bfd6eb;transform:rotate(10deg);z-index:2}.letter-issue small{font-size:9px}.letter-issue b{font-size:24px}
.letter-body .letter-salutation{display:table;position:relative;border-bottom:1px solid var(--blue);padding:0 9px 7px 0;margin-top:0}.letter-salutation:after{content:'✳';font-size:22px;display:inline-block;color:var(--blue);margin-left:13px;vertical-align:middle}
.letter-body .letter-strength{border:1px solid var(--blue);border-radius:2px 20px 2px 2px;background:#eff7ff;padding:31px 21px 24px;margin-top:50px;box-shadow:5px 5px 0 #c8e0f7;position:relative}
.letter-body .letter-strength:before{position:relative;display:table;margin-top:-46px;margin-bottom:22px;padding:7px 12px;border:1px solid var(--blue);border-radius:4px;background:#fff;transform:rotate(-4deg);box-shadow:2px 2px 0 var(--blue);font-size:13px}
.letter-strength:after{content:'✧';position:absolute;right:12px;top:-23px;font-size:36px;color:var(--blue);line-height:1;background:#fff;padding:0 4px}
.letter-body .letter-chapter{margin:63px 0 29px;padding:28px 19px 25px;background:#e1effe;border:1px solid var(--blue);border-radius:0;box-shadow:4px 4px 0 #cce3fa;line-height:1.8;font-size:22px}
.letter-body .letter-chapter:before{margin:-42px 0 22px -6px;padding:7px 13px;display:table;border:1px solid var(--blue);background:#fff;color:var(--blue);box-shadow:2px 2px 0 var(--blue);border-radius:3px;transform:rotate(-4deg);font-size:13px}
.letter-body .letter-chapter:after{content:'';position:absolute;bottom:-10px;left:12px;right:12px;height:6px;background:repeating-linear-gradient(90deg,var(--blue) 0 5px,transparent 5px 10px);opacity:.7}
.letter-body .letter-chapter[data-chapter="SALON CARE"]{background:var(--blue);color:#fff;border-radius:22px 0 22px 0;box-shadow:4px 4px 0 #a8cdf1}.letter-body .letter-chapter[data-chapter="SALON CARE"]:before{background:var(--editorial-lemon)}
.care-number{background:#fff;border:1px solid var(--blue);outline:1px solid #b1cce7;outline-offset:3px;box-shadow:3px 4px 0 #cde5fc;width:41px;height:41px;font-size:24px;margin:0 12px 6px 3px;transform:rotate(-5deg)}
.letter-body .letter-step{padding-top:8px}.letter-body mark{background:linear-gradient(transparent 62%,#d6eaff 62%,#d6eaff 94%,transparent 94%);text-decoration:underline;text-decoration-color:#a8c9ed;text-underline-offset:5px;text-decoration-thickness:1px}
.letter-body .letter-treatment{border:1px solid var(--blue);border-radius:4px;background:#fff;padding:15px 17px;box-shadow:4px 4px 0 #cde5fc;position:relative;font-size:20px}.letter-body .letter-treatment:before{content:'';position:absolute;left:8px;top:8px;bottom:8px;border-left:2px dotted #8bb5de}
.letter-body .letter-closing{border-top:0;background:linear-gradient(90deg,var(--blue) 25%,transparent 25%,transparent 50%,var(--blue) 50%,var(--blue) 75%,transparent 75%) 0 0/16px 2px repeat-x;padding-top:37px;margin-top:47px}
.letter-body .letter-closing:before{display:table;margin:-53px auto 25px;border:1px solid var(--blue);border-radius:50%;background:#fff;font:italic 17px/1.3 Georgia,serif;letter-spacing:.02em;padding:9px 17px;transform:rotate(-7deg)}
.letter-endmark{display:flex;align-items:center;justify-content:center;gap:17px;height:auto;margin:37px 0 26px}.letter-endmark:before,.letter-endmark:after{content:'';display:block;width:48px;height:4px;border-block:1px solid var(--blue);background:none;margin:0}.letter-endmark span{font:bold 24px/1 Arial;letter-spacing:-1.5px;color:var(--blue);transform:rotate(-7deg);border:1px solid #7da6cf;outline:1px solid #7da6cf;outline-offset:3px;border-radius:50%;padding:15px 8px}
.letter-enclosures{position:relative;padding-top:0;border-top:0;border-bottom:1px solid var(--blue);background:#e2f0ff;padding-bottom:28px;isolation:isolate}
.editorial-ribbon{overflow:hidden;margin:0 -22px 31px;padding:10px 0;border-block:1px solid var(--blue);background:white;color:var(--blue);white-space:nowrap;font:900 21px/1.1 Arial;letter-spacing:-.4px}.editorial-ribbon span{display:block;transform:translateX(-11px)}
.letter-enclosures h2{position:relative;line-height:1.9;margin-bottom:22px}.letter-enclosures h2 small{display:table;background:#fff;border:1px solid var(--blue);border-radius:3px;padding:5px 9px;box-shadow:2px 2px 0 var(--blue);transform:rotate(-4deg);margin-bottom:17px}
.letter-enclosures .enclosure-row{background:#fff;border:1px solid #709bc7;padding:17px 13px;margin:12px 0;border-radius:4px;gap:10px;box-shadow:3px 3px 0 #bad5f1;font-size:15px}
.letter-enclosures .enclosure-row>svg:first-child{width:32px;height:32px;padding:5px;border:1px solid #9cbbd8;background:#eff7ff;flex-shrink:0}.letter-enclosures .enclosure-row>svg:last-child{width:28px;height:28px;border-color:#7199c4;background:#fff;color:var(--blue)}
.letter-enclosures>a.enclosure-row{background:var(--blue);color:#fff;border-radius:40px;padding:14px 16px}.letter-enclosures>a.enclosure-row>svg:first-child{border:0;background:none;color:#fff}
.letter-followup{position:relative;border:1px solid var(--blue);border-radius:4px;padding:30px 18px 19px;margin-top:49px;background:#fff;box-shadow:4px 4px 0 #cde5fc}.letter-followup:before{content:'NEXT LETTER';position:absolute;left:17px;top:-15px;padding:5px 10px;border:1px solid var(--blue);background:var(--editorial-lemon);font:800 12px/1.4 Arial;letter-spacing:.03em;transform:rotate(-3deg)}
.letter-followup>.text-btn{font-size:14px;line-height:1.8;padding:10px 0}.quiet-journey>summary{font-size:14px;line-height:1.8;border-top:1px dotted #7da6cf;padding-top:15px}
/* Carry the same print details into existing product and record surfaces. */
.product-visual{border:1px solid #98b7d6;border-radius:3px 17px 3px 3px;position:relative;box-shadow:3px 3px 0 #dcecff}.product-tag{border:1px solid var(--blue);border-radius:3px;background:#cde5fc;color:var(--blue);transform:rotate(-4deg);top:-9px;left:6px;font-size:12px;padding:3px 8px;z-index:2}
.product-recommendation{border:1px solid #96b7d9;border-radius:0 13px 0 0;box-shadow:3px 3px 0 #e1eefc}.reason-label{border-bottom:1px dotted #8aaed3;padding-bottom:10px}.product-buy{border-radius:40px}.product-buy svg{border:1px solid currentColor;border-radius:50%;padding:3px;width:25px;height:25px}
.record-overview{border:1px solid #8caed0;border-radius:3px 20px 3px 3px;box-shadow:4px 4px 0 #cee2f5}.section-head h2{padding-left:12px;border-left:4px double var(--blue)}
#bottom-nav{border-top:1px solid var(--blue)}#bottom-nav button.active{border:1px solid #a1c2e4;background:#e5f2ff;box-shadow:2px 2px 0 #c3daf1;border-radius:8px}#bottom-nav button{border:1px solid transparent}
@media(min-width:700px){.correspondence-title{padding:31px 35px 28px}.cover-paper{padding:35px 26px 23px}.correspondence-title h1{font-size:35px;padding-right:77px}.letter-issue{right:22px;width:75px;height:75px;top:23px}.letter-issue small{font-size:11px}.letter-issue b{font-size:31px}.cover-sticker{left:24px;width:73px;height:49px}.letter-body .letter-chapter{font-size:26px;padding:30px}.letter-body .letter-chapter:before{margin-top:-44px}.editorial-ribbon{margin-inline:-36px;font-size:27px}.letter-enclosures .enclosure-row{font-size:16px;padding:19px}.correspondence-heading>span{font-size:12px}}
@media(max-width:360px){.correspondence-title{padding:25px 13px 22px}.cover-paper{padding:30px 11px 18px}.correspondence-title h1{font-size:23px;padding-right:43px}.letter-issue{width:47px;height:47px;right:9px;top:20px}.letter-issue b{font-size:21px}.letter-issue small{font-size:8px}.correspondence-heading>span{font-size:10px;letter-spacing:.04em}.correspondence-heading time{font-size:11px;padding:4px}.letter-body .letter-strength{padding-inline:17px}.letter-body .letter-chapter{padding-inline:15px;font-size:20px}.editorial-ribbon{margin-inline:-17px;font-size:20px}.letter-enclosures .enclosure-row{padding-inline:10px;font-size:14px}.letter-followup{padding-inline:13px}}
@media(prefers-reduced-motion:no-preference){.enclosure-row:hover,.product-buy:hover{transform:translateY(-2px)}.enclosure-row,.product-buy{transition:transform .15s ease,background-color .15s ease}}
/* Keep the salutation ornament in the margin, including reports with trailing newlines. */
.letter-body .letter-salutation{padding-right:9px}.letter-salutation:after{position:absolute;left:100%;top:2px;margin-left:10px;white-space:normal}

/* Issue-wide polish: chapter openers, numbered selections, invitation tickets. */
.journal-heading,.page-title{position:relative;margin-top:7px;padding:20px 0 23px;border-bottom:1px solid var(--blue)}
.journal-heading:after,.page-title:after{content:'';position:absolute;bottom:-5px;left:0;width:58px;height:9px;background:repeating-linear-gradient(90deg,var(--blue) 0 3px,#fff 3px 6px)}
.journal-kicker,.page-title>.eyebrow{display:table;font:800 12px/1.6 Arial,sans-serif;letter-spacing:.075em;margin:0 0 22px;padding:5px 10px;border:1px solid var(--blue);border-radius:3px;background:#e5f2ff;box-shadow:2px 2px 0 var(--blue);transform:rotate(-2deg)}
.journal-heading h1,.page-title h1{font-size:27px;font-weight:800;letter-spacing:.015em;line-height:1.65}.journal-heading p,.page-title>p{font-size:14px;line-height:1.9;margin-top:12px;color:#48688a}
.catalog-switch{margin-top:27px}.catalog-switch button{position:relative}.catalog-switch button.active:after{content:'';display:block;position:absolute;bottom:-5px;left:calc(50% - 4px);width:8px;height:8px;background:var(--blue);transform:rotate(45deg)}
.filter-fold{margin:10px 0 18px;border:1px solid #a6c4e2;border-radius:3px;background:#f4f9ff}.filter-fold>summary{padding:13px 11px;gap:10px;font-size:14px}.filter-fold>summary>span:last-child{border-left:1px solid #aec9e4;padding-left:9px;white-space:nowrap;color:var(--blue)}
.category-tabs{padding-bottom:9px}.category-tabs .chip{border:1px solid #729bca;box-shadow:2px 2px 0 #d4e7fb;margin-bottom:3px}.category-tabs .chip.active{box-shadow:2px 2px 0 #8cb9e6}
.results-caption{margin:12px 0 24px;border-bottom:1px dotted #81a8cf;padding-bottom:10px;font-size:13px}.results-caption>span:last-child{min-width:34px;padding:1px 8px;border:1px solid #80a7ce;border-radius:30px;text-align:center;background:#eaf4ff}
.product-grid{counter-reset:selection}.product{position:relative;counter-increment:selection;padding-top:46px;margin-top:16px;border-top:1px solid #8daed0}.product:before{content:'SELECTION / ' counter(selection,decimal-leading-zero);position:absolute;top:-13px;left:0;font:800 12px/1.4 Arial;letter-spacing:.08em;background:#fff;color:var(--blue);border:1px solid var(--blue);padding:5px 10px;border-radius:3px;transform:rotate(-2deg)}
.product-visual{background-color:#edf5ff!important;background-image:linear-gradient(#fff9 1px,transparent 1px),linear-gradient(90deg,#fff9 1px,transparent 1px);background-size:16px 16px;border-radius:4px 20px 4px 4px;padding-top:25px}.product-tag{top:-10px;left:8px;background:var(--editorial-lemon);box-shadow:2px 2px 0 #a4c5e8}.product-visual .save-heart{box-shadow:2px 2px 0 #afccea}
.product-copy .brand-name{font-size:12px;line-height:1.7;letter-spacing:.015em}.product-price strong{font-variant-numeric:tabular-nums;letter-spacing:-.025em}.product-recommendation{position:relative;margin-top:12px;padding-top:24px;background:#f5faff}.reason-label{display:flex;flex-wrap:wrap;gap:6px 10px;align-items:center;border-bottom:0;font-weight:800}.reason-label:before{display:none}.reason-label i{font-size:14px;font-style:normal;font-weight:600}.product-recommendation p{font-size:15px;line-height:2}
.product-secondary{gap:10px;justify-content:space-between}.product-secondary .text-btn{font-size:14px;text-underline-offset:5px}.report-shortcut{border:1px solid var(--blue);padding:17px 12px;box-shadow:3px 3px 0 #d1e6fc;background:#fff;border-radius:4px}
.salon-invitation{position:relative;isolation:isolate;background:#0b4fa2;padding:32px 22px 29px;margin:12px 2px 44px;border:1px solid #0756b9;outline:1px solid #a9caec;outline-offset:-9px;border-radius:70px 70px 3px 3px;box-shadow:5px 5px 0 #c7dff8}
.salon-invitation:before{content:'';position:absolute;inset:15px;border:1px dotted #a7caef;border-radius:56px 56px 0 0;pointer-events:none;z-index:-1}.salon-invitation .invitation-edition{display:table;margin:0 auto 13px;background:#e6f2ff;color:#074f9f;border:1px solid #aacdec;padding:4px 10px;border-radius:25px;font:700 10px/1.6 Arial;letter-spacing:.06em;max-width:100%}.salon-invitation .invitation-spark{font-size:38px;line-height:1.2;color:#f4e9a7}.salon-invitation h1{font-size:29px;line-height:1.75;letter-spacing:.05em;margin:10px 0}.salon-invitation small{font:700 10px/1.5 Arial;letter-spacing:.09em}.salon-intro .editor-en{font:800 12px/1.4 Arial;letter-spacing:.07em;border-bottom:1px solid #82aacf;padding-bottom:12px;margin-bottom:17px}.salon-intro h2{font-size:23px}.salon-intro p{font-size:15px;line-height:1.9}
.treatment-ticket{position:relative;border:1px solid var(--blue);border-radius:4px;background:#fff;padding:0 19px 22px;margin-top:31px;box-shadow:5px 5px 0 #cfe3f9}.ticket-number{margin:0 -19px 22px;padding:11px 16px;border-bottom:1px dashed var(--blue);background:#e4f1ff;font:800 13px/1.7 Arial;letter-spacing:.06em}.ticket-number span{color:var(--blue);font-size:20px;line-height:1}.treatment-ticket h2{font-size:23px;line-height:1.7;margin-top:16px}.treatment-ticket .original-copy{font-size:16px;line-height:2.1}.treatment-ticket .btn{border-radius:30px;min-height:50px;box-shadow:2px 3px 0 #c0d8f0}
.record-overview{margin-top:30px;padding:23px 18px;background:#e5f2ff;position:relative}.record-overview>span{font-family:Arial,sans-serif;font-size:31px;letter-spacing:-1px;border-bottom:3px double var(--blue);padding-bottom:5px}.record-overview p{font-size:15px}.record-overview small{font-size:13px}
.record-links{border:1px solid #91b2d4;margin-top:24px;border-radius:3px;padding:0 13px}.record-links .link-row{font-size:15px;gap:11px;padding:18px 0;border-bottom-style:dotted}.record-links .link-row>svg:last-child{width:25px;height:25px;padding:4px;border:1px solid #7ea5ce;border-radius:50%}.record-links .link-row small{line-height:1.8}
.section-head{margin-top:37px}.section-head h2{font-size:21px;line-height:1.6}.section-head>span{font-size:13px;white-space:nowrap}.visit-history>.btn{border-radius:30px}.visit-entry{position:relative;border:1px solid #97b6d6;padding:6px 14px 16px;margin:19px 0;background:#fff;box-shadow:3px 3px 0 #e0edfb;border-radius:3px}.visit-entry .link-row{font-size:16px}.visit-entry .link-row>span{font-weight:700}.visit-entry .link-row small{font-weight:400}.visit-entry>.hint{font-size:13px;margin-top:13px}.visit-entry>.btn{border-radius:30px;margin-top:12px}
.record-fold{border:1px solid #aec7e0;border-radius:4px;margin-top:15px;padding:0 14px}.record-fold>summary{min-height:56px;padding:16px 0;font-size:15px}.record-fold[open]{padding-bottom:17px}.empty{background:#f2f8ff;border:1px dashed #9ab8d7;border-radius:4px;padding:24px 17px;font-size:15px;line-height:1.9}.empty h2{font-size:21px}
.compare-selectors{border-block:1px solid #a6c2df;padding:18px 0;margin:15px 0 29px}.compare-selectors label{font-size:14px;line-height:1.7}.compare-selectors select{margin-top:7px;border-radius:3px;background:#f2f8ff;border-color:#8db0d4;font-size:14px;padding-inline:8px}.age-milestone{position:relative;border:1px solid var(--blue);border-radius:4px 27px 4px 4px;background:#deefff;box-shadow:5px 5px 0 #c0dcf8;padding:25px 18px;margin-bottom:32px}.age-milestone>span{display:table;background:#fff;border:1px solid var(--blue);border-radius:4px;margin:-39px auto 20px;padding:6px 10px;font:700 12px/1.5 Arial;transform:rotate(-3deg)}.age-milestone h2{font-size:20px}.age-delta{font-family:Arial,sans-serif;font-size:66px;font-weight:800;font-variant-numeric:tabular-nums;letter-spacing:-4px}.age-delta small{font-size:23px;letter-spacing:0;margin-left:10px}.trend-chart{background-color:#f4f9ff;border:1px solid #93b5d8;border-radius:3px}.trend-chart circle{fill:white;stroke:var(--blue);stroke-width:3}.metric-table th{background:#e8f3ff}.metric-table td{font-variant-numeric:tabular-nums}.metric-table caption{font-size:15px;font-weight:600;margin:13px 0}
.using-card{border:1px solid #93b2d3;border-radius:4px;box-shadow:4px 4px 0 #d4e7fa;padding:23px 16px;margin-top:29px}.using-card .btn{border-radius:30px}.using-card .last-feedback{border:1px dashed #8aaed2;background:#edf6ff}.feedback-options span{border-radius:4px;box-shadow:2px 2px 0 #dceafb}
dialog{border:1px solid #7ea6d0}.modal-head{border-bottom:3px double #7fa4cc}.modal-head button{background:#e4f1ff;border:1px solid #79a2cc;box-shadow:2px 2px 0 #c0d8ef}.shop-offer{border-radius:4px;box-shadow:3px 3px 0 #dceafa}.shop-offer:first-of-type{background:#edf6ff}.detail-image{border:1px solid #9ebcda;border-radius:3px 20px 3px 3px}.why{border:1px solid #9cbbda;border-radius:3px;box-shadow:3px 3px 0 #d5e8fa}
footer{position:relative;border-top:3px double #8badcf;margin-top:37px;padding-top:22px;font-size:12px;color:#41658b}
a:focus-visible,button:focus-visible,summary:focus-visible{outline:3px solid #a67b29;outline-offset:4px}
@media(min-width:700px){.journal-heading h1,.page-title h1{font-size:33px}.salon-invitation{padding:37px 30px 35px}.salon-invitation h1{font-size:35px}.product{padding-top:49px}.product-recommendation p{font-size:16px}.treatment-ticket{padding-inline:25px}.ticket-number{margin-inline:-25px}.treatment-ticket h2{font-size:26px}}
@media(max-width:360px){.journal-heading h1,.page-title h1{font-size:24px}.journal-kicker,.page-title>.eyebrow{font-size:11px;letter-spacing:.04em}.filter-fold>summary{font-size:12px;padding-inline:8px}.filter-fold>summary>span:last-child{padding-left:6px}.record-overview>span{font-size:26px}.record-overview p{font-size:14px}.section-head h2{font-size:19px}.compare-selectors select{font-size:12px;padding-inline:4px}.salon-invitation h1{font-size:26px}.treatment-ticket h2{font-size:21px}}
@media(prefers-reduced-motion:no-preference){button:active,a.btn:active{transform:translateY(1px)}.product-image-button img{transition:transform .2s}.product-image-button:hover img{transform:scale(1.04)}}

/* Mobile reference composition: full-bleed opening, boundary badges, centered capsules. */
.letter-body .letter-strength{padding:30px 0 28px;margin:0 0 29px;border:0;border-bottom:1px solid #b2c9df;border-radius:0;background:#fff;box-shadow:none;color:#214b76;font-size:18px;line-height:2;font-weight:650;text-align:left}
.letter-body .letter-strength:before{position:static;display:table;margin:-11px auto 24px;border:1px solid #2a5d8c;border-radius:30px;padding:8px 16px;background:#fff;box-shadow:none;transform:none;font:600 12px/1.3 Arial;letter-spacing:.03em}.letter-strength:after{display:none}
.letter-body .letter-chapter{margin:56px -22px 38px;padding:40px 26px 33px;text-align:center;background:#e7f2fd;border:0;border-block:1px solid #7198bf;box-shadow:none;border-radius:0;font-size:22px;line-height:1.85}
.letter-body .letter-chapter:before{position:static;margin:-58px auto 23px;display:table;padding:8px 16px;border-radius:30px;transform:none;box-shadow:none;background:#fff;font-size:12px}.letter-body .letter-chapter:after{content:'✳';position:absolute;left:calc(50% - 19px);right:auto;bottom:-21px;height:38px;width:38px;display:grid;place-items:center;background:#fff;color:#24649f;opacity:1;font-size:30px;line-height:1}
.letter-body .letter-chapter[data-chapter="SALON CARE"]{border-radius:0;background:#bfddf7;color:#174b7b;box-shadow:none}
.letter-body .letter-treatment{margin:38px 0 24px;padding:0 7px 14px;text-align:center;background:#fff;border:0;border-bottom:1px solid #a2bbd4;box-shadow:none;border-radius:0;font-size:21px}.letter-body .letter-treatment:before{display:none}
.care-number{border-radius:50%;background:#e2f0ff;box-shadow:none;outline:none;transform:none;width:39px;height:39px;margin-right:9px}
/* Product photo/caption overlap echoes the reference's mobile article cards. */
.product{grid-template-columns:42% minmax(0,1fr);column-gap:0;padding-top:22px;margin-top:35px;border-top:0}.product:before{top:-14px;left:0;transform:none;background:#fff;border-radius:4px;padding:5px 9px;z-index:2}.product-visual{border:0;border-radius:0;box-shadow:none;padding:23px 6px 16px;background-image:none!important;background-color:#e7f2fc!important;min-height:205px;margin-right:-14px}.product-visual img{height:163px}.product-tag{left:auto;right:4px;top:-10px;transform:none;background:#c5e0f8;border-color:#416d96;box-shadow:none;border-radius:4px;font-size:11px;padding:5px 9px}.product-copy{align-self:end;position:relative;border:1px solid #52799f;background:white;border-radius:4px;padding:14px 12px;margin-left:0;margin-top:35px;z-index:1;min-width:0}.product-copy h2{font-size:17px;line-height:1.75;margin-top:5px}.product-copy .brand-name{font-size:11px}.product-price{margin-top:14px}.product-price small{font-size:11px}.product-price strong{font-size:23px}.product-visual .save-heart{bottom:7px;right:19px;width:34px;height:34px;box-shadow:none}.product-recommendation{margin-top:20px;border:0;border-top:1px solid #a0bbd6;background:white;box-shadow:none;border-radius:0;padding:21px 0 4px}.reason-label{display:table;border:1px solid #799abb;border-radius:30px;padding:5px 11px;font-size:11px;margin:-36px auto 17px;background:white}.reason-label i{font-size:12px}.product-buy{min-height:48px}.product-secondary{margin-bottom:19px}
.journal-heading,.page-title{padding-top:8px;padding-bottom:19px}.journal-kicker,.page-title>.eyebrow{margin-bottom:17px;box-shadow:none;transform:none;border-radius:30px;background:white;padding:6px 12px}.journal-heading:after,.page-title:after{display:none}.filter-fold{margin-bottom:12px}.results-caption{margin-bottom:12px}.catalog-switch{margin-top:18px}
.salon-invitation{margin:0 -22px 57px;padding:28px 26px 40px;border-radius:0;outline:0;border:0;box-shadow:none;background:#c8e2f8;color:#174b7b}.salon-invitation:before{display:none}.salon-invitation:after{content:'✧';position:absolute;left:calc(50% - 26px);bottom:-26px;width:52px;height:52px;display:grid;place-items:center;background:#f2e69c;border-radius:50%;font-size:36px;color:#174b7b;border:1px solid #6386a9}.salon-invitation .invitation-edition{background:#fff;color:#184d7e;border:1px solid #7295b6;font-size:11px;margin-bottom:19px}.salon-invitation .invitation-spark{display:none}.salon-invitation h1{color:#164978;font-size:28px;line-height:1.75;margin:15px 0}.salon-invitation h1:first-line{background:white}.salon-invitation p{font-size:15px}.salon-invitation small{display:block;font-size:10px;margin-top:23px}.salon-intro{text-align:center}.salon-intro .editor-en{display:table;border:1px solid #6b90b5;border-radius:30px;padding:8px 14px;margin:0 auto 24px}.treatment-ticket{margin-top:42px;padding-top:19px;box-shadow:none;border-color:#789abb}.ticket-number{display:table;border:1px solid #537fa8;border-radius:4px;padding:5px 13px;background:#c7e2f8;margin:-35px 0 22px auto;transform:none}.ticket-number span{margin-left:18px}.treatment-ticket h2{text-align:center;font-size:22px}.treatment-ticket .btn{box-shadow:none}.record-overview{box-shadow:none;border-radius:4px}.record-links{border-radius:4px}.visit-entry{box-shadow:none}.age-milestone{box-shadow:none}.age-milestone>span{transform:none;border-radius:30px}.letter-enclosures .enclosure-row{box-shadow:none}.letter-enclosures h2 small{box-shadow:none;transform:none;border-radius:30px}.letter-enclosures>a.enclosure-row{background:#164f88;border:1px solid #164f88}.editorial-ribbon{font-size:24px;padding-block:12px}
@media(min-width:700px){.letter-body .letter-chapter{margin-inline:-36px;padding-inline:40px}.product{grid-template-columns:40% minmax(0,1fr)}.product-visual{min-height:255px}.product-visual img{height:218px}.product-copy{padding:21px}.product-copy h2{font-size:23px}.product-price strong{font-size:28px}.salon-invitation{margin-inline:-36px;padding:35px 40px 42px}.salon-invitation h1{font-size:35px}}
@media(max-width:360px){.letter-body .letter-chapter{margin-inline:-17px;padding-inline:21px}.salon-invitation{margin-inline:-17px;padding-inline:21px}.product-copy{padding:12px 9px}.product-copy h2{font-size:16px}.product-price strong{font-size:21px}.product-visual img{height:143px}.product-visual{min-height:191px}}
.salon-invitation small{color:#315d87}
@media(max-width:699px){#bottom-nav{width:calc(100% - 18px);bottom:8px;border:1px solid #315f8d;border-radius:5px;padding:5px 3px calc(5px + env(safe-area-inset-bottom));background:#d7eafb;box-shadow:3px 3px 0 #709dc88c;gap:2px}#bottom-nav button{min-height:52px;border-radius:25px;font-size:12px;color:#315574}#bottom-nav button.active{background:#fff;border:1px solid #4c79a4;box-shadow:2px 2px 0 #a3c5e6;border-radius:25px;color:#0756af}#bottom-nav svg{height:20px;width:20px}#toast{bottom:102px}}
/* Product readability: square image, inset recommendation, separate purchase action. */
.product-visual{aspect-ratio:1/1;min-height:0!important;padding:0!important;margin-right:0;overflow:visible;display:block}.product-image-button{display:block;width:100%;height:100%;aspect-ratio:1/1;padding:12px}.product-visual .product-image-button img{display:block;width:100%;height:100%!important;object-fit:contain;padding:0}.product-visual .save-heart{right:8px;bottom:8px}.product-copy{margin-top:27px;margin-left:-8px}.product-recommendation{border:1px solid #abc3dc;border-radius:4px;background:#f4f9ff;padding:22px 19px 19px!important;margin:25px 0 0!important}.product-recommendation .reason-label{margin:-37px 0 18px;background:#fff;padding:6px 10px;line-height:1.6}.product-recommendation p{margin:0;font-size:16px;line-height:2.05;overflow-wrap:anywhere}.product .product-buy{margin-top:21px!important}.product-secondary{justify-content:flex-end}.history-season-tabs{display:flex;gap:6px;margin:9px 0 13px}.history-season-tabs button{flex:1;min-height:48px;padding:6px 2px;border:1px solid #9cbad7;border-radius:7px;font-size:14px;background:#fff}.history-season-tabs button[aria-pressed=true]{color:white;background:var(--blue);border-color:var(--blue)}.history-season-tabs small{display:block;font-size:12px}.pdf-demo-entry{padding:20px 17px;border:1px dashed #81a5c9;margin:24px 0;background:#f4f9ff;border-radius:5px}.pdf-demo-entry p{font-size:14px;line-height:1.9;margin:9px 0 17px}.compare-notice p{font-size:14px;margin-top:8px}.pdf-bars{border:1px solid #88abcd;background:#f2f8ff;padding:21px 17px;border-radius:5px}.pdf-bars h2{font-size:22px;margin-bottom:22px}.pdf-bar-row{display:flex;gap:15px;align-items:center;margin:21px 0}.pdf-bar-row>span{width:85px;font-weight:700}.pdf-bar-row small{display:block;font-size:12px;font-weight:400}.pdf-bar-row>div{flex:1}.pdf-bar-track{height:16px;background:#e0eaf6;margin-top:7px;border-radius:4px;overflow:hidden}.pdf-bar-track i{display:block;height:100%;background:#0756af}.pdf-bar-row:nth-of-type(2) i{background:#669ace}.sample-difference{font-size:16px;line-height:1.9;margin:23px 0}.sample-difference strong{color:var(--blue)}
/* Folder tabs and fine stationery details for the cosmetics selection. */
.product-recommendation{--folder-paper:#edf6ff;background:var(--folder-paper);border:1px solid #5882ac;border-radius:0 12px 12px 12px;padding:25px 20px 22px!important;margin-top:48px!important;box-shadow:3px 4px 0 #dceafa}
.product-recommendation .reason-label{position:relative;display:table;max-width:calc(100% + 20px);margin:-57px 0 21px -21px;padding:8px 17px 9px 15px;min-height:33px;background:var(--folder-paper);border:1px solid #5882ac;border-bottom:0;border-radius:10px 15px 0 0;line-height:1.5;white-space:normal;color:#174f88}
.product-recommendation .reason-label:after{content:'';position:absolute;bottom:-2px;left:0;right:0;height:4px;background:var(--folder-paper)}
.product-recommendation .reason-label i{margin-left:7px;font-size:12px}.product-recommendation p{position:relative;z-index:1}
.product:before{border:0;padding:4px 0 7px;letter-spacing:.14em;background:none;font-size:11px}
.product-visual{border:1px solid #a0bdd8;border-radius:12px 12px 3px 12px;background-image:radial-gradient(#7da5cc55 .7px,transparent .7px)!important;background-size:9px 9px}
.product-tag{border-radius:6px 6px 0 0;top:-26px;right:10px;padding:5px 10px;background:#e7f2fc;border-bottom:0;font-size:11px}
.product{padding-top:37px}.product-copy{border-radius:3px 14px 3px 3px;box-shadow:3px 3px 0 #dceafa}.product-price{border-top:1px dashed #b2c8de;padding-top:11px}
.product .product-buy{box-shadow:2px 3px 0 #c2d9ef}.product-secondary .text-btn{font-size:14px}
.catalog-switch{gap:6px;border-bottom:1px solid #638ab1;padding-bottom:0}.catalog-switch button{border:1px solid #638ab1;border-bottom:0;border-radius:11px 11px 0 0;padding:13px 17px;background:#edf5fc}.catalog-switch button.active{background:#cbe4fa;color:#164f88}.catalog-switch button.active:after{display:none}
.results-caption{border-block:1px solid #97b5d3;padding-block:10px}.results-caption>span:last-child{border:1px solid #729ac1;border-radius:50%;padding:5px 10px;background:#f6efbb;color:#174f88}
@media(max-width:360px){.product-recommendation .reason-label{padding-inline:11px;font-size:10px}.product-recommendation .reason-label i{font-size:11px;margin-left:4px}}

/* Compact product spread: image and unboxed copy, right-aligned reason tab. */
.product{grid-template-columns:minmax(100px,34%) minmax(0,1fr);column-gap:18px;align-items:start}
.product-visual{margin:0;align-self:start}
.product-visual .product-tag{position:absolute;top:7px;left:7px;right:auto;max-width:calc(100% - 14px);padding:3px 7px;font-size:11px;line-height:1.5;z-index:2}
.product-visual .product-image-button{padding:23px 10px 15px}
.product-copy{border:0;border-radius:0;box-shadow:none;background:transparent;padding:2px 0 0;margin:0;align-self:center}
.product-copy h2{font-size:17px;line-height:1.75;margin-top:6px}
.product-copy .brand-name{font-size:11px;line-height:1.65;margin-bottom:5px}
.product-recommendation{border-radius:12px 0 12px 12px}
.product-recommendation .reason-label{margin:-57px -21px 21px auto;max-width:calc(100% + 20px);border-radius:15px 10px 0 0}
@media(max-width:360px){.product{grid-template-columns:100px minmax(0,1fr);column-gap:14px}.product-copy{padding:0}.product-copy h2{font-size:16px}.product-recommendation .reason-label{padding-inline:11px}}
@media(min-width:700px){.product{grid-template-columns:190px minmax(0,1fr);column-gap:26px}.product-copy{padding:0}.product-copy h2{font-size:21px}}

/* Personal selection: white stationery and outlined category pills. */
.product-recommendation{--folder-paper:#fff;background:#fff}
.product-recommendation p{white-space:pre-wrap;display:block;max-height:none;overflow:visible;-webkit-line-clamp:unset}
.category-tabs{display:flex;flex-wrap:wrap;gap:9px;overflow:visible;padding:4px 0 16px}
.category-tabs button{display:inline-flex;align-items:center;justify-content:center;min-height:44px;min-width:58px;padding:9px 15px;border:1px solid #7b9fbe;border-radius:999px;background:transparent;color:#244f79;font-size:14px;line-height:1.5;cursor:pointer;box-shadow:none}
.category-tabs button.active{background:transparent;color:#0756b9;border:2px solid #0756b9;padding:8px 14px;font-weight:700;box-shadow:none}
.category-tabs button:focus-visible{outline:3px solid #94bde6;outline-offset:3px}

/* Neutral product photography and compact single-row category controls. */
.product .product-visual{background:#fff!important;background-image:none!important}
.product-visual .product-image-button{background:transparent;border:0;min-height:0;cursor:pointer}
.product-visual .product-image-button img{mix-blend-mode:normal;filter:none}
.product-visual .product-image-button:focus-visible{outline:3px solid #94bde6;outline-offset:3px;border-radius:10px}
.category-tabs{flex-wrap:nowrap;gap:5px;overflow-x:auto}
.category-tabs button{flex:1 0 auto;min-width:0;min-height:38px;padding:7px 8px;font-size:12px;white-space:nowrap}
.category-tabs button.active{padding:6px 7px}

/* Give LETTER / number room inside the seal. */
.letter-issue{width:72px;height:72px;outline-offset:-6px;padding:10px;gap:2px}
.letter-issue small{font-size:9px;line-height:1.3;letter-spacing:.06em}
.letter-issue b{font-size:25px;line-height:1.15}
.correspondence-title h1{padding-right:78px}
.letter-body .letter-chapter{font-size:19px;line-height:1.85;letter-spacing:0}
@media(max-width:360px){.letter-issue{width:66px;height:66px;right:8px}.correspondence-title h1{padding-right:65px}.letter-body .letter-chapter{font-size:16px}}
@media(min-width:700px){.letter-issue{width:86px;height:86px}.letter-issue small{font-size:10px}.letter-issue b{font-size:30px}.correspondence-title h1{padding-right:92px}.letter-body .letter-chapter{font-size:24px}}

/* Smaller category controls and rounded image labels. */
.category-tabs{gap:5px;justify-content:flex-start}
.category-tabs button{flex:0 0 auto;min-height:32px;padding:5px 9px;font-size:11px}
.category-tabs button.active{padding:4px 8px}
.product-visual .product-tag{border-radius:999px;border:1px solid #789cbe;background:#fff;box-shadow:none;padding:3px 8px;font-size:10px;line-height:1.5;transform:none}
.product-visual .product-tag:before,.product-visual .product-tag:after{display:none}

/* Keep product media from consuming the add-to-shelf dialog. */
.using-picker-row{display:grid;grid-template-columns:76px minmax(0,1fr);gap:16px;align-items:start}
.using-picker-row>img,.using-picker-row>div:first-child{width:76px!important;height:76px!important;min-width:0;object-fit:contain;padding:0!important;overflow:hidden}
.using-picker-row>div:last-child{min-width:0;width:auto!important;height:auto!important;overflow:visible}
.using-picker-row h3{font-size:14px;line-height:1.65;overflow-wrap:anywhere;margin-top:0}
.using-picker-row .btn{white-space:nowrap;padding:8px 12px;font-size:12px}
.modal-head button{background:white;border:1px solid #86acd1;color:#245b91;box-shadow:none}
.modal-head button:focus-visible{outline:2px solid #94bde6;outline-offset:3px}

#rakuten-service-credit{margin:9px 0 0;font-size:10px;line-height:1.6;font-weight:400;letter-spacing:0}#rakuten-service-credit a{color:#758492}
/* The footer's double rule already closes the product list. */
main>.product:last-child{border-bottom:0}

.feedback-options[hidden]{display:none}

/* Shared staff explanations: compact products first, one complete reason below. */
.shared-product-group{margin:24px 0 38px;min-width:0}
.shared-product-items{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px 14px}
.shared-product-items .product{display:flex;flex-direction:column;min-width:0;margin:0;padding:14px 0;border:0;gap:12px}
.shared-product-items .product-visual{width:100%;max-width:150px;align-self:center;justify-self:center;margin-inline:auto;aspect-ratio:1}
.shared-product-items .product-copy{align-self:stretch;padding:0}
.shared-product-items .product-copy h2{font-size:15px;line-height:1.65;overflow-wrap:anywhere}
.shared-product-items .product-copy .brand-name{font-size:10px}
.shared-product-items .product-buy{width:100%;padding:10px 12px;font-size:12px;margin-top:auto}
.shared-product-items .product-secondary{width:100%;font-size:11px}
.shared-product-items .product-secondary button{font-size:11px}
.shared-product-group>.product-recommendation{margin-top:42px;background:#fff}
@media(min-width:700px){.shared-product-items{gap:24px}.shared-product-items .product-copy h2{font-size:18px}}

/* 0.7.149 化粧品タブ：7分類（クレンジング〜UV）に増えたので、スマホでも横スクロールで隠さず折り返す */
.category-tabs{flex-wrap:wrap!important;overflow-x:visible!important}

/* 0.7.149 化粧品カードのレイアウト（オーナー指摘 2026-09-27）
 * 1. 画像が無いときの「商品画像を確認中」の四角が画像枠の下にはみ出る
 *    （products-auto.js の aspect-ratio:1 で幅＝高さになり、上下の余白が非対称な枠より18px高くなっていた）
 * 2. 2列表示のカードだけ上余白が14pxで、「SELECTION / 01」の札（下端+13px）と画像枠が接していた
 * 3. 後から足した .product .product-buy{margin-top:21px!important} が、
 *    2列表示の購入ボタン下揃え（margin-top:auto）を打ち消していた
 */
.product-image-button > div{aspect-ratio:auto!important;width:100%;height:100%;padding:8px 8px 46px!important;gap:6px;overflow:hidden}
.product-image-button > div svg{width:28px;height:28px}
.product-image-button > div small{font-size:11px;line-height:1.4}
.shared-product-items .product{padding-top:34px!important}
.shared-product-items .product .product-buy{margin-top:auto!important}
/* 4. 左右のカードで、商品名の行数が違うと点線・価格・ボタンの高さがずれる
 *    2枚を同じ行の格子（subgrid）に載せ、名前・価格・ボタンを行ごとにそろえる。
 *    subgrid 非対応の古い端末では 3. の下揃えだけが効く。
 */
@supports (grid-template-rows:subgrid){
.shared-product-items{grid-auto-rows:auto}
.shared-product-items .product{display:grid!important;grid-template-columns:minmax(0,1fr)!important;grid-template-rows:subgrid;grid-row:span 6;row-gap:0}
.shared-product-items .product .product-copy{display:contents}
.shared-product-items .product .brand-name{margin-top:18px}
.shared-product-items .product .product-price{align-self:start}
.shared-product-items .product .product-buy{margin-top:16px!important}
}

/* Series recommendations use the same image/name/buy hierarchy as product cards. */
.series-candidates .product{display:flex!important;flex-direction:column;grid-row:auto;gap:0}
.series-candidates .product .product-copy{display:block}
.series-candidates .series-guide{display:flex;flex:1;flex-direction:column;min-width:0}
.series-candidates .series-guide .product-visual{display:block;width:100%;padding:12px;background:#fff}
.series-candidates .series-guide .product-visual img{width:100%;height:160px;object-fit:contain}
.series-candidates .series-guide .product-copy{flex:1}
.series-candidates .product .brand-name{margin-top:0}
.series-candidates .series-guide+.series-guide{margin-top:24px}

/* Stable feedback sheet: expanding choices scroll inside a fixed-size viewport. */
dialog.feedback-dialog{height:90vh;height:90svh;max-height:90svh;overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain;overflow-anchor:none;scrollbar-gutter:stable}
html:has(dialog[open]),body:has(dialog[open]){overflow:hidden;overscroll-behavior:none}
#experience-form,#experience-form .field,#experience-form fieldset{min-width:0;max-width:100%}
#experience-form input[type=date]{display:block;box-sizing:border-box;width:100%;min-width:0;max-width:100%;min-height:48px;font-size:16px;-webkit-appearance:none;appearance:none}
#experience-form input[type=date]::-webkit-date-and-time-value{text-align:left;min-width:0}
.feedback-dialog .feedback-product>img,.feedback-dialog .feedback-product>div:first-child{flex:0 0 76px;width:76px;max-width:76px;height:90px;object-fit:contain}
.feedback-dialog .feedback-product h3{min-width:0;overflow-wrap:anywhere}
.feedback-record-guide{margin:20px 0;color:var(--muted);font-size:13px;line-height:1.8}
.feedback-record-guide p+p{margin-top:12px}.feedback-record-guide strong{display:block;color:var(--ink);font-size:14px}

.product-secondary{justify-content:flex-start}
.using-card .shopping-sub [data-shelf]{font-size:12px;color:var(--muted)}
#experience-save-status:empty{display:none}

.using-card .previous-feedback{font-size:12px;line-height:1.65;font-weight:400;color:#61758a;margin:0 0 16px;padding:0;border:0;background:none;box-shadow:none}.using-card .previous-feedback small{font-size:11px;white-space:nowrap}

.personal-product-icon{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;color:#50779b;background:#f5f9fd;border-radius:12px;box-sizing:border-box;padding:7px;flex-shrink:0}.personal-product-icon svg{display:block;width:60px;height:60px;max-width:100%;flex-shrink:0}.personal-product-icon span{font-size:10px;line-height:1.4;white-space:nowrap}.feedback-product>.personal-product-icon{width:82px;height:104px;flex:0 0 82px}.using-picker-row>.personal-product-icon{padding:4px!important}.using-picker-row>.personal-product-icon svg{width:48px;height:48px}

#note-form,#note-form .field{min-width:0;max-width:100%}#note-form input[type=date],#note-form select,#note-form textarea{display:block;box-sizing:border-box;width:100%;min-width:0;max-width:100%;font-size:16px}#note-form input[type=date]{min-height:48px;-webkit-appearance:none;appearance:none}#note-form input[type=date]::-webkit-date-and-time-value{text-align:left;min-width:0}

/* Keep the archive frame separate from keyboard focus and inner dividers. */
.skin-notes>.record-fold>summary{border:0;box-shadow:none}
.skin-notes>.record-fold>summary:focus-visible{outline:2px solid #50779b;outline-offset:-5px;border-radius:3px}
.skin-notes>.record-fold>.experience-entry:last-child{border-bottom:0;padding-bottom:0}

/* Diagnosis summary is also the entry to the skin-type explanation. */
button.record-type-link{width:100%;text-align:left;color:var(--blue);cursor:pointer;gap:14px}button.record-type-link>.record-type-info{min-width:0;flex:1}button.record-type-link>.record-type-info{font-family:inherit;font-size:12px;font-weight:400;line-height:1.7}button.record-type-link>.record-type-info{align-self:center}button.record-type-link>svg{flex-shrink:0;width:20px;height:20px}button.record-type-link:focus-visible{outline:2px solid var(--blue);outline-offset:4px}

/* Customer favorites are hidden; existing saved records are retained. */
.skin-favorites-shortcut,[data-favorite],[data-catalog="お気に入り"]{display:none!important}

button.record-type-link>.record-type-info{border-bottom:0;padding-bottom:0;letter-spacing:normal}

/* Readable comparison panel: dark ink on pale blue, including the white label. */
.age-milestone,.age-milestone h2,.age-milestone p,.age-milestone .age-delta,.age-milestone .age-delta small,.age-milestone>span{color:#174b7b}.age-milestone>span{background:#fff;font-weight:700}.age-milestone p{line-height:1.8}

.compare-selectors{border-top:0}

/* Keep paired product images comfortably inside their frames. */
.shared-product-items .product-visual img{width:80%!important;margin-inline:auto;display:block}

/* Direct series images must fit the square frame, including its bottom border. */
.shared-product-items .series-guide .product-visual{display:flex;align-items:center;justify-content:center;overflow:hidden}
.shared-product-items .series-guide .product-visual img{height:auto!important;aspect-ratio:1;object-fit:contain;max-height:100%}

/* Align paired size/quantity labels with the centered image frame. */
.shared-product-items .brand-name{width:100%;max-width:150px;margin-inline:auto;box-sizing:border-box;text-align:left}

/* Center the purchase label and arrow as one compact group. */
.product-buy{justify-content:center;gap:10px;padding-inline:12px}
.product-buy svg{position:static;flex-shrink:0;margin:0}

/* Match paired selection labels to the centered 150px image frames. */
.shared-product-items .product:before{left:max(0px,calc((100% - 150px)/2))}

/* 【朝のケア手順】などのラベル小見出し（2026-10-11） */
.letter-body .letter-care-label{display:inline-flex;align-items:center;gap:.45em;margin:1.6em 0 .5em;padding:.35em 1.1em .35em .8em;border-radius:999px;background:#fff;border:1.5px solid #b9d3f2;color:#0756af;font-size:1.02em;font-weight:800;letter-spacing:.06em;line-height:1.5;box-shadow:0 2px 0 #d5e6fa}
.letter-body .letter-care-label .care-label-icon{font-size:1.05em}

/* 番号は丸1つの中に普通の数字（2026-10-11） */
.letter-body .care-number{background:#fff;font-size:19px;font-weight:800;line-height:1;font-family:inherit;display:inline-flex;align-items:center;justify-content:center}

/* 2026-10-17 記録タブ：年齢カード・グラフ（本人指摘：指標値→年齢、上がっても赤くしない） */
.modal-head button{display:inline-grid;place-items:center;padding:0;line-height:0}
.modal-head button svg{display:block}
.age-pick-label{font-size:14px;font-weight:700;color:#174b7b;margin:18px 0 6px;display:flex;justify-content:space-between;align-items:baseline}
.age-pick-label small{font-size:12px;font-weight:400;color:#647b93}
.age-cards{display:flex;gap:10px;overflow-x:auto;padding:4px 2px 12px;margin:0 -22px;padding-inline:22px;scroll-snap-type:x proximity;-webkit-overflow-scrolling:touch;scrollbar-width:none}
.age-cards::-webkit-scrollbar{display:none}
.age-card{flex:0 0 116px;scroll-snap-align:start;display:flex;flex-direction:column;align-items:center;gap:4px;background:#fff;border:1px solid #c9dcee;border-radius:14px;padding:11px 8px 10px;text-align:center;color:#174b7b}
.age-card.on{border:2px solid #0756af;padding:10px 7px 9px;background:#f4f9ff}
.age-card-name{font-size:12.5px;color:#4b6683;display:flex;gap:4px;align-items:center;white-space:nowrap}
.age-card b{font-size:27px;line-height:1.15;font-weight:700;color:#123f72}
.age-card b small{font-size:12px;margin-left:1px}
.age-card b.age-card-word{font-size:16px;line-height:1.6;padding:5px 0}
.age-badge{display:inline-block;font-size:11px;font-style:normal;font-weight:700;border-radius:999px;padding:2px 9px;white-space:nowrap}
.age-badge.better{background:#e2f4ea;color:#1d6a44}
.age-badge.same{background:#eef2f6;color:#52677d}
.age-badge.up{background:#e9f1fb;color:#2d5d8f}
.age-focus{background:#fff;border:1px solid #c9dcee;border-radius:16px;padding:14px 14px 12px;margin-top:4px}
.age-focus-head{display:flex;justify-content:space-between;align-items:baseline;color:#174b7b}
.age-focus-head span{font-size:14px;font-weight:700}
.age-focus-head span small{display:block;font-size:11px;font-weight:400;color:#7a90a6}
.age-focus-head b{font-size:24px}.age-focus-head b small{font-size:12px}
.age-chart-scroll{overflow-x:auto;margin:6px -4px 0;-webkit-overflow-scrolling:touch}
.age-trend{display:block;min-width:100%;height:auto;max-width:none}
.age-trend .age-line{fill:none;stroke:#0756af;stroke-width:2.6;stroke-linejoin:round}
.age-trend .age-dot{fill:#fff;stroke:#0756af;stroke-width:2.4}.age-trend .age-dot.last{fill:#0756af}
.age-trend .real-age-line{fill:none;stroke:#9fb3c7;stroke-width:1.4;stroke-dasharray:5 5}
.age-trend .real-age-label{font-size:11px;fill:#7a90a6}
.age-trend .point-value{font-size:13px;font-weight:700;fill:#123f72}
.age-trend .axis-date{font-size:11px;fill:#4b6683}.age-trend .axis-seq{font-size:10px;fill:#8aa0b5}
.age-summary{border-top:1px dashed #c9dcee;margin-top:8px;padding-top:10px;color:#174b7b}
.age-summary span{font-size:12px;color:#647b93}.age-summary p{margin:2px 0;font-size:17px;font-weight:700}
.age-summary small{font-size:13px;color:#4b6683}
.sebum-list{list-style:none;padding:0;margin:10px 0}.sebum-list li{display:flex;justify-content:space-between;border-bottom:1px solid #e3ecf5;padding:7px 2px;font-size:14px}
.age-pair{margin-top:30px}.age-pair h2{font-size:18px;color:#174b7b}
.age-table td,.age-table th{white-space:nowrap}
.staff-detail{margin-top:14px}
.age-metrics strong{font-size:20px}
.past-letter{margin-top:20px}.past-letter .keepsake-letter{margin:0}

/* 2026-10-17 本人指摘：カードの始まりを下の枠の左端にそろえる・凡例は外に */
.age-cards{margin:0;padding:4px 0 12px;scroll-padding-left:0}
.age-card{flex-basis:104px}
.real-age-legend{display:flex;align-items:center;gap:8px;font-size:12.5px;color:#647b93;margin:6px 0 0;line-height:1.6}
.legend-dash{flex:0 0 22px;height:0;border-top:2px dashed #9fb3c7}
.skin-type-now{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;margin:18px 0 0;padding:10px 14px;background:#f2f8ff;border-radius:12px;color:#174b7b}
.skin-type-now span{font-size:12.5px;color:#4b6683}.skin-type-now b{font-size:16px}.skin-type-now small{font-size:12px;color:#647b93}

/* 2026-10-17 本人指摘：数字が点線と重ならないよう白でふちどる／LETTERの丸を内枠の内側へ */
.age-trend .point-value{paint-order:stroke;stroke:#fff;stroke-width:5px;stroke-linejoin:round}
.cover-paper .letter-issue{translate:-12px 4px}

/* 2026-10-17 前回までにご案内した化粧品 */
.previous-products{margin-top:48px;padding-top:26px;border-top:3px double #a6c2df}
.previous-products-title{font-size:20px;color:#174b7b;margin:0 0 6px}.previous-products-title small{display:block;font-size:11px;letter-spacing:.12em;color:#5d7fa3}
.previous-products-date{font-size:13px;font-weight:700;color:#4b6683;margin:18px 0 0}

/* 2026-10-17 本人指摘：矢印を選択欄の真ん中に・選択欄は白 */
.age-pair .compare-selectors{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:end;gap:10px}
.age-pair .compare-arrow{display:flex;align-items:center;height:44px;font-size:18px;color:#5d7fa3}
.age-pair .compare-selectors select{background:#fff;min-height:44px}

.previous-products-fold{margin-top:16px;border:1px solid #c9dcee;border-radius:12px;padding:0 14px}
.previous-products-fold>summary{cursor:pointer;padding:12px 0;font-size:14px;font-weight:700;color:#0756af;list-style:none}
.previous-products-fold>summary::-webkit-details-marker{display:none}
.previous-products-fold>summary::after{content:" ＋";color:#5d7fa3}.previous-products-fold[open]>summary::after{content:" −"}

.letter-chapter .salon-title-tail{display:inline-block;white-space:nowrap}
.letter-chapter[data-chapter="SALON CARE"]{text-wrap:balance}

/* 2026-10-17 試し：肌タイプの愛称・総合結果レーダー・水分皮脂マップ・次に育てたいところ・スタッフからのひとこと */
.skin-insight{margin:18px 0 26px;display:grid;gap:14px}
.insight-nick,.hitokoto-type{text-align:center;padding:16px 12px;border-radius:16px;background:#f2f8ff;color:#123f72}
.insight-nick small,.hitokoto-type small,.insight-grow small,.hitokoto-body small{display:block;font-size:12px;color:#4b6683;letter-spacing:.06em}
.insight-nick b,.hitokoto-type b{display:block;font-size:24px;letter-spacing:.08em;margin-top:2px}
.insight-card{background:#fff;border:1px solid #c9dcee;border-radius:16px;padding:14px}
.insight-card h3{margin:0;font-size:16px;color:#174b7b}.insight-card h3 span{display:block;font-size:11px;letter-spacing:.12em;color:#5d7fa3}
.insight-radar,.insight-map{display:block;width:100%;max-width:340px;margin:4px auto 0;height:auto}
.rd-grid{fill:none;stroke:#d8e5f2;stroke-width:1}
.rd-cur{fill:rgba(7,86,175,.22);stroke:#0756af;stroke-width:2}
.rd-prev{fill:none;stroke:#7d93aa;stroke-width:1.6;stroke-dasharray:4 3}
.rd-label{font-size:12px;fill:#174b7b;font-weight:700}.rd-label.good{fill:#1d6a44}.rd-age{font-size:11px;fill:#647b93}
.mp-bg{fill:#f7fbff;stroke:#c9dcee}.mp-axis{stroke:#c9dcee;stroke-dasharray:3 3}.mp-lab{font-size:11px;fill:#4b6683}
.mp-cur{fill:#0756af;stroke:#fff;stroke-width:2}.mp-prev{fill:#fff;stroke:#7d93aa;stroke-width:2}.mp-move{stroke:#7d93aa;stroke-width:1.5;stroke-dasharray:4 3}
.insight-legend{display:flex;justify-content:center;align-items:center;gap:6px;font-size:12px;color:#4b6683;margin:6px 0 0;flex-wrap:wrap}
.lg-cur{width:18px;height:10px;background:rgba(7,86,175,.3);border:2px solid #0756af;border-radius:2px;margin-left:6px}.lg-prev{width:18px;border-top:2px dashed #7d93aa;margin-left:10px}
.insight-note{font-size:12.5px;color:#4b6683;text-align:center;margin:6px 0 0}
.insight-grow{background:#fffbea;border:1px solid #efe1a8;border-radius:16px;padding:14px;color:#5b4a12}
.insight-grow b{display:block;font-size:18px;margin:2px 0 4px}.insight-grow p{margin:0;font-size:14px;line-height:1.8}
.staff-hitokoto{margin:22px 0 10px;display:grid;gap:10px}
.hitokoto-body{border:1px solid #c9dcee;border-radius:16px;padding:14px 16px;background:#fff}
.hitokoto-body p{margin:6px 0 0;font-size:15.5px;line-height:2;color:#123f72}
.hitokoto-body mark{background:linear-gradient(transparent 55%,#ffd9e2 55%);color:inherit;padding:0 2px}

.nick-why{display:block;width:100%;font-size:12.5px;line-height:1.75;color:#4b6683;margin:6px 0 0;text-align:left;font-weight:400}
.insight-nick .nick-why,.hitokoto-type .nick-why{text-align:center}
.lg-dot-cur{width:11px;height:11px;border-radius:50%;background:#0756af;margin-left:6px}
.lg-dot-prev{width:11px;height:11px;border-radius:50%;background:#fff;border:2px solid #7d93aa;margin-left:12px;box-sizing:border-box}

/* 2026-10-17 本人指摘：マップは上が水色・下が黄色（PDFと同じ）、次に育てたいところは白 */
.mp-top{fill:#e3f1fd}.mp-bottom{fill:#fff6d6}
.insight-grow{background:#fff;border-color:#c9dcee;color:#174b7b}
.cover-nick{margin:14px auto 0;padding:12px 14px;border-top:1px dashed #b9cfe6;max-width:420px;text-align:center;color:#123f72}
.cover-nick small{display:block;font-size:12px;color:#4b6683;letter-spacing:.06em}.cover-nick b{display:block;font-size:20px;letter-spacing:.06em;margin-top:2px}
.cover-nick .nick-why{text-align:left;margin-top:8px}
