/* ============================================================
   K-BEAUTY TOKYO — 日本顧客向けEC サンプルストア（本番品質）
   上質な韓国コスメ EC の世界観：クリーム×ローズ×墨×ゴールド
   ============================================================ */
@import url('https://fonts.googleapis.com/css2?family=Playfair+Display:wght@500;600;700&family=Noto+Sans+JP:wght@300;400;500;700;900&display=swap');

:root{
  --ink:#2a2522; --ink-2:#6b625c;
  --cream:#fdf7f3; --cream-2:#f6ece6;
  --rose:#d98a96; --rose-deep:#b85f6e; --rose-soft:#f7e4e6;
  --gold:#bd9a5f; --line:#ece3dc; --white:#fff;
  --ok:#2f9e6f; --shadow:0 18px 50px rgba(70,45,40,.10);
  --serif:'Playfair Display',serif; --sans:'Noto Sans JP',-apple-system,sans-serif;
}
*{margin:0;padding:0;box-sizing:border-box;}
body{font-family:var(--sans);color:var(--ink);background:var(--cream);font-weight:400;line-height:1.8;font-size:15px;-webkit-font-smoothing:antialiased;}
a{color:inherit;text-decoration:none;}
img{max-width:100%;display:block;}
.wrap{max-width:1160px;margin:0 auto;padding:0 24px;}
.serif{font-family:var(--serif);}
.muted{color:var(--ink-2);}
.center{text-align:center;}
section{padding:64px 0;}
.eyebrow{font-size:11px;letter-spacing:.32em;text-transform:uppercase;color:var(--gold);font-weight:700;margin-bottom:14px;}
h2.title{font-family:var(--serif);font-size:34px;font-weight:600;line-height:1.25;margin-bottom:10px;}
.lead{color:var(--ink-2);max-width:560px;margin:0 auto;}

