/* Luna crescente v1.9.3 — targeted layout audit
   v1.9.0の全ページ一括上書きを廃止し、既知のFV/CTAだけを限定調整。 */
:root{
  --luna-fv-h-desktop: 720px;
  --luna-fv-h-tablet: 620px;
  --luna-fv-h-mobile: 560px;
  --luna-fv-title-desktop: 48px;
  --luna-fv-title-tablet: 38px;
  --luna-fv-title-mobile: 30px;
}

/* PHP専用テンプレートの共通FV */
body.luna-validation-site .luna-fv-safe:not(.luna-fv-safe--compact){
  min-height:var(--luna-fv-h-desktop);
}
body.luna-validation-site .luna-fv-safe:not(.luna-fv-safe--compact) .luna-fv-safe__inner{
  min-height:var(--luna-fv-h-desktop);
}
body.luna-validation-site .luna-fv-safe__copy{box-sizing:border-box;}
body.luna-validation-site .luna-fv-safe__title{
  font-family:var(--luna-font-serif);
  font-size:var(--luna-fv-title-desktop);
  line-height:1.45;
  letter-spacing:.025em;
  font-weight:400;
  text-wrap:balance;
}
body.luna-validation-site .luna-fv-safe--compact{min-height:auto;}
body.luna-validation-site .luna-fv-safe--compact .luna-fv-safe__title{font-size:42px;line-height:1.4;}

/* TOP FV — 位置・高さ・コピー幅を固定。スライダー自体には触れない */
body.luna-validation-site [data-luna-home-hero],
body.luna-validation-site [data-luna-home-hero] > .relative.mx-auto.flex{
  min-height:var(--luna-fv-h-desktop);
}
body.luna-validation-site [data-luna-home-hero] .luna-home-hero-copy{
  max-width:640px;
  padding-top:72px;
  padding-bottom:72px;
}
body.luna-validation-site [data-luna-home-hero] .luna-home-hero-title{
  font-size:52px;
  line-height:1.38;
  letter-spacing:.025em;
}
body.luna-validation-site [data-luna-home-hero] .luna-home-hero-line{display:block;}

/* V0由来の画像FV。対象URLを明示し、本文・CTAセクションには作用させない */
body.luna-validation-site .luna-generated-page:is(
  [data-luna-source-page="concerns"],
  [data-luna-source-page="concerns/dry"],
  [data-luna-source-page="concerns/rough"],
  [data-luna-source-page="concerns/aging-lines"],
  [data-luna-source-page="concerns/firmness"],
  [data-luna-source-page="concerns/spots-dullness"],
  [data-luna-source-page="concerns/aging"],
  [data-luna-source-page="flow"],
  [data-luna-source-page="voice"],
  [data-luna-source-page="products"],
  [data-luna-source-page="products/bodycare"],
  [data-luna-source-page="products/makeup"]
) > section:first-child{
  min-height:var(--luna-fv-h-desktop);
  overflow:hidden;
}
body.luna-validation-site .luna-generated-page:is(
  [data-luna-source-page="concerns"],
  [data-luna-source-page="concerns/dry"],
  [data-luna-source-page="concerns/rough"],
  [data-luna-source-page="concerns/aging-lines"],
  [data-luna-source-page="concerns/firmness"],
  [data-luna-source-page="concerns/spots-dullness"],
  [data-luna-source-page="concerns/aging"],
  [data-luna-source-page="flow"],
  [data-luna-source-page="voice"],
  [data-luna-source-page="products"],
  [data-luna-source-page="products/bodycare"],
  [data-luna-source-page="products/makeup"]
) > section:first-child > div.relative[class*="flex"][class*="min-h-"]{
  min-height:var(--luna-fv-h-desktop);
}
body.luna-validation-site .luna-generated-page:is(
  [data-luna-source-page="concerns"],
  [data-luna-source-page="concerns/dry"],
  [data-luna-source-page="concerns/rough"],
  [data-luna-source-page="concerns/aging-lines"],
  [data-luna-source-page="concerns/firmness"],
  [data-luna-source-page="concerns/spots-dullness"],
  [data-luna-source-page="concerns/aging"],
  [data-luna-source-page="flow"],
  [data-luna-source-page="voice"]
) > section:first-child h1{
  max-width:680px;
  font-family:var(--luna-font-serif);
  font-size:var(--luna-fv-title-desktop);
  line-height:1.45;
  letter-spacing:.025em;
  font-weight:400;
  text-wrap:balance;
}

