/* ===== 20_site.css ===== */
* { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
body { margin: 0; font-family: 'Zen Kaku Gothic New', sans-serif; color: #221E1B; background: #F7F2E7; line-height: 1.85; font-size: 16px; -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; }
img { display: block; max-width: 100%; }
a { color: inherit; text-decoration: none; }
button { font-family: inherit; cursor: pointer; }
header.kw-hdr-clear { background: transparent !important; border-bottom-color: transparent !important; box-shadow: none !important; }
header.kw-hdr-clear .kw-nav-desktop > a, header.kw-hdr-clear .kw-nav-drop > a { color: #F4EFE4 !important; }
header.kw-hdr-clear .kw-nav-drop > a > span { color: rgba(244,239,228,0.72) !important; }
header.kw-hdr-clear .kw-cta-outline { border-color: rgba(244,239,228,0.85) !important; color: #F4EFE4 !important; }
header.kw-hdr-clear .kw-burger { border-color: rgba(244,239,228,0.5) !important; background: rgba(244,239,228,0.1) !important; }
header.kw-hdr-clear .kw-burger span span { background: #F4EFE4 !important; }
.kw-br-sp { display: none; }
span.line-chunk { display: inline-block; overflow-wrap: break-word; word-break: normal; }
body, p, h1, h2, h3, h4, li, dt, dd, span, a, button, label, summary, th, td { line-break: strict; word-break: normal; overflow-wrap: break-word; }
p, li, dd, blockquote { text-wrap: pretty; }
h1, h2, h3, .kw-mincho { font-family: 'Zen Old Mincho', serif; }
.kw-wm { font-family: 'Oswald', sans-serif; font-weight: 700; letter-spacing: .02em; line-height: .9; pointer-events: none; user-select: none; }
.kw-eyebrow { font-family: 'Oswald', sans-serif; font-weight: 600; letter-spacing: .26em; }
.kw-nav-drop { position: relative; }
.kw-drop-panel { position: absolute; top: 100%; left: 50%; transform: translateX(-50%); padding-top: 10px; min-width: 232px; opacity: 0; visibility: hidden; transition: opacity .2s ease; z-index: 61; }
.kw-nav-drop:hover .kw-drop-panel, .kw-nav-drop:focus-within .kw-drop-panel { opacity: 1; visibility: visible; }
@keyframes kwScrollCue { 0% { transform: translateY(0); opacity: .35; } 50% { opacity: 1; } 100% { transform: translateY(11px); opacity: .35; } }
@keyframes kwSlowZoom { from { transform: scale(1.07); } to { transform: scale(1); } }
@keyframes kwBadgeSpin { from { transform: rotate(0deg); } to { transform: rotate(360deg); } }
.kw-nav-desktop { display: flex; }
.kw-burger { display: none; }
.kw-vwm { writing-mode: vertical-rl; }
.kw-hero-photo { position: absolute; top: 0; right: 0; width: clamp(46%, 52vw, 56%); height: 100%; clip-path: polygon(16% 0, 100% 0, 100% 100%, 0% 100%); overflow: hidden; z-index: 1; }
.kw-hero-scrim { display: none; }
.kw-cluster { position: relative; min-height: clamp(300px, 42vw, 440px); }
.kw-cluster > div { position: absolute; }
.kw-photo-col { position: absolute; top: 0; right: 0; width: 54%; height: 100%; clip-path: polygon(46% 0, 100% 0, 100% 100%, 0% 100%); overflow: hidden; z-index: 1; }
.kw-col-scrim { display: none; }
.kw-stmt-text { max-width: 620px; }
.kw-hero-text { max-width: 600px; }
.kw-hero-lead { max-width: 480px; }
.kw-stage { margin-top: -70px; }
.kw-hero-region { position: relative; height: calc(100svh + 70px); min-height: 600px; }
.kw-hero-video { position: absolute; top: 0; right: 0; width: 100%; height: 100%; z-index: 3; }
.kw-stmt-pad { padding: clamp(72px,9vw,128px) clamp(16px,4vw,40px) clamp(64px,9vw,120px); }
.kw-tri-wedge, .kw-tri-edge { height: clamp(200px,26vw,340px); }
.kw-vhead-wrap { position: absolute; z-index: 4; top: 50%; transform: translateY(-50%); left: max(clamp(16px,4vw,40px), calc(50% - 640px + clamp(16px,4vw,40px))); }
.kw-vhead { writing-mode: vertical-rl; margin: 0; font-weight: 900; font-size: clamp(46px,8vw,116px); line-height: 1.08; letter-spacing: .06em; white-space: nowrap; }
.kw-substat { display: inline-block; margin: 0; font-family: 'Zen Old Mincho', serif; font-size: clamp(24px,3.6vw,42px); font-weight: 700; color: #1A1512; line-height: 1.45; background-image: linear-gradient(rgba(200,162,74,0.55), rgba(200,162,74,0.55)); background-repeat: no-repeat; background-position: 0 84%; background-size: 0% 0.4em; }
@media (max-width: 640px) {
    .kw-brm { display: none; }
    .kw-substat { font-size: clamp(20px,5.6vw,26px); line-height: 1.6; background-size: 0% 0.36em; }
    #greet-region .kw-stmt-text > p:last-of-type { padding-bottom: 76px; }
  }
.kw-wm-en { font-family: 'Oswald', sans-serif; font-weight: 700; letter-spacing: .02em; line-height: .86; white-space: nowrap; color: transparent; -webkit-text-stroke: 2px rgba(244,239,228,0.26); text-stroke: 1.5px rgba(244,239,228,0.26); }
.kw-slide-r.kw-in .kw-substat { animation: kwMarker .7s cubic-bezier(.5,0,.18,1) both; }
.kw-slide-r.kw-in .kw-substat:last-of-type { animation-delay: .5s; }
@keyframes kwMarker { from { background-size: 0% 0.4em; } to { background-size: 100% 0.4em; } }
/* ===== section background EN watermark reveal ===== */
  .kw-wm-anim { opacity: 0; }
.kw-wm-anim.kw-in { animation: kwWmIn 1.25s cubic-bezier(.22,.61,.36,1) both; }
@keyframes kwWmIn { from { opacity: 0; transform: translateX(var(--wm-x, -54px)); } to { opacity: 1; transform: translateX(0); } }
/* ===== hero EN watermark: drifts in after the loader ===== */
  .kw-hero-wm { opacity: 0; animation: kwHeroWm 1.5s cubic-bezier(.22,.61,.36,1) 3.5s both; }
@keyframes kwHeroWm { from { opacity: 0; transform: translateX(-44px); } to { opacity: 1; transform: translateX(0); } }
.kw-steps { display: flex; flex-direction: column; gap: 7px; }
.kw-step { position: relative; flex: 1 1 auto; min-width: 0; padding: 38px 28px 30px; filter: drop-shadow(0 8px 16px rgba(30,26,23,0.12)); clip-path: polygon(0 0, 50% 18px, 100% 0, 100% calc(100% - 18px), 50% 100%, 0 calc(100% - 18px)); }
.kw-step:first-child { clip-path: polygon(0 0, 100% 0, 100% calc(100% - 18px), 50% 100%, 0 calc(100% - 18px)); padding-top: 28px; }
@media (min-width: 880px) {
    .kw-steps { flex-direction: row; gap: 6px; }
    .kw-step { flex: 1 1 0; padding: 30px 30px 30px 44px; clip-path: polygon(0 0, calc(100% - 22px) 0, 100% 50%, calc(100% - 22px) 100%, 0 100%, 22px 50%); }
    .kw-step:first-child { padding-left: 30px; clip-path: polygon(0 0, calc(100% - 22px) 0, 100% 50%, calc(100% - 22px) 100%, 0 100%); }
  }
@media (min-width: 1024px) {
    .kw-hero-text { max-width: min(520px, 43vw); }
    .kw-hero-lead { max-width: min(440px, 40vw); }
    .kw-stmt-text { max-width: min(620px, 50vw); margin-left: auto; text-align: left; }
    #stmt-region { min-height: clamp(680px, 66vw, 900px); }
    .kw-stmt-pad { display: flex; align-items: center; justify-content: flex-end; min-height: clamp(680px, 66vw, 900px); }
  }
@media (max-width: 959px) {
    .kw-nav-desktop { display: none; }
    .kw-burger { display: inline-flex; }
  }
@media (max-width: 600px) { .kw-side-banner { display: none !important; } }
.kw-sp-cta { display: none; }
@media (max-width: 600px) {
    .kw-sp-cta { display: block; }
    body { padding-bottom: 0; }
  }
@media (max-width: 1023px) {
    .kw-hero-photo { width: 100%; clip-path: none; }
    .kw-hero-scrim { display: block; position: absolute; inset: 0; z-index: 2; background: linear-gradient(180deg, rgba(250,246,238,0.9), rgba(250,246,238,0.66)); }
    .kw-photo-col { width: 100%; clip-path: none; }
    .kw-col-scrim { display: block; position: absolute; inset: 0; z-index: 1; background: linear-gradient(180deg, rgba(250,246,238,0.92), rgba(250,246,238,0.74)); }
    .kw-hero-facets { display: none; }
    .kw-hide-sm { display: none !important; }
    .kw-cluster { min-height: 0; display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
    .kw-cluster > div { position: static !important; width: auto !important; inset: auto !important; }
    .kw-hero-region { height: auto !important; min-height: 0 !important; }
    .kw-hero-video { position: static !important; width: 100%; height: auto; border: 0 !important; background: #14100B; padding-top: 141px; box-sizing: border-box; }
    .kw-hero-video > video { width: 100%; height: auto; aspect-ratio: 16 / 9; object-fit: contain !important; display: block; }
    .kw-hero-scrim { display: none !important; }
    .kw-hero-catch { position: relative !important; z-index: 6 !important; bottom: auto !important; padding: clamp(26px,5vw,40px) 0 clamp(10px,2vw,18px); background: #14100B; }
    .kw-hero-catch h1 { white-space: normal !important; }
    .kw-br-sp { display: inline !important; }
    .kw-hero-catch .kw-hero-in > *, .kw-hero-catch .kw-hero-in > h1.kw-neon { opacity: 1 !important; animation-delay: 0s, .3s, 1.2s !important; }
    .kw-hero-catch p, .kw-hero-catch p .kw-mincho { text-shadow: none !important; }
    .kw-hero-wm { display: none !important; }
    .kw-tri-wedge, .kw-tri-edge { display: none !important; }
    .kw-stmt-text { margin-left: 0 !important; }
    .kw-vhead-wrap { position: static !important; transform: none !important; max-width: 1280px; margin: 0 auto; padding: clamp(20px,4vw,30px) clamp(16px,4vw,40px) 0; }
    #stmt-title-ov, #greet-title-ov { display: none !important; }
    .kw-vhead { writing-mode: horizontal-tb !important; font-size: clamp(30px,8vw,52px); letter-spacing: .01em; }
    .kw-stmt-pad { padding: clamp(20px,3vw,30px) clamp(16px,4vw,40px) clamp(56px,9vw,90px); }
  }
@keyframes kwLoadOut { 0% { transform: translateY(0); } 100% { transform: translateY(-101%); } }
@keyframes kwLdLogo { 0% { opacity: 0; transform: translateY(10px) scale(.96); } 100% { opacity: 1; transform: none; } }
@keyframes kwLdName { 0% { opacity: 0; letter-spacing: .62em; } 100% { opacity: 1; letter-spacing: .3em; } }
@keyframes kwLdLine { 0% { transform: scaleX(0); } 100% { transform: scaleX(1); } }
@keyframes kwLdSub { 0% { opacity: 0; transform: translateY(6px); } 100% { opacity: .72; transform: none; } }
@keyframes kwLdNeon {
    0% { text-shadow: none; } 16% { text-shadow: 0 0 7px rgba(227,199,117,.55); } 19% { text-shadow: none; }
    30% { text-shadow: 0 0 12px rgba(227,199,117,.85); } 34% { text-shadow: none; }
    46% { text-shadow: 0 0 9px rgba(227,199,117,.6); } 49% { text-shadow: none; }
    100% { text-shadow: 0 0 16px rgba(227,199,117,.92), 0 0 36px rgba(200,162,74,.52); }
  }
/* ===== scroll-reveal motion (fail-safe: visible by default, animates in on .kw-in) ===== */
  .kw-reveal.kw-in { animation: kwRiseIn .62s cubic-bezier(.22,.61,.36,1) both; }
.kw-stagger.kw-in > * { animation: kwRiseIn .56s cubic-bezier(.22,.61,.36,1) both; }
.kw-stagger.kw-in > *:nth-child(1){ animation-delay: 0s; }
.kw-stagger.kw-in > *:nth-child(2){ animation-delay: .07s; }
.kw-stagger.kw-in > *:nth-child(3){ animation-delay: .14s; }
.kw-stagger.kw-in > *:nth-child(4){ animation-delay: .21s; }
.kw-stagger.kw-in > *:nth-child(5){ animation-delay: .28s; }
.kw-stagger.kw-in > *:nth-child(6){ animation-delay: .35s; }
@keyframes kwRiseIn { from { opacity: 0; transform: translateY(16px); } to { opacity: 1; transform: none; } }
/* ===== hero catch: slide in from left (plays after loader) ===== */
  @keyframes kwHeroLeft { from { opacity: 0; transform: translateX(-32px); } to { opacity: 1; transform: none; } }
/* ===== hero H1 neon: slide in, ignite, then breathe like neon ===== */
  .kw-hero-in > h1.kw-neon { opacity: 0; animation: kwHeroLeft .9s cubic-bezier(.16,.84,.44,1) 3.46s both, kwNeonIgnite 1.15s steps(1, end) 4.42s both, kwNeonPulse 2.8s ease-in-out 5.6s infinite; }
@keyframes kwNeonIgnite {
    0% { text-shadow: none; }
    7% { text-shadow: 0 0 7px rgba(227,199,117,.55); }
    9% { text-shadow: none; }
    15% { text-shadow: 0 0 11px rgba(227,199,117,.8); }
    18% { text-shadow: none; }
    26% { text-shadow: 0 0 9px rgba(227,199,117,.6); }
    29% { text-shadow: none; }
    44% { text-shadow: 0 0 20px rgba(227,199,117,.95), 0 0 40px rgba(200,162,74,.5); }
    48% { text-shadow: 0 0 6px rgba(227,199,117,.45); }
    100% { text-shadow: 0 0 14px rgba(227,199,117,.85), 0 0 30px rgba(200,162,74,.55), 0 0 56px rgba(200,162,74,.3); }
  }
@keyframes kwNeonPulse {
    0%, 100% { text-shadow: 0 0 12px rgba(227,199,117,.8), 0 0 26px rgba(200,162,74,.5), 0 0 48px rgba(200,162,74,.28); }
    50% { text-shadow: 0 0 19px rgba(227,199,117,.98), 0 0 42px rgba(200,162,74,.64), 0 0 74px rgba(200,162,74,.4); }
  }
.kw-hero-in > * { opacity: 0; animation: kwHeroLeft .9s cubic-bezier(.16,.84,.44,1) forwards; }
.kw-hero-in > *:nth-child(1){ animation-delay: 3.3s; }
.kw-hero-in > *:nth-child(2){ animation-delay: 3.46s; }
.kw-hero-in > *:nth-child(3){ animation-delay: 3.62s; }
/* ===== statement catch: rise up from below ===== */
  @keyframes kwStmtUp { from { opacity: 0; transform: translateY(28px); } to { opacity: 1; transform: none; } }
/* ===== WHY KOWA block: slide in from the right ===== */
  @keyframes kwSlideRight { from { opacity: 0; transform: translateX(28px); } to { opacity: 1; transform: none; } }
.kw-slide-r { opacity: 0; }
.kw-slide-r.kw-in { animation: kwSlideRight .68s cubic-bezier(.22,.61,.36,1) both; }
/* ===== hover micro-interactions (calm, subtle) ===== */
  .kw-zoom > image-slot, .kw-zoom > img { transition: transform .55s cubic-bezier(.22,.61,.36,1); will-change: transform; }
.kw-zoom:hover > image-slot, .kw-zoom:hover > img { transform: scale(1.04); }
.kw-tile { transition: transform .3s ease, background-color .3s ease, border-color .3s ease, box-shadow .3s ease; }
.kw-tile:hover { transform: translateY(-3px); border-color: rgba(227,199,117,0.45) !important; box-shadow: 0 12px 26px rgba(0,0,0,0.24); }
.kw-wpanel { transition: background-color .3s ease; }
.kw-wpanel:hover { background-color: #1c160d !important; }
@media (min-width: 601px) and (max-width: 1023px) { .kw-2x2-tab { grid-template-columns: repeat(2, 1fr) !important; } }
.kw-news { transition: background-color .25s ease; }
.kw-news:hover { background-color: rgba(250,246,238,0.05); }
[class*="design-parts-52"] { background: #14100B !important; border-bottom: 1px solid rgba(250,246,238,0.1); }
[class*="design-parts-52"] .container { max-width: 1280px; margin: 0 auto; padding: 0 clamp(16px,4vw,40px); }
[class*="design-parts-52"] .content { display: flex; align-items: center; gap: clamp(14px,3vw,30px); min-height: 60px; }
[class*="design-parts-52"] h4.banner-area { margin: 0; flex-shrink: 0; font-family: 'Oswald', sans-serif; font-weight: 600; letter-spacing: .26em; font-size: 14px; color: #1E1A17; background: #C8A24A; padding: 5px 14px; border-radius: 3px; }
[class*="design-parts-52"] ul { margin: 0; padding: 0; list-style: none; flex: 1; min-width: 0; }
[class*="design-parts-52"] li a { display: flex; align-items: center; min-height: 60px; padding: 8px 0; transition: background-color .25s ease; }
[class*="design-parts-52"] li a:hover { background-color: rgba(250,246,238,0.05); }
[class*="design-parts-52"] .parts-52-textarea { display: flex; align-items: center; gap: clamp(14px,3vw,26px); min-width: 0; width: 100%; }
[class*="design-parts-52"] .parts-52-textarea .date { flex-shrink: 0; font-size: 13px; color: rgba(250,246,238,0.65); font-variant-numeric: tabular-nums; letter-spacing: .04em; }
[class*="design-parts-52"] .parts-52-textarea .d-inline-block { flex: 1; min-width: 0; font-size: 15px; font-weight: 500; color: #FAF6EE; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
@media (max-width: 600px) { [class*="design-parts-52"] .content { flex-direction: column; align-items: flex-start; gap: 8px; padding: 14px 0; } [class*="design-parts-52"] li a { min-height: 44px; } }
section[class*="parts131415_blog"] { position: relative; background: #F7F2E7 !important; background-image: none !important; padding: clamp(76px,11vw,140px) clamp(16px,4vw,40px) clamp(20px,3vw,36px); overflow: hidden; }
[class*="parts131415_blog"] .container-lg { max-width: 1200px; margin: 0 auto; padding: 0; }
[class*="parts131415_blog"] .parts131415_blog_title_wrap { margin-bottom: clamp(40px,6vw,60px); }
[class*="parts131415_blog"] .parts131415_blog_title_wrap h2 { margin: 0 0 10px; font-family: 'Zen Old Mincho', serif; font-weight: 900; font-size: clamp(32px,5.8vw,62px); line-height: 1.28; color: #1E1A17 !important; }
[class*="parts131415_blog"] .parts131415_blog_title_wrap p { margin: 0; font-family: 'Oswald', sans-serif; font-weight: 600; letter-spacing: .26em; font-size: 13px; color: #B8902F; }
[class*="parts131415_blog"] .row { display: grid; grid-template-columns: 1fr; gap: clamp(20px,3vw,32px); margin: 0; }
@media (min-width: 576px) { [class*="parts131415_blog"] .row { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 700px) { [class*="parts131415_blog"] .row { grid-template-columns: repeat(3, 1fr); } }
[class*="parts131415_blog"] .col { padding: 0; }
[class*="parts131415_blog"] .card { height: 100%; background: #fff; border: 1px solid #cfc9bd !important; border-radius: 12px !important; overflow: hidden; transition: transform .3s ease, box-shadow .3s ease; }
[class*="parts131415_blog"] .card:hover { transform: translateY(-4px); box-shadow: 0 20px 44px rgba(30,26,23,0.2); }
[class*="parts131415_blog"] .card-body { padding: clamp(20px,2.4vw,28px); display: flex; flex-direction: column; gap: 12px; }
[class*="parts131415_blog"] h5.card-title { margin: 0; font-family: 'Oswald', sans-serif; font-weight: 600; letter-spacing: .18em; font-size: 13px; color: #B8902F; text-align: center; }
[class*="parts131415_blog"] .card a { display: flex; flex-direction: column; gap: 14px; }
[class*="parts131415_blog"] p.card-text { margin: 0; font-size: 16px; font-weight: 700; line-height: 1.7; color: #221E1B; }
[class*="parts131415_blog"] .parts131415_blog_thumbnail { overflow: hidden; border-radius: 8px; background: #E4DCCA; height: 240px; flex: none; }
[class*="parts131415_blog"] .parts131415_blog_thumbnail img { width: 100%; height: 100%; object-fit: cover; transition: transform .55s cubic-bezier(.22,.61,.36,1); }
[class*="parts131415_blog"] .card:hover .parts131415_blog_thumbnail img { transform: scale(1.05); }
@media (max-width: 991px) { [class*="parts131415_blog"] .parts131415_blog_thumbnail { height: 215px; } }
@media (max-width: 575px) { [class*="parts131415_blog"] .parts131415_blog_thumbnail { height: 205px; } }
.kw-cta { transition: transform .25s ease, box-shadow .25s ease; }
.kw-cta:hover { transform: translateY(-2px); box-shadow: 0 12px 26px rgba(30,26,23,0.24); }
.kw-step { transition: transform .3s ease, filter .3s ease; }
.kw-step:hover { transform: translateY(-4px); filter: drop-shadow(0 14px 22px rgba(30,26,23,0.2)); z-index: 3; }
@media (hover: none) { .kw-cta:hover, .kw-tile:hover, .kw-step:hover { transform: none; } }
.kw-stmt-in .kw-vhead { opacity: 0; }
.kw-stmt-in.kw-in .kw-vhead { animation: kwStmtUp .72s cubic-bezier(.22,.61,.36,1) both; }
/* ===== heading: gradual left-to-right reveal with a gold leading edge ===== */
  .kw-sweep-d, .kw-sweep-l { -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; background-repeat: no-repeat; background-size: 260% 100%; background-position: 0% 0; -webkit-mask-image: linear-gradient(90deg, #000 0%, #000 42%, rgba(0,0,0,0.18) 62%, rgba(0,0,0,0) 78%); mask-image: linear-gradient(90deg, #000 0%, #000 42%, rgba(0,0,0,0.18) 62%, rgba(0,0,0,0) 78%); -webkit-mask-repeat: no-repeat; mask-repeat: no-repeat; -webkit-mask-size: 220% 100%; mask-size: 220% 100%; -webkit-mask-position: 0% 0; mask-position: 0% 0; }
.kw-sweep-d { background-image: linear-gradient(90deg, #1E1A17 0%, #1E1A17 34%, #C8A24A 50%, #1E1A17 66%, #1E1A17 100%); }
.kw-sweep-l { background-image: linear-gradient(90deg, #F4EFE4 0%, #F4EFE4 34%, #E3C775 50%, #F4EFE4 66%, #F4EFE4 100%); }
.kw-sweep-d.kw-in, .kw-sweep-l.kw-in { animation: kwSweepBand 2.8s cubic-bezier(.33,.02,.23,1) forwards; }
@keyframes kwSweepBand { from { background-position: 100% 0; -webkit-mask-position: 100% 0; mask-position: 100% 0; } to { background-position: 0% 0; -webkit-mask-position: 0% 0; mask-position: 0% 0; } }
@media (prefers-reduced-motion: reduce) {
    html { scroll-behavior: auto; }
    *, *::before, *::after { animation: none !important; transition: none !important; }
    #kw-loader { display: none !important; }
    .kw-hero-in > *, .kw-hero-in > h1.kw-neon, .kw-stmt-in .kw-vhead, .kw-slide-r { opacity: 1 !important; animation: none !important; transform: none !important; text-shadow: 0 3px 28px rgba(0,0,0,0.62) !important; }
    .kw-substat { background-size: 100% 0.4em !important; }
    .kw-wm-anim { opacity: 1 !important; transform: none !important; }
    .kw-hero-wm { opacity: 1 !important; animation: none !important; transform: none !important; }
    .kw-sweep-d { -webkit-text-fill-color: #1E1A17 !important; -webkit-mask-image: none !important; mask-image: none !important; }
    .kw-sweep-l { -webkit-text-fill-color: #F4EFE4 !important; -webkit-mask-image: none !important; mask-image: none !important; }
  }
body { margin: 0; font-family: 'Zen Kaku Gothic New', sans-serif; color: #221E1B; background: #EFE8DA; line-height: 1.85; font-size: 16px; -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; }
.kw-2col { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
@media (max-width: 639px) { .kw-2col { grid-template-columns: 1fr; } }
/* hero entrance (plays on load, no loader dependency) */
  @keyframes kwFadeUp { from { opacity: 0; transform: translateY(22px); } to { opacity: 1; transform: none; } }
.kw-hero-in > * { opacity: 0; animation: kwFadeUp .95s cubic-bezier(.22,.61,.36,1) both; }
.kw-hero-in > *:nth-child(1){ animation-delay: .15s; }
.kw-hero-in > *:nth-child(2){ animation-delay: .32s; }
.kw-hero-in > *:nth-child(3){ animation-delay: .49s; }
.kw-hero-in > *:nth-child(4){ animation-delay: .66s; }
.kw-hero-wm { opacity: 0; animation: kwHeroWm 1.6s cubic-bezier(.22,.61,.36,1) .25s both; }
@keyframes kwHeroWm { from { opacity: 0; transform: translateX(-44px); } to { opacity: 1; transform: none; } }
.kw-neon { animation: kwNeonPulse 3s ease-in-out 1.6s infinite; }
.kw-hero-in > .kw-neon { animation: kwFadeUp .95s cubic-bezier(.22,.61,.36,1) .49s both, kwNeonPulse 3s ease-in-out 2.6s infinite; }
@keyframes kwNeonPulse {
    0%, 100% { text-shadow: 0 0 12px rgba(227,199,117,.55), 0 0 26px rgba(200,162,74,.3); }
    50% { text-shadow: 0 0 18px rgba(227,199,117,.78), 0 0 42px rgba(200,162,74,.42); }
  }
/* scroll reveal (fail-safe: visible by default) */
  .kw-reveal.kw-in { animation: kwRiseIn .62s cubic-bezier(.22,.61,.36,1) both; }
.kw-wm-anim { opacity: 0; }
/* heading: gradual left-to-right reveal with a gold leading edge */
  .kw-sweep-d, .kw-sweep-l { -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; background-repeat: no-repeat; background-size: 260% 100%; background-position: 0% 0; -webkit-mask-image: linear-gradient(90deg, #000 0%, #000 42%, rgba(0,0,0,0.18) 62%, rgba(0,0,0,0) 78%); mask-image: linear-gradient(90deg, #000 0%, #000 42%, rgba(0,0,0,0.18) 62%, rgba(0,0,0,0) 78%); -webkit-mask-repeat: no-repeat; mask-repeat: no-repeat; -webkit-mask-size: 220% 100%; mask-size: 220% 100%; -webkit-mask-position: 0% 0; mask-position: 0% 0; }
/* hover micro-interactions */
  .kw-zoom { overflow: hidden; }
.kw-zoom > image-slot, .kw-zoom image-slot, .kw-zoom > img { transition: transform .55s cubic-bezier(.22,.61,.36,1); will-change: transform; }
.kw-zoom:hover image-slot, .kw-zoom:hover > img { transform: scale(1.05); }
.kw-cta:hover { transform: translateY(-2px); box-shadow: 0 14px 30px rgba(30,26,23,0.28); }
.kw-panel { transition: transform .3s ease, box-shadow .3s ease; }
.kw-panel:hover { transform: translateY(-4px); box-shadow: 0 20px 44px rgba(30,26,23,0.2); }
@media (hover: none) { .kw-cta:hover, .kw-panel:hover { transform: none; } .kw-zoom:hover image-slot { transform: none; } }
@media (prefers-reduced-motion: reduce) {
    html { scroll-behavior: auto; }
    *, *::before, *::after { animation: none !important; transition: none !important; }
    .kw-hero-in > *, .kw-hero-wm { opacity: 1 !important; transform: none !important; }
    .kw-wm-anim { opacity: 1 !important; transform: none !important; }
    .kw-sweep-d { -webkit-text-fill-color: #1E1A17 !important; -webkit-mask-image: none !important; mask-image: none !important; }
    .kw-sweep-l { -webkit-text-fill-color: #F4EFE4 !important; -webkit-mask-image: none !important; mask-image: none !important; }
  }
@keyframes kwFadeUp { from { opacity: 0; transform: translateY(22px); } to { opacity: 1; transform: none; } }
.kw-reveal.kw-in { animation: kwRiseIn .62s cubic-bezier(.22,.61,.36,1) both; }
.kw-stagger.kw-in > *:nth-child(2){ animation-delay: .09s; }
.kw-stagger.kw-in > *:nth-child(3){ animation-delay: .18s; }
.kw-stagger.kw-in > *:nth-child(4){ animation-delay: .27s; }
.kw-sweep-d, .kw-sweep-l { -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; background-repeat: no-repeat; background-size: 260% 100%; background-position: 0% 0; -webkit-mask-image: linear-gradient(90deg, #000 0%, #000 42%, rgba(0,0,0,0.18) 62%, rgba(0,0,0,0) 78%); mask-image: linear-gradient(90deg, #000 0%, #000 42%, rgba(0,0,0,0.18) 62%, rgba(0,0,0,0) 78%); -webkit-mask-repeat: no-repeat; mask-repeat: no-repeat; -webkit-mask-size: 220% 100%; mask-size: 220% 100%; -webkit-mask-position: 0% 0; mask-position: 0% 0; }
/* chevron career-step cards (quoted from TOP roadmap) */
  .kw-steps { display: flex; flex-direction: column; gap: 7px; }
.kw-step { position: relative; flex: 1 1 auto; min-width: 0; padding: 38px 28px 30px; filter: drop-shadow(0 8px 16px rgba(30,26,23,0.12)); clip-path: polygon(0 0, 50% 18px, 100% 0, 100% calc(100% - 18px), 50% 100%, 0 calc(100% - 18px)); transition: transform .3s ease, filter .3s ease; }
@media (min-width: 880px) {
    .kw-steps { flex-direction: row; gap: 6px; }
    .kw-step { flex: 1 1 0; padding: 30px 40px 30px 44px; clip-path: polygon(0 0, calc(100% - 22px) 0, 100% 50%, calc(100% - 22px) 100%, 0 100%, 22px 50%); }
    .kw-step:first-child { padding-left: 30px; padding-right: 40px; clip-path: polygon(0 0, calc(100% - 22px) 0, 100% 50%, calc(100% - 22px) 100%, 0 100%); }
  }
.kw-step .kw-eyebrow { font-size: clamp(10px,1.1vw,13px); padding: 6px 10px; letter-spacing: .1em; max-width: 100%; }
@media (min-width: 601px) and (max-width: 1023px) { .kw-3col-tab { grid-template-columns: repeat(3, 1fr) !important; } }
.kw-zoom { overflow: hidden; }
.kw-zoom image-slot { transition: transform .55s cubic-bezier(.22,.61,.36,1); will-change: transform; }
.kw-zoom:hover image-slot { transform: scale(1.05); }
@media (hover: none) { .kw-cta:hover, .kw-panel:hover, .kw-step:hover { transform: none; } .kw-zoom:hover image-slot { transform: none; } }
@media (prefers-reduced-motion: reduce) {
    html { scroll-behavior: auto; }
    *, *::before, *::after { animation: none !important; transition: none !important; }
    .kw-hero-in > *, .kw-hero-wm, .kw-wm-anim { opacity: 1 !important; transform: none !important; }
    .kw-sweep-d { -webkit-text-fill-color: #1E1A17 !important; -webkit-mask-image: none !important; mask-image: none !important; }
    .kw-sweep-l { -webkit-text-fill-color: #F4EFE4 !important; -webkit-mask-image: none !important; mask-image: none !important; }
  }
.kw-stagger.kw-in > *:nth-child(2){ animation-delay: .08s; }
.kw-stagger.kw-in > *:nth-child(3){ animation-delay: .16s; }
.kw-stagger.kw-in > *:nth-child(4){ animation-delay: .24s; }
.kw-stagger.kw-in > *:nth-child(5){ animation-delay: .32s; }
@media (max-width: 600px) { .kw-5col-tab { grid-template-columns: repeat(5, 1fr) !important; gap: 6px !important; } .kw-allow-note { display: none !important; } }
@media (min-width: 601px) and (max-width: 1023px) { .kw-2x2-tab { grid-template-columns: repeat(2, 1fr) !important; } .kw-3col-tab { grid-template-columns: repeat(3, 1fr) !important; } .kw-5col-tab { grid-template-columns: repeat(5, 1fr) !important; } }
@media (hover: none) { .kw-cta:hover { transform: none; } .kw-zoom:hover image-slot { transform: none; } }
.kw-tile { transition: transform .3s ease, border-color .3s ease, box-shadow .3s ease; }
.kw-tile:hover { transform: translateY(-3px); border-color: rgba(200,162,74,0.55); box-shadow: 0 16px 34px rgba(30,26,23,0.16); }
@media (hover: none) { .kw-tile:hover { transform: none; } }
.kw-sitegrid { display: grid; grid-template-columns: 1fr 1fr; grid-auto-rows: clamp(130px,26vw,180px); gap: clamp(10px,1.4vw,16px); }
.kw-sitegrid > *:nth-child(1) { grid-column: span 2; grid-row: span 2; }
@media (min-width: 760px) {
    .kw-sitegrid { grid-template-columns: repeat(4, 1fr); grid-auto-rows: clamp(150px,15vw,215px); }
    .kw-sitegrid > *:nth-child(1) { grid-column: span 2; grid-row: span 2; }
  }
.parts222_wrap { display: grid; grid-template-columns: 1fr; gap: clamp(32px,4vw,52px); }
@media (min-width: 992px) { .parts222_wrap { grid-template-columns: minmax(0,1fr) 320px; align-items: start; } }
.parts222_post_list { display: grid; grid-template-columns: 1fr; gap: clamp(18px,2.2vw,26px); }
@media (min-width: 600px) { .parts222_post_list { grid-template-columns: repeat(2, 1fr); } }
.parts222_post_wrap { display: flex; flex-direction: column; background: #fff; border: 1px solid #cfc9bd; border-radius: 12px; overflow: hidden; transition: transform .3s ease, box-shadow .3s ease; }
.parts222_post_wrap:hover { transform: translateY(-3px); box-shadow: 0 18px 40px rgba(30,26,23,0.18); }
.parts222_post_img { overflow: hidden; background: #E4DCCA; aspect-ratio: 16 / 10; }
.parts222_post_img img { width: 100%; height: 100%; object-fit: cover; transition: transform .55s cubic-bezier(.22,.61,.36,1); }
.parts222_post_wrap:hover .parts222_post_img img { transform: scale(1.05); }
.parts222_post_body { display: flex; flex-direction: column; gap: 12px; padding: clamp(18px,2vw,24px); }
.parts222_post_status { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; }
.parts222_post_date { font-family: 'Oswald', sans-serif; font-weight: 600; font-size: 13px; letter-spacing: .12em; color: #B8902F; }
.parts222_post_category { font-size: 12px; font-weight: 700; color: #1E1A17; background: rgba(200,162,74,0.22); padding: 4px 12px; border-radius: 3px; }
.parts222_post_title { margin: 0; font-family: 'Zen Old Mincho', serif; font-weight: 700; font-size: clamp(16px,1.9vw,19px); line-height: 1.65; color: #1A1512; }
.parts222_pagenation { display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: 10px; margin-top: clamp(40px,6vw,60px); }
/*.parts222_pagenation a, .parts222_pagenation span { display: inline-flex; align-items: center; justify-content: center; min-width: 44px; min-height: 44px; padding: 0 14px; border: 1px solid #cfc9bd; border-radius: 6px; background: #fff; font-size: 14px; font-weight: 700; color: #4a4437; transition: border-color .2s ease, color .2s ease; }*/
.parts222_pagenation a:hover { border-color: #B8902F; color: #B8902F; }
.parts222_pagenation .pagination_num.current { background: #14100B; border-color: #14100B; color: #E3C775; }
.parts222_sidebar { display: flex; flex-direction: column; gap: clamp(24px,3vw,32px); }
@media (min-width: 601px) and (max-width: 991px) { .parts222_sidebar { flex-direction: row; flex-wrap: wrap; } .parts222_sidebar > .parts222_sidebar_wrap { flex: 1 1 0; min-width: 260px; } }
.parts222_sidebar_wrap > h3 { margin: 0 0 6px; font-family: 'Zen Old Mincho', serif; font-weight: 700; font-size: 17px; padding: 8px 0 12px 14px; border-left: 4px solid currentColor; border-bottom: 1px solid; }
.parts222_sidebar_wrap ul { margin: 0; padding: 0; list-style: none; }
.parts222_sidebar_wrap li { border-bottom: 1px solid; }
.parts222_sidebar_wrap li a { display: flex; flex-direction: column; gap: 5px; padding: 14px 4px; transition: opacity .2s ease; }
.parts222_sidebar_wrap li a:hover { opacity: .62; }
.parts222_sidebar_date { font-family: 'Oswald', sans-serif; font-weight: 600; font-size: 12px; letter-spacing: .1em; opacity: .7; }
.parts222_sidebar_post_title { margin: 0; font-size: 14px; line-height: 1.65; }
.parts222_sidebar_wrap.category_post_count li a { flex-direction: row; align-items: center; justify-content: space-between; gap: 12px; }
.parts222_sidebar_post_category { margin: 0; font-size: 14px; font-weight: 500; }
.parts222_sidebar_post_category_count { flex-shrink: 0; font-family: 'Oswald', sans-serif; font-size: 12px; font-weight: 600; border: 1px solid; border-radius: 4px; padding: 2px 9px; opacity: .75; }
.parts228_post_list { display: grid; grid-template-columns: 1fr; gap: clamp(18px,2.4vw,28px); }
@media (min-width: 600px) { .parts228_post_list { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 992px) { .parts228_post_list { grid-template-columns: repeat(3, 1fr); } }
.parts228_post_wrap { background: #fff; border: 1px solid #cfc9bd; border-radius: 12px; overflow: hidden; display: flex; flex-direction: column; transition: transform .3s ease, box-shadow .3s ease; }
.parts228_post_wrap:hover { transform: translateY(-4px); box-shadow: 0 20px 44px rgba(30,26,23,0.2); }
.parts228_post_img { overflow: hidden; aspect-ratio: 4 / 3; background: #E4DCCA; }
.parts228_post_img a { display: block; width: 100%; height: 100%; }
.parts228_post_img img { width: 100%; height: 100%; object-fit: cover; transition: transform .55s cubic-bezier(.22,.61,.36,1); }
.parts228_post_wrap:hover .parts228_post_img img { transform: scale(1.05); }
.parts228_post_status { padding: 18px 22px 0; }
.parts228_post_date { font-family: 'Oswald', sans-serif; font-weight: 600; font-size: 13px; letter-spacing: .12em; color: #B8902F; }
.parts228_post_title-excerpt { padding: 8px 22px 0; }
.parts228_post_title { margin: 0; font-family: 'Zen Old Mincho', serif; font-weight: 700; font-size: 18px; line-height: 1.6; color: #1A1512; }
.parts-blog-ex-tag_wrap { display: flex; flex-wrap: wrap; gap: 8px; padding: 14px 22px 22px; margin-top: auto; }
.parts-blog-ex_tag { display: inline-flex; align-items: center; font-size: 12px; color: #6a6354; background: #F2ECDE; border: 1px solid #e2dccd; border-radius: 999px; padding: 4px 12px; }
.parts228_pagenation { display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: 10px; margin-top: clamp(40px,6vw,60px); }
/*.parts228_pagenation a, .parts228_pagenation span { display: inline-flex; align-items: center; justify-content: center; min-width: 44px; min-height: 44px; padding: 0 14px; border: 1px solid #cfc9bd; border-radius: 6px; background: #fff; font-size: 14px; font-weight: 700; color: #4a4437; transition: border-color .2s ease, color .2s ease; }
.parts228_pagenation a:hover { border-color: #B8902F; color: #B8902F; }*/
.parts228_pagenation .pagination_num.current { background: #14100B; border-color: #14100B; color: #E3C775; }

/* === style-hover / style-focus 由来の生成クラス === */
.kwx1:hover{background: rgba(227,199,117,0.12); color: #E3C775;}
.kwx2:hover{transform: translateY(-2px); box-shadow: 0 18px 40px rgba(200,162,74,0.5);}
.kwx3:hover{color: #E3C775;}
.kwx4:hover{box-shadow: -14px 0 34px rgba(20,16,11,0.46); transform: translateX(-3px);}
.kwx5:hover{transform: translateY(-3px); background: #1E1A12;}
.kwx6:hover{transform: translateY(-3px); box-shadow: 0 20px 48px rgba(200,162,74,0.52);}
.kwx7:hover{transform: translateY(-3px); box-shadow: 0 16px 34px rgba(20,16,11,0.2);}
.kwx8:focus{border-color: #B8902F; outline: 2px solid rgba(200,162,74,0.35); background: #fff;}
.kwx9:hover{background: #14100B; border-color: #14100B; color: #E3C775;}


/* ===== 22_override.css ===== */
/* O00965 光和電設 — override（skin不採用。受領が動的パーツを自前style済み）*/

/* KEEP: CueZilla自動パンくずは全ページ非表示（ユーザー標準ルール） */
[class*="parts231_breadcrumb"], .p-breadcrumb, [class*="_breadcrumb"] { display: none !important; }
/* /KEEP */

/* KEEP: sticky/固定ヘッダーが theme_default の body{overflow-x:hidden} で効かなくなる対策 */
body { overflow-x: clip !important; }
/* /KEEP */

/* KEEP: JS不動時のフォールバック（reveal系初期非表示要素を必ず見せる＝白画面/欠落防止・R-15安全装置） */
html:not(.js) .kw-reveal,
html:not(.js) .kw-stagger,
html:not(.js) .kw-stagger > *,
html:not(.js) .kw-slide-r,
html:not(.js) .kw-stmt-in .kw-vhead,
html:not(.js) .kw-wm-anim { opacity: 1 !important; transform: none !important; animation: none !important; }
html:not(.js) .kw-substat { background-size: 100% 0.4em !important; }
html:not(.js) .kw-sweep-d { -webkit-text-fill-color: #1E1A17 !important; -webkit-mask-image: none !important; mask-image: none !important; }
html:not(.js) .kw-sweep-l { -webkit-text-fill-color: #F4EFE4 !important; -webkit-mask-image: none !important; mask-image: none !important; }
/* /KEEP */
.parts222_post_wrap{
    max-width: 100%!important;
        margin-bottom: 0!important;
}
.parts222_sidebar{
    max-width: 100%!important;
}
/*.parts222_post_wrap .parts222_post_img img{
        object-fit: contain!important;
}*/
.parts213_section_form{
    background: #EFE8DA!important;
        padding-top: 80px!important;
    padding-bottom: 80px!important;
}
 .required{
     background-color: #dd444400!important;
    color: rgb(184, 144, 47)!important;
    border: 1px solid rgba(184, 144, 47, 0.55)!important;
    padding: 3px 8px 0px!important;
    border-radius: 3px!important;
    font-weight: bold!important;
 }
 .parts213_form_wrap,.parts219_form_wrap{
         background: #fff!important;
      padding: 80px 30px !important;
 }
 .parts222_post_img{
         background: #ffffff!important;
 }
 .parts222_post_status{
         padding: 0 20px!important;
             display: block!important;
 }
 .parts222_post_title{
        padding: 10px!important;
 }
 .parts222_section,.parts219_section_form{
         background: #EFE8DA!important;
 }
 .parts222_sidebar h3{
         background-color: #c8a24a00!important;
    color: #000000!important;
        border-left: 4px solid #000!important;
    border-bottom: 1px solid #000!important;
 }
 .category_post_count ul li{
         border-left: none!important;
    border-right: none!important;
 }
 .parts219_section_form .contact_submit input,.parts213_section_form .contact_submit input{
         color: #000000!important;
    font-weight: bold!important;
    border-radius: 50px!important;
 }
 [class*="parts131415_blog"] .col{
         width: 100%!important;
 }
 .parts131415_blog_ygE8dppYoE .card img{
         object-fit: contain!important;
    background: #fff!important;
 }
 .parts131415_blog_ygE8dppYoE.bg-color{
         padding-top: 1px!important;
 }
 .design-parts-52_cPRMS2j4Tt .container .content h4.banner-area{
         height: 60%!important;
 }
 .parts228_post_wrap{
         max-width: 100%!important;
 }
 /*施工実績*/
 .parts228_section,.parts225_section{
         background: #EFE8DA!important;
 }
 .parts228_post_wrap{
         max-height: 410px!important;
 }
.required{
        height: 30px!important;
        width: 60px!important;
     }
     .parts222_post_wrap .parts222_post_img{
             max-width: 100%!important;
     }
     
/* 追加 */
.parts-blog-ex-single-wrap .parts-blog-ex_gallery-slider img{
    max-height:480px!important;
}
.parts-blog-ex-single-wrap .parts-blog-ex_gallery-slider .gallery-blog-ex{
    background:none!important;
}