/*
Theme Name: SKIN9HARI Renewal
Theme URI: https://skin9hari.co.kr/
Author: KW Cosmetic
Description: 스킨구하리 리뉴얼 사이트를 위한 전용 WordPress 테마
Version: 5.0.4
Text Domain: skin9hari
*/
:root{--ink:#1c1a18;--paper:#f7f3ed;--sand:#eadfD2;--muted:#716a63;--line:rgba(28,26,24,.16);--accent:#a97849}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;color:var(--ink);background:#fff;font-family:Pretendard,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;word-break:keep-all}body.admin-bar .site-header{top:32px}a{color:inherit;text-decoration:none}img,video{display:block;width:100%;max-width:100%}button,input{font:inherit}.eyebrow{margin:0 0 18px;font-size:10px;font-weight:700;letter-spacing:.22em}.benefit-bar{position:relative;z-index:120;height:34px;display:flex;align-items:center;justify-content:center;color:#fff;background:#181715;font-size:11px}.benefit-bar strong{margin:0 4px}
/* 혜택 합계의 근거를 같은 줄에 병기한다. 근거 없는 합계는 과장광고가 된다. (2026-08-20) */
.benefit-bar em{margin-left:6px;font-style:normal;opacity:.72;font-size:10px;letter-spacing:0}
.benefit-bar{gap:0;padding:0 12px;text-align:center;line-height:1.25}
@media(max-width:400px){.benefit-bar{font-size:10px}.benefit-bar em{font-size:9px;margin-left:4px}}
.site-header{position:fixed;z-index:110;top:34px;right:0;left:0;height:142px;display:grid;grid-template-rows:86px 56px;padding:0 4vw;color:var(--ink);border-bottom:1px solid transparent;transition:.35s}.site-header.is-overlay{color:#fff}
/* 밝은 히어로 영상 위에서 흰 메뉴가 묻히던 문제. (추가 2026-08-20)
   헤더 뒤에만 위→아래로 옅어지는 어두운 막을 깔아 대비를 확보한다.
   스크롤해서 흰 배경 헤더가 되면 이 막은 사라진다.
   되돌리기: 아래 두 규칙을 지운다. */
.site-header.is-overlay{text-shadow:0 1px 3px rgba(20,17,14,.5),0 0 12px rgba(20,17,14,.28)}
.site-header.is-scrolled{text-shadow:none}
.site-header.is-scrolled{top:0;height:108px;grid-template-rows:64px 44px;color:var(--ink);background:rgba(255,255,255,.97);border-bottom-color:var(--line);box-shadow:0 8px 28px rgba(30,25,20,.08);backdrop-filter:blur(12px)}.header-top{display:grid;grid-template-columns:1fr auto 1fr;align-items:center}.header-side{display:flex;gap:16px;font-size:11px}.header-tools{justify-self:end}.brand-mark{display:inline-flex;align-items:center;font-size:clamp(31px,3.7vw,52px);font-weight:300;letter-spacing:.02em;line-height:1}.site-header .brand-mark{grid-column:2}.site-header.is-scrolled .brand-mark{font-size:clamp(27px,2.7vw,36px)}.main-nav{display:grid;grid-template-columns:repeat(5,minmax(120px,1fr));width:min(1020px,82vw);height:100%;align-items:center;justify-self:center;text-align:center;font-size:14px}.main-nav a{position:relative;display:grid;height:100%;place-items:center}.main-nav a:after{content:"";position:absolute;right:50%;bottom:8px;left:50%;height:1px;background:currentColor;transition:.25s}.main-nav a:hover:after{right:35%;left:35%}
.hero{position:relative;height:100svh;min-height:700px;overflow:hidden;background:#ded8d1}.hero-slide{position:absolute;inset:0;opacity:0;pointer-events:none;transition:opacity .65s}.hero-slide.is-active{opacity:1;pointer-events:auto}.hero-slide>img,.hero-slide>video,.hero-slide picture,.hero-slide picture img{width:100%;height:100%;object-fit:cover}.hero-copy{position:absolute;z-index:3;top:50%;width:min(520px,38vw);transform:translateY(-36%)}.copy-right .hero-copy{right:7vw}.copy-left .hero-copy{left:7vw}.hero-copy h2,.section-heading h1,.section-heading h2,.routine-content h2,.review-intro h2,.ingredient-section h2,.story-section h2,.closing-section h2{margin:0;font-family:Hahmlet,serif;font-size:clamp(42px,4.7vw,72px);font-weight:500;line-height:1.16;letter-spacing:-.06em}.hero-copy>p:not(.eyebrow){margin:25px 0;color:#4f4943;font-size:14px;line-height:1.8}.hero-copy a,.ingredient-section a,.story-section a{display:inline-block;padding-bottom:7px;border-bottom:1px solid currentColor;font-size:12px}.hero-pagination{position:absolute;z-index:5;right:5vw;bottom:42px;left:5vw;display:grid;grid-template-columns:repeat(5,1fr);gap:18px}.hero-pagination button{padding:0 0 10px;color:rgba(255,255,255,.68);background:none;border:0;cursor:pointer;text-align:left;font-size:10px}.hero-pagination button span{display:block;height:1px;margin-bottom:9px;background:rgba(255,255,255,.35)}.hero-pagination button.is-active{color:#fff}.hero-pagination button.is-active span{height:2px;background:#fff}
.section{padding:140px 6vw}.section-heading{max-width:1450px;margin:0 auto 65px}.section-heading.center{text-align:center}.section-heading.center>p:last-child{margin-top:22px;color:var(--muted)}.section-heading.row{display:flex;align-items:flex-end;justify-content:space-between;gap:40px}.section-heading h1,.section-heading h2{font-size:clamp(42px,5.4vw,82px)}.section-heading.row>a{padding-bottom:7px;border-bottom:1px solid currentColor;font-size:12px}
.concern-section{background:#efe7dc}.concern-layout{display:grid;grid-template-columns:.72fr 1.28fr;gap:18px;max-width:1450px;margin:auto}.concern-tabs{display:grid;gap:8px}.concern-tab{position:relative;min-height:108px;display:grid;grid-template-columns:42px 1fr 35px;grid-template-rows:auto auto;align-items:center;padding:18px 20px;color:#fff;background:#9f8069;border:1px solid transparent;cursor:pointer;text-align:left;transition:.3s}.concern-tab:nth-child(2){background:#a88674}.concern-tab:nth-child(3){background:#b28f75}.concern-tab:nth-child(4){background:#927967}.concern-tab:nth-child(5){background:#806c5d}.concern-tab>span{grid-row:1/3;font-size:11px}.concern-tab strong{font-family:Hahmlet,serif;font-size:21px;font-weight:500}.concern-tab small{font-size:11px;opacity:.8}.concern-tab em{grid-column:3;grid-row:1/3;font-style:normal}.concern-tab.is-active{border-color:var(--ink);box-shadow:inset 0 0 0 2px rgba(255,255,255,.6);transform:translateX(6px)}.concern-result{display:none;grid-template-columns:.88fr 1.12fr;min-height:580px;background:#f7f3ed}.concern-result.is-active{display:grid}.concern-image img{height:100%;object-fit:cover}.concern-copy{display:flex;flex-direction:column;justify-content:center;padding:60px}.concern-copy h2{margin:0;font-family:Hahmlet,serif;font-size:clamp(42px,5vw,72px);font-weight:500}.concern-copy>p:not(.eyebrow){margin:25px 0;color:var(--muted);line-height:1.9}.concern-copy dl{padding:22px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.concern-copy dt{margin-bottom:8px;color:#8a8178;font-size:11px}.concern-copy dd{margin:0;font-size:13px}.concern-copy a{align-self:flex-start;margin-top:28px;padding-bottom:7px;border-bottom:1px solid currentColor;font-size:11px}
.products-section{background:#fff}.product-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;max-width:1450px;margin:auto}.product-image{position:relative;display:block;overflow:hidden;background:#f0ebe5}.product-image img{aspect-ratio:4/5;object-fit:cover;transition:.65s}.product-card:hover img{transform:scale(1.035)}.product-image span{position:absolute;top:16px;left:16px;padding:7px 9px;background:rgba(255,255,255,.88);font-size:9px;letter-spacing:.14em}.product-card>p{margin:22px 0 7px;color:#8b8278;font-size:10px;letter-spacing:.08em}.product-card h3{margin:0 0 14px;font-family:Hahmlet,serif;font-size:19px;font-weight:500}.product-card strong{margin-right:10px}.product-card del{color:#aaa;font-size:12px}
.routine-section{display:grid;grid-template-columns:1fr 1fr;min-height:850px;background:#e6d8c7}.routine-visual{position:relative;overflow:hidden}.routine-visual>img{height:100%;object-fit:cover}.routine-visual>div{position:absolute;right:30px;bottom:30px;left:30px;display:flex;justify-content:space-between;color:#fff;font-size:10px;letter-spacing:.08em}.routine-content{display:flex;flex-direction:column;justify-content:center;padding:90px 8vw}.routine-content h2{font-size:clamp(40px,4.6vw,68px)}.routine-live{min-height:3em;margin:28px 0;color:var(--muted);line-height:1.8}.routine-content ol{margin:0;padding:0;list-style:none}.routine-content li{border-top:1px solid rgba(28,26,24,.25)}.routine-content li:last-child{border-bottom:1px solid rgba(28,26,24,.25)}.routine-step{width:100%;display:grid;grid-template-columns:50px 1fr;align-items:center;padding:22px 0;background:none;border:0;cursor:pointer;text-align:left}.routine-step>span{width:34px;height:34px;display:grid;place-items:center;border:1px solid rgba(28,26,24,.4);border-radius:50%;font-size:9px;transition:.3s}.routine-step.is-active>span,.routine-step:hover>span{color:#fff;background:var(--ink);transform:scale(1.08)}.routine-step strong{display:block;font-family:Hahmlet,serif;font-size:18px}.routine-step small{display:block;margin-top:6px;color:#71685f;line-height:1.6}.button-link{align-self:flex-start;margin-top:30px;padding:15px 24px;color:#fff;background:var(--ink);font-size:11px}
.review-section{display:grid;grid-template-columns:.78fr 1.22fr;gap:70px;background:#fff}.review-intro h2{font-family:Pretendard,sans-serif;font-size:clamp(42px,4.8vw,70px);font-weight:500}.review-intro>p:not(.eyebrow){margin:28px 0;color:var(--muted);line-height:1.8}.review-score{display:grid;grid-template-columns:auto 1fr;align-items:center;gap:6px 18px;margin:35px 0}.review-score strong{grid-row:1/3;font-size:58px;font-weight:400}.review-score span{color:#af7e4e;letter-spacing:.1em}.review-score small{color:#8d857d}.review-intro>a{padding-bottom:8px;border-bottom:1px solid currentColor;font-size:12px}.review-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.review-cards article{min-height:230px;padding:24px;background:#f4f0ea}.review-cards span{color:#af7e4e;font-size:12px}.review-cards small{display:block;margin-top:22px;color:#857d75;letter-spacing:.14em}.review-cards h3{margin:20px 0;font-family:Hahmlet,serif;font-size:18px;font-weight:500;line-height:1.5}.review-cards p{color:#948b82;font-size:11px}
.ingredient-section,.story-section{position:relative;min-height:760px;display:flex;align-items:center;overflow:hidden;color:#fff;background:#40362e}.ingredient-section>img,.story-section>img{position:absolute;inset:0;height:100%;object-fit:cover}.ingredient-section:after,.story-section:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(30,25,22,.7),transparent 65%)}.ingredient-section>div,.story-section>div{position:relative;z-index:2;width:min(650px,48vw);margin-left:7vw}.ingredient-section p:not(.eyebrow),.story-section p:not(.eyebrow){margin:28px 0;color:rgba(255,255,255,.78);line-height:1.9}.guide-section{background:#f7f3ed}.guide-grid{display:grid;grid-template-columns:repeat(3,1fr);max-width:1450px;margin:auto;border-top:1px solid var(--ink)}.guide-grid article{min-height:270px;padding:30px;border-right:1px solid var(--line);border-bottom:1px solid var(--line)}.guide-grid article:last-child{border-right:0}.guide-grid>article>span{font-size:11px}.guide-grid h3{margin:35px 0 15px;font-family:Hahmlet,serif;font-size:25px;font-weight:500;line-height:1.5}.guide-grid p{color:var(--muted);font-size:13px;line-height:1.8}.guide-grid a{display:inline-block;margin-top:22px;padding-bottom:6px;border-bottom:1px solid currentColor;font-size:11px}.story-section:after{background:linear-gradient(90deg,rgba(30,25,22,.72),transparent 62%)}.closing-section{padding:150px 20px;text-align:center;background:#ece0d2}.closing-section>p{font-size:10px;letter-spacing:.2em}.closing-section h2{margin:22px 0 38px}.closing-section a{display:inline-block;padding:15px 25px;color:#fff;background:var(--ink);font-size:11px}
.editorial-main{padding-top:0}.editorial-main .site-header{color:var(--ink)}.page-hero{position:relative;height:100svh;min-height:720px;display:flex;align-items:flex-end;overflow:hidden}.page-hero>img{position:absolute;inset:0;height:100%;object-fit:cover}.page-hero:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(247,243,237,.86),transparent 64%)}.page-hero>div{position:relative;z-index:2;margin:0 0 8vw 7vw}.page-hero h1,.catalog-head h1,.media-hero h1{margin:0;font-family:Hahmlet,serif;font-size:clamp(56px,7vw,108px);font-weight:500;line-height:1.08;letter-spacing:-.07em}.page-hero>div>p:last-child{margin-top:28px;color:#514b45;line-height:1.9}.story-statement{padding:120px 8vw;background:#f7f3ed}.story-statement>div{display:grid;grid-template-columns:1fr 1fr;gap:10vw;align-items:center}.story-statement h2,.editorial-split h2,.community-section h2,.review-summary h2{margin:0;font-family:Hahmlet,serif;font-size:clamp(46px,5.2vw,78px);font-weight:500;line-height:1.16;letter-spacing:-.06em}.story-statement div p,.editorial-split p,.community-section p{color:var(--muted);line-height:2}.editorial-split{display:grid;grid-template-columns:1fr 1fr;min-height:760px;background:#eadfD2}.editorial-split.reverse{direction:rtl;background:#d4c1ab}.editorial-split.reverse>*{direction:ltr}.editorial-split>img{height:100%;object-fit:cover}.editorial-split>div{display:flex;flex-direction:column;justify-content:center;padding:8vw}.editorial-split blockquote{margin:30px 0;padding:20px 0 20px 25px;border-left:1px solid #9e704b;font-family:Hahmlet,serif;font-size:20px;line-height:1.7}.editorial-split ol{margin:35px 0 0;padding:0;list-style:none;border-top:1px solid rgba(28,26,24,.25)}.editorial-split li{display:flex;gap:30px;padding:22px 0;border-bottom:1px solid rgba(28,26,24,.25)}.community-section{position:relative;min-height:760px;display:flex;align-items:center;overflow:hidden;color:#fff}.community-section img{position:absolute;inset:0;height:100%;object-fit:cover}.community-section:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(25,20,17,.75),transparent 62%)}.community-section>div{position:relative;z-index:2;width:min(560px,45vw);margin-left:7vw}.community-section p{color:rgba(255,255,255,.75)}.community-section a{display:inline-block;margin-top:28px;padding-bottom:8px;border-bottom:1px solid currentColor}.brand-cta{display:grid;grid-template-columns:repeat(3,1fr);background:#f7f3ed}.brand-cta a{padding:45px;border-right:1px solid var(--line);text-align:center;font-size:13px}
.catalog-head{padding:250px 7vw 100px;background:#eadfD2}.catalog-head p:last-child{margin-top:30px;color:var(--muted)}.catalog-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:90px 20px;padding:120px 6vw;max-width:1600px;margin:auto}.catalog-grid article{min-width:0}.catalog-image{position:relative;display:block;overflow:hidden;background:#eee8df}.catalog-image img{aspect-ratio:4/5;object-fit:cover;transition:.6s}.catalog-grid article:hover .catalog-image img{transform:scale(1.03)}.catalog-image span{position:absolute;top:18px;left:18px;width:34px;height:34px;display:grid;place-items:center;color:#fff;background:rgba(28,26,24,.72);border-radius:50%;font-size:9px}.catalog-grid small{display:block;margin-top:22px;color:#8a8178;letter-spacing:.1em}.catalog-grid h2{margin:10px 0;font-family:Hahmlet,serif;font-size:27px;font-weight:500}.catalog-grid p{min-height:3em;color:var(--muted);line-height:1.7}.catalog-grid strong{margin-right:10px}.catalog-grid del{color:#aaa;font-size:12px}.catalog-link{display:inline-block;margin-top:20px;padding-bottom:6px;border-bottom:1px solid currentColor;font-size:11px}.catalog-routine{padding:120px 7vw;background:#e6d8c7}.catalog-routine h2{font-family:Hahmlet,serif;font-size:clamp(42px,5vw,72px);font-weight:500}.routine-line{position:relative;display:grid;grid-template-columns:repeat(4,1fr);margin-top:65px}.routine-line:before{content:"";position:absolute;top:0;right:12%;left:12%;height:1px;background:rgba(28,26,24,.3)}.routine-line span{position:relative;padding-top:30px;text-align:center;font-size:13px}
.review-archive{display:grid;grid-template-columns:.75fr 1.25fr;gap:80px;padding:120px 7vw;background:#f7f3ed}.review-summary h2{font-size:clamp(42px,4.6vw,68px)}.review-summary>div{display:grid;grid-template-columns:auto 1fr;gap:6px 18px;margin-top:40px}.review-summary strong{grid-row:1/3;font-size:60px;font-weight:400}.review-summary span{color:#af7e4e}.review-summary small{color:#8a8178}.review-widget{min-height:420px;padding:50px;background:#fff}.review-widget>p{color:var(--muted);line-height:1.8}.review-widget>a{display:inline-block;margin-top:25px;padding-bottom:7px;border-bottom:1px solid currentColor;font-size:12px}
.media-hero{position:relative;height:100svh;min-height:720px;display:flex;align-items:flex-end;overflow:hidden;color:#fff;background:#2b2520}.media-hero video{position:absolute;inset:0;height:100%;object-fit:cover}.media-hero:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent,rgba(15,12,10,.7))}.media-hero>div{position:relative;z-index:2;margin:0 0 7vw 7vw}.media-hero>div>p:last-child{margin-top:28px;color:rgba(255,255,255,.75)}.media-archive{padding:130px 6vw}.media-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.media-grid img{aspect-ratio:20/19;object-fit:contain;background:#eee8df}.media-grid small{display:block;margin-top:20px;color:#8a8178;letter-spacing:.14em}.media-grid h3{margin:12px 0;font-family:Hahmlet,serif;font-size:24px;font-weight:500}.media-archive .section-heading h2 span{font-size:.85em}
.guide-archive{padding:120px 7vw;background:#f7f3ed}.guide-tools{display:flex;align-items:flex-end;justify-content:space-between;gap:50px}.guide-tools h2{margin:0;font-family:Hahmlet,serif;font-size:clamp(46px,5vw,74px);font-weight:500}.guide-tools form{display:flex;width:min(420px,100%);border-bottom:1px solid var(--ink)}.guide-tools input{width:100%;padding:14px 0;background:transparent;border:0;outline:0}.guide-tools button{background:none;border:0}.guide-filter{display:flex;gap:8px;margin:45px 0}.guide-filter button{padding:10px 18px;background:transparent;border:1px solid var(--line);border-radius:30px}.guide-filter button.is-active{color:#fff;background:var(--ink)}.guide-list{border-top:1px solid var(--ink)}.guide-list>a{display:grid;grid-template-columns:70px 1fr 110px;gap:25px;align-items:center;padding:32px 0;border-bottom:1px solid var(--line)}.guide-list small{color:#8a8178}.guide-list h3{margin:8px 0;font-family:Hahmlet,serif;font-size:26px;font-weight:500}.guide-list p{margin:0;color:var(--muted)}.guide-list em{font-style:normal;font-size:11px}.empty-guide{padding:80px;text-align:center;background:#fff}
.policy-page{max-width:980px;margin:auto;padding:230px 40px 120px}.policy-page h1{font-family:Hahmlet,serif;font-size:clamp(48px,6vw,78px);font-weight:500}.policy-page h2{margin-top:65px;padding-top:25px;border-top:1px solid var(--line);font-size:25px}.policy-page p,.policy-page li{color:#555;line-height:1.9}.policy-page table{width:100%;border-collapse:collapse}.policy-page th,.policy-page td{padding:16px;border-bottom:1px solid var(--line);text-align:left}
.article-page{padding:230px 0 120px;background:#f7f3ed}.article-page>header,.article-content{width:min(900px,calc(100% - 40px));margin:auto}.article-page>header h1{margin:0;font-family:Hahmlet,serif;font-size:clamp(46px,6vw,78px);font-weight:500;line-height:1.2;letter-spacing:-.06em}.article-page>header>div{display:flex;gap:25px;margin-top:28px;color:#827a72;font-size:12px}.article-hero{width:min(1200px,calc(100% - 40px));margin:70px auto}.article-hero img{max-height:720px;object-fit:cover}.article-content{color:#3d3935;font-size:17px;line-height:2}.article-content h2{margin:75px 0 25px;font-family:Hahmlet,serif;font-size:36px;font-weight:500}.article-content h3{margin-top:45px;font-size:24px}.article-content table{width:100%;margin:35px 0;border-collapse:collapse}.article-content th,.article-content td{padding:15px;border:1px solid var(--line);text-align:left}.article-content figure{margin:50px 0}.article-content figcaption{margin-top:12px;color:#847c74;font-size:12px;text-align:center}
.site-footer{display:grid;grid-template-columns:1.2fr .8fr .65fr 1.2fr;gap:45px;padding:70px 6vw 35px;color:#bcb6af;background:#1b1917;font-size:11px;line-height:1.8}.site-footer .brand-mark{color:#fff;font-size:30px}.footer-brand p{margin-top:15px}.footer-links{display:flex;flex-direction:column;align-items:flex-start;gap:7px;color:#ede8e2}.footer-links strong{margin-bottom:5px;color:#77716b;font-size:8px;letter-spacing:.18em}.site-footer small{grid-column:1/-1;padding-top:25px;color:#6f6a65;border-top:1px solid rgba(255,255,255,.1)}
@media(max-width:900px){.product-grid{grid-template-columns:repeat(2,1fr)}.catalog-grid{grid-template-columns:repeat(2,1fr)}.review-section{grid-template-columns:1fr}.concern-layout{grid-template-columns:.8fr 1.2fr}.concern-result{grid-template-columns:1fr}.concern-image{min-height:280px}.site-footer{grid-template-columns:1fr 1fr}.footer-brand,.footer-info{grid-column:1/-1}}
@media(max-width:720px){body.admin-bar .site-header{top:46px}.benefit-bar{height:38px}.site-header,.site-header.is-overlay{top:38px;height:114px;grid-template-rows:66px 48px;padding:0 16px;color:var(--ink);background:transparent}.site-header.is-scrolled{top:0;height:114px;grid-template-rows:66px 48px;background:rgba(255,255,255,.97)}/* 모바일에서도 로그인·회원가입·BAG·MY·SEARCH 를 노출한다 (수정 2026-08-19). 예전엔 .header-side{display:none} 한 줄로 좌우 두 덩어리를 다 지웠다. 로고는 아래 규칙에서 절대배치로 가운데 고정되므로 header-top 을 flex 로 바꿔 좌(로그인·회원가입) / 우(BAG·MY·SEARCH) 로 벌린다. 헤더 높이 114px 는 그대로다. 실측 390px : 로그인 16→90, 로고 106→244, 도구 260→357 — 겹치지 않는다. 되돌리기 : 아래 세 줄을 .header-side{display:none} 로 되돌린다 */.header-top{display:flex;align-items:center;justify-content:space-between}.header-side{display:flex;gap:9px;font-size:10px;letter-spacing:.06em;white-space:nowrap}.header-side a{padding:12px 0}.site-header .brand-mark,.site-header.is-scrolled .brand-mark{grid-column:1/-1;justify-self:center;font-size:27px}.main-nav{width:100%;grid-template-columns:repeat(5,minmax(0,1fr));font-size:0}.main-nav a{padding:0 2px;font-size:0}.main-nav a:before{content:attr(data-mobile-label);font-size:11px}.main-nav a:after{display:none}.hero{height:82svh;min-height:650px}.hero-slide>img,.hero-slide>video,.hero-slide picture img{object-position:center}.hero-copy{top:auto;right:22px!important;bottom:95px!important;left:22px!important;width:auto;transform:none;color:#1c1a18}.hero-copy h2{font-size:38px}.hero-copy>p:not(.eyebrow){font-size:12px}.hero-pagination{right:18px;bottom:22px;left:18px;gap:7px}.hero-pagination button{overflow:hidden;font-size:8px;white-space:nowrap}.section{padding:90px 18px}.section-heading.row{display:block}.section-heading.row>a{display:inline-block;margin-top:25px}.section-heading h1,.section-heading h2{font-size:41px}.concern-layout{display:block}.concern-tab{min-height:88px;grid-template-columns:35px 1fr 25px}.concern-tab.is-active{transform:none}.concern-results{margin-top:20px}.concern-copy{padding:35px 24px}.product-grid{gap:10px}.product-card h3{font-size:15px}.product-card>p{font-size:8px}.routine-section{grid-template-columns:1fr;min-height:0}.routine-visual{min-height:480px}.routine-content{padding:75px 22px}.routine-content h2{font-size:41px}.review-cards{grid-template-columns:repeat(2,1fr)}.review-cards article{min-height:210px;padding:18px}.ingredient-section,.story-section{min-height:640px}.ingredient-section:after,.story-section:after{background:linear-gradient(180deg,transparent 30%,rgba(25,20,17,.8))}.ingredient-section>div,.story-section>div{width:auto;margin:240px 24px 50px;align-self:flex-end}.ingredient-section h2,.story-section h2,.closing-section h2{font-size:41px}.guide-grid{grid-template-columns:1fr}.guide-grid article{border-right:0}.page-hero{height:82svh;min-height:650px}.page-hero:after{background:linear-gradient(180deg,rgba(247,243,237,.2),rgba(247,243,237,.92))}.page-hero>div{margin:0 22px 55px}.page-hero h1,.catalog-head h1,.media-hero h1{font-size:47px}.story-statement{padding:80px 22px}.story-statement>div{grid-template-columns:1fr;gap:35px}.story-statement h2,.editorial-split h2,.community-section h2{font-size:42px}.editorial-split,.editorial-split.reverse{grid-template-columns:1fr;direction:ltr;min-height:0}.editorial-split>img{height:460px}.editorial-split>div{padding:75px 24px}.community-section{min-height:680px}.community-section:after{background:linear-gradient(180deg,transparent 30%,rgba(25,20,17,.82))}.community-section>div{width:auto;margin:260px 24px 55px;align-self:flex-end}.brand-cta{grid-template-columns:1fr}.brand-cta a{border-right:0;border-bottom:1px solid var(--line)}.catalog-head{padding:210px 22px 80px}.catalog-grid{grid-template-columns:1fr;gap:75px;padding:80px 16px}.catalog-routine{padding:80px 22px}.routine-line{grid-template-columns:1fr 1fr;gap:35px}.routine-line:before{display:none}.review-archive{grid-template-columns:1fr;padding:80px 22px}.review-widget{padding:28px}.media-hero>div{margin:0 24px 70px}.media-archive{padding:80px 16px}.media-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:26px 12px}.guide-archive{padding:80px 16px}.guide-tools{display:block}.guide-tools form{margin-top:35px}.guide-list>a{grid-template-columns:40px 1fr}.guide-list em{display:none}.guide-list h3{font-size:21px}.guide-list p{font-size:12px}.policy-page{padding:200px 20px 90px}.site-footer{grid-template-columns:1fr 1fr;gap:34px 24px;padding:50px 24px 28px}.site-footer .footer-brand,.site-footer .footer-info{grid-column:1/-1}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;animation:none!important;transition:none!important}}

/* WordPress admin bar + coupon banner collision guard */
body.admin-bar .site-header{top:66px}
body.admin-bar .site-header.is-scrolled{top:32px}
@media(max-width:782px){body.admin-bar .site-header{top:84px}body.admin-bar .site-header.is-scrolled{top:46px}}

/* 폰(≤600px)에서는 워드프레스 관리자 바가 position:absolute 라
   스크롤하면 화면 밖으로 사라진다. 그런데 위 규칙이 헤더를 계속 46px 아래에
   붙들어 두어, 맨 위 46px 띠에 아무것도 안 칠해지고 뒤 화면이 비쳤다.
   (특이도 : body.admin-bar .site-header 가 (0,2,1) 라 .is-scrolled 의 top:0 을 이긴다)
   601~782px 은 관리자 바가 fixed 로 남으므로 위의 46px 이 맞다. 건드리지 않는다.
   로그인한 관리자에게만 보이던 증상이다. 비로그인 방문자는 admin-bar 클래스가 없다.
   되돌리기 : 아래 한 줄 삭제                              (추가 2026-08-19) */
@media(max-width:600px){body.admin-bar .site-header.is-scrolled{top:0}}


/* ===== 쓰지 않는 카페24 장바구니 서랍 감추기 (추가 2026-08-19) =====
   푸터 아래에 <cafe24-cart id="c24-cart"> 가 남아 있어
   "장바구니가 비어 있습니다.주문하기" 가 스타일 없이 생글로 노출됐다.
   담기는 이 서랍이 아니라 쇼핑몰 브리지를 쓰므로 기능 손실이 없다.
   마크업 자체는 카페24 OAuth 플러그인이 뿜는다. 의존성 확인 후 제거 예정.
   되돌리기 : 이 두 줄 삭제 */
cafe24-cart#c24-cart{display:none!important}

/* ---------------------------------------------------------------------------
 * s9h-button-color-guard — 아이폰에서 버튼 글씨가 파랗게 뜨던 것 (2026-08-21)
 *
 * <button> 에 color 를 안 적어 두면 iOS 사파리는 시스템 버튼 색(파랑)을 쓴다.
 * 크롬은 검정으로 그려서 데스크톱에서는 멀쩡해 보였다.
 * 메인 루틴 섹션(01 폼클렌저 ~ 04 크림)이 이 경우였다.
 *
 * 아래 두 줄 중 첫 줄은 앞으로 같은 실수를 막는 안전망이고(색을 따로 정한
 * 버튼은 클래스 규칙이 이기므로 영향 없다), 둘째 줄이 실제 수정이다.
 * ------------------------------------------------------------------------- */
button{color:inherit}
.routine-step{color:var(--ink,#1c1a18);-webkit-text-fill-color:currentColor}
.routine-step strong{color:inherit}

/* ---------------------------------------------------------------------------
 * s9h-hero-copy-mobile — 모바일 메인 배너 카피 자리 (2026-08-22)
 *
 * 새 제품컷은 사진이 위쪽 51% 를 쓰고 아래는 비워 뒀다. 카피가 예전 자리
 * (bottom:95px)에 있으면 제품 밑동에 붙어 답답해 보여서 23px 내린다.
 * 아래 페이지네이션(bottom:22px)과는 여전히 여유가 있다.
 * ------------------------------------------------------------------------- */
@media(max-width:720px){
  .hero-copy{bottom:72px !important}
}

/* ---------------------------------------------------------------------------
 * s9h-hero-copy-contrast — 모바일 메인 배너 글자 (2026-08-22)
 *
 * 새 배경이 밝아서 설명 문구(#4F4943)가 가장 밝은 자리에서 대비 4.1:1 까지
 * 떨어졌다. 12px 본문은 4.5:1 이 있어야 읽힌다. #3A342E 로 내리면 7.8:1 이 된다.
 * 제목은 원래 11:1 이라 색은 그대로 두고, 작아서 묻히던 눈썹 문구와
 * 「제품 자세히 보기」만 한 단계씩 키운다.
 * 배경에 막을 씌우지 않는다 — 글자 하나 살리자고 사진을 흐리는 건 손해다.
 * ------------------------------------------------------------------------- */
@media(max-width:720px){
  .hero-copy .eyebrow{font-size:11px;letter-spacing:.19em;margin-bottom:14px}
  .hero-copy > p:not(.eyebrow){color:#3a342e;font-size:13px;line-height:1.75;margin:20px 0}
  .hero-copy a{font-size:13px;font-weight:600;padding-bottom:6px}
}

/* ---------------------------------------------------------------------------
 * s9h-hero-copy-lower — 모바일 배너 문구를 아래로 (2026-08-22)
 *
 * 로고·메뉴 자리는 그대로 두고 문구 덩어리만 내려서 제품 자리를 넓힌다.
 * 아래에서 72px → 62px, 그리고 눈썹 여백·제목 줄간격·설명 여백을 조금씩 조인다.
 * 문구 높이 270px → 249px, 시작점이 이미지 기준 911 → 1001 로 내려간다.
 * 결과: 제품 자리 y 460–880(420px) → y 460–980(520px).
 *
 * 더 내리지 못하는 이유 — 아래 슬라이드 탭이 bottom:22px 에 있다.
 * 지금 문구 아래끝과 탭 사이가 9px 이라 여기가 한계다.
 * ------------------------------------------------------------------------- */
@media(max-width:720px){
  .hero-copy{bottom:62px !important}
  .hero-copy .eyebrow{margin-bottom:11px}
  .hero-copy h2{line-height:1.10}
  .hero-copy > p:not(.eyebrow){margin:15px 0}
  .hero-copy a{padding-bottom:5px}
}

/* ---------------------------------------------------------------------------
 * s9h-guide-header-white — 가이드 첫 화면 위 헤더 글자 (2026-08-22)
 *
 * 모바일에서는 헤더 글자가 검정(--ink)이다. 상품 배너가 밝아서 그렇게 뒀는데,
 * 가이드 첫 화면 사진은 어두워서 대비가 1.03:1 까지 떨어졌다. 아예 안 보인다.
 * 이 페이지에서만 흰 글자로 뒤집는다(흰 글자면 16.8:1). 이미 걸려 있는
 * 어두운 text-shadow 가 흰 글자와 맞는다.
 *
 * 스크롤하면 헤더에 흰 배경(0.97)이 깔린다. 그때까지 흰 글자면 흰 바탕에
 * 흰 글자가 된다. :not(.is-scrolled) 로 첫 화면 위에 있을 때만 뒤집는다.
 *
 * :has() 를 모르는 브라우저가 있어서 규칙을 따로 쓴다 — 한 줄로 묶으면
 * 통째로 버려진다.
 * ------------------------------------------------------------------------- */
@media(max-width:720px){
  body.page-id-49 .site-header.is-overlay:not(.is-scrolled){color:#fff}
}
@media(max-width:720px){
  body:has(.skin-guide-page) .site-header.is-overlay:not(.is-scrolled){color:#fff}
}

/* ---------------------------------------------------------------------------
 * s9h-guide-header-scrolled — 스크롤한 뒤 헤더 (2026-08-22)
 *
 * 스크롤하면 헤더에 흰 배경(0.97)이 깔린다. 그런데 커스터마이저 추가 CSS에
 * .site-header.is-overlay{color:#fff} 가 있고 그게 테마 CSS 뒤에 실려서,
 * 스크롤한 뒤에도 흰 글자가 남아 흰 바탕에 흰 글자가 된다.
 * 특이도를 (0,4,1) 로 올려 이 페이지의 스크롤 상태만 검정으로 되돌린다.
 * ------------------------------------------------------------------------- */
@media(max-width:720px){
  body.page-id-49 .site-header.is-overlay.is-scrolled{color:var(--ink)}
}
@media(max-width:720px){
  body:has(.skin-guide-page) .site-header.is-overlay.is-scrolled{color:var(--ink)}
}

/* s9h-story-picture — 2026-08-22
   .story-section>img 규칙은 img 가 바로 밑에 있을 때만 걸린다.
   picture 로 감싸면 그 규칙이 풀려서 사진이 원래 크기로 왼쪽 위에 박힌다.
   가이드 페이지에서 한 번 겪은 함정이라 여기서는 미리 열어둔다. */
.story-section>picture{position:absolute;inset:0;display:block}
.story-section>picture>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}

/* s9h-ingredient-picture — 2026-09-01
   바로 위 s9h-story-picture 와 같은 함정인데, 08-22 에는 .story-section 만 열어두고
   .ingredient-section 을 빠뜨렸다. 09-01 WebP 패치가 이쪽 img 도 <picture> 로 감싸면서
   `.ingredient-section>img{position:absolute;inset:0;height:100%;object-fit:cover}` 가 풀렸다.
   사진이 배경 레이어가 아니라 그냥 flex 항목이 되어, 모바일 390px 에서
   사진 202x114 (object-fit 이 fill 로 되돌아가 찌그러짐) · 글 칸 129px 로 눌렸다.
   object-position 두 줄도 `>img` 를 겨냥하고 있어 같이 되살린다
   (모바일 center top = WPCode skin9hari-catalog-grid · 961px 이상 50% 100% = s9h-main-fix).
   되돌리기: 이 블록을 지우면 패치 전 상태다. */
.ingredient-section>picture{position:absolute;inset:0;display:block}
.ingredient-section>picture>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
/* 모바일: 사진 위 · 글 아래 (2026-09-01)
   여태는 3:4 사진 위에 글을 얹고 그라데이션으로 가독성을 만들었다. 이제 세로로 쌓는다.
   - 사진: 세로컷(1080x1440)의 위 56%(=4:3)만 쓴다. 아래 44% 는 원래 글을 얹으려고
     비워둔 바닥이라, 글이 사진 밖으로 나온 지금은 빈 여백으로만 보인다.
     제품(앰플 3병 + 흘린 제형)은 위 52% 안에 다 들어와 잘리지 않는다.
   - 글: 섹션 배경(#40362e) 위 흰 글씨 그대로. 사진 위가 아니므로 :after 그늘은 끈다.
   - picture 를 relative 로 바꿔 사진 상자를 흐름 안에 세운다. img 는 위 규칙의
     absolute+inset:0 을 그대로 써서 그 상자를 채운다(퍼센트 높이 해석 문제 회피).
   ⚠️ 특이도 — WPCode(skin9hari-catalog-grid)의 `.ingredient-section{aspect-ratio:3/4}`
      등이 문서상 이 파일보다 뒤에 온다. 같은 (0,1,0) 이면 저쪽이 이기므로
      body 를 붙여 한 단계 올렸다. 되돌리기: 이 블록을 지우면 다시 오버레이 방식이다. */
@media(max-width:720px){
  body .ingredient-section{display:block;aspect-ratio:auto;min-height:0}
  body .ingredient-section>picture{position:relative;aspect-ratio:4/3;overflow:hidden}
  body .ingredient-section>picture>img{object-position:center top}
  body .ingredient-section:after{display:none}
  body .ingredient-section>div{width:auto;margin:0;padding:34px 22px 46px}
}
@media(min-width:961px){.ingredient-section>picture>img{object-position:50% 100%}}

/* s9h-routine-visual — 2026-08-22
   루틴 4단계 사진을 세로 인물컷(960x1200)으로 바꿨다.
   1) 가운데 정렬이면 위아래가 반씩 잘려서 헤어밴드와 정수리가 날아간다.
      위를 기준으로 잡고 잘리는 몫은 전부 아래(옷) 에서 가져간다.
   2) 사진 아래가 밝은 옷이라 흰 글씨(STEP 01 / 제품명)가 묻힌다.
      아래쪽에만 그늘을 깔아 글자 자리를 만든다. 라벨이 그늘 위에 오도록
      z-index 를 명시한다 — ::after 는 마지막 자식 뒤에 그려지기 때문이다. */
.routine-visual>img{object-position:50% 0}
.routine-visual::after{content:"";position:absolute;z-index:1;right:0;bottom:0;left:0;height:34%;background:linear-gradient(180deg,rgba(28,22,18,0),rgba(28,22,18,.58));pointer-events:none}
.routine-visual>div{z-index:2}

/* s9h-tablet-scale — 2026-08-23
   갤럭시탭(가로 924px)에서 확인한 문제. 721~1180px 구간은 PC 규칙을 그대로 받는데,
   글자가 clamp 의 최솟값에 붙어 화면이 커져도 커지지 않고, 문구 칸은 38vw(351px)로
   좁아 화면 대부분이 비어 보였다. 이 구간만 칸을 넓히고 글자가 화면 폭을 따라
   움직이게 한다. 1180px 를 넘으면 기존 PC 값과 이어지도록 위끝을 맞춰 두었다. */
@media (min-width:721px) and (max-width:1180px){
  .hero-copy{width:min(560px,60vw)}
  /* 가이드 플러그인이 head 뒤쪽에 같은 선택자를 한 번 더 찍는다(2026-08-18 PC 글자 조정).
     선택자를 한 단계 좁혀야 이쪽이 이긴다. */
  .hero .hero-copy h2{font-size:clamp(34px,5vw,56px);line-height:1.14}
  .hero .hero-copy .eyebrow{font-size:clamp(10px,1.25vw,12px)}
  .hero .hero-copy>p:not(.eyebrow){font-size:clamp(13px,1.6vw,16px);margin:22px 0}
  .hero .hero-copy a{font-size:clamp(12px,1.45vw,14px)}
  body .section-heading h1,body .section-heading h2,
  body .routine-content h2,body .review-intro h2,
  body .ingredient-section h2,body .story-section h2,body .closing-section h2{font-size:clamp(30px,4.6vw,52px)}
  .ingredient-section>div,.story-section>div{width:min(640px,58vw)}
}

/* s9h-tablet-scale-2 — 2026-08-23
   같은 구간(721~1180px)을 전 페이지로 훑어 고정 크기로 남아 있던 제목들을 마저 잡는다.
   훑은 결과 브랜드·가이드·리뷰·전체상품·미디어는 이미 폭을 따라 움직이고 있었고,
   아래 네 곳만 고정이었다. 값은 1180px 에서 기존 PC 값과 이어지도록 위끝을 맞췄다. */
@media (min-width:721px) and (max-width:1180px){
  body .concern-copy h2{font-size:clamp(30px,4.4vw,48px)}
  body .product-buybox-copy h1{font-size:clamp(28px,4.2vw,48px);line-height:1.2}
  body .spot-answer-layout h2{font-size:clamp(26px,3.8vw,42px)}
  body .product-guide-info h2,body .product-qna h2{font-size:clamp(22px,2.7vw,30px)}
}

/* s9h-routine-fit — 2026-08-25
   대표님 요청: 좌측 사진의 위/아래를 우측 텍스트 영역에 정확히 맞춘다.

   여태까지는 반대였다. .routine-visual > img 가 height:100% 였지만 부모(그리드 칸)
   높이가 auto 라 퍼센트가 풀려, 결국 사진 원본 비율이 섹션 높이를 정하고 있었다.
   그래서 사진을 바꿀 때마다 섹션이 늘었다 줄었다 했다(2:3 넣었을 때 238px 늘어남).

   사진을 흐름에서 빼면(position:absolute) 높이에 기여하지 못한다. 그러면 행 높이는
   우측 .routine-content 가 정하고, 사진은 그 상자를 cover 로 채운다.
   이제 4:5 든 2:3 이든 사진 비율과 무관하게 높이가 고정된다.

   object-position 은 50% 50%. 상자가 가로로 조금 긴 비율(945x773, 약 1.22:1)이라
   세로가 35% 가량 잘리는데, 예전 값 50% 0 으로는 네 장 모두 입·턱이 잘렸다.
   50% 50% 에서 폼클렌저·토너·앰플·크림 네 장 다 눈·코·입·턱이 들어오는 것을
   화면으로 확인했다. 사진을 갈아 끼우면 이 값을 다시 확인할 것.

   모바일(720px 이하)은 1단 배치라 .routine-visual{min-height:480px} 가 높이를 잡는다.
   자식이 전부 absolute 라 내용 높이는 0 이고, 결국 딱 480px 상자가 된다. */
.routine-visual > img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 50%}


/* 2026-08-25 REAL REVIEW 후기 숫자 카운트업(0 → 7,823) 자리 고정.
   숫자가 올라가는 동안 자릿수가 늘면 뒤따르는 "의 피부 이야기" 가 좌우로 출렁인다.
   tabular-nums 로 숫자 폭을 균일하게 만들고, 최종값 "7,823개" 의 폭(실측 3.28em)을
   min-width 로 미리 잡아 둔다. 헤드라인 문구나 자릿수가 바뀌면 이 값을 다시 재야 한다. */
/* 숫자가 짧을 때 남는 자리는 왼쪽에 둔다(오른쪽 정렬). 왼쪽 정렬로 두면
   "610개    의 피부 이야기" 처럼 문장 한가운데가 벌어져 오타처럼 보인다. */
.review-intro h2 .review-stat-count{display:inline-block;min-width:3.28em;text-align:right;font-weight:inherit;color:inherit;font-variant-numeric:tabular-nums;font-feature-settings:"tnum" 1}
/* 평점은 "0.0"→"4.8" 로 글자 수가 늘 3자라 폭만 균일하게 잡아 주면 된다. */
.review-score strong.review-stat-count{font-variant-numeric:tabular-nums;font-feature-settings:"tnum" 1}
