    *, *::before, *::after {
      box-sizing: border-box;
      margin: 0;
      padding: 0;
    }
    :root {
      --orange-hero: #fff3e6;
      --orange-mid: #d95f0a;
      --orange-accent: #f28330;
      --orange-bright: #ff9a3c;
      --orange-pale: #fff8f2;
      --orange-light: #ffe4c8;
      --text-hero: #4a1e02;
      --text-muted-hero: rgba(74, 30, 2, 0.58);
      --text-dimmer-hero: rgba(74, 30, 2, 0.36);
      --body-bg: #fff8f2;
      --border: rgba(210, 90, 10, 0.14);
      --text-primary: #1c1208;
      --text-secondary: #5a3e28;
      --text-tertiary: #b08060;
    }
    html {
      scroll-behavior: smooth;
    }
    body {
      font-family: 'DM Sans', sans-serif;
      background: var(--body-bg);
      color: var(--text-primary);
      min-height: 100vh;
    }
    /* ── HERO ── */
    .hero {
      background-image: url('../images/body_s_bg.jpg');
      background-repeat: repeat;
      padding: 1rem 2rem 4rem;
      position: relative;
      overflow: hidden;
      border-bottom: 1px solid var(--border);
    }
    /*.hero::before {
      content: '';
      position: absolute;
      top: -90px; right: -90px;
      width: 400px; height: 400px;
      border-radius: 50%;
      border: 1.5px solid rgba(242,131,48,0.2);
      pointer-events: none;
    }*/
    /*.hero::after {
      content: '';
      position: absolute;
      bottom: -60px; left: 36%;
      width: 260px; height: 260px;
      border-radius: 50%;
      border: 1px solid rgba(242,131,48,0.12);
      pointer-events: none;
    }*/
    .hero-inner {
      max-width: 800px;
      margin: 0 auto;
      position: relative;
    }
    .hero-inner img {
      width: 100%;
    }
    .header_logo {
      text-align: center;
		margin-bottom: 10px;
    }
    .header_logo img {
      width: 25%;
    }
    .badge {
      display: inline-flex;
      align-items: center;
      gap: 7px;
      font-size: 11px;
      letter-spacing: 0.13em;
      text-transform: uppercase;
      color: var(--orange-mid);
      border: 1px solid rgba(210, 90, 10, 0.28);
      background: rgba(255, 255, 255, 0.6);
      padding: 6px 14px;
      border-radius: 20px;
      margin-bottom: 2rem;
    }
    .badge-dot {
      width: 6px;
      height: 6px;
      border-radius: 50%;
      background: var(--orange-accent);
      flex-shrink: 0;
    }
    .hero h1 {
      font-family: 'Cormorant Garamond', serif;
      font-size: clamp(38px, 6vw, 58px);
      font-weight: 300;
      line-height: 1.15;
      color: var(--text-hero);
      margin-bottom: 1.25rem;
    }
    .hero h1 em {
      font-style: italic;
      color: var(--orange-mid);
    }
    .hero p {
      font-size: 15px;
      color: var(--text-muted-hero);
      line-height: 1.8;
      max-width: 480px;
      font-weight: 300;
    }
    .certs {
      display: flex;
      gap: 10px;
      margin-top: 2.5rem;
      flex-wrap: wrap;
    }
    .cert {
      font-size: 11px;
      letter-spacing: 0.09em;
      color: var(--text-dimmer-hero);
      border: 1px solid rgba(210, 90, 10, 0.2);
      background: rgba(255, 255, 255, 0.5);
      padding: 5px 12px;
      border-radius: 4px;
    }
    /* ── MAIN ── */
    .main {
      max-width: 800px;
      margin: 0 auto;
      padding: 0 2rem 4rem;
    }
    /* ── SECTION LABEL ── */
    .section-label {
      margin: 3.5rem 0 1.75rem;
      padding: 1rem 1.25rem 1rem 1.5rem;
      background: var(--orange-light);
      border-left: 10px solid var(--orange-mid);
      border-radius: 0 10px 10px 0;
      display: flex;
      align-items: center;
      gap: 14px;
      font-size: 26px;
      font-family: YuMincho, "Yu Mincho", "Hiragino Mincho ProN", "serif";
      font-weight: 600;
    }
    .section-label-num {
      font-family: 'Cormorant Garamond', serif;
      font-size: 40px;
      font-weight: 300;
      color: var(--orange-accent);
      line-height: 1;
      flex-shrink: 0;
    }
    .section-label-text {
      display: flex;
      flex-direction: column;
      gap: 2px;
    }
    .section-label-en {
      font-size: 10px;
      letter-spacing: 0.16em;
      text-transform: uppercase;
      color: var(--orange-mid);
      font-weight: 500;
    }
    .section-label-ja {
      font-family: 'Cormorant Garamond', serif;
      font-size: 22px;
      font-weight: 400;
      color: var(--text-primary);
      line-height: 1.2;
    }
    /* ── STEPS ── */
    .steps {
      display: flex;
      flex-direction: column;
    }
    .step {
      display: grid;
      grid-template-columns: 56px 1fr;
      gap: 0 1rem;
    }
    .step-left {
      display: flex;
      flex-direction: column;
      align-items: center;
    }
    .step-num {
      width: 40px;
      height: 40px;
      border-radius: 50%;
      border: 1.5px solid var(--orange-accent);
      background: #fff;
      display: flex;
      align-items: center;
      justify-content: center;
      font-size: 16px;
      font-weight: 500;
      color: var(--orange-mid);
      flex-shrink: 0;
    }
    .step-line {
      width: 2px;
      flex: 1;
      background: var(--orange-light);
      margin: 5px 0;
      min-height: 24px;
    }
    .step:last-child .step-line {
      display: none;
    }
    .step-content {
      padding-bottom: 2rem;
      padding-top: 9px;
    }
    .step-title {
      font-size: 16px;
      font-weight: 500;
      color: var(--text-primary);
      margin-bottom: 4px;
    }
    .step-desc {
      font-size: 14px;
      color: var(--text-secondary);
      line-height: 1.65;
      font-weight: 300;
    }
    /* ── FORM CARD ── */
    .form-card {
      background: #fff;
      border-radius: 16px;
      border: 1px solid var(--orange-light);
      padding: 1.75rem;
    }
    .form-card-title {
      font-size: 14px;
      font-weight: 500;
      color: var(--text-secondary);
      margin-bottom: 1.25rem;
      display: flex;
      align-items: center;
      gap: 8px;
    }
    .form-card-title svg {
      color: var(--orange-mid);
      flex-shrink: 0;
    }
    .items {
      display: flex;
      flex-direction: column;
    }
    .item {
      display: grid;
      grid-template-columns: 32px 1fr;
      gap: 0 12px;
      align-items: start;
      padding: 12px 0;
      border-bottom: 1px solid rgba(210, 90, 10, 0.08);
    }
    .item:last-child {
      border-bottom: none;
    }
    .item-num {
      font-size: 14px;
      font-weight: 500;
      color: var(--orange-accent);
      padding-top: 2px;
    }
    .item-text {
      font-size: 16px;
      color: var(--text-primary);
      line-height: 1.5;
    }
    .item-sub {
      font-size: 12px;
      color: var(--text-tertiary);
      margin-top: 3px;
      font-weight: 300;
    }
    /* ── CTA ── */
    .cta {
      margin-top: 2.5rem;
      background: var(--orange-mid);
      border-radius: 16px;
      padding: 2rem;
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 1.5rem;
      flex-wrap: wrap;
    }
    .cta-label {
      font-size: 16px;
      /*letter-spacing: 0.12em;*/
      text-transform: uppercase;
      color: rgba(255, 248, 242, 0.7);
      margin-bottom: 6px;
    }
    .cta-email {
      font-size: 22px;
      font-weight: 500;
      color: #fff;
      margin-bottom: 4px;
    }
    .cta-sub {
      font-size: 14px;
      color: rgba(255, 248, 242, 0.65);
      font-weight: 300;
    }
    .cta-btn {
      display: inline-flex;
      align-items: center;
      gap: 8px;
      background: #fff;
      color: var(--orange-mid);
      font-size: 13px;
      font-weight: 500;
      padding: 12px 24px;
      border-radius: 28px;
      text-decoration: none;
      white-space: nowrap;
      font-family: inherit;
      transition: opacity 0.15s;
    }
    .cta-btn:hover {
      opacity: 0.88;
    }
    footer {
      text-align: center;
      padding: 2rem;
      font-size: 12px;
      color: var(--text-tertiary);
      border-top: 1px solid var(--border);
    }
    @media (max-width: 540px) {
      .hero {
        padding: 1.5rem 1.25rem 3rem;
      }
    .header_logo img {
      width: 35%;
    }
    .section-label {
      font-size: 22px;
    }
      .main {
        padding: 0 1.25rem 3rem;
      }
      .cta {
        flex-direction: column;
        align-items: flex-start;
      }
    .cta-email {
      font-size: 18px;
    }
    }


