
:root{
  --green:#047a4f;
  --green-deep:#035c3d;
  --green-dark:#03482f;
  --gold:#d7a61f;
  --gold2:#f7cd56;
  --pink:#d93d7b;
  --purple:#6526a8;
  --ink:#101711;
  --muted:#6f786f;
  --off:#fffaf0;
  --off2:#f6fbf7;
  --line:#e6eadf;
  --white:#fff;
  --shadow:0 18px 45px rgba(33,65,40,.10);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  color:var(--ink);
  background:#fff;
  font-family:-apple-system,BlinkMacSystemFont,"Hiragino Sans","Yu Gothic",Meiryo,sans-serif;
  -webkit-font-smoothing:antialiased;
  line-height:1.7;
}
a{color:inherit;text-decoration:none}
img{display:block;max-width:100%}
.wrap{width:min(1180px,calc(100% - 42px));margin:auto}
.kicker{font-size:12px;font-weight:900;letter-spacing:.16em;color:var(--gold);text-transform:uppercase}
.section{padding:76px 0}
.section.alt{background:var(--off2)}
.sectionHead{text-align:center;max-width:760px;margin:0 auto 36px}
.sectionHead h2{font-size:clamp(32px,5vw,54px);line-height:1.15;letter-spacing:-.05em;margin:10px 0 12px}
.sectionHead p{margin:0;color:var(--muted);font-size:15px}

