/*
  Group Home FLAT - TOP page (static prototype)
  Visual reference (Top FIX): https://www.genspark.ai/api/files/s/7pI9WjWA
  This CSS aims to match: creamy paper bg, deep green primary, muted gold kicker,
  beige chips, thin greige rules, generous whitespace, subtle blob circles.
*/

:root{
  --bg: #F6F3E9;
  --surface: #FFFFFF;
  --surface-tint: #F3F0E6;

  --text: #111111;
  --muted: #6A6A6A;

  --primary: #1E4B3D;          /* deep forest green */
  --primary-2: #275644;        /* hover */

  --gold: #B79B52;             /* kicker */
  --chip-bg: #FFFFFF;
  --chip-border: #D8D3C8;
  --rule: #D8D3C8;


  --radius-sm: 12px;
  --radius-md: 16px;
  --radius-lg: 20px;
  --pill: 999px;

  --shadow: 0 10px 25px rgba(22, 40, 32, .06);

  --container: 1120px;
}

*{box-sizing:border-box}
html,body{height:100%}
body{
  margin:0;
  font-family: "Noto Sans JP", system-ui, -apple-system, "Segoe UI", sans-serif;
  color:var(--text);
  background: linear-gradient(180deg, #F7F4EA, var(--bg));
}
img{max-width:100%;display:block}

/* Icon (outline, single color) */
.icon{width:18px;height:18px;display:inline-block;vertical-align:-0.2em;color:var(--primary)}
.icon--muted{color: rgba(30,75,61,.55)}
.btn .icon{width:16px;height:16px}
a{color:inherit}

.container{
  width:min(var(--container), calc(100% - 40px));
  margin-inline:auto;
}

.center{display:flex;justify-content:center}
.homes__cta{margin-top:28px}

.skip-link{
  position:absolute;
  left:-9999px;
  top:8px;
  background:#000;
  color:#fff;
  padding:10px 14px;
  border-radius:8px;
  z-index:1000;
}
.skip-link:focus{left:12px}

/* Header */
.site-header{
  position:sticky;
  top:0;
  z-index:50;
  backdrop-filter: blur(10px);
  background: rgba(246,243,233,.82);
  border-bottom: 1px solid rgba(216,211,200,.65);
}
.header__inner{
  display:flex;
  align-items:center;
  gap:16px;
  padding:14px 0;
}

/* Flex tuning: keep nav centered and stable */
.brand{flex:0 0 auto;

  display:flex;
  align-items:center;
  gap:10px;
  text-decoration:none;
}

/* Logo image */
.brand__img{
  height:28px;
  width:auto;
  display:block;
}

.brand__name{
  font-weight:800;
  letter-spacing:.01em;
  color: var(--text);
}

.nav{
  display:flex;
  align-items:center;
  gap:18px;
  flex-wrap:nowrap;
  white-space:nowrap;
  margin-left:auto;
}
.nav__link{
  text-decoration:none;
  color: rgba(17,17,17,.85);
  font-weight:500;
  font-size:14px;
  padding:8px 2px;
  border-bottom: 2px solid transparent;
}
.nav__link:hover{color:var(--text)}
.nav__link.is-active{border-bottom-color: var(--primary)}

.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  text-decoration:none;
  font-weight:700;
  padding:12px 18px;
  border-radius: var(--radius-md);
  border:1px solid transparent;
  transition: .15s ease;
  white-space:nowrap;
}
.btn--pill{border-radius: var(--pill)}
.btn--primary{
  background: var(--primary);
  border-color: var(--primary);
  color:#fff;
}
.btn--primary:hover{background: var(--primary-2);border-color: var(--primary-2)}
.btn--secondary{
  background: transparent;
  border-color: var(--primary);
  color: var(--primary);
}
.btn--secondary:hover{background: rgba(30,75,61,.06)}

.header__cta{
  font-size:14px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  line-height:1.1;
  padding:11px 16px;
  min-height:40px;
  margin-left:12px;
}
.header__cta .icon{vertical-align:0}
.header__cta span{display:inline-block}


.hamburger{
  /* label（checkboxのトグル） */
  display:none;
  width:42px;
  height:42px;
  border-radius:12px;
  border:1px solid var(--rule);
  background: var(--surface);
  padding:0;
  align-items:center;
  justify-content:center;
  gap:4px;
  cursor:pointer;
  user-select:none;
  margin-left:8px;
}
.hamburger span{
  display:block;
  width:18px;
  height:2px;
  background: var(--primary);
  border-radius:2px;
}

.mobile-nav{
  border-top: 1px solid rgba(216,211,200,.6);
  background: rgba(246,243,233,.95);
  display:none; /* closed by default */
}

/* checkbox hack: show mobile menu without JS */
.nav-toggle:checked ~ .mobile-nav{display:block}

.mobile-nav__inner{
  padding:14px 0 18px;
  display:grid;
  gap:10px;
}
.mobile-nav__link{
  text-decoration:none;
  padding:12px 12px;
  border-radius:12px;
  border:1px solid rgba(216,211,200,.75);
  background: rgba(255,255,255,.7);
}

/* Hero */
.hero{padding:42px 0 18px}
.hero__grid{
  display:grid;
  grid-template-columns: 1.05fr .95fr;
  align-items:center;
  gap:52px;
}
.hero__copy{position:relative}
.kicker{
  display:inline-flex;
  align-items:center;
  padding:6px 12px;
  border-radius: var(--pill);
  background: var(--gold);
  color:#fff;
  font-weight:800;
  font-size:12px;
  letter-spacing:.06em;
  margin:0 0 14px;
}
.hero__rule{
  position:absolute;
  left:-22px;
  top:54px;
  width:6px;
  height: 240px;
  border-radius: 6px;
  background: var(--primary);
}
.hero__h1{
  margin:0;
  font-weight:800;
  font-size: clamp(40px, 4.2vw, 62px);
  line-height:1.05;
  letter-spacing: -0.02em;
}
.hero__jp{
  margin:10px 0 16px;
  font-weight:800;
  font-size: clamp(18px, 2.2vw, 28px);
}
.hero__concept{
  margin:0 0 12px;
  font-size:18px;
  font-weight:800;
}
.hero__points{
  margin:0;
  padding-left: 18px;
  color: rgba(17,17,17,.88);
  line-height:1.85;
  font-size:14px;
}

.chips{display:flex;flex-wrap:wrap;gap:10px;margin:18px 0 22px}
.chip{
  display:inline-flex;
  align-items:center;
  gap:6px;
  padding:8px 12px;
  border-radius: var(--pill);
  background: var(--chip-bg);
  border: 1px solid var(--chip-border);
  font-size:12px;
  color: rgba(17,17,17,.88);
}

.hero__cta{display:flex;flex-wrap:wrap;gap:12px}

.hero__media{position:relative}
.hero__photo{
  border-radius: var(--radius-lg);
  overflow:hidden;
  background: #EEE;
  box-shadow: var(--shadow);
  border: 1px solid rgba(216,211,200,.7);
}
.hero__photo img{
  width:100%;
  height:100%;
  object-fit:cover;
}

/* Row links */
.quicklinks{padding: 18px 0 40px}
.rowlink{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  padding:18px 0;
  text-decoration:none;
  border-top: 1px solid var(--rule);
}
.rowlink:last-child{border-bottom: 1px solid var(--rule)}
.rowlink__left{display:flex;align-items:center;gap:14px}
.rowlink__icon{
  min-width:44px;
  height:44px;
  border-radius: 14px;
  background: rgba(255,255,255,.75);
  border: 1px solid var(--rule);
  display:grid;
  place-items:center;
  color: var(--primary);
}
.rowlink__title{display:block;font-weight:800}
.rowlink__desc{display:block;color:var(--muted);font-size:13px;margin-top:2px}
.rowlink__arrow{color: var(--primary);font-weight:800}
.rowlink:hover{background: rgba(255,255,255,.35)}