/* FV内のボタンには min-h-[48px]/[56px] があるため、
   min-height統一はFV直下のメインflexコンテナだけに限定する。
   子孫全体へ適用するとCTAがFV高まで伸びて崩れる。 */
/* 商品紹介系FVは従来の下寄せをやめ、他ページと同じ中央位置へ */
body.luna-validation-site .luna-generated-page:is(
  [data-luna-source-page="products"],
  [data-luna-source-page="products/bodycare"],
  [data-luna-source-page="products/makeup"]
) > section:first-child > div.relative[class*="flex"]{
  align-items:center;
  width:min(100% - 48px,1180px);
  max-width:1180px;
  margin-inline:auto;
  padding-inline:0;
}
body.luna-validation-site .luna-generated-page:is(
  [data-luna-source-page="products"],
  [data-luna-source-page="products/bodycare"],
  [data-luna-source-page="products/makeup"]
) > section:first-child > div.relative[class*="flex"] > div{
  width:min(100%,640px);
  max-width:640px;
  padding:72px 0;
  text-align:left;
}
body.luna-validation-site .luna-generated-page:is(
  [data-luna-source-page="products"],
  [data-luna-source-page="products/bodycare"],
  [data-luna-source-page="products/makeup"]
) > section:first-child h1{
  margin-top:16px;
  font-family:var(--luna-font-serif);
  font-size:var(--luna-fv-title-desktop);
  line-height:1.45;
  letter-spacing:.025em;
  font-weight:400;
  text-align:left;
  text-wrap:balance;
}
body.luna-validation-site .luna-generated-page:is(
  [data-luna-source-page="products"],
  [data-luna-source-page="products/bodycare"],
  [data-luna-source-page="products/makeup"]
) > section:first-child p,
body.luna-validation-site .luna-generated-page:is(
  [data-luna-source-page="products"],
  [data-luna-source-page="products/bodycare"],
  [data-luna-source-page="products/makeup"]
) > section:first-child div[class*="mt-"]{
  text-align:left;
  margin-left:0;
  margin-right:0;
}

/* 商品カテゴリ専用テンプレートもFV基準だけ合わせる */
body.luna-validation-site .luna-pc-hero{
  min-height:var(--luna-fv-h-desktop);
  align-items:center;
}
body.luna-validation-site .luna-pc-hero__inner{
  padding:120px 0 72px;
}
body.luna-validation-site .luna-pc-hero h1{
  font-size:var(--luna-fv-title-desktop);
  line-height:1.45;
}

/* 選ばれる理由・アクセス・毛穴の専用FVを同じ高さへ */
body.luna-validation-site .luna-stable-reason__hero,
body.luna-validation-site .luna-stable-access__hero,
body.luna-validation-site .luna-stable-pores__hero{
  min-height:var(--luna-fv-h-desktop);
}
body.luna-validation-site .luna-stable-reason__hero-inner,
body.luna-validation-site .luna-stable-pores__hero-inner{
  min-height:var(--luna-fv-h-desktop);
  display:flex;
  align-items:center;
}
body.luna-validation-site .luna-stable-reason__hero-copy,
body.luna-validation-site .luna-stable-pores__hero-copy{
  padding:96px 0 72px;
}
body.luna-validation-site .luna-stable-access__hero-copy{
  padding:120px 0 64px;
}
body.luna-validation-site .luna-stable-reason__hero h1,
body.luna-validation-site .luna-stable-access__hero h1,
body.luna-validation-site .luna-stable-pores__hero h1{
  font-size:var(--luna-fv-title-desktop);
  line-height:1.45;
  font-weight:400;
}

/* 会社概要は画像FVではないため、同じ見出し規格のコンパクト型 */
body.luna-validation-site .luna-profile-hero{
  padding:96px 0 88px;
}
body.luna-validation-site .luna-profile-container--title h1{
  font-size:42px;
  line-height:1.4;
}

