/* ==========================================================
   雑賀工務店 コーポレートサイト  共通スタイル
   基準: PC 1920px / SP 390px  (1rem = 10px @基準幅)
   ========================================================== */
:root{
  --beige:#EFE5D6; --beige-l:#F5F0E8; --beige2:#F0EAE1; --paper:#FFFFFF;
  --green:#4A6C4A; --green2:#5A7755; --green3:#6B8167; --green-d:#465843;
  --ochre:#C8873F; --ochre-d:#AA6922;
  --ink:#000; --grey:#707070; --grey2:#7B7B7B; --lgrey:#EBEBEB;
  --sand:#DED2C0; --sand2:#E8E1D6; --white:#fff;
  --font:"Yu Gothic","YuGothic","Hiragino Sans","Hiragino Kaku Gothic ProN","Noto Sans JP",sans-serif;
  --font-logo:"Zen Maru Gothic","Yu Gothic",sans-serif;
  --font-script:"Pattaya",cursive;
  --rail:12.4rem;
}
html{font-size:clamp(6.4px,.5208333vw,10px);scroll-behavior:smooth;}
@media (max-width:1023px){html{font-size:min(calc(100vw / 39),12px);}}

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}
body{font-family:var(--font);font-weight:500;color:var(--ink);background:var(--paper);line-height:1.9;-webkit-font-smoothing:antialiased;overflow-x:hidden;}
img{display:block;max-width:100%;height:auto;}
a{color:inherit;text-decoration:none;}
ul{list-style:none;}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer;}
.inner{width:143rem;margin:0 auto;}
.pc{display:block}.sp{display:none}.sp-br{display:none}
@media (max-width:1023px){.pc{display:none}.sp{display:block}.pc-inline{display:none}.inner{width:auto;padding:0 2.4rem;}}

/* ---------- 共通: 見出し / ボタン ---------- */
.eyebrow{font-size:3.5rem;font-weight:700;color:var(--ochre);letter-spacing:.05em;line-height:1.2;}
.ttl{font-size:6rem;font-weight:700;line-height:1.3;letter-spacing:.05em;}
.btn{display:inline-flex;align-items:center;justify-content:space-between;width:38rem;height:7rem;padding:0 2.8rem 0 3.5rem;border-radius:2rem;font-size:2.2rem;font-weight:700;letter-spacing:.04em;line-height:1;color:var(--white);transition:opacity .25s,background .25s,color .25s;}
.btn:hover{opacity:.85}
.btn svg{width:2.8rem;height:2.6rem;fill:currentColor;flex:none;}
.btn--outline{border:.2rem solid var(--white);}
.btn--ochre{background:var(--ochre);}
.btn--ochre:hover{background:var(--ochre-d);opacity:1}
.btn--white{background:var(--white);border:.2rem solid var(--ochre);color:var(--ochre);}
.btn--white:hover{background:var(--ochre);color:var(--white);opacity:1}
.pc-br{display:inline}
@media (max-width:1023px){
  .eyebrow{font-size:2.5rem}.ttl{font-size:2.8rem}
  .btn{width:24rem;height:4.2rem;padding:0 1.8rem 0 2.4rem;border-radius:1rem;font-size:1.5rem;}
  .btn svg{width:1.7rem;height:1.6rem}
  .btn--outline{border-width:.1rem}.btn--white{border-width:.15rem}
  .pc-br{display:none}
}
/* ---------- ヘッダー ---------- */
.header{position:relative;z-index:20;height:18rem;background:var(--beige);}
.header__logo{position:absolute;left:.7rem;top:.3rem;width:20rem;}
.header__name{position:absolute;left:21.2rem;top:5.2rem;font-family:var(--font-logo);font-weight:700;line-height:1.15;}
.header__tag{display:block;font-size:1.5rem;letter-spacing:.06em;}
.header__co{display:block;font-size:4.1rem;letter-spacing:.06em;}
.header__co small{display:block;font-size:2.4rem;}
.header__hours{position:absolute;left:81.8rem;top:4.3rem;width:30.5rem;height:7.5rem;padding:1.3rem 1.9rem;border-radius:1rem;background:rgba(210,222,208,.6);border:1px solid var(--green2);color:var(--green2);font-size:1.7rem;font-weight:700;line-height:1.45;letter-spacing:.04em;white-space:nowrap;}
.header__nav{position:absolute;left:115.3rem;top:6.4rem;display:flex;gap:6.7rem;font-size:2.3rem;font-weight:700;letter-spacing:.05em;line-height:1.4;}
.header__nav a{position:relative;padding-bottom:.6rem;}
.header__nav a::after{content:"";position:absolute;left:0;bottom:0;width:100%;height:.2rem;background:var(--ochre);transform:scaleX(0);transform-origin:left;transition:transform .3s;}
.header__nav a:hover::after,.header__nav a.is-current::after{transform:scaleX(1);}
/* 下層ページ: 営業時間なし・5メニュー */
.header--sub .header__hours{display:none;}
.header--sub .header__nav{left:79.5rem;gap:6.2rem;}
.menu-btn{display:none;}

