/* ========================================
   永田冷機工業所 メインスタイル
   ======================================== */

*{margin:0;padding:0;box-sizing:border-box}

:root{
  --primary:#0e7fc0;
  --primary-dark:#0a5f8f;
  --primary-light:#e8f5fd;
  --accent:#00b4d8;
  --accent2:#48cae4;
  --red:#e03131;
  --text:#1a2b3c;
  --text-muted:#5a7184;
  --border:#cde4f0;
  --bg:#f4fafd;
  --white:#fff;
}

body{
  font-family:'Noto Sans JP',sans-serif;
  color:var(--text);
  background:var(--white);
  line-height:1.7;
  font-size:15px;
}

a{text-decoration:none;color:inherit;cursor:pointer}

/* ---- NAV ---- */
nav{
  position:sticky;top:0;z-index:100;
  background:rgba(255,255,255,.97);
  border-bottom:1px solid var(--border);
  padding:0 1.5rem;
  backdrop-filter:blur(6px);
}
.nav-inner{
  max-width:1100px;margin:0 auto;
  display:flex;align-items:center;justify-content:space-between;
  height:68px;
}
.logo{display:flex;align-items:center;gap:12px;cursor:pointer}
.logo-diamond{
  width:42px;height:42px;
  background:var(--red);
  clip-path:polygon(50% 0%,100% 50%,50% 100%,0% 50%);
  display:flex;align-items:center;justify-content:center;
  color:#fff;font-weight:700;font-size:12px;letter-spacing:-.5px;
}
.logo-text{font-size:16px;font-weight:700;color:var(--primary-dark);line-height:1.2}
.logo-sub{font-size:10px;color:var(--text-muted);display:block}
.nav-links{display:flex;list-style:none}
.nav-links a{
  display:block;padding:0 15px;height:68px;line-height:68px;
  font-size:13px;color:var(--text-muted);
  border-bottom:3px solid transparent;
  transition:all .2s;white-space:nowrap;
}
.nav-links a:hover,.nav-links a.active{color:var(--primary);border-bottom-color:var(--primary)}

/* ---- HAMBURGER ---- */
.nav-toggle{
  display:none;
  flex-direction:column;justify-content:center;gap:5px;
  background:none;border:none;cursor:pointer;padding:8px;margin-left:auto;
}
.nav-toggle span{
  display:block;width:22px;height:2px;
  background:var(--primary-dark);border-radius:2px;
  transition:transform .2s,opacity .2s;
}

/* ---- PAGE SWITCH ---- */
.page{display:none}
.page.active{display:block}