/* セクション見出しの改行・行間を安定化。対象は主要見出しだけ */
body.luna-validation-site .luna-site-shell main h2{
  line-height:1.65;
  text-wrap:balance;
}

/* CTAはページ固有デザインを維持します。
   FV統一CSSからCTAへの寸法・配色上書きは行いません。 */

@media (max-width:1023px){
  body.luna-validation-site .luna-fv-safe:not(.luna-fv-safe--compact),
  body.luna-validation-site .luna-fv-safe:not(.luna-fv-safe--compact) .luna-fv-safe__inner,
  body.luna-validation-site [data-luna-home-hero],
  body.luna-validation-site [data-luna-home-hero] > .relative.mx-auto.flex,
  body.luna-validation-site .luna-pc-hero,
  body.luna-validation-site .luna-stable-reason__hero,
  body.luna-validation-site .luna-stable-access__hero,
  body.luna-validation-site .luna-stable-pores__hero,
  body.luna-validation-site .luna-stable-reason__hero-inner,
  body.luna-validation-site .luna-stable-pores__hero-inner{
    min-height:var(--luna-fv-h-tablet);
  }
  body.luna-validation-site .luna-generated-page:is(
    [data-luna-source-page="concerns"],[data-luna-source-page="concerns/dry"],[data-luna-source-page="concerns/rough"],
    [data-luna-source-page="concerns/aging-lines"],[data-luna-source-page="concerns/firmness"],[data-luna-source-page="concerns/spots-dullness"],
    [data-luna-source-page="concerns/aging"],[data-luna-source-page="flow"],[data-luna-source-page="voice"],
    [data-luna-source-page="products"],[data-luna-source-page="products/bodycare"],[data-luna-source-page="products/makeup"]
  ) > section:first-child,
  body.luna-validation-site .luna-generated-page:is(
    [data-luna-source-page="concerns"],[data-luna-source-page="concerns/dry"],[data-luna-source-page="concerns/rough"],
    [data-luna-source-page="concerns/aging-lines"],[data-luna-source-page="concerns/firmness"],[data-luna-source-page="concerns/spots-dullness"],
    [data-luna-source-page="concerns/aging"],[data-luna-source-page="flow"],[data-luna-source-page="voice"],
    [data-luna-source-page="products"],[data-luna-source-page="products/bodycare"],[data-luna-source-page="products/makeup"]
  ) > section:first-child > div.relative[class*="flex"][class*="min-h-"]{min-height:var(--luna-fv-h-tablet);}
  body.luna-validation-site .luna-fv-safe__title,
  body.luna-validation-site [data-luna-home-hero] .luna-home-hero-title,
  body.luna-validation-site .luna-generated-page:is(
    [data-luna-source-page="concerns"],[data-luna-source-page="concerns/dry"],[data-luna-source-page="concerns/rough"],
    [data-luna-source-page="concerns/aging-lines"],[data-luna-source-page="concerns/firmness"],[data-luna-source-page="concerns/spots-dullness"],
    [data-luna-source-page="concerns/aging"],[data-luna-source-page="flow"],[data-luna-source-page="voice"],
    [data-luna-source-page="products"],[data-luna-source-page="products/bodycare"],[data-luna-source-page="products/makeup"]
  ) > section:first-child h1,
  body.luna-validation-site .luna-pc-hero h1,
  body.luna-validation-site .luna-stable-reason__hero h1,
  body.luna-validation-site .luna-stable-access__hero h1,
  body.luna-validation-site .luna-stable-pores__hero h1{font-size:var(--luna-fv-title-tablet);}
}

