/* Extracted A layout / font B from header-compare.html. No document-wide reset. */
.hamuya-home,
html[lang]:where([lang|="ja"], [lang|="zh"]:has(#body_wrap.hamuya-top-zh), [lang|="en"]:has(#body_wrap.hamuya-top-en)):has(#body_wrap.hamuya-trial-page) #sp_menu {
  --sans: "Zen Maru Gothic", "Yu Gothic", "Hiragino Kaku Gothic ProN", Meiryo, sans-serif;
}
.hamuya-home {
  --paper: #F4EFE6; --ink: #34312D; --muted: #686059; --line: #D7CEC1; --accent: #C8392A;
  --heading: "Zen Kaku Gothic New", "Yu Gothic", "Hiragino Kaku Gothic ProN", Meiryo, sans-serif;
  background: var(--paper); color: var(--ink); font-family: var(--sans); font-size: 16px; font-weight: 400; line-height: 1.8;
}
.hamuya-home, .hamuya-home *, .hamuya-home *::before, .hamuya-home *::after { box-sizing: border-box; }
.hamuya-home :is(figure,p,h1,h2) { margin: 0; }
.hamuya-home :is(h1,h2) { padding: 0; border: 0; background: none; }
.hamuya-home :is(h1,h2)::before, .hamuya-home :is(h1,h2)::after { content: none; }
.hamuya-home a { color: inherit; text-decoration: none; }
.hamuya-home a:hover { text-decoration: underline; text-underline-offset: 6px; }
.hamuya-home :is(a,button):focus-visible { outline: 3px solid var(--accent); outline-offset: 6px; }
.hamuya-home [hidden] { display: none !important; }
.hamuya-home .hero {
  position: relative; isolation: isolate; background: #39352F; color: white;
  display: flex; flex-direction: column; padding: 32px 5% max(28px, env(safe-area-inset-bottom, 0px));
  height: auto; min-height: calc(100svh - var(--hamuya-top-offset, 0px)); max-height: none;
}
.hamuya-home .hero > :not(.hero-poster):not(.hero-video):not(.hero-shade):not(.vertical-note) { flex-shrink: 0; min-width: 0; }
.hamuya-home :is(.hero-poster, .hero-video) { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center; pointer-events: none; }
.hamuya-home .hero-poster { z-index: -3; }
.hamuya-home .hero-video { z-index: -2; opacity: 0; transition: opacity 180ms ease-out; }
.hamuya-home .has-video-frame .hero-video { opacity: 1; }
.hamuya-home .hero-shade { position: absolute; inset: 0; z-index: -1; pointer-events: none; background: linear-gradient(90deg,rgba(0,0,0,.48),rgba(0,0,0,.18)); }
.hamuya-home .hero-top, .hamuya-home .hero-bottom { display: flex; justify-content: space-between; align-items: center; gap: 24px; font-size: 11px; letter-spacing: .14em; }
.hamuya-home .hero-top > span:last-child { font-size: 12px; }
.hamuya-home .hero-copy { padding: 48px 0 52px 3%; margin: auto 0; }
.hamuya-home .hero-copy > p:first-child { font-size: 14px; font-weight: 500; letter-spacing: .04em; margin-bottom: 22px; }
.hamuya-home .hero h1 { color: inherit; font-family: var(--heading); font-size: clamp(44px,5.4vw,78px); font-weight: 700; line-height: 1.35; letter-spacing: -.04em; overflow-wrap: anywhere; }
.hamuya-home .hero-lead { display: block; font-family: var(--sans); font-size: clamp(20px,2.3vw,32px); font-weight: 700; line-height: 1.7; letter-spacing: 0; margin-bottom: 20px; }
.hamuya-home .hero-main { display: block; }
.hamuya-home .hero-bottom { flex-wrap: wrap; }
.hamuya-home .hero-bottom a { font-size: 12px; font-weight: 700; min-height: 44px; display: flex; align-items: center; }
.hamuya-home .media-tag { font-size: 10px; letter-spacing: .05em; border: 1px solid #FFFFFF70; padding: 9px 13px; }
.hamuya-home .hero-bottom .hero-join { display: none; }
/* Match the adopted desktop header preference and its actual-fit decision. */
@media (min-width: 960px) and (hover: hover) and (pointer: fine) {
  #body_wrap.hamuya-header-desktop .hamuya-home .hero-bottom:has(.hero-join) > .media-tag:not(.hero-join) { display: none; }
  #body_wrap.hamuya-header-desktop .hamuya-home .hero-bottom .hero-join {
    display: inline-flex; gap: 16px; min-height: 44px; padding: 6px 13px;
    background: #0000001F; color: #FFFFFF; text-decoration: none;
    transition: background-color 180ms ease, border-color 180ms ease;
  }
  .hamuya-home .hero-join-copy { display: flex; flex-direction: column; gap: 1px; }
  .hamuya-home .hero-join-label { font-size: 9px; line-height: 1.2; font-weight: 500; letter-spacing: .12em; }
  .hamuya-home .hero-join-title { font-size: 14px; line-height: 1.3; }
  .hamuya-home .hero-join svg { width: 16px; height: 16px; flex: 0 0 16px; fill: none; stroke: currentColor; stroke-width: 1.5; stroke-linecap: round; stroke-linejoin: round; }
  #body_wrap.hamuya-header-desktop .hamuya-home .hero-bottom .hero-join:hover { background: #FFFFFF1F; border-color: #FFFFFF; }
  .hamuya-home .hero-join:focus-visible { outline: 2px solid #FFFFFF; outline-offset: 3px; }
}
.hamuya-home .vertical-note { position: absolute; right: 5%; top: 44%; writing-mode: vertical-rl; font-size: 10px; letter-spacing: .2em; }
.hamuya-home .video-controls { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; margin-top: 16px; font-family: Arial,"Yu Gothic",Meiryo,sans-serif; font-size: 12px; line-height: 1.6; letter-spacing: 0; color: white; }
.hamuya-home .video-toggle { min-height: 44px; padding: 10px 16px; border: 1px solid white; border-radius: 0; box-shadow: none; background: #302D29; color: white; font: inherit; cursor: pointer; }
.hamuya-home .video-toggle:hover { background: #48423B; }
.hamuya-home .video-toggle:focus-visible { outline-color: #FFFFE3; outline-offset: 4px; }
.hamuya-home .video-controls [role="status"] { max-width: 42em; background: #302D29; padding: 4px 8px; }
.hamuya-home .section { padding: 90px max(6%,calc((100% - 1240px)/2)) 95px; scroll-margin-top: var(--hamuya-anchor-offset, 100px); }
.hamuya-home .section-label { display: flex; justify-content: space-between; border-top: 2px solid var(--ink); padding-top: 18px; font-family: var(--heading); font-size: 11px; font-weight: 500; letter-spacing: .04em; margin-bottom: 48px; }
.hamuya-home .section-label > span:first-child { font-size: 12px; color: var(--accent); }
.hamuya-home .about-grid { display: grid; grid-template-columns: minmax(0,.7fr) minmax(0,1.3fr); gap: 6%; align-items: center; }
.hamuya-home h2 { color: var(--ink); font-family: var(--heading); font-weight: 700; font-size: clamp(34px,3.6vw,54px); line-height: 1.45; letter-spacing: -.035em; overflow-wrap: anywhere; }
.hamuya-home .body-copy { font-size: 16px; line-height: 2.05; margin-top: 28px; }
.hamuya-home .body-copy .about-freedom { margin-top: 24px; color: var(--accent); font-family: var(--sans); font-weight: 700; font-size: 1.15em; line-height: 1.8; }
.hamuya-home .about-photo { min-width: 0; margin: 0; }
.hamuya-home .about-photo-crop { overflow: hidden; }
.hamuya-home .about-photo img { display: block; width: calc(100% / .95); max-width: none; height: auto; }
.hamuya-home .about-detail-link { display: inline-flex; align-items: center; gap: 24px; min-height: 48px; margin-top: 28px; border-bottom: 1px solid currentColor; color: var(--accent); font-weight: 700; }
.hamuya-home figcaption { display: flex; justify-content: space-between; gap: 12px; margin-top: 14px; font-size: 11px; line-height: 1.8; letter-spacing: .02em; color: var(--muted); }
@media (max-width: 760px) {
  .hamuya-home .hero { padding: 25px 24px max(28px,env(safe-area-inset-bottom,0px)); }
  .hamuya-home .hero-top { font-size: 9px; letter-spacing: .08em; }
  .hamuya-home .hero-top > span:last-child { display: none; }
  .hamuya-home .hero-copy { padding: 48px 0; }
  .hamuya-home .hero-copy > p:first-child { font-size: 12px; margin-bottom: 22px; }
  .hamuya-home .hero h1 { font-size: clamp(28px,8.2vw,55px); line-height: 1.45; letter-spacing: -.045em; }
  .hamuya-home .hero-lead { font-size: clamp(17px,4.4vw,24px); line-height: 1.75; max-width: 20em; margin-bottom: 22px; }
  .hamuya-home .hero-bottom { align-items: start; gap: 16px; flex-direction: column; }
  .hamuya-home .media-tag { padding: 7px 9px; }
  .hamuya-home .vertical-note { display: none; }
  .hamuya-home .section { padding: 60px 24px 65px; }
  .hamuya-home .section-label { font-size: 9px; margin-bottom: 32px; padding-top: 15px; gap: 12px; }
  .hamuya-home .section-label > span:first-child { font-size: 11px; }
  .hamuya-home .about-grid { grid-template-columns: minmax(0,1fr); gap: 32px; }
  .hamuya-home h2 { font-size: clamp(29px,7.8vw,43px); line-height: 1.5; letter-spacing: -.04em; }
  .hamuya-home .body-copy { font-size: 15px; line-height: 2; margin-top: 23px; }
  .hamuya-home .about-detail-link { margin-top: 20px; }
  .hamuya-home figcaption { flex-wrap: wrap; }
}
@media (max-height: 800px) {
  .hamuya-home .hero-copy { padding-top: 24px; padding-bottom: 24px; }
}
@media (prefers-reduced-motion: reduce) {
  .hamuya-home *, .hamuya-home *::before, .hamuya-home *::after { animation: none !important; transition: none !important; scroll-behavior: auto; }
}
