/*
Theme Name: Challenbee
Description: 株式会社チャレンビー コーポレートサイト
Author: 株式会社チャレンビー
Version: 1.0.0
Text Domain: challenbee
*/

/* ===== TOKENS ===== */
:root{
  --main:#e87c0a;
  --main-light:#fff3d0;
  --main-mid:#c46200;
  --dark:#3d1f00;
  --dark2:#6b3a00;
  --bg:#fdf3e3;
  --card:#ffffff;
  --line:#f0d9b0;
  --text:#3d1f00;
  --sub:#7a5230;
  --shadow-sm:0 2px 8px rgba(61,31,0,0.07);
  --shadow-md:0 8px 28px rgba(61,31,0,0.10);
  --shadow-lg:0 18px 52px rgba(61,31,0,0.13);
  --r:20px;
  --w:1120px; /* コンテナ最大幅 */
}
/* 大画面ほどコンテナを広げる */
@media(min-width:1440px){ :root{ --w:1320px; } }
@media(min-width:1920px){ :root{ --w:1560px; } }
*{box-sizing:border-box;margin:0;padding:0;}
html{scroll-behavior:smooth;}
body{
  font-family:'Noto Sans JP',sans-serif;
  background:var(--bg);
  color:var(--text);
  line-height:1.75;
  overflow-x:hidden;
}
a{color:inherit;text-decoration:none;}
img{max-width:100%;display:block;}
.container{max-width:var(--w);margin:0 auto;padding:0 5%;}

