/* Differences introduced by Arkhe and Gutenberg. site.css stays identical to v5. */
.yukinohana { font-size:16px; line-height:1.8; }
.yukinohana .wp-block-group { margin-block:0; }
.yukinohana :is(.wp-block-group,.wp-block-group__inner-container) > * { margin-block-start:0; margin-block-end:0; }
.yukinohana :is(.wp-block-group,.wp-block-group__inner-container) > .intro { margin-top:1.1em; }
.yukinohana :is(.wp-block-group,.wp-block-group__inner-container) > .scenes { margin-top:32px; }
.yukinohana :is(.wp-block-group,.wp-block-group__inner-container) > .scene-body { margin-top:18px; }
.yukinohana :is(.wp-block-group,.wp-block-group__inner-container) > .table-wrap,
.yukinohana :is(.wp-block-group,.wp-block-group__inner-container) > .info-table { margin-top:24px; }
.yukinohana :is(.wp-block-group,.wp-block-group__inner-container) > .class-block { margin-top:clamp(40px,5vw,56px); }
.yukinohana :is(.wp-block-group,.wp-block-group__inner-container) > .class-meta { margin-top:12px; }
.yukinohana :is(.wp-block-group,.wp-block-group__inner-container) > .vehicle { margin-top:22px; }
.yukinohana :is(.wp-block-group,.wp-block-group__inner-container) > .recruit { margin-top:28px; }
.yukinohana :is(.wp-block-group,.wp-block-group__inner-container) > .tel-panel { margin-top:22px; }
.yukinohana .recruit p { margin:.3em 0 0; }
.yukinohana .scene-photos .wp-block-image { margin:0; }
.yukinohana .scene-photos .wp-block-image img { width:100%; }
.yukinohana .scene-list .scene-item { padding-bottom:14px; border-bottom:1px dashed var(--line); }
.yukinohana .scene-list .scene-item:last-child { padding-bottom:0; border:0; }
.yukinohana .scene-list .scene-term { font-weight:700; }
.yukinohana .scene-list .scene-description { margin:.2em 0 0; color:#444; }
.yukinohana .wp-block-table { margin-inline:0; overflow:visible; }
.yukinohana .wp-block-table table { margin:0; font-size:.95rem; border-collapse:collapse; }
.yukinohana table th,.yukinohana table td { padding:.85rem 1rem!important; border:1px solid var(--line); text-align:left; vertical-align:top; }
.yukinohana table thead th { background:var(--navy); color:#fff; border-color:var(--navy); }
.yukinohana table tbody th { background:var(--bg-gray); color:var(--ink); }
.yukinohana .wp-block-heading { font-weight:700; }
.yukinohana .sample-buttons { margin-top:12px; display:block; }
.yukinohana .sample-buttons .wp-block-button { margin:0; display:inline-block; }
.yukinohana .sample-buttons .wp-block-button .wp-block-button__link { display:inline-flex; align-items:center; justify-content:center; min-height:44px; padding:0 1.6em; border-radius:4px; border:1px solid var(--navy); background:#fff; color:var(--navy); font-family:inherit; font-size:.92rem; font-weight:700; line-height:1.3; text-decoration:none; }
.yukinohana .sample-buttons .wp-block-button .wp-block-button__link:hover { color:#fff; background:var(--navy); }
.yukinohana .wpcf7 { margin:0; }
.yukinohana .wpcf7 .form { margin-top:26px; }
.yukinohana .wpcf7-list-item { margin:0; }
.yukinohana .req,.yukinohana .opt { display:inline-block; white-space:nowrap; }
.yukinohana .wpcf7-radio { display:flex; flex-wrap:wrap; gap:6px 24px; }
.yukinohana .wpcf7-radio label { display:inline-flex; gap:.45em; min-height:40px; align-items:center; cursor:pointer; }
.yukinohana .wpcf7-radio input { width:18px; height:18px; margin:0; accent-color:var(--navy); }
.yukinohana .wpcf7-acceptance label { display:flex; gap:.7em; align-items:flex-start; }
.yukinohana .wpcf7-acceptance input { margin:.25em 0 0; }
.yukinohana .wpcf7 textarea { height:140px; }
.yukinohana .submit-row { position:relative; }
.yukinohana .submit-row .wpcf7-spinner { position:absolute; left:calc(50% + 8rem); top:12px; margin:0 0 0 8px; }
.yukinohana .language-links { display:flex; flex-wrap:wrap; gap:8px; }
.yukinohana .language-links a { color:inherit; }
.yukinohana .language-links [aria-current] { font-weight:700; }
html.is-top .yukinohana { height:100%; }
.yukinohana .hero-bar { min-height:60px; }
@media(max-width:520px) {
  .yukinohana table.quick { font-size:.86rem; }
  .yukinohana table.quick th,.yukinohana table.quick td { padding:.6rem .5rem!important; }
  .yukinohana .info-table table { display:block; width:100%; }
}
@media(max-width:820px) {
  html:not(.has-js) .yukinohana .gnav { display:block; }
}

/* Sticky header keeps its place in the document, including without JavaScript. */
html:not(.is-top) { --site-head-height:150px; --header-admin-offset:0px; scroll-padding-top:calc(var(--site-head-height) + var(--header-admin-offset) + 16px); }
html:not(.is-top):has(.admin-bar) { --header-admin-offset:32px; }
.yukinohana .site-head { position:sticky; top:var(--header-admin-offset, 0px); z-index:110; box-shadow:0 1px 0 var(--line); }
@media(min-width:821px) {
  .yukinohana .head-tel { display:block; }
  .yukinohana .site-head.is-compact .head-top { min-height:60px; padding-block:6px; }
  .yukinohana .site-head.is-compact .brand img { height:32px; }
  .yukinohana .site-head.is-compact .brand-sub { display:none; }
  .yukinohana .site-head.is-compact .gnav a { padding-block:10px; }
}
@media(min-width:821px) and (max-width:1100px) {
  .yukinohana .head-top { gap:10px; }
  .yukinohana .brand img { max-width:160px; height:auto; }
  .yukinohana .brand-sub { max-width:180px; }
  .yukinohana .head-tel .num { font-size:1.1rem; }
  .yukinohana .head-btn { padding-inline:.8em; font-size:.82rem; }
  .yukinohana .site-head.is-compact .gnav a { font-size:.9rem; line-height:1.4; padding-block:8px; }
}
@media(max-width:820px) {
  html:not(.is-top) { --site-head-height:76px; }
  .has-js .yukinohana .gnav { position:absolute; top:100%; left:0; right:0; max-height:calc(100dvh - var(--site-head-height) - var(--header-admin-offset)); overflow-y:auto; }
  html:not(.has-js):not(.is-top) { --site-head-height:360px; }
}
@media(max-width:782px) {
  html:not(.is-top):has(.admin-bar) { --header-admin-offset:46px; }
}
@media print {
  .yukinohana .site-head { position:static; }
  .has-js .yukinohana .gnav { position:static; max-height:none; }
  html:not(.is-top) { scroll-padding-top:0; }
}

/* Classic core/group adds an inner wrapper; preserve the sample grid. */
.yukinohana .wp-block-group__inner-container { display:contents; }

/* Shared mobile contact links; the space remains reserved while JS hides them. */
.yukinohana .floating-contact { display:none; }
@media(max-width:820px) {
  body.yukinohana.has-floating-contact {
    --floating-contact-height:calc(65px + env(safe-area-inset-bottom, 0px));
    padding-bottom:var(--floating-contact-height);
  }
  .yukinohana .floating-contact {
    position:fixed;
    inset:auto 0 0;
    z-index:100;
    display:grid;
    grid-auto-flow:column;
    grid-auto-columns:minmax(0,1fr);
    padding:0 0 env(safe-area-inset-bottom, 0px);
    background:#fff;
    border-top:1px solid var(--line);
    box-shadow:0 -2px 10px rgb(0 0 0 / 10%);
  }
  .yukinohana .floating-contact a {
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    min-width:44px;
    min-height:64px;
    padding:8px;
    font-size:1rem;
    font-weight:700;
    line-height:1.4;
    text-align:center;
    text-decoration:none;
  }
  .yukinohana .floating-contact-phone { color:var(--navy); background:#fff; }
  .yukinohana .floating-contact-phone:hover { background:var(--bg-gray); }
  .yukinohana .floating-contact small { font-size:.75rem; font-weight:400; }
  .yukinohana .floating-contact-inquiry { color:#fff; }
  .yukinohana .floating-contact a:focus-visible { outline:3px solid #dfae40; outline-offset:-4px; }
}
.yukinohana .floating-contact[hidden] { display:none!important; }
@media print {
  .yukinohana .floating-contact { display:none!important; }
  body.yukinohana.has-floating-contact { padding-bottom:0; }
}

/* Bogo supplies URLs; the select is progressive enhancement of real links. */
.yukinohana .language-switcher { flex:none; }
.yukinohana .language-switcher .lang { display:none; }
.has-js .yukinohana .language-switcher .lang { display:flex; }
.has-js .yukinohana .language-fallback { display:none; }
.yukinohana .language-fallback { gap:6px 12px; font-size:.82rem; }
.yukinohana .language-switcher select { max-width:10rem; }
.yukinohana .language-switcher .lang svg { display:block; width:17px; height:17px; }
html:not([lang="ja"]) .yukinohana .head-tel .num { white-space:nowrap; font-size:1.15rem; }
html:not([lang="ja"]) .yukinohana .foot-info,
html:not([lang="ja"]) .yukinohana .foot-col { overflow-wrap:anywhere; }
html:not([lang="ja"]) .yukinohana .tel-panel .tel { font-size:clamp(1.35rem,4.8vw,2.4rem); }
html:not([lang="ja"]) .yukinohana .contact-box .tel { font-size:clamp(1.2rem,4.8vw,2rem); }
@media(max-width:820px) {
  .yukinohana .head-top { flex-wrap:wrap; }
  .yukinohana .head-top .brand { flex:1; }
  .yukinohana .menu-toggle { flex:none; }
  .yukinohana .language-switcher .lang { gap:3px; }
  .yukinohana .language-switcher .lang select { max-width:7.2rem; }
  html:not([lang="ja"]) .yukinohana .floating-contact-phone { font-size:.86rem; }
}
@media(max-width:640px) {
  html:not([lang="ja"]) .yukinohana .hero {
    grid-template-rows:auto auto auto minmax(0,1fr) auto;
    grid-template-areas:"bar" "copy" "actions" "." "foot";
  }
  html:not([lang="ja"]) .yukinohana .hero-actions { padding-top:14px; }
  html:not([lang="ja"]) .yukinohana .hero-kicker { font-size:1rem; }
  html:not([lang="ja"]) .yukinohana .hero-foot { font-size:.64rem; line-height:1.45; }
  html:not([lang="ja"]) .yukinohana .hero-actions .btn { font-size:.82rem; line-height:1.3; }
}

/* TASK_08: shared philosophy and business list, without changing existing layout. */
.yukinohana .hero-philosophy {
  margin:.55em 0 0;
  font-size:clamp(.875rem,1.2vw,1.05rem);
  font-weight:700;
  line-height:1.5;
  color:inherit;
  text-shadow:0 1px 10px rgba(0,0,0,.35);
}
.yukinohana .company-philosophy { margin-top:1.1em; }
.yukinohana #h-outline { margin-top:2rem; }
.yukinohana .business-list { margin:0; padding-left:1.4em; }
.yukinohana .business-list li + li { margin-top:.4em; }

/* TASK_09: approved 30px reduction only on short desktop viewports. */
@media (min-width:821px) and (max-height:740px) {
  .yukinohana .hero-copy { padding-top:max(0px, calc(clamp(8px, 5vh, 56px) - 30px)); }
}

/* A vehicle with no photos has no reserved gallery column. */
.yukinohana .vehicle-no-photo { grid-template-columns:minmax(0,1fr); }

/* Keep the home footer compact, using its existing typography. */
.yukinohana .hero-groups { display:flex; align-items:flex-start; gap:.75em; margin-top:.35em; }
.yukinohana .hero-groups .hero-group-title { font-weight:700; }
.yukinohana .hero-groups ul { list-style:none; margin:0; padding:0; }

/* TASK_10: reuse the 18px gap from .vehicle .btn in site.css. */
.yukinohana .vehicle-information-stack > .vehicle-info + .vehicle-info { margin-top:18px; }