/*動画用CSS2504gigaplus用*/

div.vid_contents {
width: 100%;/*背景色を横幅いっぱいに広げる*/
text-align: center;
margin: auto;
padding: 1% 1% 1% 1%;/*ここで動画の周りの余白を調整*/
background: #e6e6e6;/*余白の背景色*/
}
video.vid_main {
width: 100%;
max-width: 1000px;/*PC版での最大幅*/
}

/*動画用CSS2504gigaplus用*/


/*動画設置用 ここから*/
*, ::before, ::after {
    box-sizing: border-box;
    border-style: solid;
    border-width: 0;
}
.videoWrap {
    position: relative;
    overflow: hidden;
    margin: 0 0 0;
    width: 100%;
    height: 230px;
}
.videoWrap video {
	width: 100%;
	margin-top: -25%;/*背景動画の見える範囲を調整*/
}
.videoWrap::after {
    content: "";
    display: block;
    position: absolute;
    top: 0;
    right: 0;
    width: 100%;
    height: 100%;
    background-color: rgba(0, 0, 0, 0.5);
    background-image: radial-gradient(#111 30%, transparent 31%), radial-gradient(#111 30%, transparent 31%);
    background-size: 4px 4px;
    background-position: 0 0, 2px 2px;
}
.videoWrap h3 {
    position: absolute;
    top: 42%;
    left: 50%;
    transform: translate(-50%, -50%);
    z-index: 20;
    width: 100%;
    text-align: center;
    color: #ffffff;
    font-size: 16px;
    letter-spacing: 2.5px;
    line-height: 1.5;
    font-family: "Noto Serif JP", serif;
}

h3 {
    display: block;
    margin-block-start: 1em;
    margin-block-end: 1em;
    margin-inline-start: 0px;
    margin-inline-end: 0px;
    font-weight: bold;
    unicode-bidi: isolate;
}

.videoWrap h3 span {
    font-size: 26px;
    display: block;
}

    @media (max-width: 540px) {
.videoWrap {
    height: 180px;
}
.videoWrap video {
	width: 150%;
	margin-top: -25%;/*背景動画の見える範囲を調整*/
}
.videoWrap h3 span {
    font-size: 18px;
}
.videoWrap h3 {
    font-size: 12px;
}
    }
/*動画設置用 ここまで*/


