/* ============================================================
   木立庭苑（見本）
   生成り × 深緑 × 自然光の写真。左右分割で、片側の写真を止めて片側を流す。
   影・グラデーション・縦棒・見出しの下線は使わない。
   ============================================================ */
:root{
  --kinari:#F1ECE1;
  --kinari2:#E6DFCF;
  --forest:#1F3328;
  --forest2:#2B4435;
  --moss:#56694B;
  --ink:#23281F;
  --mute:#5D6257;
  --line:rgba(35,40,31,.16);
  --on-dark:#EDE8DC;
  --on-dark-mute:rgba(237,232,220,.7);
  --line-dark:rgba(237,232,220,.2);
  --hd:76px;
  --en:"Cormorant Garamond", "Times New Roman", serif;
  --ja:"Zen Kaku Gothic New", "Hiragino Sans", "Yu Gothic", sans-serif;
  --ease:cubic-bezier(.16,1,.3,1);
}
*,*::before,*::after{box-sizing:border-box;}
html{scroll-behavior:smooth;scroll-padding-top:var(--hd);-webkit-text-size-adjust:100%;}
@media (prefers-reduced-motion: reduce){html{scroll-behavior:auto;}}
body{
  margin:0;background:var(--kinari);color:var(--ink);
  font-family:var(--ja);font-weight:400;
  font-size:clamp(15px,1.05vw,16.5px);line-height:1.95;letter-spacing:.04em;
  font-feature-settings:"palt" 0;
  overflow-x:hidden;
}
img{display:block;max-width:100%;height:auto;}
p,li,dd{text-wrap:pretty;}
h1,h2,h3,summary,.band-q{word-break:auto-phrase;text-wrap:balance;}
.logo-en,.sec-head .en,.work-no,.pt-no,.fl-no,.ss-en,.hd-tel,.ct-num,.works-count,.hero-en,.ft-copy{font-variant-numeric:lining-nums;}
a{color:inherit;}
h1,h2,h3,p,dl,dd,ul,ol,figure{margin:0;padding:0;}
ul,ol{list-style:none;}
.wrap{width:min(1240px,100% - 96px);margin-inline:auto;}

/* ---------- 見本の帯 ---------- */
.notice{
  background:var(--forest);color:var(--on-dark);
  font-size:12px;line-height:1.6;letter-spacing:.06em;text-align:center;
  padding:7px 16px;
}

/* ---------- ヘッダー ---------- */
.hd{position:sticky;top:0;z-index:50;background:var(--kinari);border-bottom:1px solid var(--line);}
.hd-in{height:var(--hd);display:flex;align-items:center;gap:32px;padding:0 40px;}
.logo{display:flex;align-items:baseline;gap:12px;text-decoration:none;flex-shrink:0;}
.logo-en{font-family:var(--en);font-style:italic;font-weight:400;font-size:34px;line-height:1;letter-spacing:.01em;color:var(--forest);}
.logo-ja{font-size:14px;font-weight:500;letter-spacing:.14em;color:var(--forest);white-space:nowrap;}
.logo-ja small{font-size:11px;font-weight:400;letter-spacing:.1em;color:var(--mute);margin-left:8px;}
.nav{display:flex;gap:26px;margin-left:auto;}
.nav a{font-size:13.5px;letter-spacing:.1em;text-decoration:none;white-space:nowrap;color:var(--ink);transition:color .3s;}
.nav a:hover{color:var(--moss);}
.nav .nav-tel{display:none;}
.hd-cta{display:flex;align-items:center;gap:20px;}
.hd-tel{display:flex;flex-direction:column;line-height:1.15;text-decoration:none;font-family:var(--en);font-size:22px;font-weight:500;letter-spacing:.04em;color:var(--forest);white-space:nowrap;}
.hd-tel span{font-family:var(--ja);font-size:10.5px;letter-spacing:.14em;color:var(--mute);}
.menu-btn{display:none;}