@media (max-width:640px){
  body.luna-validation-site .luna-fv-safe:not(.luna-fv-safe--compact),
  body.luna-validation-site .luna-fv-safe:not(.luna-fv-safe--compact) .luna-fv-safe__inner,
  body.luna-validation-site [data-luna-home-hero],
  body.luna-validation-site [data-luna-home-hero] > .relative.mx-auto.flex,
  body.luna-validation-site .luna-pc-hero,
  body.luna-validation-site .luna-stable-reason__hero,
  body.luna-validation-site .luna-stable-access__hero,
  body.luna-validation-site .luna-stable-pores__hero,
  body.luna-validation-site .luna-stable-reason__hero-inner,
  body.luna-validation-site .luna-stable-pores__hero-inner{min-height:var(--luna-fv-h-mobile);}
  body.luna-validation-site .luna-generated-page:is(
    [data-luna-source-page="concerns"],[data-luna-source-page="concerns/dry"],[data-luna-source-page="concerns/rough"],
    [data-luna-source-page="concerns/aging-lines"],[data-luna-source-page="concerns/firmness"],[data-luna-source-page="concerns/spots-dullness"],
    [data-luna-source-page="concerns/aging"],[data-luna-source-page="flow"],[data-luna-source-page="voice"],
    [data-luna-source-page="products"],[data-luna-source-page="products/bodycare"],[data-luna-source-page="products/makeup"]
  ) > section:first-child,
  body.luna-validation-site .luna-generated-page:is(
    [data-luna-source-page="concerns"],[data-luna-source-page="concerns/dry"],[data-luna-source-page="concerns/rough"],
    [data-luna-source-page="concerns/aging-lines"],[data-luna-source-page="concerns/firmness"],[data-luna-source-page="concerns/spots-dullness"],
    [data-luna-source-page="concerns/aging"],[data-luna-source-page="flow"],[data-luna-source-page="voice"],
    [data-luna-source-page="products"],[data-luna-source-page="products/bodycare"],[data-luna-source-page="products/makeup"]
  ) > section:first-child > div.relative[class*="flex"][class*="min-h-"]{min-height:var(--luna-fv-h-mobile);}
  body.luna-validation-site [data-luna-home-hero] .luna-home-hero-copy{padding:96px 0 64px;}
  body.luna-validation-site .luna-fv-safe__title,
  body.luna-validation-site [data-luna-home-hero] .luna-home-hero-title,
  body.luna-validation-site .luna-generated-page:is(
    [data-luna-source-page="concerns"],[data-luna-source-page="concerns/dry"],[data-luna-source-page="concerns/rough"],
    [data-luna-source-page="concerns/aging-lines"],[data-luna-source-page="concerns/firmness"],[data-luna-source-page="concerns/spots-dullness"],
    [data-luna-source-page="concerns/aging"],[data-luna-source-page="flow"],[data-luna-source-page="voice"],
    [data-luna-source-page="products"],[data-luna-source-page="products/bodycare"],[data-luna-source-page="products/makeup"]
  ) > section:first-child h1,
  body.luna-validation-site .luna-pc-hero h1,
  body.luna-validation-site .luna-stable-reason__hero h1,
  body.luna-validation-site .luna-stable-access__hero h1,
  body.luna-validation-site .luna-stable-pores__hero h1{font-size:var(--luna-fv-title-mobile);line-height:1.5;}
  body.luna-validation-site .luna-generated-page:is(
    [data-luna-source-page="products"],[data-luna-source-page="products/bodycare"],[data-luna-source-page="products/makeup"]
  ) > section:first-child > div.relative[class*="flex"]{width:calc(100% - 40px);}
  body.luna-validation-site .luna-generated-page:is(
    [data-luna-source-page="products"],[data-luna-source-page="products/bodycare"],[data-luna-source-page="products/makeup"]
  ) > section:first-child > div.relative[class*="flex"] > div{padding:100px 0 56px;}
}