/* 右レール(TOPのみ) */
.rail{position:fixed;right:0;top:0;z-index:30;width:var(--rail);}
.rail__btn{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1rem;width:var(--rail);height:var(--rail);color:var(--white);font-size:1.7rem;font-weight:700;letter-spacing:.05em;transition:filter .25s;}
.rail__btn:hover{filter:brightness(1.12)}
.rail__btn svg{width:3.6rem;height:3.6rem;fill:none;stroke:currentColor;stroke-width:2;}
.rail__btn--contact{background:var(--green);}
.rail__btn--recruit{background:var(--green2);}
.rail__scroll{position:absolute;top:45.8rem;left:50%;transform:translateX(-50%);display:flex;flex-direction:column;align-items:center;gap:1.6rem;color:var(--grey2);font-size:2.5rem;font-weight:500;writing-mode:vertical-rl;letter-spacing:.1em;}
.rail__scroll::after{content:"";width:.2rem;height:9rem;background:var(--grey2);animation:scrollLine 2s ease-in-out infinite;}
@keyframes scrollLine{0%{transform:scaleY(0);transform-origin:top}50%{transform:scaleY(1);transform-origin:top}51%{transform-origin:bottom}100%{transform:scaleY(0);transform-origin:bottom}}

@media (max-width:1023px){
  .header{height:14.6rem;}
  .header__logo{left:1rem;top:.8rem;width:8.4rem;}
  .header__name{left:9.8rem;top:2.1rem;}
  .header__tag{font-size:.9rem;margin-bottom:.3em}.header__co{font-size:2.4rem}.header__co small{font-size:1.4rem}
  .header__hours,.header--sub .header__hours{display:flex;flex-direction:column;justify-content:center;left:2.4rem;top:9.2rem;width:22.2rem;height:4.5rem;padding:.2rem 1.3rem;border-radius:.5rem;background:var(--beige2);border:1px solid var(--green2);font-size:1.25rem;line-height:1.6;letter-spacing:.04em;}
  .header__nav{display:none;}
  .menu-btn{display:block;position:absolute;right:2.4rem;top:1.8rem;width:5.6rem;height:5.6rem;z-index:60;}
  .menu-btn span{position:absolute;left:1rem;width:3.6rem;height:.3rem;background:var(--ink);transition:.3s;}
  .menu-btn span:nth-child(1){top:1.6rem}.menu-btn span:nth-child(2){top:2.7rem}.menu-btn span:nth-child(3){top:3.8rem}
  .is-menu-open .menu-btn span:nth-child(1){top:2.7rem;transform:rotate(45deg);background:var(--white);}
  .is-menu-open .menu-btn span:nth-child(2){opacity:0}
  .is-menu-open .menu-btn span:nth-child(3){top:2.7rem;transform:rotate(-45deg);background:var(--white);}
  .rail{display:none;}
}
/* SPドロワー */
.drawer{position:fixed;inset:0;z-index:50;background:var(--green);color:var(--white);padding:14rem 3.2rem 4rem;transform:translateX(100%);transition:transform .4s cubic-bezier(.6,0,.2,1);visibility:hidden;}
.is-menu-open .drawer{transform:none;visibility:visible;}
.is-menu-open .header{z-index:55;background:transparent;}
.is-menu-open .header__logo,.is-menu-open .header__name,.is-menu-open .header__hours{visibility:hidden;}
.drawer a{display:block;padding:1.8rem 0;border-bottom:1px solid rgba(255,255,255,.25);font-size:1.8rem;font-weight:700;letter-spacing:.06em;}
.drawer__cta{display:flex;gap:1.2rem;margin-top:3.2rem;}
.drawer__cta a{flex:1;border:.15rem solid var(--white);border-radius:1rem;text-align:center;padding:1.2rem 0;font-size:1.4rem;}
@media (min-width:1024px){.drawer{display:none}}
/* ---------- ヒーロー ---------- */
.hero{position:relative;height:162.5rem;margin-right:var(--rail);background:var(--beige);overflow:hidden;}
.hero__emblem{position:absolute;left:58.5rem;top:8.3rem;width:75.1rem;height:65.8rem;overflow:hidden;pointer-events:none;}
.hero__emblem img{position:absolute;left:0;top:0;width:100%;height:100%;max-width:none;object-fit:contain;opacity:.6;}
.hero__portrait{position:absolute;left:127.1rem;top:2.3rem;width:45rem;height:60rem;object-fit:cover;border-radius:3rem;}
.hero__catch{position:absolute;left:16.2rem;top:8.4rem;font-size:6rem;font-weight:700;line-height:11rem;letter-spacing:.04em;z-index:2;white-space:nowrap;}
.hero__lead{position:absolute;left:16.2rem;top:33.9rem;width:83.4rem;font-size:3rem;font-weight:700;line-height:7rem;letter-spacing:.04em;z-index:2;}
.hero__photo1{position:absolute;left:7.2rem;top:42.6rem;width:66.9rem;height:43rem;object-fit:cover;border-radius:3rem;}
.hero__photo2{position:absolute;left:103.8rem;top:75.2rem;width:63.8rem;height:41rem;object-fit:cover;border-radius:3rem;}
.hero__script{position:absolute;left:63.9rem;top:95.5rem;font-family:var(--font-script);font-size:10rem;color:var(--sand);line-height:1;transform:rotate(-6deg);z-index:1;}
.hero__concept{position:absolute;left:16.2rem;top:104.4rem;width:83.6rem;font-size:2.2rem;line-height:6rem;letter-spacing:.06em;z-index:2;}
@media (max-width:1023px){
  .hero{height:115.3rem;margin-right:0;}
  .hero__emblem{left:.1rem;top:8.4rem;width:39.7rem;height:33.6rem;}
  .hero__emblem img{left:3.8rem;top:1.6rem;width:31.2rem;height:auto;object-fit:contain;}
  .hero__portrait{left:19.7rem;top:15.2rem;width:18.1rem;height:24rem;border-radius:1rem;}
  .hero__catch{left:2.4rem;top:2rem;font-size:2.8rem;line-height:5.5rem;}
  .hero__lead{left:2.4rem;top:18.9rem;width:24.7rem;font-size:1.8rem;line-height:3.5rem;letter-spacing:.05em;z-index:3;}
  .hero__photo1{left:1.4rem;top:42rem;width:25.6rem;height:16.4rem;border-radius:1rem;}
  .hero__photo2{left:7.5rem;top:63.4rem;width:30.4rem;height:19.6rem;border-radius:1rem;}
  .hero__script{left:2.9rem;top:80.4rem;font-size:5rem;transform:rotate(-5deg);}
  .hero__concept{left:2.4rem;top:87.1rem;width:34.2rem;font-size:1.5rem;line-height:3.5rem;letter-spacing:.05em;}
  .sp-br{display:inline;}
  .sp-br-sp{display:block;height:0;overflow:hidden;}
}
/* ---------- 沿革(緑ストライプ) ---------- */
.history{position:relative;z-index:3;height:86.9rem;margin:-20.2rem 0 0 12.4rem;color:var(--white);
  background-color:var(--green2);
  background-image:repeating-linear-gradient(90deg,var(--green3) 0 5.5rem,transparent 5.5rem 10.95rem);
  background-position:4.2rem 0;}