/* ---- HERO ---- */
.hero{
  position:relative;min-height:500px;
  background:linear-gradient(135deg,#0a5f8f 0%,#0e7fc0 45%,#00b4d8 100%);
  display:flex;align-items:center;overflow:hidden;
}
/* FV画像 */
.hero-bg{
  position:absolute;inset:0;
  object-fit:cover;object-position:center center;
  width:100%;height:100%;
}
/* FVオーバーレイ：左は透明、右に向かって明るい青 */
.hero-overlay{
  position:absolute;inset:0;
  background:linear-gradient(90deg,
    rgba(14,127,192,.08) 0%,
    rgba(14,127,192,.18) 35%,
    rgba(14,127,192,.68) 58%,
    rgba(14,127,192,.85) 100%
  );
}
.hero-deco{position:absolute;inset:0;pointer-events:none}
.hc1{position:absolute;right:-80px;top:-80px;width:420px;height:420px;border-radius:50%;background:rgba(255,255,255,.05)}
.hc2{position:absolute;right:60px;top:60px;width:260px;height:260px;border-radius:50%;background:rgba(255,255,255,.04)}
.h-lines{position:absolute;inset:0;background:repeating-linear-gradient(90deg,rgba(255,255,255,.02) 0,rgba(255,255,255,.02) 1px,transparent 1px,transparent 60px)}
/* テキストを右寄せに */
.hero-content{
  position:relative;width:100%;max-width:1100px;margin:0 auto;
  padding:64px 2rem;color:#fff;
  display:flex;justify-content:flex-end;
}
.hero-content-inner{width:52%}
/* クレジット */
.hero-credit{
  position:absolute;bottom:14px;right:20px;
  font-size:10px;color:rgba(255,255,255,.5);
  letter-spacing:.03em;pointer-events:none;
}
.hero-badge{
  display:inline-flex;align-items:center;gap:8px;
  background:rgba(255,255,255,.15);border:1px solid rgba(255,255,255,.3);
  color:#fff;font-size:12px;font-weight:700;
  padding:5px 14px;border-radius:20px;margin-bottom:24px;letter-spacing:.08em;
}
.badge-dot{width:8px;height:8px;border-radius:50%;background:#7ce8ff;animation:pulse 2s infinite}
@keyframes pulse{0%,100%{opacity:1}50%{opacity:.4}}
.hero h1{
  font-family:'Noto Serif JP',serif;font-size:38px;font-weight:700;
  line-height:1.45;margin-bottom:16px;text-shadow:0 2px 12px rgba(0,0,0,.15);
}
.hero-sub{font-size:15px;opacity:.9;line-height:1.9;margin-bottom:32px}
.hero-stats{
  display:flex;gap:0;
  border:1px solid rgba(255,255,255,.2);border-radius:10px;
  overflow:hidden;background:rgba(255,255,255,.08);
  backdrop-filter:blur(4px);max-width:560px;
}
.h-stat{flex:1;text-align:center;padding:18px 12px;border-right:1px solid rgba(255,255,255,.15)}
.h-stat:last-child{border-right:none}
.h-stat-num{font-family:'Noto Serif JP',serif;font-size:28px;font-weight:700;color:#7ce8ff;line-height:1}
.h-stat-num small{font-size:14px}
.h-stat-label{font-size:11px;opacity:.7;margin-top:5px}

/* ---- TRUST BAR ---- */
.trust-bar{background:linear-gradient(135deg,#073d5e 0%,#0a5f8f 100%);padding:0 1.5rem}
.trust-inner{max-width:1100px;margin:0 auto;display:flex;align-items:stretch}
.trust-item{
  flex:1;display:flex;align-items:center;gap:14px;
  padding:20px 22px;border-right:1px solid rgba(255,255,255,.1);
  transition:background .2s;
}
.trust-item:last-child{border-right:none}
.trust-item:hover{background:rgba(255,255,255,.05)}
.t-line{width:2px;height:30px;background:linear-gradient(180deg,#48cae4,rgba(72,202,228,0));flex-shrink:0}
.t-label{font-size:10px;letter-spacing:.12em;color:rgba(255,255,255,.4);margin-bottom:3px}
.t-main{font-size:13px;font-weight:500;color:rgba(255,255,255,.88)}

/* ---- SECTIONS ---- */
.section{padding:80px 2rem}
.section-alt{background:var(--bg)}
.inner{max-width:1100px;margin:0 auto}
.sec-title{text-align:center;margin-bottom:52px}
.sec-title h2{
  font-family:'Noto Serif JP',serif;font-size:26px;font-weight:700;
  color:var(--primary-dark);display:inline-flex;align-items:center;gap:14px;
}
.sec-title h2::before,.sec-title h2::after{
  content:'';width:32px;height:2px;
  background:linear-gradient(90deg,var(--primary),var(--accent));border-radius:2px;
}

/* ---- HISTORY ---- */
.history-band{
  background:linear-gradient(135deg,var(--primary-light),#d6f0fa);
  border:1px solid var(--border);border-radius:12px;padding:48px 40px;
  display:grid;grid-template-columns:1fr 1fr;gap:40px;align-items:center;
}
.history-left h3{
  font-family:'Noto Serif JP',serif;font-size:21px;font-weight:700;
  color:var(--primary-dark);line-height:1.6;margin-bottom:14px;
}
.history-left p{font-size:14px;color:var(--text-muted);line-height:1.95}
.history-right{display:flex;justify-content:center;gap:16px;flex-wrap:wrap}
.h-num-card{
  text-align:center;background:var(--white);border-radius:12px;
  padding:22px 24px;border:1px solid var(--border);min-width:110px;
}
.bnum{font-family:'Noto Serif JP',serif;font-size:42px;font-weight:700;color:var(--primary);line-height:1}
.bunit{font-size:16px;color:var(--primary)}
.blabel{font-size:11px;color:var(--text-muted);margin-top:6px}

/* ---- SERVICE ---- */
.service-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.service-card{
  background:var(--white);border:1px solid var(--border);border-radius:12px;
  padding:36px 28px;text-align:center;
  transition:box-shadow .2s,transform .2s;
  position:relative;overflow:hidden;
}
.service-card::before{
  content:'';position:absolute;top:0;left:0;right:0;height:3px;
  background:linear-gradient(90deg,var(--primary),var(--accent));
}
.service-card:hover{box-shadow:0 8px 32px rgba(14,127,192,.12);transform:translateY(-4px)}
.s-icon{
  width:68px;height:68px;
  background:linear-gradient(135deg,var(--primary),var(--accent));
  border-radius:50%;margin:0 auto 18px;
  display:flex;align-items:center;justify-content:center;font-size:28px;
}
.service-card h3{font-size:16px;font-weight:700;color:var(--primary-dark);margin-bottom:12px;line-height:1.5}
.service-card p{font-size:13.5px;color:var(--text-muted);line-height:1.85}

/* ---- FEATURES ---- */
.feature-list{display:flex;flex-direction:column;gap:24px}
.feature-item{
  background:var(--white);border:1px solid var(--border);border-radius:12px;
  padding:36px;display:grid;grid-template-columns:auto 1fr;gap:28px;align-items:start;
}
.f-num{
  font-family:'Noto Serif JP',serif;font-size:52px;font-weight:700;
  color:var(--primary);opacity:.18;line-height:1;min-width:60px;
}
.f-body h3{
  font-size:19px;font-weight:700;color:var(--primary-dark);
  margin-bottom:14px;padding-bottom:12px;border-bottom:2px solid var(--accent2);
}
.f-body p{font-size:14px;color:var(--text-muted);line-height:1.95}

/* ---- NEWS ---- */
.news-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-bottom:28px}
.news-card{
  background:var(--white);border:1px solid var(--border);border-radius:10px;
  overflow:hidden;cursor:pointer;transition:box-shadow .2s,transform .2s;
}
.news-card:hover{box-shadow:0 6px 24px rgba(14,127,192,.12);transform:translateY(-3px)}

/* ---- NEWS DETAIL ---- */
.nd-header-inner{max-width:1100px;margin:0 auto}
.nd-back{
  display:inline-flex;align-items:center;gap:6px;
  font-size:13px;color:rgba(255,255,255,.65);
  cursor:pointer;margin-bottom:16px;transition:color .15s;
}
.nd-back:hover{color:#fff}
.nd-header-inner h1{font-size:24px;font-weight:700;margin-bottom:10px}
.nd-meta{display:flex;align-items:center;gap:12px}
.nd-date-text{font-size:13px;color:rgba(255,255,255,.6)}
.nd-summary{
  font-size:16px;line-height:1.85;color:var(--text-muted);
  margin-bottom:28px;padding-bottom:28px;
  border-bottom:1px solid var(--border);
}
.nd-body{
  font-size:15px;line-height:2;color:var(--text);
  white-space:pre-wrap;word-break:break-word;
  margin-bottom:40px;
}
.nd-img{width:100%;max-width:640px;border-radius:10px;display:block;margin:0 auto}
.news-thumb{
  height:110px;background:linear-gradient(135deg,var(--primary-dark),var(--accent));
  display:flex;align-items:center;justify-content:center;
}
.ndiamond{
  width:44px;height:44px;background:var(--red);
  clip-path:polygon(50% 0%,100% 50%,50% 100%,0% 50%);
  display:flex;align-items:center;justify-content:center;
  color:#fff;font-weight:700;font-size:12px;
}
.news-body{padding:16px}
.news-cat{
  display:inline-block;background:var(--primary-light);color:var(--primary);
  font-size:11px;padding:2px 10px;border-radius:10px;margin-bottom:8px;
}
.news-body h4{font-size:14px;font-weight:700;color:var(--text);margin-bottom:6px;line-height:1.5}
.news-body p{font-size:13px;color:var(--text-muted);line-height:1.7}
.news-date{font-size:12px;color:var(--text-muted);margin-top:10px;opacity:.7}
.news-more{text-align:right}

/* ---- BUTTONS ---- */
.btn{
  display:inline-flex;align-items:center;gap:6px;
  padding:12px 28px;font-size:14px;font-weight:700;
  border-radius:6px;cursor:pointer;transition:all .2s;
  border:none;font-family:'Noto Sans JP',sans-serif;
}
.btn-primary{background:linear-gradient(135deg,var(--primary),var(--accent));color:#fff}
.btn-primary:hover{opacity:.88;transform:translateY(-1px)}

/* ---- PAGE HEADER ---- */
.page-header{
  background:linear-gradient(135deg,var(--primary-dark),var(--primary));
  padding:48px 2rem;color:#fff;
}
.page-header h1{max-width:1100px;margin:0 auto;font-size:26px;font-weight:700}
.page-header p{max-width:1100px;margin:8px auto 0;font-size:14px;opacity:.8}
.content-area{max-width:1100px;margin:0 auto;padding:56px 2rem}

/* ---- ABOUT ---- */
.rep-grid{display:flex;gap:40px;align-items:flex-start;margin-bottom:56px}
.rep-img{width:200px;flex-shrink:0}
.rep-img-photo{
  width:100%;aspect-ratio:3/4;object-fit:cover;border-radius:12px;
  border:1px solid var(--border);
}
.rep-name{font-size:24px;font-weight:700;color:var(--primary-dark);margin-bottom:2px}
.rep-role{font-size:13px;color:var(--text-muted);margin-bottom:20px}
.rep-msg{font-size:14.5px;line-height:1.95;color:var(--text);margin-bottom:14px}
.co-table{width:100%;border-collapse:collapse;margin-bottom:56px}
.co-table th,.co-table td{padding:14px 20px;border:1px solid var(--border);font-size:14px;text-align:left}
.co-table th{background:var(--primary-light);color:var(--primary-dark);font-weight:700;width:180px}
.map-box{
  border:1px solid var(--border);border-radius:10px;
  height:300px;overflow:hidden;
}
.map-box iframe{display:block;width:100%;height:100%;}
.map-wrap{width:100%;overflow:hidden;border-radius:8px;margin-top:16px;}

/* ---- RECRUIT ---- */
.recruit-intro{font-size:14px;line-height:1.95;color:var(--text-muted);margin-bottom:40px}
.culture-box{
  background:var(--white);border:1px solid var(--border);border-radius:12px;
  padding:36px;margin-bottom:32px;position:relative;overflow:hidden;
}
.culture-box::before{
  content:'';position:absolute;top:0;left:0;right:0;height:3px;
  background:linear-gradient(90deg,var(--primary),var(--accent));
}
.culture-box h3{font-size:18px;font-weight:700;color:var(--primary-dark);margin-bottom:16px}
.culture-box p{font-size:14px;color:var(--text-muted);line-height:1.95;margin-bottom:12px}
.culture-img-placeholder{
  width:100%;max-width:420px;height:220px;
  background:linear-gradient(135deg,var(--primary-dark),var(--accent));
  border-radius:10px;margin:20px auto;
  display:flex;align-items:center;justify-content:center;
  color:rgba(255,255,255,.7);font-size:14px;
}
.culture-img-photo{
  width:100%;max-width:420px;border-radius:10px;
  margin:20px auto;display:block;
}

/* ---- WORKS ---- */
.works-table{width:100%;border-collapse:collapse}
.works-table th{
  background:linear-gradient(135deg,var(--primary-dark),var(--primary));
  color:#fff;padding:14px 20px;font-size:14px;font-weight:700;text-align:left;
}
.works-table td{padding:14px 20px;border:1px solid var(--border);font-size:14px}
.works-table tr:nth-child(even) td{background:var(--bg)}

/* ---- CONTACT ---- */
.contact-form{
  max-width:660px;margin:0 auto;background:var(--white);
  border:1px solid var(--border);border-radius:14px;padding:44px;
}
.form-group{margin-bottom:22px}
.form-group label{display:block;font-size:13px;font-weight:700;color:var(--primary-dark);margin-bottom:7px}
.required{color:var(--red);font-size:11px;margin-left:4px}
.form-group input,.form-group textarea{
  width:100%;padding:11px 14px;
  border:1px solid var(--border);border-radius:7px;
  font-size:14px;font-family:'Noto Sans JP',sans-serif;
  color:var(--text);transition:border-color .2s;
}
.form-group input:focus,.form-group textarea:focus{outline:none;border-color:var(--primary)}
.form-group textarea{height:150px;resize:vertical}
.check-group{display:flex;gap:24px}
.check-group label{display:flex;align-items:center;gap:7px;cursor:pointer;font-size:14px;font-weight:400}
.check-group input{width:16px;height:16px;accent-color:var(--primary)}
.form-submit{text-align:center;margin-top:28px}
.form-success{text-align:center;padding:48px 24px}
.form-success-icon{
  width:72px;height:72px;
  background:linear-gradient(135deg,var(--primary),var(--accent));
  border-radius:50%;margin:0 auto 24px;
  display:flex;align-items:center;justify-content:center;
}
.form-success h3{font-family:'Noto Serif JP',serif;font-size:22px;font-weight:700;color:var(--primary-dark);margin-bottom:14px}
.form-success p{font-size:14px;color:var(--text-muted);line-height:1.9}

/* ---- FOOTER ---- */
footer{
  background:linear-gradient(135deg,#073d5e 0%,#0a5f8f 100%);
  color:rgba(255,255,255,.75);padding:52px 2rem 28px;
}
.foot-inner{max-width:1100px;margin:0 auto}
.foot-logo{display:flex;align-items:center;gap:12px;margin-bottom:8px}
.foot-diam{
  width:38px;height:38px;background:var(--red);
  clip-path:polygon(50% 0%,100% 50%,50% 100%,0% 50%);
  display:flex;align-items:center;justify-content:center;
  color:#fff;font-weight:700;font-size:11px;
}
.foot-name{color:#fff;font-size:15px;font-weight:700}
.foot-tagline{font-size:12px;color:rgba(255,255,255,.45);margin-bottom:16px;padding-left:50px}
.foot-contact{display:flex;gap:24px;flex-wrap:wrap;margin-bottom:24px;padding-left:50px}
.foot-contact span{display:flex;align-items:center;gap:6px;font-size:13px;color:rgba(255,255,255,.7)}
.foot-contact-label{font-size:11px;font-weight:700;letter-spacing:.06em;color:rgba(255,255,255,.45)}
.foot-contact a{color:rgba(255,255,255,.7);text-decoration:none}
.foot-contact a:hover{color:#fff}
.foot-links{display:flex;gap:28px;flex-wrap:wrap;margin-bottom:36px}
.foot-links a{font-size:13px;color:rgba(255,255,255,.55);transition:color .2s}
.foot-links a:hover{color:#fff}
.foot-bottom{border-top:1px solid rgba(255,255,255,.12);padding-top:18px;font-size:12px;color:rgba(255,255,255,.3)}

/* ========================================
   モバイル対応 (〜768px)
   ======================================== */
@media (max-width:768px){

  /* NAV */
  .nav-inner{flex-wrap:wrap;height:auto;padding:10px 0;align-items:center}
  .nav-toggle{display:flex}
  .nav-links{
    display:none;flex-direction:column;width:100%;
    border-top:1px solid var(--border);margin-top:8px;
  }
  .nav-links.open{display:flex}
  .nav-links li{border-bottom:1px solid var(--border)}
  .nav-links li:last-child{border-bottom:none}
  .nav-links a{
    height:auto;line-height:1.4;padding:14px 4px;
    font-size:14px;border-bottom:none;
  }

  /* HERO */
  .hero{min-height:auto}
  .hero-bg{object-position:30% center}
  .hero-overlay{
    background:linear-gradient(180deg,
      rgba(10,95,143,.55) 0%,
      rgba(14,127,192,.82) 100%
    );
  }
  .hero-content{justify-content:flex-start;padding:40px 1.25rem 48px}
  .hero-content-inner{width:100%}
  .hero-badge{font-size:11px;padding:4px 12px;margin-bottom:16px}
  .hero h1{font-size:22px;line-height:1.55;margin-bottom:12px}
  .hero-sub{font-size:13px;margin-bottom:24px}
  .hero-stats{flex-direction:column;max-width:100%}
  .h-stat{border-right:none;border-bottom:1px solid rgba(255,255,255,.15);padding:14px}
  .h-stat:last-child{border-bottom:none}
  .h-stat-num{font-size:22px}

  /* TRUST BAR */
  .trust-inner{flex-direction:column}
  .trust-item{
    border-right:none;border-bottom:1px solid rgba(255,255,255,.1);
    padding:14px 16px;
  }
  .trust-item:last-child{border-bottom:none}
  .t-main{white-space:normal;font-size:13px}

  /* SECTIONS */
  .section{padding:44px 1.25rem}
  .sec-title{margin-bottom:36px}
  .sec-title h2{font-size:22px}

  /* HISTORY */
  .history-band{
    grid-template-columns:1fr;padding:24px 20px;gap:20px;
  }
  .history-left h3{font-size:18px}
  .history-right{gap:10px}
  .h-num-card{min-width:86px;padding:14px 10px}
  .bnum{font-size:32px}

  /* SERVICE */
  .service-grid{grid-template-columns:1fr;gap:14px}

  /* FEATURES */
  .feature-item{padding:20px 16px;gap:14px}
  .f-num{font-size:36px;min-width:44px}
  .f-body h3{font-size:16px}

  /* NEWS */
  .news-grid{grid-template-columns:1fr;gap:12px}
  /* NEWS DETAIL */
  .nd-header-inner h1{font-size:20px}
  .nd-body{font-size:14px}

  /* PAGE HEADER */
  .page-header{padding:28px 1.25rem}
  .page-header h1{font-size:22px}
  .page-header p{font-size:13px}
  .content-area{padding:32px 1.25rem}

  /* ABOUT */
  .rep-grid{flex-direction:column;gap:20px}
  .rep-img{width:auto;max-width:140px;margin:0 auto}
  .rep-name{font-size:20px}
  .co-table th{width:100px}
  .co-table th,.co-table td{padding:10px 12px;font-size:13px}

  /* RECRUIT */
  .culture-img-placeholder{height:160px;font-size:13px}

  /* WORKS */
  .works-table{display:block;overflow-x:auto;-webkit-overflow-scrolling:touch}
  .works-table th,.works-table td{padding:10px 12px;font-size:13px;white-space:nowrap}

  /* CONTACT */
  .contact-form{padding:24px 14px}
  .check-group{flex-direction:column;gap:12px}

  /* MAP */
  .map-box{height:240px}

  /* FOOTER */
  .foot-tagline{padding-left:0;font-size:11px}
  .foot-contact{padding-left:0;gap:16px}
  .foot-contact span{font-size:12px}
  .foot-links{gap:12px}
  .foot-links a{font-size:12px}
}