header{
  height:74px;background:rgba(255,255,255,.96);backdrop-filter:blur(14px);
  position:sticky;top:0;z-index:60;border-bottom:1px solid #edf0e9
}
.head{height:100%;display:flex;align-items:center;justify-content:space-between;gap:24px}
.brand{display:flex;align-items:center;gap:14px}
.brand img{width:152px;height:38px;object-fit:contain}
.brandMark{font:900 23px/1 Arial,sans-serif;letter-spacing:-.04em;color:var(--green-dark)}
.brandMark span{color:var(--gold)}
nav{display:flex;align-items:center;gap:24px;font-size:12px;font-weight:900}
nav a{color:#4d584e}
nav a:hover{color:var(--green)}
.navCta{background:linear-gradient(135deg,var(--gold2),var(--gold));color:#1b251d!important;padding:10px 16px;border-radius:999px}
.menuBtn{display:none;background:none;border:0;font-size:30px}
.mobileNav{display:none}

/* Hero */
.hero{
  background:
    radial-gradient(circle at 18% 20%,rgba(255,244,211,.75),transparent 26%),
    linear-gradient(180deg,#fffdf7 0%,#fff 100%);
  padding:34px 0 30px;
}
.heroGrid{display:grid;grid-template-columns:.86fr 1.14fr;gap:42px;align-items:center}
.heroCopy{padding:22px 0}
.heroCopy .eyebrow{display:inline-flex;align-items:center;gap:8px;background:#e9f6ef;color:var(--green);font-size:11px;font-weight:900;padding:6px 10px;border-radius:999px}
.heroCopy h1{font-size:clamp(45px,6vw,76px);line-height:1.02;letter-spacing:-.07em;margin:14px 0 18px}
.heroCopy h1 span{color:var(--green)}
.heroCopy h1 em{font-style:normal;color:var(--gold)}
.heroCopy p{font-size:16px;color:#58645b;margin:0 0 20px}
.heroPoints{display:flex;gap:8px;flex-wrap:wrap;margin:20px 0 24px}
.heroPoints span{font-size:10px;font-weight:900;padding:6px 10px;border-radius:999px;background:#fff;border:1px solid #e2e8df;box-shadow:0 6px 18px rgba(54,81,59,.05)}
.actions{display:flex;gap:12px;flex-wrap:wrap}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:50px;padding:0 23px;border-radius:999px;font-size:13px;font-weight:900;transition:.22s}
.btn:hover{transform:translateY(-2px)}
.btnPrimary{background:linear-gradient(135deg,var(--gold2),var(--gold));color:#182219;box-shadow:0 12px 25px rgba(213,166,31,.25)}
.btnSecondary{border:1px solid #cfd8cf;background:#fff;color:var(--green)}
.heroVisual{position:relative}
.heroVisual:before{content:"";position:absolute;inset:5% -2% -3% 8%;background:#e6f3ec;border-radius:28px;transform:rotate(2deg);z-index:0}
.heroCard{position:relative;z-index:1;border-radius:26px;overflow:hidden;box-shadow:0 28px 70px rgba(28,66,38,.18);border:1px solid #e6eadf;background:#fff}
.heroCard img{width:100%;aspect-ratio:4/5;object-fit:cover}
.trustRow{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-top:22px}
.trust{background:#fff;border:1px solid #e7ebe3;border-radius:13px;padding:13px 10px;text-align:center;box-shadow:0 8px 22px rgba(35,62,40,.05)}
.trust b{display:block;font-size:13px;margin-bottom:2px}
.trust span{font-size:10px;color:var(--muted)}

/* Benefits */
.benefitGrid{display:grid;grid-template-columns:repeat(6,1fr);gap:12px}
.benefit{background:#fff;border:1px solid var(--line);border-radius:16px;padding:18px 10px;text-align:center;box-shadow:0 10px 28px rgba(50,70,52,.05)}
.icon{width:58px;height:58px;border-radius:18px;margin:0 auto 12px;display:grid;place-items:center;background:#edf8f1;color:var(--green);font-size:26px;font-weight:900}
.benefit b{display:block;font-size:13px;line-height:1.4}
.benefit span{display:block;font-size:10px;color:var(--muted);margin-top:4px}

/* Problem / Solution */
.problemGrid{display:grid;grid-template-columns:1fr 1fr;gap:34px;align-items:center}
.problemVisual{border-radius:22px;overflow:hidden;box-shadow:var(--shadow)}
.problemVisual img{width:100%;aspect-ratio:16/10;object-fit:cover}
.problemCopy h2{font-size:clamp(34px,5vw,55px);line-height:1.08;letter-spacing:-.05em;margin:10px 0 16px}
.problemCopy h2 span{color:var(--green)}
.checks{display:grid;gap:11px;margin-top:20px}
.check{display:flex;gap:10px;align-items:flex-start;font-size:13px;font-weight:800}
.check i{font-style:normal;width:25px;height:25px;border-radius:50%;display:grid;place-items:center;background:#e9f7ef;color:var(--green);flex:0 0 auto}

/* Plans */
.planWrap{background:#fff8ea}
.planGrid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.plan{position:relative;background:#fff;border:1px solid #ede6d7;border-radius:18px;overflow:hidden;box-shadow:0 18px 38px rgba(84,69,29,.07)}
.planImage{height:190px;background:#eee;overflow:hidden}
.planImage img{width:100%;height:100%;object-fit:cover}
.planBody{padding:22px}
.planLabel{font-size:10px;font-weight:900;letter-spacing:.14em;color:#897d69}
.plan h3{font-size:22px;margin:6px 0 7px}
.price{font:900 37px/1 Arial,sans-serif;letter-spacing:-.04em;margin:16px 0 10px}
.restaurant .price{color:#dd4a11}.self .price{color:var(--pink)}.custom .price{color:var(--purple)}
.price small{font:800 11px/1 sans-serif;color:#4c534d}
.plan p{font-size:12px;color:var(--muted);min-height:82px}
.features{display:grid;gap:7px;margin:15px 0 20px}
.features div{font-size:12px;font-weight:800}
.features div:before{content:"✓";color:var(--green);margin-right:7px}
.plan .btn{width:100%;border-radius:10px}
.ribbon{position:absolute;top:10px;right:10px;background:var(--green);color:#fff;font-size:9px;font-weight:900;padding:5px 8px;border-radius:999px;z-index:2}

/* Kit */
.kitSection{background:linear-gradient(180deg,#055033,#033d28);color:#fff}
.kitSection .sectionHead p{color:#d5e7dc}
.kitFrame{border-radius:20px;overflow:hidden;border:1px solid rgba(255,255,255,.13);box-shadow:0 28px 70px rgba(0,0,0,.22)}
.kitFrame img{width:100%;aspect-ratio:16/9;object-fit:cover}
.kitItems{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:16px}
.kitItem{padding:16px;background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.10);border-radius:14px}
.kitItem b{display:block;margin-bottom:4px}
.kitItem span{font-size:11px;color:#d4e5db}

/* Flow */
.flowGrid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.flowCard{padding:20px;border:1px solid var(--line);border-radius:16px;background:#fff}
.flowNum{font:900 36px/1 Arial,sans-serif;color:var(--gold)}
.flowCard h3{font-size:18px;margin:9px 0 5px}
.flowCard p{font-size:12px;color:var(--muted);margin:0}
.flowVisual{margin-top:26px;border-radius:20px;overflow:hidden;box-shadow:var(--shadow)}
.flowVisual img{width:100%;aspect-ratio:16/9;object-fit:cover}

/* FAQ */
.faq{max-width:900px;margin:auto}
.faq details{background:#fff;border:1px solid var(--line);border-radius:13px;padding:0 18px;margin-bottom:10px}
.faq summary{cursor:pointer;list-style:none;padding:17px 0;font-weight:900}
.faq summary::-webkit-details-marker{display:none}
.faq summary:after{content:"＋";float:right;color:var(--green)}
.faq details[open] summary:after{content:"−"}
.faq p{font-size:13px;color:var(--muted);margin:0;padding:0 0 16px}

/* Closing */
.closing{padding:78px 0;text-align:center;background:linear-gradient(180deg,#0c754d,#045335);color:#fff}
.closing h2{font-size:clamp(34px,5vw,56px);line-height:1.12;letter-spacing:-.05em;margin:10px 0 12px}
.closing p{color:#d6e9dd;margin:0 0 24px}
footer{background:#033323;color:#bfd1c5;padding:26px 0}
.foot{display:flex;align-items:center;justify-content:space-between;gap:22px}
.foot img{width:145px}
.footLinks{display:flex;gap:16px;flex-wrap:wrap;font-size:10px}
.copy{font-size:9px;margin-top:6px;text-align:right}
.mobileBar{display:none}

@media(max-width:900px){
  nav{display:none}.menuBtn{display:block}
  .mobileNav.open{display:block;position:fixed;left:0;right:0;top:74px;background:#fff;z-index:59;padding:14px 22px 22px;border-top:1px solid #edf0e9}
  .mobileNav a{display:block;padding:12px 0;border-bottom:1px solid #eef1ec;font-weight:900}
  .heroGrid,.problemGrid,.planGrid{grid-template-columns:1fr}
  .heroCopy{text-align:center}.heroPoints,.actions{justify-content:center}
  .heroVisual{max-width:650px;margin:auto}
  .benefitGrid{grid-template-columns:repeat(3,1fr)}
  .kitItems{grid-template-columns:1fr}
  .flowGrid{grid-template-columns:1fr 1fr}
}
@media(max-width:640px){
  .wrap{width:calc(100% - 28px)}
  header{height:70px}.head{height:70px}.mobileNav.open{top:70px}
  .brand img{width:128px}.brandMark{font-size:20px}
  .hero{padding:22px 0 24px}.heroGrid{gap:22px}.heroCopy h1{font-size:48px}
  .heroCard img{aspect-ratio:4/5}
  .trustRow{grid-template-columns:1fr 1fr}
  .section{padding:60px 0}.sectionHead h2{font-size:34px}
  .benefitGrid{grid-template-columns:1fr 1fr}
  .planImage{height:165px}.plan p{min-height:auto}
  .flowGrid{grid-template-columns:1fr}
  footer{padding-bottom:92px}.foot{flex-direction:column;align-items:flex-start}.copy{text-align:left}
  .mobileBar{position:fixed;left:12px;right:12px;bottom:12px;z-index:80;display:grid;grid-template-columns:1fr 1fr;border-radius:14px;overflow:hidden;box-shadow:0 12px 34px rgba(0,0,0,.22)}
  .mobileBar a{padding:12px;text-align:center;font-size:11px;font-weight:900;background:#fff;color:var(--green);border:1px solid #e7ece7}
  .mobileBar a:last-child{background:linear-gradient(135deg,var(--gold2),var(--gold));color:#172019;border:none}
}

/* Product-specific differentiation */
.productDifferent{
  padding:78px 0;background:#fff;
}
.diffIntro{
  max-width:860px;margin:0 auto 34px;text-align:center;
}
.diffIntro h2{
  font-size:clamp(32px,5vw,52px);
  line-height:1.16;letter-spacing:-.05em;
  margin:10px 0 12px;
}
.diffIntro p{margin:0;color:var(--muted);font-size:15px}
.diffGrid{display:grid;grid-template-columns:1fr 1fr;gap:20px}
.diffCard{
  border:1px solid var(--line);border-radius:18px;overflow:hidden;background:#fff;
  box-shadow:0 16px 40px rgba(35,64,40,.07)
}
.diffCardHead{padding:24px 24px 18px}
.diffCardHead.restaurantHead{background:linear-gradient(135deg,#fff5e6,#fffaf2)}
.diffCardHead.salonHead{background:linear-gradient(135deg,#fff2f7,#fff9fb)}
.diffCardHead .sub{font-size:10px;font-weight:900;letter-spacing:.14em;color:#8c806e}
.diffCardHead h3{font-size:26px;line-height:1.25;margin:6px 0 4px}
.diffCardHead p{font-size:13px;color:var(--muted);margin:0}
.diffBody{padding:22px 24px 24px}
.diffBody h4{font-size:14px;margin:0 0 10px}
.diffList{display:grid;gap:8px;margin-bottom:20px}
.diffList div{font-size:12px;font-weight:800;padding-left:20px;position:relative}
.diffList div:before{content:"✓";position:absolute;left:0;color:var(--green);font-weight:900}
.diffNote{
  font-size:11px;color:var(--muted);padding:11px 12px;border-radius:10px;background:#f6f8f5;
}
.salonSplit{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:14px}
.miniPlan{border:1px solid var(--line);border-radius:12px;padding:14px;background:#fff}
.miniPlan b{display:block;font-size:13px;margin-bottom:5px}
.miniPrice{font:900 24px/1 Arial,sans-serif;margin:10px 0;color:var(--pink)}
.miniPlan.custom .miniPrice{color:var(--purple)}
.miniPlan p{font-size:11px;color:var(--muted);margin:0}
.commonSection{padding:72px 0;background:var(--off2)}
.commonGrid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.commonCard{padding:20px;border:1px solid var(--line);border-radius:14px;background:#fff}
.commonCard h3{font-size:17px;margin:0 0 8px}
.commonCard p{font-size:12px;color:var(--muted);margin:0}
@media(max-width:900px){
  .diffGrid{grid-template-columns:1fr}
  .commonGrid{grid-template-columns:1fr}
}
@media(max-width:640px){
  .salonSplit{grid-template-columns:1fr}
}

/* V3.1 header brand update */
.brand{
  display:flex;
  align-items:center;
  gap:10px;
}
.brand a{
  display:flex;
  align-items:center;
  gap:10px;
}
.brand .ygIcon{
  width:44px;
  height:44px;
  border-radius:10px;
  object-fit:cover;
  box-shadow:0 4px 12px rgba(6,25,35,.10);
}
.brand .ygText{
  display:flex;
  flex-direction:column;
  line-height:1;
}
.brand .ygText strong{
  font-size:17px;
  letter-spacing:.08em;
  color:#102018;
  font-weight:900;
}
.brand .ygText span{
  font-size:7px;
  letter-spacing:.18em;
  color:#8c978e;
  margin-top:4px;
}
@media(max-width:640px){
  .brand .ygIcon{width:38px;height:38px;border-radius:9px}
  .brand .ygText strong{font-size:15px}
  .brand .ygText span{font-size:6px}
}

/* V3.3 definitive header logo replacement */
.brand{
  display:flex !important;
  align-items:center !important;
  gap:0 !important;
}
.brand a{
  display:flex !important;
  align-items:center !important;
  line-height:0 !important;
}
.brand .line30HeaderLogo{
  display:block !important;
  width:220px !important;
  height:auto !important;
  max-height:48px !important;
  object-fit:contain !important;
  object-position:left center !important;
}
.brand .ygIcon,
.brand .ygText,
.brand .brandMark{
  display:none !important;
}
@media(max-width:640px){
  .brand .line30HeaderLogo{
    width:170px !important;
    max-height:42px !important;
  }
}

/* V3.4: transparent LINE30 logo only — no layout/content changes */
.brand,
.brand a{
  background:transparent !important;
  box-shadow:none !important;
  border:0 !important;
}
.brand .line30HeaderLogo{
  background:transparent !important;
  box-shadow:none !important;
  border:0 !important;
  object-fit:contain !important;
}

/* V3.5 additions */
.lineupNotice{
  margin:18px auto 0;
  max-width:920px;
  padding:14px 16px;
  background:#fff;
  border:1px solid #eadfbe;
  border-radius:14px;
  color:#5e5b51;
  font-size:12px;
  font-weight:800;
  text-align:center;
  box-shadow:0 10px 24px rgba(84,69,29,.05);
}
@media(max-width:640px){
  .lineupNotice{font-size:11px;line-height:1.7}
}


/* V3.7: keep V3.5 hero as-is; show product/content images without cropping */
.planImage{
  height:auto !important;
  min-height:0 !important;
  background:#fff;
  overflow:visible;
}
.planImage img,
.kitFrame img,
.flowVisual img,
.problemVisual img{
  display:block;
  width:100%;
  height:auto !important;
  aspect-ratio:auto !important;
  object-fit:contain !important;
  background:#fff;
}
@media(max-width:640px){
  .planImage img,
  .kitFrame img,
  .flowVisual img,
  .problemVisual img{
    width:100%;
    height:auto !important;
  }
}


/* V3.8: exact top image supplied by user */
.heroCard{
  overflow:hidden !important;
  background:#fff !important;
}
.heroCard img{
  display:block !important;
  width:100% !important;
  height:auto !important;
  aspect-ratio:auto !important;
  object-fit:contain !important;
  object-position:center center !important;
  background:#fff !important;
}


/* FINAL: approved LINE30 hero visual */
.heroCard{
  overflow:hidden !important;
  background:#fff !important;
}
.heroCard img{
  display:block !important;
  width:100% !important;
  height:auto !important;
  aspect-ratio:auto !important;
  object-fit:contain !important;
  object-position:center center !important;
  background:#fff !important;
}