/* Sections */
.section{padding: 58px 0}
#contact{padding: 100px 0}
.section__header{text-align:center;max-width: 780px;margin:0 auto 26px}
.section__header--left{text-align:left;max-width: 720px;margin:0 0 26px}
.section__kicker{
  margin:0 0 8px;
  color: rgba(17,17,17,.65);
  font-size:12px;
  letter-spacing:.08em;
  font-weight:800;
}
.section__title{margin:0;font-size: 30px;letter-spacing:-.01em;display:flex;align-items:center;justify-content:center;gap:10px}
.section__header--left .section__title{justify-content:flex-start}

.section__desc{margin:10px 0 0;color: var(--muted);line-height:1.8}
.section__rule{height:1px;background: var(--rule);margin-top:18px}

.section--editorial{padding-top: 36px}
.editorial{
  max-width: 860px;
  margin: 0 auto;
  line-height:1.95;
  color: rgba(17,17,17,.9);
}
.editorial__lead{font-size:18px;margin:0 0 8px}
.editorial h3{margin:24px 0 6px;font-size:18px;display:flex;align-items:center;gap:8px}
.editorial h3 .icon{width:16px;height:16px}
.editorial ol{margin:10px 0 0;padding-left: 18px}

/* Foundation */
.foundation{position:relative}
.foundation__inner{position:relative}
.foundation__list{
  list-style:none;
  padding:0;
  margin: 0;
  display:grid;
  gap:12px;
  max-width: 820px;
}
.foundation__list li{
  background: rgba(255,255,255,.75);
  border: 1px solid rgba(216,211,200,.75);
  border-radius: var(--radius-md);
  padding: 14px 16px;
  box-shadow: 0 8px 18px rgba(22, 40, 32, .04);
  display:flex;
  gap:10px;
  align-items:flex-start;
}
.liicon{
  width:34px;
  height:34px;
  border-radius: 999px;
  display:grid;
  place-items:center;
  background: rgba(30,75,61,.08);
  border: 1px solid rgba(30,75,61,.18);
  flex:0 0 auto;
}

/* Living style */
.living{
  display:grid;
  grid-template-columns: repeat(2, 1fr);
  gap:16px;
  max-width: 860px;
  margin: 0 auto;
}
.living__item{
  background: rgba(255,255,255,.78);
  border: 1px solid rgba(216,211,200,.78);
  border-radius: var(--radius-md);
  padding: 18px 18px;
}
.living__item h3{margin:0 0 6px;font-size:18px;display:flex;align-items:center;gap:8px}
.living__item p{margin:0;color: var(--muted);line-height:1.85}

/* Stepper */
.stepper{
  display:flex;
  align-items:stretch;
  justify-content:center;
  gap:12px;
  flex-wrap:wrap;
}
.stepper__step{
  min-width: 220px;
  background: rgba(255,255,255,.8);
  border: 1px solid rgba(216,211,200,.8);
  border-radius: var(--radius-md);
  padding: 16px 16px;
}
.stepper__step.is-active{
  background: rgba(30,75,61,.08);
  border-color: rgba(30,75,61,.45);
}
.stepper__goal{
  background: rgba(233,225,207,.55);
}
.stepper__label{margin:0;color: rgba(17,17,17,.65);font-size:12px;font-weight:800;letter-spacing:.08em}
.stepper__title{margin:4px 0 2px;font-size:18px;font-weight:800}
.stepper__desc{margin:0;color: var(--muted);font-size:13px;line-height:1.6}
.stepper__arrow{display:flex;align-items:center;color: var(--primary);font-weight:800}

/* Timeline */
.timeline{
  max-width: 860px;
  margin: 0 auto;
  padding:0;
  list-style:none;
  display:grid;
  gap:12px;
}
.timeline li{
  display:flex;
  gap:14px;
  background: rgba(255,255,255,.78);
  border: 1px solid rgba(216,211,200,.78);
  border-radius: var(--radius-md);
  padding: 14px 16px;
}
.timeline__num{
  width:34px;
  height:34px;
  border-radius: 999px;
  display:grid;
  place-items:center;
  background: rgba(30,75,61,.1);
  color: var(--primary);
  font-weight:900;
}
.timeline__title{margin:0;font-weight:800}
.timeline__desc{margin:4px 0 0;color:var(--muted);line-height:1.7}

/* Media list */
.media-list{
  max-width: 860px;
  margin: 0 auto;
  display:grid;
  gap:12px;
}
.media{
  display:flex;
  gap:14px;
  align-items:center;
  background: rgba(255,255,255,.78);
  border: 1px solid rgba(216,211,200,.78);
  border-radius: var(--radius-md);
  padding: 12px;
}
.media__thumb{
  width: 84px;
  height: 64px;
  border-radius: 14px;
  background:
    linear-gradient(135deg, rgba(233,225,207,.9), rgba(243,240,230,.9));
  border:1px solid rgba(216,211,200,.8);
}
.media__title{margin:0 0 2px;font-size:16px}
.media__desc{margin:0;color:var(--muted);font-size:13px}

/* Callout */
.callout{
  max-width: 860px;
  margin: 0 auto;
  border-radius: var(--radius-lg);
  border: 1px solid rgba(216,211,200,.82);
  background: rgba(255,255,255,.78);
  padding: 18px;
}
.callout__text{margin:0;color: rgba(17,17,17,.88);line-height:1.85}
.callout__cta{margin-top: 12px;display:flex;justify-content:flex-end}

/* Contact */
.contact{
  max-width: 860px;
  margin: 0 auto;
  border-radius: var(--radius-lg);
  border: 1px solid rgba(216,211,200,.82);
  background: rgba(255,255,255,.78);
  padding: 18px;
}

.form{
  display:grid;
  gap:12px;
}
.form__row{display:grid;gap:6px}
.form__label{font-weight:800;font-size:13px;color:rgba(17,17,17,.9)}
.form__hint{font-size:12px;color:var(--muted);margin:0}
.form__control{
  width:100%;
  padding:12px 12px;
  border-radius: 14px;
  border:1px solid rgba(216,211,200,.9);
  background: rgba(255,255,255,.9);
  font: inherit;
  outline:none;
}
.form__control:focus{border-color: rgba(30,75,61,.5); box-shadow: 0 0 0 4px rgba(30,75,61,.08)}
textarea.form__control{min-height:140px; resize:vertical}
.form__grid{display:grid;grid-template-columns:1fr 1fr; gap:12px}
.form__check{display:flex;gap:10px;align-items:flex-start;font-size:13px;color:rgba(17,17,17,.88)}
.form__check input{margin-top:3px}
.form__actions{display:flex;gap:12px;flex-wrap:wrap;justify-content:flex-end;margin-top:6px}

/* Floating LINE button */
.float-line{
  position:fixed;
  right:26px;
  bottom:calc(96px + env(safe-area-inset-bottom));
  width:68px;
  height:68px;
  border-radius:999px;
  background:#06C755;
  color:#fff;
  display:grid;
  place-items:center;
  text-decoration:none;
  box-shadow:0 16px 32px rgba(0,0,0,.20);
  z-index:80;
}
.float-line .icon{display:none}
.float-line__inner{display:grid;gap:2px;place-items:center;line-height:1}
.float-line__label{font-weight:900;font-size:13px;letter-spacing:.02em}
.float-line__sub{font-size:10px;opacity:.95}
@keyframes floaty{
  0%,100%{transform: translateY(0)}
  50%{transform: translateY(-8px)}
}
@media (prefers-reduced-motion: reduce){
  
}