.history__inner{position:relative;height:100%;}
.history__photo{position:absolute;left:22.1rem;top:7.6rem;width:55rem;height:71.7rem;object-fit:cover;border-radius:3rem;}
.history__body{position:absolute;left:86.5rem;top:9.6rem;width:72rem;}
.history__ttl{font-size:6rem;font-weight:700;line-height:10rem;letter-spacing:.06em;}
.history__txt{margin-top:4.5rem;width:63rem;font-size:2.2rem;line-height:6rem;letter-spacing:.06em;}
.history__btn{position:absolute;left:11.6rem;top:58.7rem;}
@media (max-width:1023px){
  .history{height:57.5rem;margin:0;width:100vw;
    background-image:repeating-linear-gradient(90deg,var(--green3) 0 1.2rem,transparent 1.2rem 2.3rem);background-position:.9rem 0;}
  .history__photo{left:2.4rem;top:43.7rem;width:27rem;height:30rem;border-radius:1rem;}
  .history__body{left:2.4rem;top:2.3rem;width:34.2rem;}
  .history__ttl{font-size:2.8rem;line-height:5rem;}
  .history__txt{margin-top:1.7rem;width:34.2rem;font-size:1.5rem;line-height:3.5rem;letter-spacing:.05em;}
  .history__btn{left:3.8rem;top:34.1rem;}
}
/* ---------- マーキー + 写真帯 ---------- */
.marquee{position:relative;z-index:2;height:38.2rem;display:flex;align-items:center;background:var(--white);overflow:hidden;}
.marquee__track{display:flex;align-items:center;flex:none;width:max-content;animation:marquee 30s linear infinite;}
.marquee__item{display:flex;flex:none;align-items:center;gap:4.6rem;padding-right:4.6rem;font-size:12rem;font-weight:700;color:transparent;-webkit-text-stroke:.2rem var(--ochre);letter-spacing:.05em;line-height:1;white-space:nowrap;}
.marquee__item img{width:auto;height:10rem;}
@keyframes marquee{to{transform:translateX(-50%)}}
@media (prefers-reduced-motion:reduce){.marquee__track{animation:none}}
.band{height:58rem;overflow:hidden;}
.band img{width:100%;height:100%;object-fit:cover;object-position:center 40%;}
@media (max-width:1023px){
  .marquee{height:31.9rem;padding-top:21.4rem;align-items:flex-start;}
  .marquee__item{gap:2.4rem;padding-right:2.4rem;font-size:5.5rem;-webkit-text-stroke:.1rem var(--ochre);}
  .marquee__item img{height:4.6rem;}
  .band{height:20rem;}
  .band img{object-position:center 84%;}
}
/* ---------- 事業内容 ---------- */
.service{position:relative;padding-bottom:12.9rem;background:linear-gradient(180deg,rgba(245,240,232,0) 0%,rgba(239,229,214,.7) 30%,#EFE5D6 100%);}
.service__head{position:relative;top:0rem;z-index:2;width:167.2rem;height:26.5rem;margin:-7.3rem auto -8rem;background:linear-gradient(180deg, var(--white) 0%, #FAF7F3 35%, #FAF7F300 40%);}
.service__box{position:absolute;left:12rem;top:7.3rem;}
.service__box .eyebrow{line-height:1;}
.service__box .ttl{margin-top:3.5rem;line-height:1;white-space:nowrap;}
.service__lead{position:absolute;left:51rem;top:7.5rem;width:106.3rem;font-size:2.2rem;line-height:6rem;letter-spacing:.06em;}
.service__list{display:grid;grid-template-columns:repeat(3,42.3rem);gap:2.5rem;justify-content:center;margin-top:13.7rem;}
.service__item{display:flex;flex-direction:column;align-items:center;height:54.2rem;padding-top:7.2rem;background:var(--white);text-align:center;}
.service__icon{display:flex;flex-direction:column;align-items:center;font-size:2.5rem;line-height:1;letter-spacing:.05em;}
.service__icon svg{width:9.8rem;height:8rem;margin-bottom:6.4rem;fill:none;stroke:var(--ink);stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;}
.service__txt{margin-top:4.8rem;font-size:2.2rem;line-height:6rem;letter-spacing:.06em;}
@media (max-width:1023px){
  .service{padding-bottom:6rem;}
  .service__head{display:flex;flex-direction:column;align-items:center;top:0;width:auto;height:auto;margin:-5.5rem 2.4rem 0;background:none;}
  .service__box{position:static;width:34.1rem;height:10rem;padding-top:2.1rem;background:linear-gradient(120deg,#FFFFFF 0%,#FCFAF7 100%);text-align:center;}
  .service__box .ttl{margin-top:1.8rem;}
  .service__lead{position:static;margin:1.9rem auto 0;width:31.3rem;font-size:1.5rem;line-height:3.5rem;letter-spacing:.05em;text-align:center;}
  .service__list{grid-template-columns:1fr;gap:1.5rem;margin:1.6rem auto 0;width:35.3rem;}
  .service__item{display:grid;grid-template-columns:14.8rem 1fr;align-items:start;height:14rem;padding:1.15rem 1rem 0 0;text-align:left;gap:.5em;}
  .service__icon{padding-top:2rem;font-size:1.5rem;}
  .service__icon svg{width:4.9rem;height:4rem;margin-bottom:2.1rem;}
  .service__txt{margin-top:1.2rem;font-size:1.5rem;line-height:3rem;letter-spacing:.03em;}
}
/* ---------- 施工事例 ---------- */
.works{position:relative;height:133rem;background:var(--ochre);color:var(--white);overflow:hidden;}
.works__head{position:absolute;inset:0;pointer-events:none;}
.works__head>*{pointer-events:auto;}
.works__head .eyebrow{position:absolute;left:24.3rem;top:11.3rem;color:var(--beige-l);line-height:1;}
.works__head .ttl{position:absolute;left:24.3rem;top:18.3rem;line-height:1;}
.works__nav{position:absolute;left:54.95rem;top:17.75rem;display:flex;gap:4.5rem;}
.works__arrow{width:7.3rem;height:7.3rem;border:.2rem solid #B46F23;border-radius:50%;background:var(--white);color:var(--ochre);display:grid;place-items:center;transition:background .25s,color .25s;}
.works__arrow:hover{background:var(--ochre-d);color:var(--white);border-color:var(--ochre-d);}
.works__arrow svg{width:3rem;height:3rem;fill:none;stroke:currentColor;stroke-width:2.6;stroke-linecap:round;stroke-linejoin:round;}
.works__lead{position:absolute;left:90.7rem;top:8rem;font-size:2.2rem;font-weight:700;color:var(--beige-l);line-height:1;letter-spacing:.05em;}
.works__head .btn{position:absolute;left:105.1rem;top:17.3rem;}
.works__slider{position:absolute;left:12.3rem;top:34.4rem;right:0;}
.works__slider .swiper{overflow:visible;}
.swiper-slide.work-card{width:52.1rem;height:auto;}
.work-card{display:flex;flex-direction:column;background:var(--white);border-radius:3rem;padding:2rem 2.55rem 2.7rem;color:var(--ink);}
.work-card__img{width:100%;aspect-ratio:470/546;object-fit:cover;border-radius:2rem;}
.work-card__tag{display:inline-block;align-self:flex-start;margin-top:3rem;min-width:19.5rem;padding:0 2rem;height:4rem;line-height:4rem;border-radius:2rem;background:var(--green2);color:var(--white);font-size:2rem;font-weight:700;letter-spacing:.12em;text-align:center;}
.work-card__tag--reform{background:var(--green);}
.work-card__ttl{margin-top:.6rem;font-size:2.5rem;font-weight:700;line-height:2;letter-spacing:.05em;}
.work-card__date{margin-top:auto;padding-top:1rem;font-size:2.3rem;font-weight:700;letter-spacing:.12em;line-height:1;}
@media (max-width:1023px){
  .works{height:91.5rem;}
  .works__head .eyebrow{left:2.4rem;top:1.1rem;font-size:5rem;color:#D59044;}
  .works__head .ttl{left:2.4rem;top:4.4rem;font-size:2.8rem;}
  .works__lead{left:2.4rem;top:7.9rem;font-size:1.5rem;font-weight:500;line-height:3.5rem;}
  .works__head .btn{left:7.5rem;top:18.2rem;}
  .works__nav{left:7.4rem;top:26.4rem;gap:13.9rem;}
  .works__arrow{width:5.2rem;height:5.2rem;border-width:.15rem;}
  .works__arrow svg{width:2rem;height:2rem;}
  .works__slider{left:2.4rem;top:33.6rem;}
  .swiper-slide.work-card{width:34.2rem;}
  .work-card{border-radius:1.5rem;padding:1.5rem 1.7rem 1.8rem;}
  .work-card__img{aspect-ratio:309/358;border-radius:1rem;}
  .work-card__tag{margin-top:1.5rem;min-width:12.1rem;padding:0 1.2rem;height:2.6rem;line-height:2.6rem;font-size:1.4rem;}
  .work-card__ttl{margin-top:.6rem;font-size:1.5rem;line-height:2;}
  .work-card__date{padding-top:3rem;font-size:1.4rem;}
}
/* ---------- ギャラリー ---------- */
.gallery{display:grid;grid-template-columns:66.7rem 51.4rem 1fr;grid-template-rows:33rem 33rem;gap:2rem;padding-top:16.7rem;background:var(--beige);}
.gallery img{width:100%;height:100%;object-fit:cover;}
.gallery .g1{grid-area:1/1/2/2}
.gallery .g3{grid-area:1/2/3/3;object-position:90% 50%}
.gallery .g5{grid-area:1/3/2/4}
.gallery .g4{grid-area:2/1/3/2;object-position:50% 100%}
.gallery__pair{grid-area:2/3/3/4;display:grid;grid-template-columns:1fr 1fr;gap:2.7rem;}
@media (max-width:1023px){
  .gallery{grid-template-columns:22.5rem 1fr;grid-template-rows:10.7rem 10.5rem;gap:.3rem;padding-top:0;}
  .gallery .g5,.gallery__pair{display:none;}
  .gallery .g3{object-position:100% 50%;}
}
/* ---------- 採用 ---------- */
.recruit{position:relative;height:125.4rem;background:var(--beige);}
.recruit__shape{position:absolute;left:12.4rem;top:70.1rem;right:0;height:33.8rem;background:var(--sand);border-radius:10rem 0 0 0;}
.recruit__body{position:absolute;left:24.4rem;top:24rem;width:80rem;z-index:2;}
.recruit__body .ttl{line-height:10rem;letter-spacing:.06em;}
.recruit__txt{margin-top:4rem;font-size:2.2rem;line-height:6rem;letter-spacing:.06em;}
.recruit__photo{position:absolute;left:110.4rem;top:16rem;width:57.2rem;height:79rem;object-fit:cover;border-radius:3rem;z-index:1;object-position:20% 50%;}
.recruit__btn{position:absolute;left:45.8rem;top:88rem;z-index:2;}
@media (max-width:1023px){
  .recruit{height:62.1rem;}
  .recruit__shape{left:2.4rem;top:35rem;height:19rem;border-radius:5rem 0 0 0;background:#E5DAC9;}
  .recruit__body{left:2.4rem;top:.8rem;width:34.2rem;}
  .recruit__body .ttl{line-height:5rem;margin-top:.7em;}
  .recruit__txt{margin-top:.6rem;font-size:1.5rem;line-height:3.5rem;letter-spacing:.05em;}
  .recruit__photo{display:none;}
  .recruit__btn{left:7.5rem;top:46.2rem;}
}

/* ---------- お知らせ/ブログ ---------- */
.information{background:var(--beige);padding-bottom:20.8rem;}
.info{position:relative;width:157.8rem;margin:0 auto;padding:24.5rem 0 6.7rem;border:.4rem solid var(--green);border-radius:3rem;}
.info__eyebrow{position:absolute;left:12.9rem;top:5.9rem;font-size:3.5rem;font-weight:700;color:var(--green);letter-spacing:.05em;line-height:1;}
.info__ttl{position:absolute;left:12.9rem;top:12.9rem;font-size:6rem;font-weight:700;color:var(--ochre);letter-spacing:.06em;line-height:1;}
.info__icon{position:absolute;left:98.2rem;top:5rem;width:17.1rem;height:13.9rem;}
.info__icon svg{width:100%;height:100%;}
.info__more{position:absolute;left:107.8rem;top:14.6rem;width:32.6rem;display:flex;align-items:center;justify-content:center;gap:2.6rem;padding-bottom:1rem;border-bottom:.3rem solid var(--green2);color:var(--green2);font-size:2.2rem;font-weight:700;letter-spacing:.04em;line-height:1;transition:opacity .25s;}
.info__more:hover{opacity:.7}
.info__more svg{width:2.6rem;height:2.4rem;fill:currentColor;}
.info__list{width:132rem;margin-left:12.9rem;}
.info__item{display:flex;align-items:center;height:12rem;border-top:.3rem solid #E8D4B6;}
.info__item:last-child{border-bottom:.3rem solid #E8D4B6;}
.info__date{flex:none;width:30.5rem;padding-left:5.5rem;font-size:3rem;font-weight:700;color:var(--green);letter-spacing:.1em;line-height:1;}
.info__txt{flex:1;padding-right:6rem;font-size:2.2rem;line-height:5.5rem;letter-spacing:.06em;}
.info__txt a:hover{text-decoration:underline;}
@media (max-width:1023px){
  .information{padding-bottom:6.6rem;}
  .info{width:35.6rem;padding:21.9rem 0 2.9rem;border-width:.2rem;}
  .info__eyebrow{left:1.6rem;top:3.1rem;font-size:2rem;}
  .info__ttl{left:1.6rem;top:6.9rem;font-size:2.8rem;}
  .info__icon{left:8.3rem;top:13.7rem;width:6.5rem;height:5.3rem;}
  .info__more{left:11.3rem;top:16.3rem;width:22rem;gap:1.6rem;padding-bottom:.9rem;border-bottom-width:.1rem;font-size:1.5rem;}
  .info__more svg{width:1.7rem;height:1.6rem;}
  .info__list{width:31rem;margin-left:2.3rem;}
  .info__item{flex-direction:column;align-items:flex-start;justify-content:flex-start;height:10.8rem;padding:1.7rem 0 0 .7rem;}
  .info__date{width:auto;padding:0;font-size:1.5rem;}
  .info__txt{flex:none;width:29.7rem;padding:1.2rem 0 0;font-size:1.3rem;line-height:3rem;}
}
/* ---------- CTA ---------- */
.cta{background:var(--green);color:var(--white);padding:6rem 0 4rem;text-align:center;}
.cta__ttl{font-size:3.5rem;font-weight:700;letter-spacing:.1em;line-height:1;}
.cta__lead{margin-top:3.4rem;font-size:2.5rem;letter-spacing:.1em;line-height:1;}
.cta__list{display:flex;justify-content:center;gap:5.5rem;margin-top:6.4rem;}
.cta__card{position:relative;display:flex;flex-direction:column;align-items:center;width:32.4rem;height:32.4rem;padding-top:4rem;border-radius:3rem;color:var(--ink);background:var(--white);overflow:hidden;transition:transform .25s,box-shadow .25s;}
.cta__card::before{content:"";position:absolute;inset:0;background:url(../img/27715239.png) center/cover;opacity:.3;pointer-events:none;}
.cta__card>*{position:relative;}
.cta__card:hover{transform:translateY(-.6rem);box-shadow:0 1.2rem 3rem rgba(0,0,0,.18);}
.cta__icon{width:8.4rem;height:8.4rem;display:grid;place-items:center;}
.cta__icon svg{width:8.4rem;height:8.4rem;fill:none;stroke:var(--green2);stroke-width:2;stroke-linecap:round;stroke-linejoin:round;}
.cta__icon--line{width:7.4rem;height:7.4rem;border-radius:50%;background:var(--green2);color:var(--white);font-size:1.9rem;font-weight:700;letter-spacing:.05em;}
.cta__en{margin-top:2.2rem;font-size:3.3rem;color:var(--green2);line-height:1;letter-spacing:.02em;}
.cta__jp{margin-top:3.6rem;font-size:2.2rem;line-height:1.5;letter-spacing:.05em;}
.cta__arrow{position:absolute;bottom:2.6rem;left:50%;transform:translateX(-50%);width:6rem;height:1.4rem;}
.cta__arrow svg{width:100%;height:100%;fill:none;stroke:var(--ochre);stroke-width:1.5;}
@media (max-width:1023px){
  .cta{padding:2.2rem 2.5rem 3.7rem;}
  .cta__ttl{font-size:2.5rem;line-height:1.6;letter-spacing:.06em;}
  .cta__lead{margin-top:0;font-size:1.5rem;line-height:3.5rem;letter-spacing:0;white-space:nowrap;}
  .cta__list{flex-direction:column;gap:2.5rem;margin-top:2.5rem;}
  .cta__card{flex-direction:row;width:34rem;height:6rem;margin:0 auto;padding:0 2rem 0 1.6rem;border-radius:2.5rem;}
  .cta__card::before{background-size:auto 300%;}
  .cta__icon{width:3.6rem;height:3.6rem;margin-top:-1.4rem;}
  .cta__icon svg{width:3rem;height:3rem;}
  .cta__icon--line{width:3rem;height:3rem;font-size:.85rem;}
  .cta__en{position:absolute;left:2.3rem;bottom:.5rem;margin:0;font-size:1.2rem;}
  .cta__jp{position:absolute;left:5.6rem;right:2.4rem;top:0;bottom:0;display:flex;align-items:center;justify-content:center;margin:0;font-size:1.7rem;}
  .cta__arrow{display:block;left:auto;right:1.4rem;bottom:2.3rem;transform:none;width:3rem;height:.9rem;}
}
/* ---------- フッター ---------- */
.footer{position:relative;background:var(--white);}
.footer__inner{position:relative;height:53.4rem;}
.footer__logo{position:absolute;left:21.8rem;top:3.9rem;width:18.7rem;}
.footer__info{position:absolute;left:41.8rem;top:8.2rem;font-size:1.7rem;line-height:2.05;letter-spacing:.05em;}
.footer__co{display:block;font-size:2.2rem;line-height:1.5;margin-bottom:.6rem;}
.footer__nav{position:absolute;left:97.5rem;top:15.2rem;display:grid;grid-template-columns:repeat(3,auto);gap:7.6rem 6.9rem;font-size:2.3rem;font-weight:700;letter-spacing:.05em;line-height:1;}
.footer__nav a{border-bottom:.15rem solid transparent;transition:border-color .25s;}
.footer__nav a:hover{border-color:var(--ochre);}
.footer__map{position:absolute;left:24.3rem;top:25.1rem;width:51.4rem;height:23.2rem;background:var(--lgrey);display:grid;place-items:center;color:var(--grey2);font-size:2.3rem;overflow:hidden;}
.footer__map iframe{width:100%;height:100%;border:0;}
.footer__sns{position:absolute;left:95.9rem;top:37.1rem;display:flex;gap:5rem;}
.footer__sns a{display:flex;align-items:center;gap:1.6rem;width:26.9rem;height:5.3rem;padding:0 1.4rem 0 2.4rem;border:1px solid currentColor;background:var(--beige-l);font-size:2rem;letter-spacing:.02em;transition:opacity .25s;}
.footer__sns a:hover{opacity:.7;}
.footer__sns svg{width:2.6rem;height:2.6rem;fill:none;stroke:currentColor;stroke-width:1.8;flex:none;}
.footer__sns .chev{margin-left:auto;width:1.4rem;height:1.4rem;}
.footer__sns--insta{color:var(--ochre);}
.footer__sns--fb{color:var(--green);}
.footer__copy{height:3.5rem;background:var(--ochre);color:var(--white);font-size:1.5rem;text-align:center;line-height:3.5rem;letter-spacing:.05em;}
@media (max-width:1023px){
  .footer__inner{height:44.6rem;}
  .footer__logo{left:.8rem;top:.9rem;width:11.9rem;}
  .footer__info{left:13rem;top:3.3rem;font-size:1.1rem;line-height:1.65;letter-spacing:.04em;}
  .footer__co{font-size:1.7rem;line-height:1.5;margin-bottom:.5rem;}
  .footer__nav{left:0;right:0;top:15.8rem;display:flex;flex-wrap:wrap;justify-content:center;gap:1.8rem 3.4rem;padding:0 4rem;font-size:1.4rem;letter-spacing:.03em;line-height:1.5;}
  .footer__map{left:2.4rem;top:28.1rem;width:34.2rem;height:13.5rem;font-size:1.8rem;}
  .footer__sns{display:none;}
  .footer__copy{height:2rem;line-height:2rem;font-size:1rem;}
}
/* ---------- 下層ページ共通(MV) ---------- */
.page-mv{position:relative;height:73.1rem;background:var(--beige);}
.page-mv__ttl{position:absolute;left:12.4rem;top:31.3rem;z-index:2;}
.page-mv__en{font-size:4rem;font-weight:700;color:var(--green2);letter-spacing:.05em;line-height:1;}
.page-mv__jp{margin:3.3rem 0 0 1rem;padding-left:2.4rem;border-left:.5rem solid var(--ink);font-size:6rem;font-weight:700;line-height:8.8rem;letter-spacing:.13em;white-space:nowrap;}
.page-mv__img{position:absolute;left:54.4rem;top:5.6rem;width:137.6rem;height:67.5rem;object-fit:cover;border-radius:3rem 0 0 3rem;object-position: 50% 10%;}
@media (max-width:1023px){
  .page-mv{height:36.4rem;}
  .page-mv__ttl{left:2.4rem;top:27rem;}
  .page-mv__en{font-size:2.5rem;}
  .page-mv__jp{margin:1.2rem 0 0 .4rem;padding-left:1.3rem;border-left-width:.3rem;font-size:2.8rem;line-height:4.8rem;letter-spacing:.06em;}
  .page-mv__img{left:5.5rem;top:3.1rem;width:33.5rem;height:26.1rem;border-radius:1.5rem 0 0 1.5rem;}
}
/* 下層ページ共通: 本文コンテナ */
.page-body{background:var(--beige);}
/* ---------- プライバシーポリシー ---------- */
.legal{background:var(--beige);padding:10rem 2.4rem 14rem;}
.legal__inner{max-width:110rem;margin:0 auto;}
.legal__en{font-size:4rem;font-weight:700;color:var(--green2);letter-spacing:.1em;line-height:1;text-align:center;}
.legal__ttl{margin-top:3rem;font-size:4.5rem;font-weight:700;letter-spacing:.06em;line-height:1.6;text-align:center;}
.legal__body{margin-top:6rem;font-size:1.7rem;line-height:2.1;letter-spacing:.03em;}
.legal__body h2{margin:4rem 0 1.6rem;font-size:2.2rem;font-weight:700;}
.legal__body h2:first-child{margin-top:0;}
.legal__body p{margin-bottom:.4rem;}
.legal__contact{margin-top:5rem;padding-top:3rem;border-top:.1rem solid var(--ink);}
@media (max-width:1023px){
  .legal{padding:6rem 2.4rem 7rem;}
  .legal__en{font-size:2.2rem;}
  .legal__ttl{margin-top:1.8rem;font-size:2.4rem;}
  .legal__body{margin-top:3rem;font-size:1.4rem;line-height:1.9;}
  .legal__body h2{font-size:1.7rem;margin:3rem 0 1.2rem;}
}
/* ---------- お知らせ一覧 ---------- */
.news-list{margin-top:2rem;}
.news-list__item{display:flex;align-items:baseline;gap:3rem;padding:2.4rem 0;border-top:.1rem solid var(--sand);}
.news-list__item:last-child{border-bottom:.1rem solid var(--sand);}
.news-list__date{flex:none;width:12rem;font-size:1.6rem;color:var(--green2);letter-spacing:.05em;}
.news-list__ttl{font-size:1.7rem;letter-spacing:.03em;}
.news-list__ttl a:hover{text-decoration:underline;}
.news-pagination{display:flex;justify-content:center;gap:1.5rem;margin-top:4rem;font-size:1.6rem;}
.news-pagination a,.news-pagination span{padding:.6rem 1.4rem;border:.1rem solid var(--sand);border-radius:.6rem;}
.news-pagination .current{background:var(--green2);color:var(--white);border-color:var(--green2);}
@media (max-width:1023px){
  .news-list__item{flex-direction:column;gap:.4rem;padding:1.8rem 0;}
  .news-list__date{width:auto;}
}
/* ---------- 施工事例モーダル（parts/work-modal.php） ---------- */
html.is-modal-open{overflow:hidden;}
.work-card.js-work-open{cursor:pointer;}
.wk-modal{position:fixed;inset:0;margin:auto;width:min(150rem,92vw);max-width:none;max-height:90vh;padding:0;border:0;border-radius:3rem;background:var(--white);color:var(--ink);overflow:hidden;}
.wk-modal[open]{animation:wk-modal-in .3s ease;}
.wk-modal::backdrop{background:rgba(0,0,0,.6);}
@keyframes wk-modal-in{from{opacity:0;transform:translateY(2rem);}to{opacity:1;transform:none;}}
.wk-modal__box{position:relative;display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);grid-template-rows:minmax(0,1fr);align-items:start;gap:5rem;max-height:90vh;padding:6rem 5rem 5rem;}
.wk-modal__close{position:absolute;top:1.6rem;right:1.6rem;z-index:2;display:grid;place-items:center;width:4.8rem;height:4.8rem;border-radius:50%;background:var(--beige2);transition:background .25s;}
.wk-modal__close:hover{background:var(--sand);}
.wk-modal__close svg{width:2.2rem;height:2.2rem;fill:none;stroke:currentColor;stroke-width:2.4;stroke-linecap:round;}
.wk-modal__gallery{min-width:0;max-height:100%;overflow-y:auto;}
.wk-modal__main{position:relative;}
.wk-modal__img{width:100%;aspect-ratio:4/3;object-fit:contain;border-radius:2rem;background:var(--beige-l);user-select:none;}
.wk-modal__cap{position:absolute;left:1.6rem;bottom:1.6rem;padding:.6rem 1.6rem;border-radius:3rem;background:rgba(0,0,0,.6);color:var(--white);font-size:1.6rem;font-weight:700;letter-spacing:.08em;line-height:1.4;pointer-events:none;}
.wk-modal__cap:empty{display:none;}
.wk-modal__arrow{position:absolute;top:50%;display:grid;place-items:center;width:5.2rem;height:5.2rem;margin-top:-2.6rem;border-radius:50%;background:rgba(255,255,255,.9);color:var(--grey2);transition:background .25s;}
.wk-modal__arrow:hover{background:var(--white);}
.wk-modal__arrow--prev{left:1.6rem;}
.wk-modal__arrow--next{right:1.6rem;}
.wk-modal__arrow svg{width:2.2rem;height:2.2rem;fill:none;stroke:currentColor;stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round;}
.wk-modal.is-single .wk-modal__arrow{display:none;}
.wk-modal.is-noimg .wk-modal__gallery{display:none;}
.wk-modal.is-noimg .wk-modal__box{grid-template-columns:1fr;}
.wk-modal__thumbs{display:grid;grid-auto-flow:column;grid-auto-columns:calc((100% - 4.8rem) / 5);gap:1.2rem;margin-top:1.6rem;overflow-x:auto;overscroll-behavior-x:contain;scrollbar-width:thin;padding-bottom:.4rem;}
.wk-modal__thumbs:empty{display:none;}
.wk-modal__thumbs button{display:block;width:100%;border-radius:1rem;overflow:hidden;opacity:.5;outline:.3rem solid transparent;outline-offset:-.3rem;transition:opacity .25s,outline-color .25s;}
.wk-modal__thumbs button:hover{opacity:.8;}
.wk-modal__thumbs button[aria-current="true"]{opacity:1;outline-color:var(--green);}
.wk-modal__thumbs img{width:100%;aspect-ratio:4/3;object-fit:cover;}
.wk-modal__body{min-width:0;overflow-y:auto;overscroll-behavior:contain;padding-right:1rem;}
.wk-modal__body .work-card__tag{margin-top:0;}
.wk-modal__ttl{margin-top:2rem;font-size:3rem;font-weight:700;line-height:1.6;letter-spacing:.05em;}
.wk-modal__date{margin-top:1rem;font-size:2rem;font-weight:700;letter-spacing:.12em;line-height:1;color:var(--grey);}
.wk-modal__txt{margin-top:3rem;padding-top:3rem;border-top:1px solid var(--lgrey);font-size:1.8rem;line-height:2;letter-spacing:.04em;}
.wk-modal__txt > * + *{margin-top:1.8rem;}
@media (max-width:1023px){
  .wk-modal{width:calc(100vw - 3rem);max-height:88svh;border-radius:2rem;overflow-y:auto;overscroll-behavior:contain;}
  .wk-modal__box{grid-template-columns:1fr;grid-template-rows:auto;gap:2.4rem;max-height:none;padding:6rem 1.8rem 3rem;}
  .wk-modal__close{top:1rem;right:1rem;width:4rem;height:4rem;}
  .wk-modal__close svg{width:1.8rem;height:1.8rem;}
  .wk-modal__gallery{max-height:none;overflow:visible;}
  .wk-modal__img{border-radius:1rem;}
  .wk-modal__cap{left:.8rem;bottom:.8rem;padding:.4rem 1rem;font-size:1.2rem;}
  .wk-modal__arrow{width:3.6rem;height:3.6rem;margin-top:-1.8rem;}
  .wk-modal__arrow--prev{left:.8rem;}
  .wk-modal__arrow--next{right:.8rem;}
  .wk-modal__arrow svg{width:1.6rem;height:1.6rem;}
  .wk-modal__thumbs{grid-auto-columns:calc((100% - 2.4rem) / 4);gap:.8rem;margin-top:1rem;}
  .wk-modal__thumbs button{border-radius:.6rem;outline-width:.2rem;outline-offset:-.2rem;}
  .wk-modal__body{overflow:visible;padding-right:0;}
  .wk-modal__ttl{margin-top:1.2rem;font-size:1.8rem;}
  .wk-modal__date{font-size:1.4rem;}
  .wk-modal__txt{margin-top:1.8rem;padding-top:1.8rem;font-size:1.4rem;}
  .wk-modal__txt > * + *{margin-top:1.2rem;}
}
