/*
Theme Name: NKTS Construction Theme
Theme URI: https://nk-ts.com/
Description: 建設業・工務店・リフォーム・設備工事向けのNKTS子テーマ。施工実績、対応工事、採用、許認可、問い合わせ導線を強化。
Author: NK Technical Support
Author URI: https://nk-ts.com/
Template: nk-base-theme
Version: 1.0.0
Text Domain: nkts-construction
Tags: construction, builder, renovation, corporate, works, recruiting, local-business
*/

:root{
  --nk-con-bg:#f5f7fa;
  --nk-con-surface:#ffffff;
  --nk-con-ink:#1b2430;
  --nk-con-muted:#5c6878;
  --nk-con-primary:#0b4c86;
  --nk-con-primary-dark:#07385f;
  --nk-con-accent:#f5a623;
  --nk-con-line:#dce3ec;
  --nk-con-shadow:0 18px 45px rgba(15,37,63,.14);
  --nk-con-radius:20px;
  --nk-con-radius-lg:30px;
  --nk-con-container:1180px;
}

body.nk-construction-theme{background:var(--nk-con-bg);color:var(--nk-con-ink);} 
.nk-con-container{max-width:var(--nk-con-container);margin:0 auto;padding:0 22px;box-sizing:border-box;}
.nk-con-section{padding:clamp(56px,7vw,96px) 0;position:relative;overflow:hidden;}
.nk-con-section--white{background:#fff;}
.nk-con-section--dark{background:#101925;color:#fff;}
.nk-con-eyebrow{display:block;color:var(--nk-con-accent);font-weight:800;letter-spacing:.16em;text-transform:uppercase;font-size:.78rem;margin-bottom:.7rem;}
.nk-con-title{font-size:clamp(1.9rem,3.6vw,3.05rem);line-height:1.25;margin:0;color:inherit;font-weight:800;letter-spacing:.02em;}
.nk-con-lead{color:var(--nk-con-muted);font-size:1.02rem;line-height:2;margin:1rem 0 0;}
.nk-con-section--dark .nk-con-lead{color:rgba(255,255,255,.78);} 
.nk-con-head{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin-bottom:30px;}
.nk-con-head__text{max-width:760px;}
.nk-con-head__actions{flex:0 0 auto;}

.nk-con-btn{display:inline-flex;align-items:center;justify-content:center;gap:.55em;min-height:48px;padding:.82rem 1.28rem;border-radius:999px;text-decoration:none;font-weight:800;letter-spacing:.03em;border:1px solid transparent;transition:transform .25s ease,box-shadow .25s ease,background .25s ease,color .25s ease;}
.nk-con-btn:hover{transform:translateY(-2px);box-shadow:0 14px 30px rgba(15,37,63,.18);}
.nk-con-btn--primary{background:var(--nk-con-accent);color:#1d2430;}
.nk-con-btn--blue{background:var(--nk-con-primary);color:#fff;}
.nk-con-btn--outline{background:transparent;color:var(--nk-con-primary);border-color:rgba(11,76,134,.35);}
.nk-con-btn--light{background:#fff;color:var(--nk-con-primary-dark);}
.nk-con-btn--ghost{background:rgba(255,255,255,.1);color:#fff;border-color:rgba(255,255,255,.25);backdrop-filter:blur(8px);}

/* Hero */
.nk-con-hero{position:relative;min-height:min(86vh,840px);display:grid;align-items:center;overflow:hidden;color:#fff;background:#101925;}
.nk-con-hero__slides{position:absolute;inset:0;z-index:0;}
.nk-con-hero__slide{position:absolute;inset:0;background-position:center;background-size:cover;background-repeat:no-repeat;opacity:0;transform:scale(1.04);transition:opacity 1.1s ease,transform 5.8s ease;}
.nk-con-hero__slide.is-active{opacity:1;transform:scale(1);}
.nk-con-hero::after{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(90deg,rgba(7,16,29,.84),rgba(7,16,29,.54) 45%,rgba(7,16,29,.16));}
.nk-con-hero__content{position:relative;z-index:2;max-width:760px;padding:clamp(90px,12vw,150px) 0 clamp(70px,8vw,100px);}
.nk-con-hero__eyebrow{display:inline-flex;align-items:center;gap:.65rem;color:#fff;font-size:.82rem;letter-spacing:.18em;text-transform:uppercase;font-weight:800;margin-bottom:1rem;}
.nk-con-hero__eyebrow::before{content:"";width:42px;height:2px;background:var(--nk-con-accent);display:inline-block;}
.nk-con-hero__title{font-size:clamp(2.6rem,5.8vw,5.45rem);line-height:1.05;margin:0;font-weight:900;letter-spacing:.02em;text-shadow:0 16px 45px rgba(0,0,0,.34);}
.nk-con-hero__lead{font-size:clamp(1rem,1.5vw,1.18rem);line-height:2;margin:1.35rem 0 0;color:rgba(255,255,255,.9);max-width:630px;}
.nk-con-hero__actions{display:flex;flex-wrap:wrap;gap:14px;margin-top:2rem;}
.nk-con-hero__badges{display:flex;gap:10px;flex-wrap:wrap;margin-top:1.5rem;padding:0;list-style:none;}
.nk-con-hero__badges li{padding:.55rem .85rem;border-radius:999px;background:rgba(255,255,255,.11);border:1px solid rgba(255,255,255,.18);font-weight:700;font-size:.88rem;backdrop-filter:blur(10px);}
.nk-con-hero__panel{position:absolute;right:max(22px,calc((100vw - var(--nk-con-container))/2));bottom:32px;z-index:2;width:min(420px,calc(100vw - 44px));background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.18);border-radius:24px;padding:18px;backdrop-filter:blur(14px);box-shadow:0 22px 60px rgba(0,0,0,.22);}
.nk-con-hero__panel strong{display:block;color:#fff;font-size:1.05rem;margin-bottom:.35rem;}
.nk-con-hero__panel p{margin:0;color:rgba(255,255,255,.78);line-height:1.75;font-size:.92rem;}

/* Hero Effects */
.nk-hero-effect-kenburns .nk-con-hero__slide.is-active{animation:nkConKenburns 7s ease both;}
.nk-hero-effect-diagonal .nk-con-hero__content{clip-path:polygon(0 0,100% 0,86% 100%,0 100%);background:linear-gradient(90deg,rgba(7,16,29,.36),transparent);}
.nk-hero-effect-scanline .nk-con-hero::before{content:"";position:absolute;inset:0;z-index:3;pointer-events:none;background:repeating-linear-gradient(180deg,rgba(255,255,255,.08) 0 1px,transparent 1px 7px);mix-blend-mode:overlay;opacity:.45;animation:nkConScan 5s linear infinite;}
.nk-hero-effect-blueprint .nk-con-hero::before{content:"";position:absolute;inset:0;z-index:3;pointer-events:none;background-image:linear-gradient(rgba(255,255,255,.08) 1px, transparent 1px),linear-gradient(90deg, rgba(255,255,255,.08) 1px, transparent 1px);background-size:54px 54px;opacity:.25;animation:nkConBlueprint 16s linear infinite;}
.nk-hero-effect-bold-slide .nk-con-hero__content{animation:nkConBoldSlide .95s cubic-bezier(.2,.9,.2,1) both;}

@keyframes nkConKenburns{from{transform:scale(1.11)}to{transform:scale(1)}}
@keyframes nkConScan{from{background-position:0 0}to{background-position:0 80px}}
@keyframes nkConBlueprint{from{background-position:0 0,0 0}to{background-position:108px 108px,108px 108px}}
@keyframes nkConBoldSlide{from{opacity:0;transform:translateX(-44px)}to{opacity:1;transform:translateX(0)}}

/* Cards and grids */
.nk-con-grid{display:grid;gap:24px;}
.nk-con-grid--3{grid-template-columns:repeat(3,minmax(0,1fr));}
.nk-con-grid--4{grid-template-columns:repeat(4,minmax(0,1fr));}
.nk-con-card{background:#fff;border:1px solid var(--nk-con-line);border-radius:var(--nk-con-radius);overflow:hidden;box-shadow:0 10px 25px rgba(15,37,63,.06);transition:transform .25s ease,box-shadow .25s ease,border-color .25s ease;}
.nk-con-card:hover{transform:translateY(-5px);box-shadow:var(--nk-con-shadow);border-color:rgba(11,76,134,.24);}
.nk-con-card__image{aspect-ratio:16/10;background:#dce3ec center/cover no-repeat;display:block;position:relative;}
.nk-con-card__body{padding:22px;}
.nk-con-card__meta{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:10px;}
.nk-con-chip{display:inline-flex;align-items:center;gap:.35em;border-radius:999px;padding:.34rem .65rem;background:#eef4fb;color:var(--nk-con-primary);font-size:.78rem;font-weight:800;}
.nk-con-card__title{font-size:1.2rem;margin:0 0 .7rem;font-weight:850;line-height:1.45;color:var(--nk-con-ink);}
.nk-con-card__text{color:var(--nk-con-muted);line-height:1.85;margin:0;font-size:.94rem;}
.nk-con-card__link{display:inline-flex;margin-top:1rem;color:var(--nk-con-primary);font-weight:850;text-decoration:none;}
.nk-con-card__price{font-weight:900;color:var(--nk-con-primary-dark);margin-top:.8rem;}

.nk-con-service-card .nk-con-card__image::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 58%,rgba(0,0,0,.35));opacity:.85;}
.nk-con-service-card__icon{position:absolute;left:16px;bottom:14px;width:46px;height:46px;border-radius:14px;background:var(--nk-con-accent);display:grid;place-items:center;font-size:1.3rem;z-index:2;box-shadow:0 12px 22px rgba(0,0,0,.18);}

/* Stats */
.nk-con-stats{position:relative;margin-top:-42px;z-index:4;}
.nk-con-stats__inner{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--nk-con-line);border-radius:22px;overflow:hidden;box-shadow:var(--nk-con-shadow);}
.nk-con-stat{background:#fff;padding:24px;text-align:center;}
.nk-con-stat strong{display:block;font-size:clamp(1.8rem,3vw,2.8rem);color:var(--nk-con-primary);font-weight:950;line-height:1;}
.nk-con-stat span{display:block;margin-top:.55rem;color:var(--nk-con-muted);font-weight:700;font-size:.9rem;}

/* Reasons */
.nk-con-reasons{counter-reset:reason;}
.nk-con-reason{position:relative;padding:28px;background:#fff;border-radius:var(--nk-con-radius);border:1px solid var(--nk-con-line);}
.nk-con-reason::before{counter-increment:reason;content:counter(reason,decimal-leading-zero);display:block;color:rgba(11,76,134,.15);font-size:3rem;font-weight:950;line-height:1;margin-bottom:.5rem;}
.nk-con-reason h3{font-size:1.15rem;margin:0 0 .7rem;}
.nk-con-reason p{color:var(--nk-con-muted);line-height:1.85;margin:0;}

/* Before After */
.nk-con-beforeafter{display:grid;grid-template-columns:1.1fr .9fr;gap:34px;align-items:center;}
.nk-con-beforeafter__visual{border-radius:var(--nk-con-radius-lg);overflow:hidden;box-shadow:var(--nk-con-shadow);background:#fff;border:1px solid var(--nk-con-line);}
.nk-con-beforeafter__visual img{display:block;width:100%;height:auto;}
.nk-con-beforeafter__points{display:grid;gap:14px;margin-top:22px;}
.nk-con-beforeafter__point{display:flex;gap:12px;align-items:flex-start;background:#fff;border:1px solid var(--nk-con-line);border-radius:16px;padding:14px;}
.nk-con-beforeafter__point span{flex:0 0 auto;width:28px;height:28px;border-radius:50%;display:grid;place-items:center;background:var(--nk-con-accent);color:#192431;font-weight:900;}

/* Timeline */
.nk-con-timeline{display:grid;grid-template-columns:repeat(5,1fr);gap:14px;}
.nk-con-step{background:#fff;border:1px solid var(--nk-con-line);border-radius:18px;padding:20px;position:relative;}
.nk-con-step__no{display:inline-grid;place-items:center;width:40px;height:40px;border-radius:12px;background:var(--nk-con-primary);color:#fff;font-weight:900;margin-bottom:12px;}
.nk-con-step h3{font-size:1rem;margin:0 0 .55rem;}
.nk-con-step p{font-size:.9rem;line-height:1.75;color:var(--nk-con-muted);margin:0;}

/* Area / license */
.nk-con-info-panel{background:#fff;border:1px solid var(--nk-con-line);border-radius:var(--nk-con-radius-lg);padding:28px;box-shadow:0 10px 25px rgba(15,37,63,.06);}
.nk-con-badgelist{display:flex;flex-wrap:wrap;gap:10px;margin:16px 0 0;padding:0;list-style:none;}
.nk-con-badgelist li{background:#eef4fb;color:var(--nk-con-primary-dark);font-weight:800;border-radius:999px;padding:.58rem .85rem;}

/* CTA */
.nk-con-cta{position:relative;overflow:hidden;background:#0d1b2b;color:#fff;}
.nk-con-cta::before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(6,18,32,.88),rgba(6,18,32,.62)),var(--nk-con-cta-bg,none);background-size:cover;background-position:center;}
.nk-con-cta__inner{position:relative;z-index:1;display:grid;grid-template-columns:1fr auto;gap:24px;align-items:center;}
.nk-con-cta .nk-con-lead{color:rgba(255,255,255,.82);}
.nk-con-cta__buttons{display:flex;gap:12px;flex-wrap:wrap;}

/* Archives */
.nk-con-archive-hero{background:#142235;color:#fff;padding:88px 0;text-align:center;}
.nk-con-archive-hero .nk-con-lead{color:rgba(255,255,255,.78);max-width:720px;margin-left:auto;margin-right:auto;}
.nk-con-single{background:#fff;padding:clamp(48px,6vw,86px) 0;}
.nk-con-single__layout{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:34px;align-items:start;}
.nk-con-single__main{background:#fff;border:1px solid var(--nk-con-line);border-radius:var(--nk-con-radius-lg);padding:clamp(24px,4vw,42px);box-shadow:0 10px 25px rgba(15,37,63,.06);}
.nk-con-single__side{position:sticky;top:32px;display:grid;gap:18px;}
.nk-con-detail-table{width:100%;border-collapse:separate;border-spacing:0;border:1px solid var(--nk-con-line);border-radius:18px;overflow:hidden;}
.nk-con-detail-table th,.nk-con-detail-table td{padding:14px;border-bottom:1px solid var(--nk-con-line);text-align:left;vertical-align:top;}
.nk-con-detail-table tr:last-child th,.nk-con-detail-table tr:last-child td{border-bottom:0;}
.nk-con-detail-table th{width:34%;background:#f2f6fa;color:var(--nk-con-primary-dark);}

/* Animations */
[data-nk-con-animate]{opacity:0;transform:translateY(24px);transition:opacity .7s ease,transform .7s ease,filter .7s ease;}
[data-nk-con-animate].is-visible{opacity:1;transform:none;filter:none;}
.nk-section-anim-slide [data-nk-con-animate]{transform:translateX(-28px);} 
.nk-section-anim-zoom [data-nk-con-animate]{transform:scale(.94);}
.nk-section-anim-heavy [data-nk-con-animate]{transform:translateY(38px) rotateX(6deg);transform-origin:center bottom;}
.nk-section-anim-line [data-nk-con-animate]{clip-path:inset(0 100% 0 0);opacity:1;transform:none;transition:clip-path .8s ease, opacity .8s ease;}
.nk-section-anim-line [data-nk-con-animate].is-visible{clip-path:inset(0 0 0 0);}
.nk-section-anim-blueprint [data-nk-con-animate]{filter:blur(8px);transform:translateY(18px) scale(.98);}

/* Slider / gallery */
.nk-con-gallery-strip{display:flex;gap:18px;overflow:hidden;mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);}
.nk-con-gallery-track{display:flex;gap:18px;animation:nkConMarquee 36s linear infinite;}
.nk-con-gallery-strip:hover .nk-con-gallery-track{animation-play-state:paused;}
.nk-con-gallery-card{min-width:360px;border-radius:22px;overflow:hidden;box-shadow:var(--nk-con-shadow);background:#fff;border:1px solid var(--nk-con-line);}
.nk-con-gallery-card img{width:100%;height:230px;object-fit:cover;display:block;}
.nk-con-gallery-card strong{display:block;padding:16px 18px;}
.nk-gallery-effect-float .nk-con-gallery-card{animation:nkConFloat 4.4s ease-in-out infinite;}
.nk-gallery-effect-tilt .nk-con-gallery-card:nth-child(odd){transform:rotate(-1.3deg);} .nk-gallery-effect-tilt .nk-con-gallery-card:nth-child(even){transform:rotate(1.3deg);} 
.nk-gallery-effect-flip .nk-con-gallery-card{transform-style:preserve-3d;animation:nkConFlipHint 7s ease-in-out infinite;}
@keyframes nkConMarquee{from{transform:translateX(0)}to{transform:translateX(-50%)}}
@keyframes nkConFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-9px)}}
@keyframes nkConFlipHint{0%,90%,100%{transform:rotateY(0)}95%{transform:rotateY(8deg)}}

/* Mobile */
@media (max-width: 980px){
  .nk-con-grid--3,.nk-con-grid--4{grid-template-columns:repeat(2,minmax(0,1fr));}
  .nk-con-stats__inner{grid-template-columns:repeat(2,1fr);}
  .nk-con-beforeafter,.nk-con-cta__inner,.nk-con-single__layout{grid-template-columns:1fr;}
  .nk-con-timeline{grid-template-columns:repeat(2,1fr);}
  .nk-con-hero__panel{position:relative;right:auto;bottom:auto;margin:0 22px 30px;}
  .nk-con-head{display:block;}
  .nk-con-head__actions{margin-top:18px;}
}
@media (max-width: 640px){
  .nk-con-container{padding:0 16px;}
  .nk-con-grid--3,.nk-con-grid--4,.nk-con-timeline{grid-template-columns:1fr;}
  .nk-con-hero{min-height:auto;}
  .nk-con-hero__title{font-size:2.35rem;}
  .nk-con-hero::after{background:linear-gradient(90deg,rgba(7,16,29,.88),rgba(7,16,29,.54));}
  .nk-con-hero__actions,.nk-con-cta__buttons{display:grid;grid-template-columns:1fr;}
  .nk-con-gallery-card{min-width:280px;}
}