/* ---------- ボタン ---------- */
.btn{
  display:inline-flex;align-items:center;justify-content:center;
  min-height:54px;padding:0 34px;border-radius:999px;
  font-family:var(--ja);font-size:14.5px;font-weight:500;letter-spacing:.12em;
  text-decoration:none;cursor:pointer;border:1px solid var(--forest);
  transition:background-color .35s var(--ease),color .35s var(--ease);
}
.btn-solid{background:var(--forest);color:var(--on-dark);}
.btn-solid:hover{background:var(--moss);border-color:var(--moss);}
.btn-line{background:transparent;color:var(--forest);}
.btn-line:hover{background:var(--forest);color:var(--on-dark);}
.btn-sm{min-height:44px;padding:0 22px;font-size:13px;}
.btn-wide{width:100%;}

/* ---------- 見出し（英字イタリック＋和文） ---------- */
.sec-head h2{display:flex;flex-direction:column;gap:14px;font-weight:400;color:var(--forest);}
.sec-head .en{font-family:var(--en);font-style:italic;font-weight:300;font-size:clamp(52px,6vw,92px);line-height:.95;letter-spacing:-.01em;}
.sec-head .ja{font-size:15px;font-weight:500;letter-spacing:.24em;}
.sec-head{margin-bottom:clamp(40px,5vw,72px);}

/* ============================================================
   表紙
   ============================================================ */
.hero{
  display:grid;grid-template-columns:minmax(0,45fr) minmax(0,55fr);
  min-height:calc(100svh - var(--hd) - 31px);
}
.hero-text{
  display:flex;flex-direction:column;justify-content:center;
  padding:64px clamp(40px,5vw,88px) 48px;
}
.hero-en{font-family:var(--en);font-style:italic;font-size:22px;letter-spacing:.02em;color:var(--moss);margin-bottom:28px;}
.hero-h{
  font-weight:300;color:var(--forest);
  font-size:clamp(38px,4.1vw,64px);line-height:1.34;letter-spacing:.06em;
  margin-bottom:34px;
}
.hero-lead{max-width:30em;color:var(--mute);margin-bottom:40px;}
.hero-btns{display:flex;flex-wrap:wrap;gap:14px;margin-bottom:56px;}
.hero-facts{display:grid;grid-template-columns:repeat(3,auto);justify-content:start;gap:0 40px;border-top:1px solid var(--line);padding-top:26px;}
.hero-facts dt{font-size:11.5px;letter-spacing:.14em;color:var(--mute);line-height:1.6;}
.hero-facts dd{font-size:15px;font-weight:500;color:var(--forest);line-height:1.6;margin-top:4px;white-space:nowrap;}
.hero-photo{position:relative;overflow:hidden;background:var(--kinari2);}
.hero-photo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 60%;}

/* ============================================================
   施工例（左の写真が止まる）
   ============================================================ */
.works{display:grid;grid-template-columns:minmax(0,55fr) minmax(0,45fr);background:var(--kinari);}
.works-stage{position:relative;}
.works-stick{position:sticky;top:var(--hd);height:calc(100vh - var(--hd));overflow:hidden;background:var(--kinari2);}
.works-stick img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transform:scale(1.04);transition:opacity 1.1s var(--ease),transform 2.4s var(--ease);}
.works-stick img.on{opacity:1;transform:none;}
.works-count{
  position:absolute;left:32px;bottom:26px;z-index:2;
  font-family:var(--en);font-size:18px;letter-spacing:.08em;color:#fff;
  background:rgba(20,32,25,.42);padding:4px 14px;border-radius:999px;
}
.works-list{padding:clamp(80px,9vw,140px) clamp(40px,5vw,88px) 60px;}
.work{min-height:64vh;display:flex;flex-direction:column;justify-content:center;padding:40px 0;border-top:1px solid var(--line);}
.work-sp{display:none;}
.work-no{font-family:var(--en);font-weight:300;font-size:64px;line-height:1;color:var(--moss);margin-bottom:22px;}
.work h3{font-size:clamp(22px,1.9vw,28px);font-weight:400;line-height:1.55;letter-spacing:.06em;color:var(--forest);margin-bottom:26px;}
.work-meta{display:grid;grid-template-columns:repeat(3,auto);justify-content:start;gap:4px 32px;margin-bottom:24px;}
.work-meta dt{font-size:11.5px;letter-spacing:.14em;color:var(--mute);line-height:1.6;}
.work-meta dd{font-size:14px;font-weight:500;line-height:1.6;}
.work > p:last-child{color:var(--mute);max-width:32em;}