/* ===== HEADER ===== */
header{
  background:linear-gradient(135deg,#c83200 0%,#d94800 55%,#c03000 100%);
  padding:0 5%;
  display:flex;
  justify-content:space-between;
  align-items:center;
  height:62px;
  position:sticky;top:0;z-index:100;
  box-shadow:0 4px 20px rgba(61,31,0,0.30);
  border-bottom-left-radius:16px;
  border-bottom-right-radius:16px;
}
.header-logo{
  display:flex;align-items:center;gap:8px;
}
nav{display:flex;gap:4px;align-items:center;flex-wrap:wrap;justify-content:flex-end;}
nav a{
  color:rgba(255,255,255,0.82);
  font-size:.82rem;font-weight:500;
  padding:6px 10px;border-radius:10px;
  transition:all .2s;white-space:nowrap;
}
nav a:hover{color:#fff;background:rgba(255,255,255,0.1);}
nav a.current{color:#fff;background:rgba(255,255,255,0.12);}

/* ===== HERO（トップページ） ===== */
.hero{
  position:relative;
  min-height:580px;
  display:flex;align-items:center;
  overflow:hidden;
  background:url('assets/images/city.webp') center bottom / cover no-repeat,
             url('assets/images/hero_sky_1920.webp') center / cover no-repeat;
}
.hero::before{
  content:'';
  position:absolute;inset:0;
  background:linear-gradient(
    to bottom,
    rgba(61,31,0,0.14) 0%,
    rgba(61,31,0,0.04) 40%,
    rgba(253,243,227,0.72) 75%,
    rgba(253,243,227,1) 100%
  );
  z-index:1;
}
.hero .container{position:relative;z-index:2;padding-top:72px;padding-bottom:96px;}
.hero-inner{
  display:grid;
  grid-template-columns:1.1fr 0.9fr;
  align-items:center;gap:32px;
}
.hero-eyebrow{
  display:inline-flex;align-items:center;gap:7px;
  background:var(--main);color:#fff;
  font-size:.75rem;font-weight:700;letter-spacing:.08em;
  padding:5px 14px;border-radius:100px;
  margin-bottom:18px;
}
.hero-copy h1{
  font-family:'Outfit',sans-serif;
  font-weight:900;
  font-size:clamp(1.9rem,4vw,3.4rem);
  line-height:1.12;
  color:var(--dark);
  letter-spacing:-.01em;
  margin-bottom:18px;
}
.hero-copy h1 em{
  font-style:normal;
  color:var(--main);
  position:relative;
}
.hero-copy h1 em::after{
  content:'';
  position:absolute;bottom:-4px;left:0;right:0;
  height:4px;border-radius:2px;
  background:var(--main);opacity:.35;
}
.hero-lead{
  font-size:1.02rem;color:var(--dark2);
  line-height:1.8;margin-bottom:28px;
  max-width:500px;
}
.hero-btns{display:flex;gap:12px;flex-wrap:wrap;}
.hero-visual{
  display:flex;justify-content:center;align-items:flex-end;
}
.mascot{
  width:min(420px,44vw);
  filter:drop-shadow(0 20px 28px rgba(0,0,0,0.16));
  animation:float 5s ease-in-out infinite;
  user-select:none;pointer-events:none;
}
@keyframes float{
  0%,100%{transform:translateY(0) rotate(0deg);}
  50%{transform:translateY(-14px) rotate(.6deg);}
}

/* ===== PAGE HERO（内部ページ共通） ===== */
.page-hero{
  position:relative;overflow:hidden;
  padding:72px 0 80px;
  background:center/cover no-repeat;
}
.page-hero::before{
  content:'';position:absolute;inset:0;
  background:linear-gradient(to right,rgba(20,5,0,0.78) 0%,rgba(20,5,0,0.55) 55%,rgba(20,5,0,0.20) 100%);
  pointer-events:none;
}
.page-hero::after{
  content:'';
  position:absolute;bottom:-100px;left:-80px;
  width:320px;height:320px;border-radius:50%;
  background:radial-gradient(circle,rgba(255,220,120,.10) 0%,transparent 70%);
  pointer-events:none;
}
.page-hero-inner{
  position:relative;z-index:1;
  display:grid;
  grid-template-columns:1fr auto;
  align-items:center;gap:32px;
}
.page-hero-eyebrow{
  display:inline-flex;align-items:center;gap:7px;
  background:rgba(235,132,23,.18);color:var(--main);
  border:1px solid rgba(235,132,23,.35);
  font-size:.75rem;font-weight:700;letter-spacing:.1em;
  padding:5px 14px;border-radius:100px;
  margin-bottom:16px;
  font-family:'Outfit',sans-serif;
  text-transform:uppercase;
}
.page-hero h1{
  font-family:'Outfit',sans-serif;
  font-weight:900;font-size:clamp(1.7rem,3vw,2.8rem);
  color:#fff;line-height:1.15;
  letter-spacing:-.01em;margin-bottom:16px;
}
.page-hero-lead{
  font-size:.96rem;color:rgba(255,255,255,.65);
  line-height:1.85;max-width:580px;margin-bottom:28px;
}
.page-subnav{
  display:flex;gap:8px;flex-wrap:wrap;
}
.page-subnav a{
  display:inline-flex;align-items:center;gap:5px;
  font-size:.80rem;font-weight:700;
  padding:7px 16px;border-radius:100px;
  background:rgba(255,255,255,.08);
  border:1px solid rgba(255,255,255,.12);
  color:rgba(255,255,255,.75);
  transition:all .2s;
}
.page-subnav a:hover{
  background:rgba(255,255,255,.16);
  color:#fff;
}
.page-hero-char{
  width:min(140px,16vw);
  filter:drop-shadow(0 16px 24px rgba(0,0,0,.25));
  animation:float 5s ease-in-out infinite;
  user-select:none;pointer-events:none;
  flex-shrink:0;
}

/* ===== STATS BAR ===== */
.stats-bar{
  background:linear-gradient(135deg,#4a2200 0%,#3d1f00 50%,#5a2e00 100%);
  padding:0;margin-top:-2px;
}
.stats-inner{
  display:flex;justify-content:center;align-items:stretch;
  gap:0;max-width:var(--w);margin:0 auto;
}
.stat-item{
  flex:1;display:flex;flex-direction:column;
  align-items:center;justify-content:center;
  padding:24px 16px;
  border-right:1px solid rgba(255,200,100,0.15);gap:4px;
}
.stat-item:last-child{border-right:none;}
.stat-num{
  font-family:'Outfit',sans-serif;
  font-weight:900;font-size:clamp(1.6rem,2.2vw,2.2rem);color:#fff;line-height:1;
}
.stat-num span{color:var(--main);font-size:1.3rem;}
.stat-label{font-size:.75rem;color:rgba(255,255,255,0.6);font-weight:500;letter-spacing:.04em;text-align:center;}

/* ===== SECTION COMMON ===== */
.sec{padding:80px 0;}
.sec-label{
  display:inline-flex;align-items:center;gap:6px;
  font-family:'Outfit',sans-serif;
  font-size:.78rem;font-weight:700;letter-spacing:.05em;
  color:var(--main);
  background:var(--main-light);
  border:1.5px solid #f9d49a;
  padding:4px 14px;border-radius:100px;
  margin-bottom:10px;
}
.sec-title{
  font-family:'Outfit',sans-serif;
  font-weight:900;font-size:clamp(1.4rem,2.2vw,1.9rem);
  color:var(--dark);margin-bottom:8px;line-height:1.2;
}
.sec-desc{color:var(--sub);font-size:.93rem;max-width:560px;margin-bottom:36px;}
.anchor{scroll-margin-top:80px;}

/* ===== BUTTONS ===== */
.btn-primary{
  display:inline-flex;align-items:center;gap:8px;
  padding:13px 26px;border-radius:14px;
  background:var(--main);color:#fff;
  font-weight:700;font-size:.95rem;
  box-shadow:0 6px 20px rgba(235,132,23,0.38);
  transition:all .2s;
}
.btn-primary:hover{background:var(--main-mid);transform:translateY(-2px);box-shadow:0 10px 28px rgba(235,132,23,0.45);}
.btn-ghost{
  display:inline-flex;align-items:center;gap:8px;
  padding:13px 22px;border-radius:14px;
  background:#fff;color:var(--dark);
  font-weight:700;font-size:.95rem;
  border:1.5px solid var(--line);
  transition:all .2s;
}
.btn-ghost:hover{background:var(--bg);transform:translateY(-2px);box-shadow:var(--shadow-md);}

/* ===== BUSINESS CARDS ===== */
.biz-sec{background:var(--bg);}
.biz-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;}
.biz-card{
  background:var(--card);border-radius:var(--r);
  overflow:hidden;box-shadow:var(--shadow-md);
  border:1.5px solid var(--line);
  text-decoration:none;color:var(--text);
  transition:all .25s;display:flex;flex-direction:column;
}
.biz-card:hover{transform:translateY(-8px);box-shadow:var(--shadow-lg);border-color:var(--main);}
.biz-thumb{aspect-ratio:16/9;display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden;}
.biz-card:nth-child(1) .biz-thumb{background:linear-gradient(135deg,#d6f5e3,#edfbf3);}
.biz-card:nth-child(2) .biz-thumb{background:linear-gradient(135deg,#ffe0c4,#fff5ec);}
.biz-card:nth-child(3) .biz-thumb{background:linear-gradient(135deg,#ffeaa0,#fffbe6);}
.biz-thumb img{max-height:85%;width:auto;object-fit:contain;filter:drop-shadow(0 10px 18px rgba(0,0,0,0.13));transition:transform .3s;}
.biz-card:hover .biz-thumb img{transform:scale(1.07) translateY(-4px);}
.biz-body{padding:22px 24px 28px;}
.biz-tag{display:inline-block;font-size:.72rem;font-weight:700;letter-spacing:.06em;padding:3px 10px;border-radius:100px;margin-bottom:10px;}
.biz-card:nth-child(1) .biz-tag{background:#d6f5e3;color:#1a7a42;}
.biz-card:nth-child(2) .biz-tag{background:#ffe0c4;color:#a85200;}
.biz-card:nth-child(3) .biz-tag{background:#ffeaa0;color:#7a4a00;}
.biz-body h3{font-family:'Outfit',sans-serif;font-weight:900;font-size:1.15rem;margin-bottom:8px;color:var(--dark);}
.biz-body p{font-size:.88rem;color:var(--sub);line-height:1.7;margin-bottom:18px;}
.biz-link{display:inline-flex;align-items:center;gap:6px;font-size:.84rem;font-weight:700;color:var(--main);margin-top:auto;}
.biz-link svg{transition:transform .2s;}
.biz-card:hover .biz-link svg{transform:translateX(4px);}

/* ===== STRENGTHS ===== */
.strength-sec{background:#fff;}
.str-list{display:flex;flex-direction:column;gap:0;border:1.5px solid var(--line);border-radius:20px;overflow:hidden;}
.str-row{display:grid;grid-template-columns:64px 1fr auto;align-items:center;gap:0;padding:28px 32px;border-bottom:1.5px solid var(--line);background:#fff;transition:background .2s;}
.str-row:last-child{border-bottom:none;}
.str-row:hover{background:#fffbf3;}
.str-icon-wrap{width:48px;height:48px;background:var(--main-light);border-radius:14px;display:flex;align-items:center;justify-content:center;font-size:1.6rem;flex-shrink:0;}
.str-content{padding:0 24px;}
.str-content h4{font-family:'Outfit',sans-serif;font-weight:700;font-size:1.02rem;color:var(--dark);margin-bottom:5px;}
.str-content p{font-size:.87rem;color:var(--sub);line-height:1.7;margin:0;}
.str-badge{font-size:.72rem;font-weight:700;padding:4px 12px;border-radius:100px;white-space:nowrap;flex-shrink:0;border:1.5px solid;}
.str-badge.green{color:#1a7a42;background:#d6f5e3;border-color:#a8e6c0;}
.str-badge.blue{color:#7a4a00;background:#ffeaa0;border-color:#f5c842;}
.str-badge.orange{color:#a85200;background:#ffe0c4;border-color:#ffc49a;}

/* ===== PHILOSOPHY ===== */
.phi-sec{background:linear-gradient(160deg,#3d1f00 0%,#4a2800 50%,#5a3000 100%);position:relative;overflow:hidden;}
.phi-sec::before{content:'';position:absolute;top:-200px;right:-200px;width:600px;height:600px;border-radius:50%;background:radial-gradient(circle,rgba(235,132,23,.12) 0%,transparent 70%);pointer-events:none;}
.phi-sec::after{content:'';position:absolute;bottom:-150px;left:-100px;width:400px;height:400px;border-radius:50%;background:radial-gradient(circle,rgba(255,200,80,.10) 0%,transparent 70%);pointer-events:none;}
.phi-sec .sec-label{color:rgba(235,132,23,.9);}
.phi-sec .sec-title{color:#fff;}
.phi-sec .sec-desc{color:rgba(255,255,255,.55);}
.phi-quote-block{position:relative;text-align:center;padding:52px 40px;margin-bottom:48px;}
.phi-quote-mark{font-family:'Outfit',sans-serif;font-size:8rem;line-height:.6;color:var(--main);opacity:.25;position:absolute;top:20px;left:40px;pointer-events:none;user-select:none;}
.phi-big-quote{font-family:'Outfit',sans-serif;font-weight:900;font-size:clamp(1.6rem,3.2vw,2.6rem);color:#fff;line-height:1.45;letter-spacing:-.01em;position:relative;z-index:1;}
.phi-big-quote em{font-style:normal;color:var(--main);}
br.sp-br{display:none;}
.phi-mvv{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1px;background:rgba(255,200,100,.12);border-radius:16px;overflow:hidden;border:1px solid rgba(255,200,100,.15);}
.phi-mvv-item{background:rgba(255,200,100,.06);padding:24px 26px;transition:background .2s;}
.phi-mvv-item:hover{background:rgba(255,200,100,.12);}
.phi-mvv-label{display:flex;align-items:center;gap:10px;margin-bottom:10px;}
.phi-mvv-word{font-family:'Outfit',sans-serif;font-weight:900;font-size:1.1rem;color:var(--main);}
.phi-mvv-emoji{font-size:1.5rem;line-height:1;}
.phi-mvv-item h4{font-weight:700;font-size:.90rem;color:rgba(255,255,255,.90);margin-bottom:6px;}
.phi-mvv-item p{font-size:.80rem;color:rgba(255,255,255,.50);line-height:1.7;margin:0;}

/* ===== MESSAGE（代表メッセージ） ===== */
.msg-sec{background:#fff;}
.msg-inner{
  display:grid;
  grid-template-columns:260px 1fr 1fr;
  gap:36px;align-items:start;
}
.msg-photo-col{display:flex;flex-direction:column;align-items:center;gap:0;}
.msg-photo-wrap{
  width:100%;border-radius:20px;overflow:hidden;
  box-shadow:var(--shadow-lg);border:3px solid #fff;aspect-ratio:3/4;
}
.msg-photo-wrap img{width:100%;height:100%;object-fit:cover;object-position:top center;display:block;}
.msg-name-card{
  margin-top:16px;background:#fff;
  border:1.5px solid var(--line);border-radius:14px;
  padding:16px 20px;width:100%;text-align:center;
}
.msg-name-card .title{font-size:.78rem;color:var(--sub);font-weight:500;letter-spacing:.04em;margin-bottom:5px;}
.msg-name-card .name{font-family:'Outfit',sans-serif;font-weight:700;font-size:.98rem;color:var(--dark);}
.msg-text .msg-quote{
  font-size:clamp(1.05rem,1.8vw,1.35rem);font-weight:700;color:var(--dark);line-height:1.55;
  border-left:4px solid var(--main);padding-left:20px;margin-bottom:20px;
}
.msg-text p{color:var(--sub);line-height:1.85;font-size:.93rem;}
.msg-actions{margin-top:40px;margin-bottom:16px;display:flex;gap:12px;flex-wrap:wrap;}
.msg-card-wrap{display:flex;flex-direction:column;gap:14px;}
.msg-card{
  background:#fff;border:1.5px solid var(--line);border-radius:16px;
  padding:18px 20px;display:flex;align-items:flex-start;gap:14px;transition:all .2s;
}
.msg-card:hover{border-color:var(--main);box-shadow:var(--shadow-md);}
.msg-card-icon{
  width:40px;height:40px;flex-shrink:0;background:var(--main-light);
  border-radius:12px;display:flex;align-items:center;justify-content:center;font-size:1.2rem;
}
.msg-card h4{font-weight:700;color:var(--dark);margin-bottom:3px;font-size:.92rem;}
.msg-card p{font-size:.81rem;color:var(--sub);line-height:1.6;}

/* ===== NEWS ===== */
.news-sec{background:var(--bg);}
.news-list{display:flex;flex-direction:column;gap:0;border:1.5px solid var(--line);border-radius:var(--r);overflow:hidden;}
.news-item{display:grid;grid-template-columns:120px 80px 1fr auto;align-items:center;gap:16px;padding:18px 24px;border-bottom:1.5px solid var(--line);background:#fff;transition:background .2s;}
.news-item:last-child{border-bottom:none;}
.news-item:hover{background:var(--bg);}
.news-date{font-family:'Outfit',sans-serif;font-size:.82rem;color:var(--sub);font-weight:500;}
.news-cat{font-size:.70rem;font-weight:700;padding:3px 10px;border-radius:100px;background:var(--main-light);color:var(--main);white-space:nowrap;}
.news-title{font-size:.90rem;color:var(--dark);font-weight:500;}
.news-arrow{color:var(--main);font-size:.85rem;}

/* ===== MAP ===== */
.map-sec{background:var(--bg);}
.map-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px;}
.map-card{background:#fff;border:1.5px solid var(--line);border-radius:var(--r);overflow:hidden;}
.map-card-label{padding:16px 20px;border-top:1.5px solid var(--line);}
.map-card-label strong{display:block;font-size:.88rem;font-weight:700;color:var(--dark);}
.map-card-label small{font-size:.78rem;color:var(--sub);}
.map-frame{width:100%;height:240px;border:0;display:block;}

/* ===== 連絡先カード ===== */
.contact-sec{background:#fff;}
.contact-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:16px;}
.info-card{
  background:var(--bg);border:1.5px solid var(--line);
  border-radius:16px;padding:22px;transition:border-color .2s;
}
.info-card:hover{border-color:var(--dark);}
.info-card h4{
  font-weight:700;font-size:.95rem;color:var(--dark);
  margin-bottom:14px;padding-bottom:10px;
  border-bottom:1.5px solid var(--line);
}
.kv{
  display:grid;grid-template-columns:48px 1fr;
  gap:6px 10px;padding:7px 0;
  border-bottom:1px dashed var(--line);
  align-items:baseline;font-size:.84rem;
}
.kv:last-child{border-bottom:none;}
.kv b{color:var(--sub);font-size:.76rem;font-weight:700;letter-spacing:.04em;}
.kv a{color:var(--main);font-weight:700;}
.kv a:hover{text-decoration:underline;}
.kv span{color:var(--text);}

/* ===== 拠点MAP（3列） ===== */
.maps{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px;}
.map-head{padding:14px 18px;border-bottom:1.5px solid var(--line);}
.map-head b{font-size:.90rem;color:var(--dark);display:block;}
.map-head small{display:block;font-size:.78rem;color:var(--sub);margin-top:2px;}
iframe.map-frame{width:100%;height:220px;border:0;display:block;}

/* ===== 会社情報テーブル ===== */
.info-sec{background:#fff;}
.info-table-wrap{background:#fff;border:1.5px solid var(--line);border-radius:var(--r);overflow:hidden;}
.info-row{display:grid;grid-template-columns:180px 1fr;border-bottom:1.5px solid var(--line);}
.info-row:last-child{border-bottom:none;}
.info-label{background:var(--bg);padding:20px 24px;font-size:.85rem;font-weight:700;color:var(--dark);letter-spacing:.03em;display:flex;align-items:center;border-right:1.5px solid var(--line);}
.info-value{padding:20px 28px;font-size:.92rem;color:var(--text);display:flex;align-items:center;line-height:1.7;}
.info-value a{color:var(--main);font-weight:700;}
.info-value a:hover{text-decoration:underline;}

/* ===== アクセス ===== */
.access-sec{background:var(--bg);}
.access-inner{display:grid;grid-template-columns:1fr 1fr;gap:24px;}
.access-info{background:#fff;border:1.5px solid var(--line);border-radius:var(--r);padding:32px;}
.access-info h3{font-family:'Outfit',sans-serif;font-weight:700;font-size:1.05rem;color:var(--dark);margin-bottom:20px;padding-bottom:14px;border-bottom:1.5px solid var(--line);}
.access-list{list-style:none;display:flex;flex-direction:column;gap:14px;}
.access-item{display:flex;align-items:flex-start;gap:12px;font-size:.88rem;}
.access-item-icon{width:32px;height:32px;flex-shrink:0;background:var(--main-light);border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:1rem;}
.access-item-text dt{font-weight:700;color:var(--dark);font-size:.85rem;}
.access-item-text dd{color:var(--sub);font-size:.84rem;margin:2px 0 0;}
.map-placeholder{background:#fff;border:1.5px solid var(--line);border-radius:var(--r);overflow:hidden;display:flex;flex-direction:column;}
.map-placeholder-label{padding:16px 24px;border-top:1.5px solid var(--line);}
.map-placeholder-label small{font-size:.78rem;color:var(--sub);}

/* ===== CTA ===== */
.cta-sec{background:var(--dark);position:relative;overflow:hidden;}
.cta-sec::before{content:'';position:absolute;top:-100px;right:-100px;width:350px;height:350px;border-radius:50%;background:radial-gradient(circle,rgba(235,132,23,.12) 0%,transparent 70%);}
.cta-inner{position:relative;z-index:1;display:flex;align-items:center;justify-content:space-between;gap:32px;flex-wrap:wrap;padding:56px 0;}
.cta-text .cta-label{font-family:'Outfit',sans-serif;font-size:.72rem;font-weight:700;letter-spacing:.12em;color:var(--main);text-transform:uppercase;margin-bottom:8px;}
.cta-text h2{font-family:'Outfit',sans-serif;font-weight:900;font-size:1.7rem;color:#fff;line-height:1.3;margin-bottom:8px;}
.cta-text p{font-size:.90rem;color:rgba(255,255,255,.55);}
.cta-btns{display:flex;gap:12px;flex-wrap:wrap;}

/* ===== FOOTER ===== */
footer{
  background:linear-gradient(160deg,#1e0800 0%,#2e1200 60%,#3a1800 100%);
  padding:56px 5% 32px;
  border-top:1px solid rgba(255,255,255,.06);
}
.footer-inner{
  max-width:var(--w);margin:0 auto;
  display:grid;grid-template-columns:1.6fr 1fr 1fr;gap:36px;
  padding-bottom:32px;
  border-bottom:1px solid rgba(255,200,100,0.15);
}
.footer-brand{font-family:'Outfit',sans-serif;font-weight:900;font-size:1.2rem;color:#fff;margin-bottom:12px;}
.footer-brand .dot{color:var(--main);}
.footer-text{font-size:.84rem;color:rgba(255,255,255,.55);line-height:1.8;}
.footer-col h5{font-size:.80rem;font-weight:700;letter-spacing:.08em;color:rgba(255,255,255,.5);text-transform:uppercase;margin-bottom:14px;}
.footer-col a{display:block;color:rgba(255,255,255,.72);font-size:.86rem;padding:4px 0;transition:color .2s;}
.footer-col a:hover{color:#fff;}
.footer-bottom{max-width:var(--w);margin:0 auto;padding-top:24px;font-size:.78rem;color:rgba(255,255,255,.35);text-align:center;}

/* ===== HAMBURGER / MOBILE DRAWER ===== */
.nav-toggle{
  display:none;
  flex-direction:column;justify-content:center;align-items:center;gap:5px;
  width:42px;height:42px;
  background:rgba(255,255,255,0.15);
  border:1.5px solid rgba(255,255,255,0.3);
  border-radius:10px;cursor:pointer;padding:0;
  flex-shrink:0;
}
.nav-toggle span{
  display:block;width:20px;height:2px;
  background:#fff;border-radius:2px;
  transition:transform .3s,opacity .3s;
}
.nav-toggle.is-open span:nth-child(1){transform:translateY(7px) rotate(45deg);}
.nav-toggle.is-open span:nth-child(2){opacity:0;transform:scaleX(0);}
.nav-toggle.is-open span:nth-child(3){transform:translateY(-7px) rotate(-45deg);}

/* オーバーレイ */
.nav-overlay{
  display:none;position:fixed;inset:0;
  background:rgba(0,0,0,0.5);z-index:199;
  opacity:0;transition:opacity .3s;
}
.nav-overlay.is-open{display:block;opacity:1;}

/* ドロワー本体（右スライド） */
.nav-drawer{
  position:fixed;top:0;right:0;width:min(300px,82vw);height:100%;
  background:#fff;z-index:200;
  box-shadow:-6px 0 30px rgba(0,0,0,0.15);
  transform:translateX(110%);
  transition:transform .32s cubic-bezier(.4,0,.2,1);
  overflow-y:auto;
}
.nav-drawer.is-open{transform:translateX(0);}

.nav-drawer-inner{display:flex;flex-direction:column;min-height:100%;padding:0 0 32px;}

.nav-drawer-header{
  display:flex;justify-content:space-between;align-items:center;
  padding:16px 20px;
  background:linear-gradient(135deg,#c83200 0%,#d94800 55%,#c03000 100%);
}
.nav-drawer-close{
  display:flex;align-items:center;justify-content:center;
  width:36px;height:36px;border-radius:8px;
  background:rgba(255,255,255,0.15);border:none;cursor:pointer;
  color:#fff;flex-shrink:0;
}
.nav-drawer-close:hover{background:rgba(255,255,255,0.25);}

.nav-drawer-nav{display:flex;flex-direction:column;padding:12px 16px;gap:4px;flex:1;}
.nav-drawer-nav a{
  display:flex;align-items:center;gap:12px;
  padding:13px 14px;border-radius:12px;
  text-decoration:none;color:var(--dark);
  font-size:.97rem;font-weight:600;
  border:1.5px solid transparent;
  transition:all .18s;
}
.nav-drawer-nav a:hover,.nav-drawer-nav a.current{
  background:rgba(235,132,23,0.07);
  border-color:rgba(235,132,23,0.22);
  color:var(--main);
}
.nd-icon{font-size:1.1rem;width:24px;text-align:center;flex-shrink:0;}

.nav-drawer-cta{
  display:flex;align-items:center;justify-content:center;gap:8px;
  margin:8px 16px 0;padding:14px;border-radius:14px;
  background:var(--main);color:#fff;
  text-decoration:none;font-weight:700;font-size:.97rem;
  box-shadow:0 6px 18px rgba(235,132,23,0.35);
  transition:background .2s;
}
.nav-drawer-cta:hover{background:#c87010;}
.nav-drawer-copy{
  text-align:center;font-size:.75rem;color:#aaa;
  margin-top:auto;padding-top:24px;
}

/* ===== RESPONSIVE ===== */

/* ── タブレット（〜980px） ── */
@media(max-width:980px){
  header{padding:0 4%;}
  nav a{font-size:.78rem;padding:5px 8px;}
  .hero-inner{grid-template-columns:1fr;}
  .hero-visual{display:none;}
  .page-hero-inner{grid-template-columns:1fr;}
  .page-hero-char{display:none;}
  .str-row{grid-template-columns:64px 1fr;padding:20px 20px;}
  .str-badge{display:none;}
  .msg-inner{grid-template-columns:1fr !important;}
  .msg-photo-wrap{aspect-ratio:4/3;max-width:340px;margin:0 auto;}
  .news-item{grid-template-columns:100px 70px 1fr;gap:10px;}
  .news-arrow{display:none;}
  .map-grid{grid-template-columns:1fr;}
  .access-inner{grid-template-columns:1fr;}
  .info-row{grid-template-columns:140px 1fr;}
  .footer-inner{grid-template-columns:1fr;}
  .sec{padding:60px 0;}
  .cta-inner{flex-direction:column;text-align:center;}
  .stats-inner{flex-wrap:wrap;}
  .stat-item{min-width:50%;border-right:none;border-bottom:1px solid rgba(255,200,100,0.15);}
}

/* ── スマホ：ハンバーガー有効化（〜768px） ── */
@media(max-width:768px){
  header{height:62px;padding:0 5%;flex-direction:row !important;gap:0 !important;}
  #globalNav{display:none !important;}
  .nav-drawer-nav{display:flex !important;}
  .nav-toggle{display:flex;}
}

/* ── スマートフォン横（〜640px） ── */
@media(max-width:640px){
  .container{padding:0 4%;}
  .hero{min-height:auto;padding:24px 0 48px;}
  .hero .container{padding-top:24px;padding-bottom:48px;}
  .page-hero{padding:52px 0 60px;}
  .sec{padding:48px 0;}
  .info-row{grid-template-columns:1fr;}
  .info-label{border-right:none;border-bottom:1px solid var(--line);padding:14px 20px;}
  .info-value{padding:14px 20px;}
  .news-item{grid-template-columns:1fr;gap:6px;}
  .news-date,.news-cat{font-size:.75rem;}
  .str-row{padding:16px;}
  .phi-quote-block{padding:24px 20px;margin-bottom:20px;}
  .phi-quote-mark{font-size:4rem;top:10px;left:16px;}
  .phi-big-quote{font-size:1.1rem;}
  br.sp-br{display:inline;}
  .phi-mvv-item{padding:18px 20px;}
  .cta-text h2{font-size:clamp(1.2rem,4vw,1.7rem);}
  .footer-inner{grid-template-columns:1fr 1fr !important;gap:24px 16px;}
  .footer-inner > div:first-child{grid-column:1 / -1;}
  .footer-col h5{margin-bottom:8px;}
  .btn-primary,.btn-ghost{width:100%;justify-content:center;}
  .hero-btns{flex-direction:column;}
}

/* ── スマートフォン縦（〜400px） ── */
@media(max-width:400px){
  .sec-title{font-size:1.3rem;}
  .stat-item{min-width:100%;}
}