/* mock note */
.mocknote{background:var(--ink);color:#f3e9e2;font-size:12px;text-align:center;padding:7px 16px;letter-spacing:.02em;}
.mocknote a{color:var(--gold);font-weight:700;}

/* ---- ヘッダー ---- */
.hd{position:sticky;top:0;z-index:30;background:rgba(253,247,243,.82);backdrop-filter:blur(12px);border-bottom:1px solid var(--line);}
.hd-in{display:flex;align-items:center;gap:28px;height:72px;}
.logo{font-family:var(--serif);font-size:22px;font-weight:700;letter-spacing:.06em;}
.logo span{color:var(--rose-deep);}
.nav{display:flex;gap:26px;margin-left:18px;}
.nav a{font-size:13.5px;font-weight:500;letter-spacing:.04em;position:relative;padding:6px 0;color:var(--ink);}
.nav a:hover{color:var(--rose-deep);}
.nav a::after{content:"";position:absolute;left:0;bottom:0;width:0;height:1.5px;background:var(--rose-deep);transition:.25s;}
.nav a:hover::after{width:100%;}
.hd-right{margin-left:auto;display:flex;align-items:center;gap:16px;}
.cart-btn{position:relative;font-size:13.5px;font-weight:600;border:1px solid var(--ink);padding:9px 16px;border-radius:30px;transition:.2s;}
.cart-btn:hover{background:var(--ink);color:var(--cream);}
.cart-btn .badge{display:inline-grid;place-items:center;min-width:19px;height:19px;background:var(--rose-deep);color:#fff;border-radius:50%;font-size:10.5px;font-weight:700;margin-left:6px;padding:0 5px;}

/* ---- ボタン ---- */
.btn{display:inline-flex;align-items:center;gap:8px;justify-content:center;font-family:var(--sans);font-weight:600;font-size:14px;letter-spacing:.03em;padding:14px 30px;border:none;border-radius:32px;cursor:pointer;transition:.22s;}
.btn.dark{background:var(--ink);color:var(--cream);}
.btn.dark:hover{background:#000;transform:translateY(-2px);}
.btn.rose{background:var(--rose-deep);color:#fff;}
.btn.rose:hover{background:#a04f5e;transform:translateY(-2px);}
.btn.ghost{background:transparent;border:1px solid var(--ink);color:var(--ink);}
.btn.ghost:hover{background:var(--ink);color:var(--cream);}
.btn.block{display:flex;width:100%;}
.btn.sm{padding:10px 18px;font-size:13px;}

/* ---- ヒーロー ---- */
.hero{position:relative;overflow:hidden;background:
   radial-gradient(120% 90% at 85% 10%, var(--rose-soft) 0%, transparent 55%),
   linear-gradient(180deg,var(--cream) 0%, var(--cream-2) 100%);}
.hero-in{display:grid;grid-template-columns:1.05fr .95fr;gap:40px;align-items:center;min-height:560px;padding:60px 0;}
.hero h1{font-family:var(--serif);font-size:56px;line-height:1.12;font-weight:600;letter-spacing:.01em;margin-bottom:22px;}
.hero h1 em{font-style:italic;color:var(--rose-deep);}
.hero p{font-size:16px;color:var(--ink-2);max-width:440px;margin-bottom:30px;}
.hero-cta{display:flex;gap:14px;flex-wrap:wrap;}
.hero-art{position:relative;height:480px;border-radius:200px 200px 28px 28px;
  background:linear-gradient(160deg,#f6d9dd 0%, #e9b9c1 45%, #d98a96 100%);box-shadow:var(--shadow);overflow:hidden;}
.hero-art::after{content:"";position:absolute;inset:0;background:radial-gradient(60% 40% at 30% 20%,rgba(255,255,255,.5),transparent 60%);}
.hero-art .bottle{position:absolute;left:50%;top:54%;transform:translate(-50%,-50%);}
.hero-badge{position:absolute;bottom:26px;left:26px;background:rgba(255,255,255,.92);border-radius:16px;padding:14px 18px;box-shadow:var(--shadow);}
.hero-badge .s{font-size:11px;color:var(--gold);font-weight:700;letter-spacing:.1em;}
.hero-badge .b{font-family:var(--serif);font-size:20px;}
@media(max-width:880px){.hero-in{grid-template-columns:1fr;}.hero h1{font-size:40px;}.hero-art{height:340px;}}

/* ---- 帯（信頼バッジ） ---- */
.trust{background:var(--ink);color:#efe4dd;}
.trust .wrap{display:flex;justify-content:space-between;flex-wrap:wrap;gap:18px;padding:26px 24px;}
.trust .it{display:flex;align-items:center;gap:10px;font-size:13.5px;letter-spacing:.03em;}
.trust .it b{font-weight:700;color:#fff;}

/* ---- 商品グリッド ---- */
.grid{display:grid;grid-template-columns:repeat(4,1fr);gap:26px;}
@media(max-width:980px){.grid{grid-template-columns:repeat(2,1fr);}}
@media(max-width:520px){.grid{grid-template-columns:1fr;}}
.pcard{background:var(--white);border:1px solid var(--line);border-radius:20px;overflow:hidden;transition:.25s;}
.pcard:hover{transform:translateY(-6px);box-shadow:var(--shadow);}
.pcard .ph{aspect-ratio:1/1;position:relative;display:grid;place-items:center;}
.pcard .tag{position:absolute;top:12px;left:12px;background:var(--ink);color:#fff;font-size:10px;font-weight:700;letter-spacing:.08em;padding:4px 10px;border-radius:20px;}
.pcard .tag.best{background:var(--gold);}
.pcard .body{padding:18px;}
.pcard .cat{font-size:10.5px;letter-spacing:.12em;color:var(--gold);font-weight:700;text-transform:uppercase;}
.pcard .nm{font-weight:700;font-size:15px;margin:4px 0 8px;}
.pcard .price{font-family:var(--serif);font-size:20px;}
.pcard .price small{font-size:12px;color:var(--ink-2);font-family:var(--sans);}
.pcard .row{display:flex;align-items:center;justify-content:space-between;margin-top:14px;gap:8px;}
.stars{color:var(--gold);font-size:12px;letter-spacing:1px;}

/* product "image" gradients */
.ph-1{background:linear-gradient(150deg,#f7e0d6,#e7b9a6);}
.ph-2{background:linear-gradient(150deg,#e7e1f3,#c9bce6);}
.ph-3{background:linear-gradient(150deg,#fdeec2,#f3cf86);}
.ph-4{background:linear-gradient(150deg,#d8ece6,#a6cfc4);}
.ph-5{background:linear-gradient(150deg,#f7dbe2,#e3a6b7);}
.ph-6{background:linear-gradient(150deg,#e3ecf7,#aec4e0);}
.ph-7{background:linear-gradient(150deg,#f0e6da,#d8bf9a);}
.ph-8{background:linear-gradient(150deg,#e9e3df,#c6bab0);}

/* ---- ストーリー ---- */
.story{background:var(--cream-2);}
.story-in{display:grid;grid-template-columns:1fr 1fr;gap:50px;align-items:center;}
.story-art{height:380px;border-radius:24px;background:linear-gradient(160deg,#efd9d0,#d3a7a0);box-shadow:var(--shadow);}
@media(max-width:880px){.story-in{grid-template-columns:1fr;}}

/* ---- レビュー ---- */
.reviews{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;}
@media(max-width:820px){.reviews{grid-template-columns:1fr;}}
.review{background:var(--white);border:1px solid var(--line);border-radius:18px;padding:24px;}
.review .q{font-family:var(--serif);font-size:17px;line-height:1.6;margin:10px 0 16px;}
.review .who{font-size:12.5px;color:var(--ink-2);font-weight:600;}

/* ---- ニュースレター ---- */
.news{background:linear-gradient(135deg,var(--rose-deep),#9c4f5e);color:#fff;border-radius:28px;padding:54px;text-align:center;}
.news h2{font-family:var(--serif);font-size:32px;margin-bottom:10px;}
.news .form{display:flex;gap:10px;max-width:440px;margin:22px auto 0;}
.news input{flex:1;border:none;border-radius:30px;padding:14px 20px;font-size:14px;font-family:var(--sans);}

/* ---- フッター ---- */
.ft{background:var(--ink);color:#cabfb7;font-size:13px;}
.ft-in{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:30px;padding:56px 24px 30px;}
.ft h4{color:#fff;font-size:12px;letter-spacing:.1em;text-transform:uppercase;margin-bottom:14px;}
.ft a{display:block;padding:5px 0;color:#cabfb7;}
.ft a:hover{color:#fff;}
.ft .logo{color:#fff;margin-bottom:12px;}
.ft-bottom{border-top:1px solid #3b3531;padding:18px 24px;display:flex;justify-content:space-between;flex-wrap:wrap;gap:10px;font-size:11.5px;color:#8d8079;}
@media(max-width:820px){.ft-in{grid-template-columns:1fr 1fr;}}

/* ---- パンくず / ページ見出し ---- */
.pagehead{background:var(--cream-2);padding:46px 0;}
.crumb{font-size:12px;color:var(--ink-2);margin-bottom:8px;letter-spacing:.04em;}
.pagehead h1{font-family:var(--serif);font-size:38px;font-weight:600;}

/* ---- フォーム / カート 共通 ---- */
.panel{background:var(--white);border:1px solid var(--line);border-radius:20px;padding:28px;}
.field{margin-bottom:16px;}
.field label{display:block;font-size:12px;font-weight:700;letter-spacing:.04em;margin-bottom:6px;}
.field input,.field select,.field textarea{width:100%;border:1px solid var(--line);border-radius:12px;padding:13px 15px;font-size:14px;font-family:var(--sans);background:var(--cream);}
.field input:focus,.field textarea:focus{outline:2px solid var(--rose-soft);background:#fff;}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:16px;}
@media(max-width:620px){.grid2{grid-template-columns:1fr;}}
.two-col{display:grid;grid-template-columns:1.6fr 1fr;gap:30px;align-items:start;}
@media(max-width:880px){.two-col{grid-template-columns:1fr;}}

/* カート行 */
.line{display:flex;gap:16px;align-items:center;padding:18px 0;border-bottom:1px solid var(--line);}
.line .thumb{width:84px;height:84px;border-radius:14px;flex-shrink:0;}
.line .nm{font-weight:700;}
.qty{display:inline-flex;align-items:center;border:1px solid var(--line);border-radius:30px;overflow:hidden;}
.qty button{border:none;background:transparent;width:34px;height:36px;cursor:pointer;font-size:16px;}
.qty span{width:34px;text-align:center;font-weight:700;}
.sumrow{display:flex;justify-content:space-between;padding:9px 0;font-size:14px;}
.sumrow.total{border-top:2px solid var(--ink);margin-top:8px;padding-top:14px;font-family:var(--serif);font-size:22px;}
.empty{text-align:center;padding:50px 0;color:var(--ink-2);}

/* FAQ */
.faq{border-bottom:1px solid var(--line);}
.faq summary{cursor:pointer;padding:18px 0;font-weight:700;list-style:none;display:flex;justify-content:space-between;}
.faq summary::-webkit-details-marker{display:none;}
.faq summary::after{content:"＋";color:var(--rose-deep);}
.faq[open] summary::after{content:"−";}
.faq p{padding:0 0 18px;color:var(--ink-2);}

/* トースト */
.toast{position:fixed;bottom:26px;left:50%;transform:translateX(-50%) translateY(80px);background:var(--ink);color:#fff;padding:14px 24px;border-radius:30px;font-size:14px;font-weight:600;box-shadow:var(--shadow);opacity:0;transition:.3s;z-index:60;}
.toast.on{transform:translateX(-50%) translateY(0);opacity:1;}

.badge-soft{display:inline-block;background:var(--rose-soft);color:var(--rose-deep);font-size:11px;font-weight:700;padding:4px 12px;border-radius:20px;letter-spacing:.04em;}