/* コンパクトFV / 記事タイトル。本文を高さ固定しない */
body.luna-validation-site .luna-generated-page:is(
  [data-luna-source-page="faq"],
  [data-luna-source-page="privacy"],
  [data-luna-source-page="disclaimer"],
  [data-luna-source-page="sitemap-page"],
  [data-luna-source-page="products/skincare/moisture-balance-moisturizer"]
) > :first-child h1,
body.luna-validation-site .luna-generated-page[data-luna-source-page^="tips/"] > article:first-child header h1{
  font-family:var(--luna-font-serif);
  font-size:42px;
  line-height:1.45;
  letter-spacing:.025em;
  font-weight:400;
  text-wrap:balance;
}
body.luna-validation-site .luna-generated-page:is(
  [data-luna-source-page="faq"],
  [data-luna-source-page="privacy"],
  [data-luna-source-page="disclaimer"],
  [data-luna-source-page="sitemap-page"]
) > :first-child{
  padding-top:88px;
  padding-bottom:88px;
}
body.luna-validation-site .luna-generated-page[data-luna-source-page="tips"] > section:first-child{
  min-height:var(--luna-fv-h-desktop);
}
body.luna-validation-site .luna-generated-page[data-luna-source-page="tips"] > section:first-child h1{
  font-family:var(--luna-font-serif);
  font-size:var(--luna-fv-title-desktop);
  line-height:1.45;
  letter-spacing:.025em;
  font-weight:400;
}
@media (max-width:1023px){
  body.luna-validation-site .luna-generated-page[data-luna-source-page="tips"] > section:first-child{min-height:var(--luna-fv-h-tablet);}
  body.luna-validation-site .luna-generated-page[data-luna-source-page="tips"] > section:first-child h1,
  body.luna-validation-site .luna-generated-page:is([data-luna-source-page="faq"],[data-luna-source-page="privacy"],[data-luna-source-page="disclaimer"],[data-luna-source-page="sitemap-page"],[data-luna-source-page="products/skincare/moisture-balance-moisturizer"]) > :first-child h1,
  body.luna-validation-site .luna-generated-page[data-luna-source-page^="tips/"] > article:first-child header h1{font-size:36px;}
}
@media (max-width:640px){
  body.luna-validation-site .luna-generated-page[data-luna-source-page="tips"] > section:first-child{min-height:var(--luna-fv-h-mobile);}
  body.luna-validation-site .luna-generated-page[data-luna-source-page="tips"] > section:first-child h1,
  body.luna-validation-site .luna-generated-page:is([data-luna-source-page="faq"],[data-luna-source-page="privacy"],[data-luna-source-page="disclaimer"],[data-luna-source-page="sitemap-page"],[data-luna-source-page="products/skincare/moisture-balance-moisturizer"]) > :first-child h1,
  body.luna-validation-site .luna-generated-page[data-luna-source-page^="tips/"] > article:first-child header h1{font-size:29px;line-height:1.5;}
  body.luna-validation-site .luna-generated-page:is([data-luna-source-page="faq"],[data-luna-source-page="privacy"],[data-luna-source-page="disclaimer"],[data-luna-source-page="sitemap-page"]) > :first-child{padding-top:72px;padding-bottom:64px;}
}


/* v1.9.3 CTA layout safety — known CTA components only */
body.luna-validation-site .luna-stable-final-cta,
body.luna-validation-site .luna-profile-cta,
body.luna-validation-site .luna-pc-final-cta,
body.luna-validation-site .luna-cat-dark-cta,
body.luna-validation-site .luna-reason-final{
  box-sizing:border-box;
  max-width:100%;
}
body.luna-validation-site .luna-stable-final-cta h2,
body.luna-validation-site .luna-pc-final-cta h2,
body.luna-validation-site .luna-cat-dark-cta h2,
body.luna-validation-site .luna-reason-final h2{
  overflow-wrap:anywhere;
  text-wrap:balance;
}
body.luna-validation-site .luna-stable-final-cta a,
body.luna-validation-site .luna-profile-cta a,
body.luna-validation-site .luna-pc-final-cta a,
body.luna-validation-site .luna-cat-dark-cta a,
body.luna-validation-site .luna-reason-final a{
  box-sizing:border-box;
  max-width:100%;
}
body.luna-validation-site .luna-line-banner img,
body.luna-validation-site [data-luna-diagnosis-banner] img{
  display:block;
  width:100%;
  max-width:100%;
  height:auto;
}
@media (max-width:640px){
  body.luna-validation-site .luna-stable-final-cta a,
  body.luna-validation-site .luna-profile-cta a,
  body.luna-validation-site .luna-pc-final-cta a,
  body.luna-validation-site .luna-cat-dark-cta a,
  body.luna-validation-site .luna-reason-final a{
    width:min(100%,330px);
    min-width:0;
  }
}
