@charset "UTF-8";

/* reset */
html, body, div, span, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre,
abbr, address, cite, code, del, dfn, em, img, ins, kbd, q, samp, small, strong, sub, sup, var,
b, i, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td,
article, aside, canvas, details, figcaption, figure, footer, header, hgroup, menu, nav, section,
summary, time, mark, audio, video {
margin:0;
padding:0;
border:0;
outline:0;
font-size:100%;
vertical-align:baseline;
background:transparent;
}

/* ================================
   Base reset (accessibility friendly)
   ================================ */
*, *::before, *::after {
  box-sizing: border-box;
}

html {
  font-size: 62.5%;
  overflow-y: scroll;
  -webkit-text-size-adjust: 100%;
}

body {
  margin: 0;
  color: #292929;
  background: #ffffff;
  min-width: 320px;
  letter-spacing: 0.1rem;
  line-height: 1; /* 初期値（各ブレークポイントで上書き） */
}

img {
  max-width: 100%;
  vertical-align: middle;
}

table {
  border-collapse: collapse;
  border-spacing: 0;
}

ul, ol {
  margin: 0;
  padding: 0;
}

ol {
  padding-left: 1.5em; /* 既存仕様を温存 */
}
ul {
list-style:none
}
h1, h2, h3, h4, h5, h6 {
  font-weight: normal;
  margin: 0;
}

blockquote, q {
  quotes: none;
}
blockquote::before,
blockquote::after,
q::before,
q::after {
  content: "";
}

hr {
  display: block;
  height: 1px;
  border: 0;
  border-top: 1px solid #cccccc;
  margin: 0;
  padding: 0;
}

/* ================================
   Links
   ================================ */
a {
  color: #292929;
  text-decoration: none;
  transition: 0.3s;
}
a:hover,
a:active {
  text-decoration: none;
  opacity: 0.7;
}
a:focus-visible {
  outline: 2px solid currentColor;
  outline-offset: 2px;
}

/* ================================
   Utilities
   ================================ */