/* ============================================================
   できること
   ============================================================ */
.service{background:var(--kinari2);padding:clamp(96px,10vw,150px) 0;}
.svc-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:72px 56px;}
.svc-img{overflow:hidden;aspect-ratio:3/2;margin-bottom:30px;background:var(--kinari);}
.svc-img img{width:100%;height:100%;object-fit:cover;}
.svc h3{font-size:clamp(22px,1.8vw,26px);font-weight:400;letter-spacing:.08em;color:var(--forest);margin-bottom:14px;}
.svc-body > p:first-of-type{color:var(--mute);margin-bottom:20px;}
.svc ul{border-top:1px solid var(--line);margin-bottom:20px;}
.svc li{padding:11px 0;border-bottom:1px solid var(--line);font-size:14.5px;}
.price{display:flex;flex-wrap:wrap;gap:4px 18px;align-items:baseline;font-size:15px;font-weight:500;color:var(--forest);}
.price span{font-size:11.5px;font-weight:400;letter-spacing:.14em;color:var(--mute);}
.note{margin-top:56px;font-size:12.5px;color:var(--mute);}

/* ============================================================
   写真の帯
   ============================================================ */
.band{position:relative;height:clamp(420px,62vh,640px);overflow:hidden;background:var(--forest);}
.band-img{position:absolute;inset:0;width:100%;height:118%;object-fit:cover;object-position:50% 40%;will-change:transform;}
.band::after{content:"";position:absolute;inset:0;background:rgba(18,30,22,.34);}
.band-in{position:relative;z-index:1;height:100%;display:flex;align-items:center;justify-content:center;padding:0 24px;}
.band-q{color:#fff;text-align:center;font-weight:300;font-size:clamp(26px,3.2vw,46px);line-height:1.7;letter-spacing:.14em;}

/* ============================================================
   大切にしていること（右の写真が止まる）
   ============================================================ */
.policy{display:grid;grid-template-columns:minmax(0,50fr) minmax(0,50fr);}
.policy-list{padding:clamp(96px,10vw,150px) clamp(40px,5vw,88px) clamp(80px,8vw,120px);}
.pt{display:grid;grid-template-columns:72px minmax(0,1fr);gap:0 8px;padding:38px 0;border-top:1px solid var(--line);}
.pt:last-child{border-bottom:1px solid var(--line);}
.pt-no{font-family:var(--en);font-weight:300;font-size:40px;line-height:1;color:var(--moss);padding-top:2px;}
.pt h3{font-size:clamp(19px,1.5vw,22px);font-weight:500;line-height:1.6;letter-spacing:.05em;color:var(--forest);margin-bottom:12px;}
.pt p:not(.pt-no){color:var(--mute);}
.policy-stage{position:relative;}
.policy-stick{position:sticky;top:var(--hd);height:calc(100vh - var(--hd));overflow:hidden;background:var(--kinari2);}
.policy-stick img{width:100%;height:100%;object-fit:cover;}

/* ============================================================
   季節ごとのお手入れ（深緑）
   ============================================================ */
.season{background:var(--forest);color:var(--on-dark);padding:clamp(96px,10vw,150px) 0;}
.season .sec-head h2{color:var(--on-dark);}
.season-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-top:1px solid var(--line-dark);}
.ss{padding:34px 30px 10px 0;}
.ss + .ss{padding-left:30px;}
.ss-en{font-family:var(--en);font-style:italic;font-size:22px;color:var(--on-dark-mute);margin-bottom:10px;}
.ss h3{font-size:30px;font-weight:300;letter-spacing:.1em;margin-bottom:22px;display:flex;align-items:baseline;gap:14px;}
.ss h3 span{font-size:13px;font-weight:400;letter-spacing:.1em;color:var(--on-dark-mute);}
.ss li{padding:9px 0;border-top:1px solid var(--line-dark);font-size:14.5px;}