/* Footer */
.site-footer{
  margin-top: 40px;
  background: var(--primary);
  color:#fff;
}
.footer__inner{
  padding: 38px 0;
  display:grid;
  grid-template-columns: 1.2fr .8fr .8fr;
  gap:24px;
  align-items:start;
}
.footer__logo{font-weight:900;letter-spacing:.01em;font-size:18px}
.footer__note{margin:8px 0 0;opacity:.8;font-size:12px;line-height:1.7}
.footer__nav{display:grid;gap:8px}
.footer__nav a{color:#fff;text-decoration:none;opacity:.9}
.footer__nav a:hover{opacity:1;text-decoration:underline}
.footer__links a{color:#fff;opacity:.85;text-decoration:none}
.footer__links a:hover{opacity:1;text-decoration:underline}

/* Responsive */
@media (max-width: 980px){
  .nav{display:none}
  .header__cta{display:none}
  .hamburger{display:inline-flex}
  .hero__grid{grid-template-columns: 1fr;gap:20px}
  .hero__rule{display:none}
  .hero{padding-top: 26px}
  .living{grid-template-columns: 1fr}
  .footer__inner{grid-template-columns: 1fr;}
}


@media (prefers-reduced-motion: reduce){
  *{transition:none !important;scroll-behavior:auto !important}
}

/* =====================
   MOVIE section (YouTube embed)
   ===================== */
.section--movie{padding-block:3rem 2.5rem}
.movie-wrap{position:relative;width:100%;max-width:460px;margin:0 auto;padding-top:min(56.25%, 259px);border-radius:12px;overflow:hidden;box-shadow:0 4px 24px rgba(0,0,0,.12)}
.movie-wrap iframe{position:absolute;top:0;left:0;width:100%;height:100%;border:0}

/* =====================
   HOMES page
   ===================== */
.homes-hero{padding-bottom: 18px}

.homes-toolbar{
  max-width: 980px;
  margin: 0 auto;
  display:grid;
  gap:12px;
}
.homes-toolbar__group{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  justify-content:center;
}

.pill{
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding:10px 14px;
  border-radius: 999px;
  border:1px solid rgba(216,211,200,.9);
  background: rgba(255,255,255,.7);
  color: rgba(17,17,17,.88);
  font: inherit;
  font-weight:800;
  font-size:13px;
  cursor:pointer;
  transition: .15s ease;
}
.pill:hover{background: rgba(255,255,255,.9)}
.pill.is-active{
  background: rgba(30,75,61,.08);
  border-color: rgba(30,75,61,.35);
  color: var(--text);
}

.homes-grid{
  max-width: 980px;
  margin: 0 auto;
  display:grid;
  grid-template-columns: repeat(3, 1fr);
  gap:16px;
}

.home-card{
  border-radius: var(--radius-lg);
  border: 1px solid rgba(216,211,200,.82);
  background: rgba(255,255,255,.82);
  overflow:hidden;
  box-shadow: var(--shadow);
  display:flex;
  flex-direction:column;
  min-height: 100%;
}
.home-card__media{
  height: 160px;
  background:
    linear-gradient(140deg, rgba(30,75,61,.10), rgba(183,155,82,.08)),
    radial-gradient(circle at 30% 30%, rgba(30,75,61,.10), transparent 45%),
    radial-gradient(circle at 70% 70%, rgba(183,155,82,.12), transparent 55%),
    #fff;
  border-bottom: 1px solid rgba(216,211,200,.7);
}
.home-card__body{padding:14px}

.home-card__top{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:10px;
}
.home-card__title{margin:0;font-size:18px;letter-spacing:.01em}

.status{
  display:inline-flex;
  align-items:center;
  padding:6px 10px;
  border-radius: 999px;
  font-size:11px;
  font-weight:900;
  border:1px solid rgba(216,211,200,.9);
  background: rgba(255,255,255,.85);
  white-space:nowrap;
}
.status--open{border-color: rgba(30,75,61,.35); background: rgba(30,75,61,.06)}

.home-card__meta{
  margin:10px 0 0;
  color: var(--muted);
  font-size:13px;
  display:flex;
  align-items:center;
  gap:8px;
}

.home-card__tags{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0 0}
.tag{
  display:inline-flex;
  align-items:center;
  gap:6px;
  padding:7px 10px;
  border-radius: 999px;
  border:1px solid rgba(216,211,200,.9);
  background: rgba(255,255,255,.7);
  font-size:12px;
  font-weight:800;
  color: rgba(17,17,17,.88);
}

.home-card__desc{margin:12px 0 0;color: rgba(17,17,17,.86);font-size:13px;line-height:1.8}

.home-card__cta{margin-top:14px;display:flex;flex-wrap:wrap;gap:10px}
.home-card__cta .btn{flex:1 1 auto}

.homes-note{max-width: 980px;margin: 16px auto 0}
.homes-note__text{margin:0;color: var(--muted);font-size:12px;line-height:1.7;text-align:center}

@media (max-width: 980px){
  .homes-grid{grid-template-columns: 1fr;}
}

/* =====================
   HOMES page (v2 long page + internal anchor index)
   ===================== */
.homes-hero{padding-bottom: 18px}

.homes-index{
  max-width: 860px;
  margin: 0 auto;
  display:grid;
  gap:10px;
}

.homes-index__item{
  text-decoration:none;
  display:grid;
  grid-template-columns: 1fr auto;
  gap:8px 12px;
  align-items:center;
  padding:14px 14px;
  border-radius: var(--radius-lg);
  border: 1px solid rgba(216,211,200,.82);
  background: rgba(255,255,255,.78);
  box-shadow: 0 10px 22px rgba(22,40,32,.05);
  transition: .15s ease;
}
.homes-index__item:hover{transform: translateY(-1px); background: rgba(255,255,255,.9)}
.homes-index__name{font-weight:900; letter-spacing:.01em}
.homes-index__meta{
  grid-column: 1 / 2;
  display:flex;
  align-items:center;
  gap:8px;
  color: var(--muted);
  font-size: 13px;
}

.status--full{
  border-color: rgba(0,0,0,.18);
  background: rgba(0,0,0,.03);
}
.status--vacant{
  border-color: rgba(30,75,61,.35);
  background: rgba(30,75,61,.06);
}

.home-block{
  max-width: 980px;
  margin: 0 auto;
  border-radius: 22px;
  border: 1px solid rgba(216,211,200,.82);
  background: rgba(255,255,255,.82);
  box-shadow: var(--shadow);
  padding: 16px;
}
.home-block + .home-block{margin-top: 16px}

.home-block__header{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:12px;
  padding-bottom: 12px;
  border-bottom: 1px solid rgba(216,211,200,.7);
  scroll-margin-top: 92px; /* anchor offset for sticky header */
}
.home-block__title{margin:0;font-size:22px;letter-spacing:.01em}
.home-block__sub{margin:6px 0 0; color: var(--muted); font-size: 13px; line-height:1.7}

.home-block__grid{
  display:grid;
  grid-template-columns: 1.05fr .95fr;
  gap:14px;
  padding-top: 14px;
  align-items:start;
}
.home-block__media{
  min-height: 240px;
  border-radius: 18px;
  border: 1px solid rgba(216,211,200,.8);
  background:
    linear-gradient(145deg, rgba(30,75,61,.12), rgba(183,155,82,.10)),
    radial-gradient(circle at 25% 25%, rgba(30,75,61,.12), transparent 45%),
    radial-gradient(circle at 75% 75%, rgba(183,155,82,.14), transparent 55%),
    rgba(255,255,255,.95);
}

.kv{margin:0; display:grid; gap:10px}
.kv__row{display:grid; grid-template-columns: 140px 1fr; gap:10px; align-items:start}
.kv__row dt{font-weight:900; color: rgba(17,17,17,.88); display:flex; align-items:center; gap:8px; font-size:13px}
.kv__row dd{margin:0; color: rgba(17,17,17,.86); font-size:13px; line-height:1.85}

.home-block__cta{margin-top: 14px; display:flex; justify-content:flex-end}

@media (max-width: 980px){
  .homes-index__item{grid-template-columns: 1fr;}
  .homes-index__meta{grid-column: auto;}
  .home-block__grid{grid-template-columns: 1fr;}
  .kv__row{grid-template-columns: 1fr;}
  .home-block__cta{justify-content:flex-start}
}

/* =====================
   HOMES page (v3: sheet columns layout)
   ===================== */
.status--unknown{border-color: rgba(0,0,0,.18); background: rgba(0,0,0,.03)}

.home-block__bottom{margin-top: 14px; padding-top: 14px; border-top: 1px solid rgba(216,211,200,.7)}
.home-split{display:grid;grid-template-columns: 1fr 1fr; gap:14px}
.home-split__col{border:1px solid rgba(216,211,200,.82); background: rgba(255,255,255,.7); border-radius: 18px; padding: 14px}
.home-split__title{margin:0 0 10px; font-size:14px; font-weight:900; letter-spacing:.01em; display:flex; align-items:center; gap:8px}

.bullets{margin:0; padding-left: 18px; line-height: 1.9; color: rgba(17,17,17,.86); font-size: 13px}

.price{margin-top: 14px; border:1px solid rgba(216,211,200,.82); background: rgba(255,255,255,.78); border-radius: 18px; padding: 14px}
.price__title{margin:0 0 10px; font-size:14px; font-weight:900}
.price__grid{display:grid; grid-template-columns: repeat(2, 1fr); gap:10px}
.price__item{border:1px solid rgba(216,211,200,.8); background: rgba(255,255,255,.9); border-radius: 16px; padding: 12px}
.price__label{font-size:12px; color: var(--muted); font-weight:800}
.price__value{margin-top:6px; font-size:16px; font-weight:900; letter-spacing:.01em}
.price__note{grid-column: 1 / -1}

.map{margin-top: 14px; border:1px solid rgba(216,211,200,.82); background: rgba(255,255,255,.72); border-radius: 18px; padding: 14px}
.map__title{margin:0 0 6px; font-size:14px; font-weight:900}
.map__note{margin:0; color: var(--muted); font-size:12px; line-height:1.7}
.map__actions{margin-top: 10px; display:flex; gap:10px; flex-wrap:wrap}

@media (max-width: 980px){
  .home-split{grid-template-columns: 1fr;}
  .price__grid{grid-template-columns: 1fr;}
}

/* Map embed */
.map__embed{margin-top:10px;border-radius:16px;overflow:hidden;border:1px solid rgba(216,211,200,.82);background: rgba(255,255,255,.9)}
.map__iframe{width:100%;height:260px;border:0;display:block}
@media (max-width: 980px){
  .map__iframe{height:220px}
}

/* =====================
   HOMES page (v4: full sheet fields layout)
   ===================== */
.mini-row{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}
.mini{display:inline-flex;gap:8px;align-items:center;padding:7px 10px;border-radius:999px;border:1px solid rgba(216,211,200,.85);background:rgba(255,255,255,.75);font-size:12px;line-height:1}
.mini__k{color:var(--muted);font-weight:900}
.mini__v{font-weight:900;color:rgba(17,17,17,.88)}

.info-card{border:1px solid rgba(216,211,200,.82);background:rgba(255,255,255,.72);border-radius:18px;padding:14px}
.info-card + .info-card{margin-top:12px}
.info-card__title{margin:0 0 10px;font-size:14px;font-weight:900;letter-spacing:.01em}

.price__item.is-active{border-color: rgba(30,75,61,.45); box-shadow: 0 0 0 4px rgba(30,75,61,.06)}

.homes-index__left{display:grid;gap:6px}

/* keep anchor offset for sticky header */
.home-block{scroll-margin-top:92px}

@media (max-width: 980px){
  .mini-row{gap:6px}
}

/* =====================
   HOMES page (v5: new schema + table costs + bottom actions)
   ===================== */
.chip-lite{display:inline-flex;align-items:center;padding:5px 10px;border-radius:999px;background:rgba(255,255,255,.75);border:1px solid rgba(216,211,200,.85);font-size:12px;font-weight:900;color:rgba(17,17,17,.86)}
.homes-index__addr{color:rgba(17,17,17,.78);font-size:13px;line-height:1.7}

.meta-row{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}
.meta{display:inline-flex;gap:8px;align-items:center;padding:7px 10px;border-radius:999px;border:1px solid rgba(216,211,200,.85);background:rgba(255,255,255,.75);font-size:12px;line-height:1}
.meta__k{color:var(--muted);font-weight:900}
.meta__v{font-weight:900;color:rgba(17,17,17,.88)}

/* status variants */
.status--full{border-color: rgba(0,0,0,.18); background: rgba(0,0,0,.03)}
.status--vacant{border-color: rgba(30,75,61,.38); background: rgba(30,75,61,.07)}

/* move actions to bottom */
.home-actions{margin-top:14px;display:flex;gap:12px;justify-content:flex-end;flex-wrap:wrap}
.home-actions .btn{min-height:44px}

/* Fix button layout (icon/text) */
.btn .icon{flex:0 0 auto}

/* price table */
.price__head{display:grid;grid-template-columns:1fr auto;align-items:end;gap:10px 12px}
.price__head .price__note{grid-column:1 / -1;margin:2px 0 0}
@media (max-width:560px){.price__head{grid-template-columns:1fr}.price__head .benefit-badge{justify-self:flex-start}}
.price__note{margin:0;color:var(--muted);font-size:12px;line-height:1.6}
.price-table__wrap{overflow:auto;border-radius:16px;border:1px solid rgba(216,211,200,.82);background:rgba(255,255,255,.9);position:relative}
/* mobile: keep total column visible even while scrolling */
.price-table th.is-total,.price-table td.is-total{position:sticky;right:0}
.price-table td.is-total{background:rgba(255,255,255,.98);box-shadow:-10px 0 14px rgba(17,17,17,.06)}
.price-table thead th.is-total{background:rgba(246,243,233,.95)}
.price-table{width:100%;border-collapse:separate;border-spacing:0;min-width:640px}
.price-table th,.price-table td{padding:12px 12px;border-bottom:1px solid rgba(216,211,200,.75);text-align:right;white-space:nowrap}
.price-table th{font-size:12px;color:rgba(17,17,17,.78);font-weight:900;background:rgba(246,243,233,.6)}
.price-table td{font-size:14px;font-weight:900;color:rgba(17,17,17,.88)}
.price-table .is-total{color:var(--primary)}
.price-table tbody tr:last-child td{border-bottom:0}

/* trial */
.trial{margin-top:14px;border:1px solid rgba(216,211,200,.82);background:rgba(255,255,255,.74);border-radius:18px;padding:14px}
.trial__title{margin:0 0 10px;font-size:14px;font-weight:900}
.trial__grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}
.trial__item{border:1px solid rgba(216,211,200,.8);background:rgba(255,255,255,.92);border-radius:16px;padding:12px}
.trial__k{font-size:12px;color:var(--muted);font-weight:900}
.trial__v{margin-top:6px;font-size:14px;font-weight:900;color:rgba(17,17,17,.88)}
.trial__note{grid-column:1 / -1}

@media (max-width: 980px){
  .home-actions{justify-content:flex-start}
  .home-actions .btn{width:100%}
  .trial__grid{grid-template-columns:1fr}
  .price-table{min-width:520px}
}

/* HOMES: benefit badge */
.benefit-badge{display:inline-flex;align-items:center;gap:8px;padding:6px 10px;border-radius:999px;border:1px solid rgba(183,155,82,.55);background: rgba(183,155,82,.12);color: rgba(17,17,17,.88);font-size:12px;font-weight:900}

/* Ensure icons are consistent */
.btn .icon{width:16px;height:16px;display:block}
.header__cta .icon{width:16px;height:16px}
.home-actions .btn{align-items:center}

/* Header CTA stability */
.header__inner{flex-wrap:nowrap}
.nav{min-width:0}
.header__cta{flex:0 0 auto}

/* Homes actions: keep buttons neat */
.home-actions .btn{padding:12px 16px}


/* =====================
   Homes: price + gallery refinements (v17)
   ===================== */

/* Benefit badge: keep compact + aligned */
.benefit-badge{line-height:1; white-space:nowrap}

/* Show total on mobile as a fallback (in addition to sticky total column) */
.price-total-mobile{display:none;margin:10px 0 0;padding:10px 12px;border-radius:14px;border:1px dashed rgba(183,155,82,.55);background: rgba(183,155,82,.10);font-weight:900;color: rgba(17,17,17,.88)}
.price-total-mobile strong{color:var(--primary);font-size:16px}
@media (max-width:560px){
  .price-total-mobile{display:block}
}

/* Home photo gallery (carousel) */
.home-block__media.has-gallery{padding:0; overflow:hidden}
.home-gallery{position:relative; width:100%; height:100%}
.home-gallery__track{display:flex; height:100%; width:100%; transition: transform .28s ease; will-change: transform}
.home-gallery__slide{flex:0 0 100%; margin:0; height:100%}
.home-gallery__img{width:100%; height:100%; object-fit:cover; display:block}

/* Keep consistent aspect ratio for media area */
.home-block__media.has-gallery{min-height:240px}
@media (max-width:980px){
  .home-block__media.has-gallery{min-height:220px}
}

.home-gallery__controls{position:absolute; inset:0; display:flex; align-items:center; justify-content:space-between; padding:10px; pointer-events:none}
.home-gallery__btn{pointer-events:auto; width:40px; height:40px; border-radius:999px; border:1px solid rgba(216,211,200,.9); background:rgba(255,255,255,.85); backdrop-filter: blur(8px); box-shadow: 0 8px 18px rgba(22,40,32,.10); color: rgba(17,17,17,.85); font-weight:900; font-size:22px; line-height:1; display:grid; place-items:center}
.home-gallery__btn:active{transform: translateY(1px)}

.home-gallery__dots{position:absolute; left:50%; bottom:10px; transform: translateX(-50%); display:flex; gap:8px; padding:7px 10px; border-radius:999px; border:1px solid rgba(216,211,200,.85); background:rgba(255,255,255,.75); backdrop-filter: blur(8px)}
.home-gallery__dot{width:8px; height:8px; border-radius:999px; border:1px solid rgba(30,75,61,.35); background: rgba(30,75,61,.15); padding:0}
.home-gallery__dot.is-active{background: rgba(30,75,61,.92); border-color: rgba(30,75,61,.92)}

/* Hide arrow buttons on very small screens (swipe + dots remain) */
@media (max-width:420px){
  .home-gallery__btn{display:none}
}

/* Gallery UX */
.home-gallery__track{touch-action: pan-y; cursor: grab}
.home-gallery__track:active{cursor: grabbing}


/* =====================
   Homes: features + CTA layout fixes (v19)
   ===================== */

.features{margin-top:14px;border:1px solid rgba(216,211,200,.82);background:rgba(255,255,255,.70);border-radius:18px;padding:14px}
.features__title{margin:0 0 10px;font-size:14px;font-weight:900;letter-spacing:.01em}

/* Fix: home block CTAs layout (見学・相談 / Googleマップ) */
.home-actions{margin-top:14px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;justify-content:stretch;align-items:stretch}
.home-actions .btn{width:100%;min-height:46px;display:inline-flex;align-items:center;justify-content:center;gap:8px;white-space:nowrap}

@media (max-width: 980px){
  .home-actions{grid-template-columns:1fr}
}

/* Ensure the primary CTA text/icon never wrap awkwardly */
.home-actions .btn .icon{width:16px;height:16px;flex:0 0 auto}


/* =====================
   Button icon color fixes (v20)
   ===================== */
/* .icon has its own color set to --primary; override inside buttons */
.btn--primary .icon{color:#fff}
.btn--secondary .icon{color:var(--primary)}


/* =====================
   Homes: index thumbnails (v21)
   ===================== */
.homes-index__item{grid-template-columns:auto 1fr auto;align-items:center}
.homes-index__thumb{width:56px;height:56px;border-radius:14px;overflow:hidden;border:1px solid rgba(216,211,200,.85);background:rgba(255,255,255,.75);box-shadow: 0 10px 20px rgba(22,40,32,.06)}
.homes-index__thumb img{width:100%;height:100%;object-fit:cover;display:block}
.homes-index__thumb.is-empty{background:
  linear-gradient(145deg, rgba(30,75,61,.10), rgba(183,155,82,.08)),
  rgba(255,255,255,.9);
}
@media (max-width: 980px){
  .homes-index__item{grid-template-columns:auto 1fr;}
  .homes-index__thumb{width:52px;height:52px}
}


/* =====================
   Homes: mobile access/around layout (v22)
   ===================== */
@media (max-width: 560px){
  /* keep label/value on the same row like:
     最寄り駅  ○○駅（徒歩○分） */
  .kv__row{grid-template-columns: 108px 1fr;gap:10px;align-items:center}
  .kv__row dt{white-space:nowrap}
  .kv__row dd{min-width:0}
}


/* JSON render patch: detail header clickable -> jump to index item */
.home-block__header{ position: relative; }
.home-block__jump{ position:absolute; inset:0; z-index:1; }
.home-block__titlewrap, .home-block__header .status{ position: relative; z-index: 2; }
.home-block__jump:focus-visible{ outline: 3px solid rgba(31,111,61,.35); outline-offset: 4px; }

/* JSON render patch: backlink */
.home-block__backlink{ display:inline-block; margin-top:6px; font-size:14px; color: var(--green-700, #1f6f3d); text-decoration: underline; position: relative; z-index: 2; }
.home-block__backlink:hover{ opacity:.85; }


/* CONTACT form enhancements */
.form__req{display:inline-flex;align-items:center;gap:4px;margin-left:8px;padding:2px 8px;font-size:12px;font-weight:800;color:#b42318;background:rgba(180,35,24,.08);border:1px solid rgba(180,35,24,.22);border-radius:999px;vertical-align:middle}
.form__radios{display:flex;flex-wrap:wrap;gap:10px 14px;margin-top:8px}
.form__radio{display:inline-flex;align-items:center;gap:8px;padding:8px 10px;border:1px solid rgba(216,211,200,.82);border-radius:999px;background:rgba(255,255,255,.8)}
.form__radio input{accent-color:var(--green)}
.form__status{margin:10px 0 0;font-size:14px;color:rgba(20,48,32,.86)}
.form__status.is-error{color:#b42318}
.privacy{margin-top:16px;border:1px solid rgba(216,211,200,.82);border-radius:var(--radius-lg);background:rgba(255,255,255,.72);padding:12px 14px}
.privacy__summary{cursor:pointer;font-weight:700}
.privacy__body{margin-top:10px;font-size:14px;line-height:1.75;color:rgba(20,48,32,.86)}

.form__control:required{border-color:rgba(180,35,24,.35)}
.form__control:required:focus{outline-color:rgba(180,35,24,.45)}

/* 任意バッジ */
.form__opt{display:inline-flex;align-items:center;gap:4px;margin-left:8px;padding:2px 8px;font-size:12px;font-weight:700;color:#6A6A6A;background:rgba(106,106,106,.1);border:1px solid rgba(106,106,106,.2);border-radius:999px;vertical-align:middle}

/* 生年月日セレクト群 */
.form__birthday{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.form__control--bd{flex:1 1 70px;min-width:70px}

/* 採用・応募 専用フィールドのアニメーション */
#recruitFields{animation:slideDown .2s ease}
@keyframes slideDown{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}

/* 郵便番号 浮遊バルーン */
@keyframes postalBob{0%,100%{transform:translateY(0)}50%{transform:translateY(-6px)}}
.form__postal-balloon-wrap{position:relative}
.form__autofill-balloon{display:inline-block;position:relative;background:var(--primary,#1E4B3D);color:#fff;font-size:12px;font-weight:700;line-height:1.5;border-radius:10px;padding:7px 14px;margin-bottom:14px;box-shadow:0 4px 14px rgba(30,75,61,.25);animation:postalBob 2.4s ease-in-out infinite}
.form__autofill-balloon::after{content:'';position:absolute;bottom:-8px;left:22px;border:8px solid transparent;border-top-color:var(--primary,#1E4B3D);border-bottom:none}

/* 郵便番号フィールド */
.form__postal-wrap{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.form__control--postal{width:140px;flex-shrink:0}
.form__postal-hint{font-size:12px;line-height:1.4}
.form__postal-hint--ok{color:#1E6B3D;font-weight:600}
.form__postal-hint--err{color:#b42318}


/* ── EFO ステップインジケーター ── */
.form-steps{
  display:flex;
  align-items:flex-start;
  justify-content:center;
  margin:0 0 20px;
  padding:18px 24px;
  background:rgba(255,255,255,.85);
  border:1px solid rgba(216,211,200,.7);
  border-radius:16px;
  gap:0;
}
.form-steps__item{display:flex;flex-direction:column;align-items:center;gap:6px;flex:0 0 auto;min-width:72px}
.form-steps__node{
  width:40px;height:40px;border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  font-size:14px;font-weight:700;
  background:#e8e3d8;color:#aaa;
  border:2px solid transparent;
  transition:background .25s,color .25s,border-color .25s,box-shadow .25s;
}
.form-steps__label{font-size:12px;color:#aaa;font-weight:600;white-space:nowrap;transition:color .25s}
.form-steps__line{flex:1 1 0;min-width:24px;height:3px;background:#e8e3d8;margin-top:19px;border-radius:4px;transition:background .35s}
.form-steps__item.is-active .form-steps__node{
  background:var(--primary,#1E4B3D);color:#fff;border-color:var(--primary,#1E4B3D);
  box-shadow:0 4px 12px rgba(30,75,61,.28);
}
.form-steps__item.is-active .form-steps__label{color:var(--primary,#1E4B3D);font-weight:800}
.form-steps__item.is-done .form-steps__node{background:rgba(30,75,61,.35);color:#fff;border-color:transparent}
.form-steps__item.is-done .form-steps__label{color:rgba(30,75,61,.55)}
.form-steps__line.is-done{background:rgba(30,75,61,.4)}

/* ── ステップナビゲーション ── */
.form__step-nav{display:flex;align-items:center;gap:12px;justify-content:flex-end;margin-top:24px;flex-wrap:wrap}
.form__step-nav .btn--secondary{min-width:80px}
.form__step-nav .btn--primary{min-width:120px}

/* ===================== Gallery: landscape base + portrait letterbox (v24) ===================== */
/* Keep media area height stable so portrait photos do NOT stretch the layout */
.home-block__media.has-gallery{
  aspect-ratio: 16 / 9;
  background: rgba(10, 12, 11, .92);
}

/* Ensure children can actually fill the fixed media box */
.home-block__media.has-gallery .home-gallery,
.home-block__media.has-gallery .home-gallery__track,
.home-block__media.has-gallery .home-gallery__slide{
  height: 100%;
}

/* Default: landscape-friendly fill (cropping if needed) */
.home-gallery__img{
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  background: rgba(10, 12, 11, .92);
}

/* Portrait: show side margins (no crop) */
.home-gallery__img.is-portrait{
  object-fit: contain;
}


/* ===================== Footer branding + sticky CTA (v26) ===================== */
.footer__brand{display:inline-flex; align-items:center; gap:10px; text-decoration:none}
.footer__logo{height:28px; width:auto; display:block}

.sticky-cta{
  position: fixed;
  left: 12px;
  right: 12px;
  bottom: 12px;
  z-index: 999;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
  padding: 10px;
  border-radius: 18px;
  border: 1px solid rgba(216,211,200,.85);
  background: rgba(255,255,255,.78);
  backdrop-filter: blur(10px);
  box-shadow: 0 18px 38px rgba(22,40,32,.14);
}
.sticky-cta__btn{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 12px 10px;
  border-radius: 14px;
  border: 1px solid rgba(30,75,61,.22);
  background: rgba(30,75,61,.08);
  color: rgba(17,17,17,.92);
  text-decoration: none;
  font-weight: 800;
  letter-spacing: .01em;
}
.sticky-cta__btn:hover{opacity:.92}
.sticky-cta__btn--line{border-color: rgba(0,170,77,.22); background: rgba(0,170,77,.10);}

/* Prevent content hidden behind sticky footer */
body{padding-bottom: max(110px, env(safe-area-inset-bottom));}

/* Homes page heading icons */
.hicon{display:inline-flex; width:1.35em; height:1.35em; align-items:center; justify-content:center; margin-right:.35em; border-radius:999px; background: rgba(30,75,61,.10); border:1px solid rgba(30,75,61,.15); font-size: .95em; transform: translateY(-.05em)}


/* ===================== Footer logo visibility + CTA polish (v27) ===================== */
/* Fix class collision: footer__logo was used for text before; use footer__logoimg for image */
.footer__logoimg{height:84px; width:auto; display:block; filter:none; opacity:.96}
.site-footer .footer__logo{margin-bottom:10px}

/* Sticky CTA: more 'designed' with icons */
.sticky-cta{border-radius: 22px; padding: 10px 12px; gap: 12px}
.sticky-cta__btn{gap:10px; font-weight:900; border-radius: 16px}
.sticky-cta__btn .ico{width:18px; height:18px; fill: currentColor; opacity:.9}
.sticky-cta__btn{background: linear-gradient(180deg, rgba(30,75,61,.10), rgba(30,75,61,.06));}
.sticky-cta__btn--line{background: linear-gradient(180deg, rgba(0,170,77,.14), rgba(0,170,77,.08));}
.sticky-cta__btn:active{transform: translateY(1px)}

/* Homes page: small icon bullets inside cards */
.meta-ico{display:inline-flex; align-items:center; gap:6px}
.meta-ico .ico{width:16px; height:16px; fill: currentColor; opacity:.75}


/* =========================
   HOMES list: thumbnail 96px (restore)
   末尾追記で既存を上書き
========================= */

.homes-index__thumb{
  width: 96px;
  height: 96px;
  border-radius: 20px;
}

.homes-index__thumb img{
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

/* 画像が大きくなる分、カードの間隔を最適化 */
.homes-index__item{
  padding: 16px 18px;
  gap: 10px 14px;
}

/* “すっきり”寄せ：影を軽く（不要ならこの2つは削除OK） */
.homes-index__item{
  box-shadow: 0 8px 18px rgba(22,40,32,.045);
}
.homes-index__thumb{
  box-shadow: 0 8px 18px rgba(22,40,32,.05);
}

/* スマホ：少し控えめ（80px） */
@media (max-width: 560px){
  .homes-index__thumb{
    width: 80px;
    height: 80px;
    border-radius: 18px;
  }
  .homes-index__item{
    padding: 14px 14px;
  }
}


/* === Sticky CTA visibility control (show mid-page only) === */
.sticky-cta{transition:transform .18s ease, opacity .18s ease; will-change:transform,opacity; padding-bottom:env(safe-area-inset-bottom);} 
/* hide is a bit slower for nicer fade-out */
.sticky-cta.is-hidden{transition:transform .42s ease, opacity .42s ease; transform:translateY(120%); opacity:0; pointer-events:none;}

/* CTA buttons: more tappable with subtle shine */
.sticky-cta__btn{position:relative; overflow:hidden;}
.sticky-cta__btn::after{content:""; position:absolute; inset:-2px; background:radial-gradient(120px 60px at 20% 20%, rgba(255,255,255,.45), transparent 55%); opacity:.0; transition:opacity .25s ease;}
.sticky-cta__btn:hover::after{opacity:.55;}
.sticky-cta__label{line-height:1;}


/* === Sticky CTA polish: vertical rhythm + icons === */
.sticky-cta__btn{
  min-height: 46px;
  padding: 12px 12px;
  align-items: center;
}
.sticky-cta__btn .ico{
  display:block;
  width:18px;
  height:18px;
}
.sticky-cta__label{
  display:block;
  line-height: 1.1;
}

/* Slow fade-out a bit more when hiding */
.sticky-cta.is-hidden{
  transition: transform .55s ease, opacity .55s ease;
}

/* Footer logo (white) sizing */
.footer__logoimg{
  height: 34px;
  width: auto;
}


/* Float LINE button: text-only */
.float-line__inner{display:grid;gap:2px;place-items:center;line-height:1}
.float-line__label{font-weight:900;font-size:13px;letter-spacing:.02em}
.float-line__sub{font-size:10px;opacity:.95}


/* === Footer logo size override (2.5x) === */
.footer__logoimg{height:70px !important; width:auto; display:block; filter:none !important; opacity:.96}


/* === Float LINE button: drift on right side (random-ish) === */
.float-line{
  /* keep existing positioning, but allow transform drift */
  transform: translate3d(var(--fx, 0px), var(--fy, 0px), 0);
  transition: transform 1.1s ease-in-out;
}


/* =====================
   v7.1 patches (mobile alignment + hamburger + sticky CTA centering + footer brand centering)
   ===================== */

/* Hamburger checkbox: keep in DOM (no hidden attr) but visually hidden */
.nav-toggle{
  position:absolute;
  width:1px;
  height:1px;
  padding:0;
  margin:-1px;
  overflow:hidden;
  clip:rect(0,0,0,0);
  white-space:nowrap;
  border:0;
}

/* Homes note: align with container on mobile/desktop */
.homes-note__text.container{
  width:min(var(--container), calc(100% - 40px));
  margin: 0 auto;
}

/* Sticky CTA: keep flush to bottom, center buttons vertically */
.sticky-cta{
  left:0 !important;
  right:0 !important;
  bottom:0 !important;
  border-radius: 18px 18px 0 0 !important;
  padding: 10px 12px calc(10px + env(safe-area-inset-bottom)) !important;
}
.sticky-cta__btn{
  min-height:52px;
  padding:0 12px !important;
  line-height:1;
}
.sticky-cta__label{line-height:1;}

/* Footer brand: logo left, company text right, vertically centered */
.footer__brand{
  display:flex !important;
  align-items:center !important;
  gap:16px !important;
}
.footer__brandlink{
  display:inline-flex;
  align-items:center;
  text-decoration:none;
}
.site-footer .footer__logo{
  margin:0 !important;
}
.footer__note{
  margin:0 !important;
}

/* Footer logo size: 2.5x (base 28px -> 70px) */
.footer__logoimg{height:70px !important; width:auto; display:block;}


/* =====================
   v8 patches (hamburger bars alignment + footer logo vertical centering + top page H1)
   ===================== */

/* Top page: H1 wrapper should not add extra space */
.brand--h1{margin:0; padding:0; font-size:0; line-height:0;}
.brand--h1 .brand__img{font-size:initial; line-height:initial;}

/* Hamburger icon: ensure 3 bars stacked + aligned */
.hamburger{
  flex-direction: column;
  align-items: center;
  justify-content: center;
}
.hamburger span{
  width: 18px;
  height: 2px;
  margin: 0;
}

/* Mobile menu toggle input: keep operable but visually hidden (do NOT use hidden attr) */
.nav-toggle{
  position:absolute;
  width:1px;
  height:1px;
  padding:0;
  margin:-1px;
  overflow:hidden;
  clip:rect(0,0,0,0);
  white-space:nowrap;
  border:0;
}

/* Footer brand block: vertically center logo vs company text */
.footer__brand{
  display:flex !important;
  align-items:center !important;
  gap:16px !important;
}
.site-footer .footer__logo{margin:0 !important;}
.footer__note{margin:0 !important;}
.footer__brandlink{display:inline-flex; align-items:center; text-decoration:none;}

/* Keep logo size (2.5x) */
.footer__logoimg{height:70px !important; width:auto; display:block; filter:none !important;}


/* =====================
   v9 patches (hamburger bar alignment + footer logo visual centering + remove homes note)
   ===================== */

/* ① ハンバーガー3本線：確実に左端・上下位置を揃える（iOS/Safariの描画ブレ対策） */
.hamburger{
  position: relative !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
}
.hamburger span{
  position:absolute !important;
  left:12px !important;
  right:12px !important;
  height:2px !important;
  width:auto !important;
  display:block !important;
  background: var(--primary) !important;
  border-radius:2px !important;
}
.hamburger span:nth-child(1){ top:14px !important; }
.hamburger span:nth-child(2){ top:20px !important; }
.hamburger span:nth-child(3){ top:26px !important; }

/* ⑥ フッターロゴ：テキスト塊の上下中央に視覚的に合わせる */
.footer__brand{
  display:flex !important;
  align-items:center !important;
  gap:16px !important;
}
.site-footer .footer__logo{
  margin:0 !important;
  display:flex !important;
  align-items:center !important;
}
.footer__note{
  margin:0 !important;
}
/* PNG内部の余白で重心が下がる分を微調整（必要なら数値を-6px〜+6pxで調整可） */
.footer__logoimg{
  transform: translateY(-3px) !important;
}


/* =====================
   v10a patches (force visible updates + hamburger/footering tuning)
   version: 20260316-10a
   ===================== */

:root{
  --hamburger-left: 12px;
  --hamburger-right: 12px;
  /* 3本線の上下位置（42pxボタンを基準に中央寄せ） */
  --hamburger-top-1: 16px;
  --hamburger-top-2: 21px;
  --hamburger-top-3: 26px;

  /* フッターロゴの視覚補正（+で下へ、-で上へ） */
  --footer-logo-shift: 0px;
}

/* ① ハンバーガー：3本線が上寄り/2本に見える問題を根治（強制上書き） */
.site-header .hamburger{
  position: relative !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  flex-direction: column !important;
}
.site-header .hamburger span{
  position: absolute !important;
  left: var(--hamburger-left) !important;
  right: var(--hamburger-right) !important;
  height: 2px !important;
  width: auto !important;
  display: block !important;
  background: var(--primary) !important;
  border-radius: 2px !important;
  margin: 0 !important;
}
.site-header .hamburger span:nth-child(1){ top: var(--hamburger-top-1) !important; }
.site-header .hamburger span:nth-child(2){ top: var(--hamburger-top-2) !important; }
.site-header .hamburger span:nth-child(3){ top: var(--hamburger-top-3) !important; }

/* ⑥ フッター：ロゴと会社情報の上下中央（構造差に強い） */
.site-footer .footer__brand{
  display: grid !important;
  grid-template-columns: auto 1fr;
  gap: 16px;
  align-items: center !important;
}
.site-footer .footer__logo{
  margin: 0 !important;
  display: flex !important;
  align-items: center !important;
}
.site-footer .footer__note{
  margin: 0 !important;
}
.site-footer .footer__logoimg{
  transform: translateY(var(--footer-logo-shift)) !important;
}


/* =====================
   v11 recruit patches
   version: 20260317-11
   ===================== */

/* Recruit: jobs cards grid */
.recruit-jobs__cards{
  display:grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
}
@media (max-width: 980px){
  .recruit-jobs__cards{grid-template-columns: 1fr;}
}

/* Recruit: flow diagram */
.recruit-flow{
  display:flex;
  align-items:center;
  justify-content:center;
  flex-wrap:wrap;
  gap:10px;
  padding: 14px 12px;
  border:1px solid rgba(216,211,200,.82);
  border-radius: 18px;
  background: rgba(255,255,255,.70);
}
.recruit-flow__step{
  display:inline-flex;
  align-items:center;
  gap:10px;
  padding: 12px 14px;
  border-radius: 999px;
  border:1px solid rgba(30,75,61,.18);
  background: rgba(30,75,61,.06);
  font-weight: 900;
}
.recruit-flow__num{
  width: 26px;
  height: 26px;
  border-radius: 999px;
  display:grid;
  place-items:center;
  background: var(--primary);
  color:#fff;
  font-size: 13px;
}
.recruit-flow__arrow{
  font-weight: 900;
  color: rgba(30,75,61,.75);
}
@media (max-width: 420px){
  .recruit-flow__arrow{display:none;}
  .recruit-flow{justify-content:flex-start;}
}

/* Recruit: contact CTA (single button) keep centered */
.callout__cta{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
}


/* === JOBS PAGES === */

/* 求人一覧: 1カラム縦並び */
.jobs-index__cards{
  display:flex;flex-direction:column;gap:0;
  max-width:820px;margin:0 auto;
}

/* --- 求人カード: PC横並び / スマホ縦並び --- */
.job-card{
  display:grid;
  grid-template-columns:240px 1fr;
  grid-template-rows:auto 1fr;
  background:#fff;
  border:1px solid rgba(216,211,200,.82);
  border-radius:var(--radius-lg);
  overflow:hidden;
  box-shadow:var(--shadow);
  margin-bottom:20px;
}
/* 偶数カードに薄い背景色 */
.job-card:nth-child(even){
  background:var(--surface-tint,#F3F0E6);
}
.job-card:nth-child(even) .schedule-chart{
  background:rgba(255,255,255,.5);
}

/* PC: 写真は左カラム全体、テキスト系は右カラムに */
.job-card__photo-wrap{
  grid-column:1;grid-row:1 / -1;
}
.job-card__photo{
  width:100%;height:100%;object-fit:cover;display:block;
  min-height:220px;
}
.job-card__body{
  grid-column:2;grid-row:1;
  padding:20px 24px 0;
}
.job-card__body-lower{
  grid-column:2;grid-row:2;
  padding:0 24px 20px;
}

.job-card__title{
  font-size:17px;font-weight:800;line-height:1.5;margin:0 0 2px;
}
.job-card__title a{color:var(--primary);text-decoration:none}
.job-card__title a:hover{text-decoration:underline}

.job-card__tag{display:inline-flex;align-items:center;gap:.4em;margin:0 0 10px;font-weight:900;font-size:12px;color:var(--primary);background:rgba(0,0,0,.04);border:1px solid rgba(0,0,0,.08);padding:6px 10px;border-radius:999px}
.job-card__catch{font-size:13px;color:var(--muted);line-height:1.6;margin:0 0 8px}
.job-card__meta{margin:10px 0 0;display:grid;gap:8px}
.job-card__meta > div{display:grid;grid-template-columns:74px 1fr;gap:10px;align-items:start}
.job-card__meta dt{font-size:12px;color:var(--muted);font-weight:800}
.job-card__meta dd{margin:0;font-weight:800;line-height:1.6}
.job-card__cta{margin-top:18px}

/* スマホ: 縦積み & タイトル→写真→タグの順 */
@media (max-width:620px){
  .job-card{
    grid-template-columns:1fr;
    grid-template-rows:auto auto auto;
  }
  .job-card__body{
    grid-column:1;grid-row:1;
    padding:16px 16px 10px;
  }
  .job-card__photo-wrap{
    grid-column:1;grid-row:2;
  }
  .job-card__photo{
    min-height:180px;aspect-ratio:16/9;
  }
  .job-card__body-lower{
    grid-column:1;grid-row:3;
    padding:12px 16px 16px;
  }
}

/* --- Schedule pie chart (shared: card & detail) --- */
.schedule-chart{
  display:flex;align-items:center;gap:14px;
  margin:12px 0 0;padding:12px 14px;
  background:rgba(246,243,233,.6);border:1px solid rgba(216,211,200,.7);
  border-radius:12px;
}
.schedule-chart__pie{
  width:72px;height:72px;border-radius:50%;flex-shrink:0;
  position:relative;
  box-shadow:0 2px 8px rgba(0,0,0,.08);
}
.schedule-chart__pie::after{
  content:'24h';position:absolute;inset:0;
  display:flex;align-items:center;justify-content:center;
  font-size:11px;font-weight:800;color:var(--primary);
  background:rgba(255,255,255,.85);border-radius:50%;
  width:36px;height:36px;margin:auto;
}
.schedule-chart__legend{display:flex;flex-direction:column;gap:3px;font-size:12px;line-height:1.5}
.schedule-chart__legend-item{display:flex;align-items:center;gap:6px}
.schedule-chart__dot{width:10px;height:10px;border-radius:50%;flex-shrink:0}
.schedule-chart__label{font-weight:700;color:#333}

/* detail page: larger chart */
.schedule-chart--lg .schedule-chart__pie{width:100px;height:100px}
.schedule-chart--lg .schedule-chart__pie::after{width:48px;height:48px;font-size:13px}
.schedule-chart--lg .schedule-chart__legend{font-size:13px;gap:5px}

/* --- Job detail photo gallery --- */
.job-photos{
  display:flex;gap:8px;overflow-x:auto;scroll-snap-type:x mandatory;
  -webkit-overflow-scrolling:touch;
  padding-bottom:6px;margin:0 0 18px;
}
.job-photos__img{
  width:260px;height:180px;object-fit:cover;flex-shrink:0;
  border-radius:12px;scroll-snap-align:start;
  border:1px solid rgba(216,211,200,.5);
}
@media (max-width:620px){
  .job-photos__img{width:220px;height:150px}
  .schedule-chart{flex-direction:column;align-items:flex-start}
}

.job-kv{background:#fff;border:1px solid rgba(0,0,0,.08);border-radius:16px;padding:18px;box-shadow:0 10px 26px rgba(0,0,0,.06)}
.job-dl{margin:0;display:grid;gap:10px}
.job-dl > div{display:grid;grid-template-columns:120px 1fr;gap:14px;align-items:start}
.job-dl dt{font-weight:900;color:var(--muted)}
.job-dl dd{margin:0;font-weight:800;line-height:1.7}
@media (max-width: 620px){.job-dl > div{grid-template-columns:92px 1fr}}

.job-kv__cta{display:flex;flex-wrap:wrap;gap:10px;margin-top:16px}
.job-list{margin:0; padding-left:1.1em; line-height:1.9; font-weight:800}
.mini-title{margin:0 0 8px;font-size:14px;font-weight:900;color:var(--muted)}