.cf::after {
  content: "";
  display: table;
  clear: both;
}
.txt_bold{
font-weight: 900;
}
.txt_red   { color: #F14D4D; }
.txt_orange { color: #f08300; }
.txt_green { color: #479700; }
.txt_link{
    display: inline-block;
    border-bottom: 1px dotted #1b93cf;
    color: #1b93cf !important;
    font-weight: 500;
}

/* ================================
   PC (>= 751px)
   ================================ */
@media screen and (min-width: 751px) {
  body {
    font-size: 1.6rem;
    line-height: 1.7;
    font-family: "Zen Maru Gothic", sans-serif;
    font-weight: 500;
    letter-spacing: .07rem;
  }

  .pc { display: block !important; }
  .sp { display: none  !important; }

  /* telリンクを無効化（PCのみ） */
  a[href*="tel:"] {
    pointer-events: none;
    cursor: default;
    text-decoration: none;
  }

  /* margin utilities (PC) — 既存クラスを温存 */
  .mbpc10  { margin-bottom: 1rem  !important; }
  .mbpc20  { margin-bottom: 2rem  !important; }
  .mbpc30  { margin-bottom: 3rem  !important; }
  .mbpc40  { margin-bottom: 4rem  !important; }
  .mbpc50  { margin-bottom: 5rem  !important; }
  .mbpc60  { margin-bottom: 6rem  !important; }
  .mbpc70  { margin-bottom: 7rem  !important; }
  .mbpc80  { margin-bottom: 8rem  !important; }
  .mbpc90  { margin-bottom: 9rem  !important; }
  .mbpc100 { margin-bottom: 10rem !important; }
  .mbpc110 { margin-bottom: 11rem !important; }
  .mbpc120 { margin-bottom: 12rem !important; }
  .mbpc130 { margin-bottom: 13rem !important; }
  .mbpc140 { margin-bottom: 14rem !important; }
  .mbpc150 { margin-bottom: 15rem !important; }
  .mbpc160 { margin-bottom: 16rem !important; }
  .mbpc170 { margin-bottom: 17rem !important; }
  .mbpc180 { margin-bottom: 18rem !important; }
  .mbpc190 { margin-bottom: 19rem !important; }
  .mbpc200 { margin-bottom: 20rem !important; }

  .mtpc0   { margin-top: 0rem  !important; }
  .mtpc10  { margin-top: 1rem  !important; }
  .mtpc20  { margin-top: 2rem  !important; }
  .mtpc30  { margin-top: 3rem  !important; }
  .mtpc40  { margin-top: 4rem  !important; }
  .mtpc50  { margin-top: 5rem  !important; }
  .mtpc60  { margin-top: 6rem  !important; }
  .mtpc70  { margin-top: 7rem  !important; }
  .mtpc80  { margin-top: 8rem  !important; }
  .mtpc90  { margin-top: 9rem  !important; }
  .mtpc100 { margin-top: 10rem !important; }
  .mtpc110 { margin-top: 11rem !important; }
  .mtpc120 { margin-top: 12rem !important; }
  .mtpc130 { margin-top: 13rem !important; }
  .mtpc140 { margin-top: 14rem !important; }
  .mtpc150 { margin-top: 15rem !important; }
  .mtpc160 { margin-top: 16rem !important; }
  .mtpc170 { margin-top: 17rem !important; }
  .mtpc180 { margin-top: 18rem !important; }
  .mtpc190 { margin-top: 19rem !important; }
  .mtpc200 { margin-top: 20rem !important; }

  .ptpc30 { padding-top: 3rem !important; }
  .ptpc50 { padding-top: 5rem !important; }

  /* アンカー位置調整 */
  .alink  { display:block !important; margin-top:-290px !important; padding-top:290px !important; }
  .alink2 { display:block !important; margin-top:-210px !important; padding-top:210px !important; }
}

/* ================================
   SP (<= 750px)
   ================================ */
@media screen and (max-width: 750px) {
  body {
    font-size: 1.5rem;
    line-height: 1.6;
    font-family: "Zen Maru Gothic", sans-serif;
    font-weight: 500;
  }

  .pc { display: none  !important; }
  .sp { display: block !important; }

  .alink { display:block !important; margin-top:-10vh !important; padding-top:10vh !important; }

  /* margin utilities (SP) — 既存クラスを温存 */
  .mbsp10  { margin-bottom: 1rem  !important; }
  .mbsp20  { margin-bottom: 2rem  !important; }
  .mbsp30  { margin-bottom: 3rem  !important; }
  .mbsp40  { margin-bottom: 4rem  !important; }
  .mbsp50  { margin-bottom: 5rem  !important; }
  .mbsp60  { margin-bottom: 6rem  !important; }
  .mbsp70  { margin-bottom: 7rem  !important; }
  .mbsp80  { margin-bottom: 8rem  !important; }
  .mbsp90  { margin-bottom: 9rem  !important; }
  .mbsp100 { margin-bottom: 10rem !important; }
  .mbsp110 { margin-bottom: 11rem !important; }
  .mbsp120 { margin-bottom: 12rem !important; }
  .mbsp130 { margin-bottom: 13rem !important; }
  .mbsp140 { margin-bottom: 14rem !important; }
  .mbsp150 { margin-bottom: 15rem !important; }
  .mbsp160 { margin-bottom: 16rem !important; }
  .mbsp170 { margin-bottom: 17rem !important; }
  .mbsp180 { margin-bottom: 18rem !important; }
  .mbsp190 { margin-bottom: 19rem !important; }
  .mbsp200 { margin-bottom: 20rem !important; }

  .mtsp0   { margin-top: 0rem  !important; }
  .mtsp10  { margin-top: 1rem  !important; }
  .mtsp20  { margin-top: 2rem  !important; }
  .mtsp30  { margin-top: 3rem  !important; }
  .mtsp40  { margin-top: 4rem  !important; }
  .mtsp50  { margin-top: 5rem  !important; }
  .mtsp60  { margin-top: 6rem  !important; }
  .mtsp70  { margin-top: 7rem  !important; }
  .mtsp80  { margin-top: 8rem  !important; }
  .mtsp90  { margin-top: 9rem  !important; }
  .mtsp100 { margin-top: 10rem !important; }
  .mtsp110 { margin-top: 11rem !important; }
  .mtsp120 { margin-top: 12rem !important; }
  .mtsp130 { margin-top: 13rem !important; }
  .mtsp140 { margin-top: 14rem !important; }
  .mtsp150 { margin-top: 15rem !important; }
  .mtsp160 { margin-top: 16rem !important; }
  .mtsp170 { margin-top: 17rem !important; }
  .mtsp180 { margin-top: 18rem !important; }
  .mtsp190 { margin-top: 19rem !important; }
  .mtsp200 { margin-top: 20rem !important; }

  .ptsp50 { padding-top: 5rem !important; }
}