/* ============================================================
   ご依頼の流れ
   ============================================================ */
.flow{padding:clamp(96px,10vw,150px) 0;}
.flow-list{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:0 28px;}
.flow-list li{border-top:1px solid var(--forest);padding-top:24px;display:flex;flex-direction:column;}
.fl-no{font-family:var(--en);font-weight:300;font-size:44px;line-height:1;color:var(--moss);margin-bottom:22px;}
.flow-list h3{font-size:18px;font-weight:500;letter-spacing:.08em;color:var(--forest);margin-bottom:12px;}
.flow-list li > p:not(.fl-no):not(.fl-t){font-size:14px;line-height:1.9;color:var(--mute);margin-bottom:18px;}
.fl-t{justify-self:start;margin-top:auto;font-size:12.5px;font-weight:500;letter-spacing:.08em;color:var(--forest);background:var(--kinari2);align-self:flex-start;padding:4px 12px;border-radius:999px;}

/* ============================================================
   よくあるご質問
   ============================================================ */
.faq{padding:0 0 clamp(96px,10vw,150px);}
.faq-in{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,7fr);gap:40px;align-items:start;}
.faq-list{border-top:1px solid var(--line);}
.faq details{border-bottom:1px solid var(--line);}
.faq summary{
  list-style:none;cursor:pointer;position:relative;
  padding:26px 48px 26px 0;font-size:16.5px;font-weight:500;letter-spacing:.05em;color:var(--forest);
}
.faq summary::-webkit-details-marker{display:none;}
.faq summary::before,.faq summary::after{
  content:"";position:absolute;right:8px;top:50%;width:16px;height:1px;background:var(--forest);
  transition:transform .4s var(--ease);
}
.faq summary::after{transform:rotate(90deg);}
.faq details[open] summary::after{transform:rotate(0);}
.faq details p{padding:0 48px 28px 0;color:var(--mute);}

/* ============================================================
   会社案内
   ============================================================ */
.company{display:grid;grid-template-columns:minmax(0,45fr) minmax(0,55fr);background:var(--kinari2);}
.company-photo{position:relative;overflow:hidden;min-height:560px;}
.company-photo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;}
.company-body{padding:clamp(96px,9vw,140px) clamp(40px,5vw,88px);}
.info{border-top:1px solid var(--line);}
.info div{display:grid;grid-template-columns:8.5em minmax(0,1fr);gap:16px;padding:17px 0;border-bottom:1px solid var(--line);}
.info dt{font-size:13px;letter-spacing:.12em;color:var(--mute);}
.info dd{font-size:15px;}

/* ============================================================
   お問い合わせ
   ============================================================ */
