@charset "utf-8";
/* =========================================================
   設計意図
   ---------------------------------------------------------
   タイポグラフィを font.css に分離し、責務を明確化します。
   ・font-family / font-weight
   ・font-size / line-height / letter-spacing
   ※配置やレイアウトは style.css / style_sp.css 側で調整
========================================================= */

/* =========================================================
   変数（Font Tokens）
========================================================= */
:root{
  /* --ff-head: "Shippori Mincho", serif; */
  --ff-head: "Hina Mincho", serif;
  --ff-body: "Work Sans", sans-serif;

  --fw-body: 400;     /* 400〜500で調整 */
  --lh-body: 1.75;    /* 読みやすい行間 */
  --ls-body: 0.02em;  /* 軽い字間 */
}

/* =========================================================
   ベース
========================================================= */
html{
  font-family: var(--ff-body);
  font-weight: var(--fw-body);
  line-height: var(--lh-body);
  letter-spacing: var(--ls-body);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
body{
  font-family: var(--ff-body);
  font-weight: var(--fw-body);
}

/* =========================================================
   見出し（Hina固定）
========================================================= */
h1,
h2,
h3{
  font-family: var(--ff-head);
  letter-spacing: 0.03em;
  font-weight: 700;
}
h2{
  font-size: 43px;
  font-weight: 500;
  text-align: center;
}
h3{
  font-size: 24px;
  font-weight: 400;
  text-align: center;
}
h1{ text-align: left; }

/* =========================================================
   Hero キャッチ（Hina固定）
========================================================= */
.hero-sub-inner p[class*="hero-inner_text"],
.hero-catch-in-left,
.hero-catch-in-right,
.hero-catch-out-left,
.hero-catch-out-right{
  font-family: var(--ff-head);
  font-weight: 400;
  font-size: 26px;
  letter-spacing: normal;
}
.hero-catch-in-right,
.hero-catch-out-right{
  letter-spacing: 0.03em;
}

/* 個別サイズ（既存26pxより優先） */
.hero-catch-in-left{  font-size: 25px; line-height: 1; }
.hero-catch-out-left{ font-size: 24px; line-height: 1; }
.hero-catch-in-right{ font-size: 27px; line-height: 1; }
.hero-catch-out-right{font-size: 27px; line-height: 1; }

/* =========================================================
   メニュー（Hina維持）
========================================================= */
.menu-bar,
.menu-bar li,
.menu-bar a{
  font-family: var(--ff-head);
  font-weight: 500;
  font-size: 18px;
  letter-spacing: 0.05em;
}

/* =========================================================
   写真クレジット（Hina維持）
========================================================= */
.hero-photo-credit,
.hero-photo-credit a{
  font-family: var(--ff-head);
  font-weight: 400;
  letter-spacing: 0.03em;
}
.hero-photo-credit{
  text-align: right;
  font-size: 14px;
}

/* =========================================================
   Tabs（Hina）
========================================================= */
.info-tab{
  font-family: var(--ff-head);
  font-size: 16px;
  font-weight: 300;
  font-style: normal;
  letter-spacing: 0.01em;
}

/* =========================================================
   About / Services：本文系
========================================================= */
.about-lead{
  text-align: left;
  line-height: 1.9;
}
.service-box p{
  text-align: left;
  line-height: 1.85;
}
.service-points li{
  text-align: left;
  line-height: 1.8;
}

/* =========================================================
   Ordering Guide：本文系
========================================================= */
.guide_notice{
  font-size: 14px;
  line-height: 1.4;
}
.guide_step_num{
  font-size: 2em;
  line-height: 1;
  font-weight: 600;
}
.guide_step_text{
  text-align: left;
  font-size: 16px;
  line-height: 1.8;
}
.guide_details_btn{
  font-size: 15px;
}
.guide_heading{
  font-size: 1.1rem;
  font-weight: 600;
  letter-spacing: 0.05em;
}
.guide_list li{
  line-height: 1.9;
}
.guide_note{
  font-size: 0.95rem;
  line-height: 1.9;
}

/* =========================================================
   Pricing
========================================================= */
#info-panel-price h3,
#info-panel-price p,
#info-panel-price dl{
  text-align: left;
}
.pricing_subtitle{
  font-size: 23px;
  letter-spacing: .08em;
  font-weight: 500;
}
.pricing_list dt{
  font-weight: 500;
}
.pricing_note{
  line-height: 1.8;
}

/* =========================================================
   Contact
========================================================= */
.contact-box label{
  text-align: left;
}
.contact-box h2{
  text-align: center;
}
.contact-lead{
  text-align: center;
}
.contact-box input,
.contact-box textarea{
  font-size: 16px;
}
.contact-submit{
  font-size: 22px;
  letter-spacing: 0.1em;
}
.contact-status{
  font-size: 18px;
  font-weight: bold;
}

/* =========================================================
   Footer（Hina維持）+ text-align
========================================================= */
.footer-inner,
.footer-inner *{
  font-family: var(--ff-head);
  font-weight: 400;
  letter-spacing: 0.03em;
}
.footer-inner dl{ text-align: left; }
.footer-inner_flex_box_child1{ text-align: left; }
.footer-inner_flex_box_child2{ text-align: right; }
footer{
  font-family: var(--ff-head);
  font-weight: 400;
  letter-spacing: 0.03em;
  text-align: center;
}

/* =========================================================
   Privacy Policy（フォーム内）
========================================================= */
.form-privacy .privacy-title{
  font-family: inherit;
  font-size: 13px;
  font-weight: 500;
  letter-spacing: .02em;
  text-align: left;
}
.form-privacy .privacy-inner{
  font-size: 12.5px;
  line-height: 1.3;
}
.privacy-agree-text{
  font-size: 13px;
  line-height: 2;
}

/* =========================================================
   PCのみ：HERO mirror text (OUT) - final override
========================================================= */
@media (min-width: 701px){
  .hero-sub-inner{
    position: relative;
    overflow: visible;
  }
  .hero-catch-out-left,
  .hero-catch-out-right{
    display: inline-block;
    visibility: visible;
    opacity: 0.5;
    z-index: 10;
    pointer-events: none;
  }
}

/* =========================================================
   Responsive typography
========================================================= */
@media (max-width: 768px){
  input,
  textarea,
  select{
    font-size: 16px;
  }
  .contact-submit{
    font-size: 16px;
    text-align: center;
  }
  .form-privacy .privacy-title{
    font-size: 12.5px;
  }
  .form-privacy .privacy-inner{
    font-size: 12px;
    line-height: 1.3;
  }
  .privacy-agree-text{
    font-size: 12.5px;
  }
  .service-box p{
    text-align: left;
  }
  .contact-lead-sub{
    text-align: left;
    font-size: 13px;
  }
}
@media (max-width: 500px){
  .contact-submit{
    font-size: 18px;
  }
}

/* ヒーローセクションの縦書きキャッチ */
@media (max-width: 700px){
  .hero-catch-in-left,
  .hero-catch-in-right,
  .hero-catch-out-left,
  .hero-catch-out-right{
    font-size: 22px;
  }
  .hero-photo-credit{
    text-align: center;
    font-size: 14px;
  }
}
@media screen and (max-width: 740px){
  .about-lead{
    text-align: left;
  }
}