.contact{display:grid;grid-template-columns:minmax(0,45fr) minmax(0,55fr);}
.contact-photo{position:relative;overflow:hidden;min-height:640px;display:flex;align-items:flex-end;}
.contact-photo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;}
.contact-photo::after{content:"";position:absolute;inset:0;background:rgba(18,30,22,.3);}
.contact-tel{position:relative;z-index:1;color:#fff;padding:0 clamp(32px,4vw,64px) clamp(40px,5vw,64px);}
.ct-label{font-size:13px;letter-spacing:.16em;margin-bottom:6px;}
.ct-num{display:block;font-family:var(--en);font-weight:400;font-size:clamp(44px,4.4vw,64px);line-height:1.1;letter-spacing:.02em;text-decoration:none;margin-bottom:12px;}
.ct-time{font-size:13.5px;line-height:1.85;color:rgba(255,255,255,.88);}
.contact-body{padding:clamp(96px,9vw,140px) clamp(40px,5vw,88px);}
.form{display:flex;flex-direction:column;gap:22px;max-width:640px;}
.f-2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px;}
.f-row{display:flex;flex-direction:column;gap:8px;border:0;margin:0;padding:0;min-width:0;}
.f-row > span,.f-row legend{font-size:13px;font-weight:500;letter-spacing:.1em;color:var(--forest);padding:0;margin-bottom:8px;}
.f-row > span{margin-bottom:0;}
.f-row em{font-style:normal;font-size:11px;font-weight:400;color:var(--mute);margin-left:10px;letter-spacing:.08em;}
.form input[type=text],.form input[type=tel],.form input[type=email],.form textarea{
  width:100%;font:inherit;font-size:16px;color:var(--ink);
  background:#FAF7F0;border:1px solid var(--line);border-radius:4px;padding:13px 15px;
  transition:border-color .3s;
}
.form textarea{resize:vertical;min-height:150px;line-height:1.8;}
.form input:focus,.form textarea:focus{outline:none;border-color:var(--forest);}
.form ::placeholder{color:#9A9C92;}
.chips{display:flex;flex-wrap:wrap;gap:8px;}
.chips label{position:relative;cursor:pointer;}
.chips input{position:absolute;opacity:0;width:1px;height:1px;}
.chips span{display:inline-block;padding:9px 15px;border:1px solid var(--line);border-radius:999px;font-size:13px;background:#FAF7F0;transition:background-color .3s,color .3s,border-color .3s;}
.chips input:checked + span{background:var(--forest);border-color:var(--forest);color:var(--on-dark);}
.chips input:focus-visible + span{outline:2px solid var(--moss);outline-offset:2px;}
.form .btn{margin-top:8px;}
.form-msg{font-size:13.5px;color:var(--moss);min-height:1em;}

/* ============================================================
   フッター
   ============================================================ */
.ft{background:var(--forest);color:var(--on-dark);padding:80px 0 28px;}
.ft-in{display:flex;justify-content:space-between;gap:48px;flex-wrap:wrap;padding-bottom:56px;border-bottom:1px solid var(--line-dark);}
.ft .logo-en{color:var(--on-dark);font-size:44px;margin-bottom:14px;}
.ft-name{font-size:14px;letter-spacing:.12em;margin-bottom:14px;}
.ft-addr{font-size:13px;line-height:1.9;color:var(--on-dark-mute);}
.ft-nav{display:grid;grid-template-columns:repeat(2,auto);gap:10px 48px;align-content:start;}
.ft-nav a{font-size:13.5px;letter-spacing:.1em;text-decoration:none;color:var(--on-dark);}
.ft-nav a:hover{color:var(--on-dark-mute);}
.ft-copy{text-align:center;font-family:var(--en);font-size:14px;letter-spacing:.06em;color:var(--on-dark-mute);padding-top:24px;}
.sp-cta{display:none;}

/* ============================================================
   動き（JSが有効で、動きを減らす設定でない時だけ）
   ============================================================ */
@media (prefers-reduced-motion: no-preference){
  body.js [data-r]{opacity:0;transform:translateY(24px);transition:opacity 1s var(--ease),transform 1s var(--ease);}
  body.js [data-r].in{opacity:1;transform:none;}
  [data-r][data-d="1"]{transition-delay:.09s;}
  [data-r][data-d="2"]{transition-delay:.18s;}
  [data-r][data-d="3"]{transition-delay:.27s;}
  [data-r][data-d="4"]{transition-delay:.36s;}

  body.js [data-mask]{clip-path:inset(100% 0 0 0);transition:clip-path 1.2s var(--ease);}
  body.js [data-mask].in{clip-path:inset(0 0 0 0);}

  .line{display:block;overflow:hidden;padding-bottom:.04em;}
  body.js .line > span{display:block;transform:translateY(105%);transition:transform 1.15s var(--ease);}
  body.js .line.in > span{transform:none;}
  body.js .line:nth-child(2) > span{transition-delay:.08s;}
  body.js .line:nth-child(3) > span{transition-delay:.16s;}

  /* 表紙の写真：ゆっくり寄りから戻る */
  body.js .hero-photo .kb{transform:scale(1.1);transition:transform 2.6s var(--ease);}
  body.js .hero-photo.in .kb{transform:scale(1);}
  body.js .kb-slow{transform:scale(1.08);transition:transform 2.8s var(--ease);}
  body.js .in .kb-slow,body.js .kb-slow.in{transform:scale(1);}

  .zoom img{transition:transform 1.4s var(--ease);}
  .zoom:hover img{transform:scale(1.045);}
}
@media (prefers-reduced-motion: reduce){
  .works-stick img{transition:none;}
}
.line{display:block;}
.line > span{display:block;}

/* ============================================================
   タブレット
   ============================================================ */
@media (max-width:1180px){
  .nav{gap:18px;}
  .hd-tel{display:none;}
}
@media (max-width:1020px){
  :root{--hd:64px;}
  .hd-in{padding:0 20px;gap:12px;}
  .logo-en{font-size:28px;}
  .logo-ja small{display:none;}
  .hd-cta{margin-left:auto;gap:10px;}
  .menu-btn{
    display:inline-flex;align-items:center;min-height:44px;padding:0 16px;
    background:transparent;border:1px solid var(--line);border-radius:999px;
    font:inherit;font-size:13px;letter-spacing:.1em;color:var(--forest);cursor:pointer;
  }
  .nav{
    position:fixed;left:0;right:0;top:var(--hd);bottom:0;margin:0;
    flex-direction:column;gap:0;padding:12px 24px 40px;background:var(--kinari);
    overflow-y:auto;visibility:hidden;opacity:0;transition:opacity .35s var(--ease),visibility .35s;
  }
  .nav a{font-size:17px;padding:18px 4px;border-bottom:1px solid var(--line);}
  .nav .nav-tel{display:block;font-family:var(--en);font-size:30px;border-bottom:0;color:var(--forest);padding-top:28px;}
  body.menu-open .nav{visibility:visible;opacity:1;}
  body.menu-open{overflow:hidden;}
  .hd{top:0;}

  .hero{grid-template-columns:1fr;min-height:0;}
  .hero-photo{order:-1;height:62svh;min-height:380px;}
  .hero-text{padding:48px 24px 56px;}

  .works{grid-template-columns:1fr;}
  .works-stage{display:none;}
  .works-list{padding:96px 24px 40px;}
  .work{min-height:0;padding:0 0 64px;border-top:0;}
  .work-sp{display:block;overflow:hidden;aspect-ratio:4/3;margin:0 0 28px;background:var(--kinari2);}
  .work-sp img{width:100%;height:100%;object-fit:cover;}
  .work-no{font-size:48px;margin-bottom:14px;}

  .wrap{width:calc(100% - 48px);}
  .svc-grid{grid-template-columns:1fr;gap:64px;}

  .policy{grid-template-columns:1fr;}
  .policy-stage{order:-1;}
  .policy-stick{position:relative;top:0;height:46svh;min-height:300px;}
  .policy-list{padding:72px 24px 80px;}

  .season-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
  .ss,.ss + .ss{padding:26px 0 18px;}
  .ss:nth-child(even){padding-left:22px;}
  .ss:nth-child(n+3){border-top:1px solid var(--line-dark);}

  .flow-list{grid-template-columns:1fr;gap:0;}
  .flow-list li{display:grid;grid-template-columns:64px minmax(0,1fr);column-gap:8px;padding:24px 0 28px;}
  .flow-list li > *{grid-column:2;}
  .fl-no{grid-column:1 !important;grid-row:1 / span 3;font-size:36px;margin:0;}
  .flow-list li > p:not(.fl-no):not(.fl-t){margin-bottom:12px;}

  .faq-in{grid-template-columns:1fr;gap:0;}

  .company,.contact{grid-template-columns:1fr;}
  .company-photo{min-height:0;aspect-ratio:3/2;}
  .company-body,.contact-body{padding:72px 24px 88px;}
  .contact-photo{min-height:480px;}

  .sp-cta{
    display:flex;align-items:center;justify-content:center;position:fixed;left:16px;right:16px;bottom:14px;z-index:40;
    min-height:54px;border-radius:999px;background:var(--forest);color:var(--on-dark);
    font-size:15px;font-weight:500;letter-spacing:.12em;text-decoration:none;
    transform:translateY(140%);transition:transform .5s var(--ease);
  }
  body.scrolled .sp-cta{transform:none;}
  body.menu-open .sp-cta{transform:translateY(140%);}
  .ft{padding-bottom:96px;}
}

/* ============================================================
   スマホ
   ============================================================ */
@media (max-width:600px){
  .notice{font-size:11px;padding:6px 16px;}
  .hd-in{padding:0 16px;}
  .hd-cta .btn-sm{display:none;}
  .logo{gap:8px;}
  .logo-ja{font-size:12.5px;letter-spacing:.1em;}
  .hero-photo{height:56svh;min-height:340px;}
  .hero-text{padding:40px 16px 52px;}
  .hero-en{font-size:19px;margin-bottom:18px;}
  .hero-h{font-size:clamp(30px,8.6vw,38px);letter-spacing:.04em;margin-bottom:24px;}
  .hero-lead{margin-bottom:30px;}
  .hero-btns{flex-direction:column;margin-bottom:40px;}
  .hero-btns .btn{width:100%;}
  .hero-facts{grid-template-columns:1fr 1fr;gap:18px 20px;}
  .hero-facts div:last-child{grid-column:1 / -1;}

  .wrap{width:calc(100% - 32px);}
  .works-list,.policy-list{padding-left:16px;padding-right:16px;}
  .sec-head .en{font-size:56px;}
  .sec-head{margin-bottom:40px;}
  .work-meta{grid-template-columns:auto auto;gap:6px 28px;}
  .work-meta div:last-child{grid-column:1 / -1;}
  .pt{grid-template-columns:52px minmax(0,1fr);padding:30px 0;}
  .pt-no{font-size:32px;}

  .season-grid{grid-template-columns:1fr;}
  .ss:nth-child(even){padding-left:0;}
  .ss + .ss{border-top:1px solid var(--line-dark);}
  .ss{display:grid;grid-template-columns:96px minmax(0,1fr);column-gap:12px;}
  .ss-en{grid-column:1;grid-row:2;font-size:18px;margin:0;}
  .ss h3{grid-column:1;grid-row:1;flex-direction:column;gap:2px;margin-bottom:6px;font-size:26px;}
  .ss ul{grid-column:2;grid-row:1 / span 2;}
  .ss li:first-child{border-top:0;padding-top:4px;}

  .band-q{letter-spacing:.08em;}
  .info div{grid-template-columns:1fr;gap:2px;padding:14px 0;}
  .company-body,.contact-body{padding:64px 16px 80px;}
  .f-2{grid-template-columns:1fr;}
  .contact-photo{min-height:420px;}
  .contact-tel{padding:0 16px 36px;}
  .ft-in{flex-direction:column;}
  .ft .wrap{width:calc(100% - 32px);}
}
