:root {
  --sky:        #2ea8dc;
  --sky-mid:    #1a8abf;
  --sky-deep:   #0e6a9c;
  --sky-light:  #72c8f0;
  --sky-pale:   #c4e8f8;
  --sky-bg:     #eef8fd;
  --card-bg1:   #f0f8fd;
  --card-bg2:   #e0f2fb;
  --gold:       #d4a827;
  --gold-light: #f0c840;
  --navy:       #0a2e50;
  --white:      #ffffff;
  --text:       #0b2840;
  --text-mid:   #2a5878;
  --text-soft:  #5a8aaa;
  --border:     #cce8f5;
}
*{margin:0;padding:0;box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{font-family:'Meiryo','メイリオ','Noto Sans JP',sans-serif;color:var(--text);background:var(--white);overflow-x:hidden;}

/* ===== NAV ===== */
nav{
  display:none;
  position:fixed;top:0;left:0;right:0;z-index:1000;
  background:rgba(255,255,255,0.97);
  backdrop-filter:blur(14px);
  border-bottom:2px solid var(--sky-pale);
  padding:0 1.8rem;height:90px;
  display:flex;align-items:center;justify-content:space-between;
  box-shadow:0 2px 20px rgba(46,168,220,0.1);
}
.nav-logo{display:flex;align-items:center;gap:1rem;}
.nav-logo img{height:80px;width:auto;display:block;}
.nav-logo-text{display:flex;flex-direction:column;justify-content:center;border-left:2.5px solid var(--sky-pale);padding-left:1.2rem;gap:0.3rem;}
.nav-logo-cert{
  font-family:'Meiryo','メイリオ','Noto Sans JP',sans-serif;
  font-size:0.936rem;font-weight:700;
  color:var(--sky-mid);letter-spacing:0.08em;
  background:linear-gradient(90deg,rgba(46,168,220,0.12),rgba(46,168,220,0.04));
  border:1.5px solid var(--sky-pale);
  padding:0.25rem 0.8rem;border-radius:20px;
  display:inline-block;white-space:nowrap;
}
.nav-logo-name{font-family:'Meiryo','メイリオ','Noto Sans JP',sans-serif;font-size:1.26rem;font-weight:700;color:var(--navy);letter-spacing:0.05em;white-space:nowrap;}
.nav-links{display:flex;align-items:center;gap:1.15rem;list-style:none;white-space:nowrap;}
.nav-links a{font-family:'Meiryo','メイリオ','Noto Sans JP',sans-serif;color:var(--text-mid);text-decoration:none;font-size:1.08rem;letter-spacing:0.03em;font-weight:700;transition:color 0.2s;white-space:nowrap;}
.nav-links a:hover{color:var(--sky);}
.nav-cta{
  background:linear-gradient(135deg,var(--sky),var(--sky-deep)) !important;
  color:var(--white) !important;padding:0.55rem 1.05rem;
  border-radius:30px;font-weight:700 !important;font-size:1.03rem !important;
  letter-spacing:0.06em !important;
  box-shadow:0 4px 15px rgba(46,168,220,0.35);
  transition:all 0.2s !important;
}
.nav-cta:hover{opacity:0.88 !important;box-shadow:0 6px 20px rgba(46,168,220,0.5) !important;transform:translateY(-1px);}

/* ===== ハンバーガーボタン（デスクトップでは非表示） ===== */
.nav-hamburger{
  display:none;
  flex-direction:column;justify-content:center;gap:5px;
  background:none;border:none;cursor:pointer;
  padding:8px;border-radius:8px;
  transition:background 0.2s;
}
.nav-hamburger:hover{background:var(--sky-bg);}
.nav-hamburger span{
  display:block;width:24px;height:2px;
  background:var(--navy);border-radius:2px;
  transition:transform 0.3s, opacity 0.3s;
}
.nav-hamburger.is-open span:nth-child(1){transform:rotate(45deg) translate(5px,5px);}
.nav-hamburger.is-open span:nth-child(2){opacity:0;}
.nav-hamburger.is-open span:nth-child(3){transform:rotate(-45deg) translate(5px,-5px);}


/* ===== HERO — 添付画像版 ===== */
.hero{
  min-height:100vh;
  background-image:url("../images/hero-bg.png");
  background-size:cover;
  background-position:center center;
  background-repeat:no-repeat;
  position:relative;
  display:flex;
  align-items:center;
  overflow:hidden;
  padding-top:0;
}
.hero::after{
  content:'';
  position:absolute;
  inset:0;
  background:linear-gradient(90deg, rgba(255,255,255,0) 0%, rgba(255,255,255,0) 50%, rgba(255,255,255,0.18) 70%, rgba(255,255,255,0.28) 100%),
  linear-gradient(rgba(255,255,255,0.07), rgba(255,255,255,0.07)),
  linear-gradient(90deg, rgba(245,251,255,0.18) 0%, rgba(245,251,255,0.04) 42%, rgba(255,255,255,0) 100%);
  pointer-events:none;
}
.hero-deco,.hero-wave-bottom,.hero-portrait,.hero-badge{display:none!important;}
.hero-container{
  position:relative;z-index:2;
  max-width:1200px;margin:0;
  padding:12vh 0 10vh 5.6vw;
  display:block;width:58%;
}
.hero-text{max-width:620px;}
.hero-tagline{
  font-family:'Meiryo','メイリオ',sans-serif;
  font-size:clamp(2rem,3.2vw,3.6rem);
  font-weight:800;
  color:#08375f;
  line-height:1.5;
  margin-bottom:2.5rem;
  letter-spacing:0.04em;
}
.hero-tagline span{
  background:linear-gradient(135deg,#24a9e0,#0871b6);
  -webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;
}
.hero-desc{
  color:#073b70;
  font-size:clamp(1rem,1.42vw,1.65rem);
  line-height:2.0;
  margin-bottom:3.8rem;
  max-width:620px;
  font-weight:800;
  letter-spacing:0.04em;
}
.hero-actions{display:flex;gap:1.4rem;flex-wrap:wrap;}
.btn-primary{
  background:linear-gradient(135deg,#25aee4,#006fb0);
  color:#fff;padding:1rem 2.2rem;border-radius:34px;
  text-decoration:none;font-size:clamp(1rem,1.3vw,1.45rem);font-weight:800;letter-spacing:0.06em;
  box-shadow:0 10px 24px rgba(0,111,176,0.28);transition:all 0.2s;
  display:inline-flex;align-items:center;gap:0.4rem;
}
.btn-secondary{
  background:rgba(255,255,255,0.85);color:#0871b6;
  padding:1rem 2.2rem;border-radius:34px;
  text-decoration:none;font-size:clamp(1rem,1.3vw,1.45rem);font-weight:800;letter-spacing:0.06em;
  border:2px solid #19a4de;transition:all 0.2s;
  display:inline-flex;align-items:center;gap:0.4rem;
}

/* ===== COMMON ===== */
.section{padding:6rem 2rem;}
.section-inner{max-width:1200px;margin:0 auto;}
.section-header{text-align:center;margin-bottom:4rem;}
.section-eyebrow{font-size:0.816rem;letter-spacing:0.25em;color:var(--sky);font-weight:700;text-transform:uppercase;margin-bottom:0.6rem;}
.section-title{font-family:'Meiryo','メイリオ',sans-serif;font-size:2.28rem;font-weight:700;color:#071e36;line-height:1.45;margin-bottom:0.8rem;}
.section-title-line{width:40px;height:3px;background:linear-gradient(90deg,var(--sky),var(--sky-light));border-radius:2px;margin:0.8rem auto 0;}
.section-desc{color:#3a6882;font-size:1.056rem;line-height:1.9;max-width:580px;margin:1rem auto 0;}

/* ===== VALUES — 名刺グラデ風カード ===== */
.values{
  background:
    radial-gradient(ellipse 70% 60% at 100% 0%, rgba(46,168,220,0.12) 0%, transparent 55%),
    radial-gradient(ellipse 50% 50% at 0% 100%, rgba(114,200,240,0.1) 0%, transparent 50%),
    linear-gradient(160deg,var(--white) 0%,var(--sky-bg) 100%);
}
.values-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:2rem;}
.value-card{
  background:linear-gradient(145deg,var(--white) 60%,rgba(196,232,248,0.4) 100%);
  padding:2.5rem 2rem;border-radius:20px;
  border:1.5px solid var(--border);
  border-top:4px solid var(--sky);
  transition:transform 0.25s,box-shadow 0.25s;
  box-shadow:0 4px 20px rgba(46,168,220,0.07);
  position:relative;overflow:hidden;
}
.value-card::after{
  content:'';position:absolute;top:-60px;right:-60px;
  width:140px;height:140px;border-radius:50%;
  background:radial-gradient(circle,rgba(46,168,220,0.1) 0%,transparent 70%);
}
.value-card:hover{transform:translateY(-6px);box-shadow:0 18px 45px rgba(46,168,220,0.15);}
.value-icon{width:52px;height:52px;background:linear-gradient(135deg,var(--sky),var(--sky-deep));border-radius:14px;display:flex;align-items:center;justify-content:center;margin-bottom:1.2rem;font-size:1.68rem;box-shadow:0 4px 15px rgba(46,168,220,0.3);}
.value-title{font-size:1.2rem;font-weight:700;color:var(--navy);margin-bottom:0.7rem;letter-spacing:0.04em;}
.value-text{font-size:0.984rem;color:var(--text-soft);line-height:1.85;}

/* ===== SERVICES ===== */
.services{background:var(--white);}
.services-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem;}
.service-head{display:flex;align-items:center;gap:0.8rem;margin-bottom:0.8rem;}
.service-num{margin-bottom:0;}
.service-icon{
  display:flex;align-items:center;justify-content:center;
  width:58px;height:58px;
  font-size:2.65rem;line-height:1;
  flex-shrink:0;
}
.service-item{
  padding:2rem 1.8rem;
  background:linear-gradient(145deg,var(--white),var(--card-bg1));
  border:1.5px solid var(--border);border-radius:16px;
  transition:all 0.25s;position:relative;overflow:hidden;
}
.service-item::before{
  content:'';position:absolute;bottom:0;right:0;
  width:100px;height:100px;border-radius:50%;
  background:radial-gradient(circle,rgba(46,168,220,0.08) 0%,transparent 70%);
  transition:all 0.3s;
}
.service-item::after{
  content:'';position:absolute;bottom:0;left:0;right:0;height:3px;
  background:linear-gradient(90deg,var(--sky),var(--sky-light));
  transform:scaleX(0);transform-origin:left;transition:transform 0.3s;
}
.service-item:hover{border-color:var(--sky-pale);box-shadow:0 12px 38px rgba(46,168,220,0.13);transform:translateY(-3px);}
.service-item:hover::after{transform:scaleX(1);}
.service-num{font-family:'Meiryo','メイリオ',sans-serif;font-size:2.64rem;font-weight:400;color:#a8d8f0;line-height:1;margin-bottom:0.4rem;}
.service-title{font-size:1.2rem;font-weight:700;color:#071e36;margin-bottom:0.6rem;letter-spacing:0.04em;}
.service-text{font-size:1.05rem;color:#2a4a62;line-height:1.85;}

/* ===== STRENGTHS — 名刺の濃い青グラデ ===== */
.strengths{
  background:
    radial-gradient(ellipse 75% 65% at 10% 15%, rgba(255,255,255,0.16) 0%, transparent 52%),
    radial-gradient(ellipse 55% 55% at 88% 22%, rgba(114,200,240,0.28) 0%, transparent 50%),
    radial-gradient(ellipse 52% 58% at 82% 82%, rgba(255,255,255,0.08) 0%, transparent 50%),
    linear-gradient(160deg,#2e95d6 0%,#2a79bf 48%,#1f5ea3 100%);
  position:relative;overflow:hidden;
}
.strengths .section-title{color:var(--white);}
.strengths .section-desc{color:rgba(255,255,255,0.75);font-size:1.3rem;}
.strengths-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1.5rem;}
.strength-card{
  background:linear-gradient(145deg,rgba(255,255,255,0.07),rgba(46,168,220,0.05));
  border:1px solid rgba(255,255,255,0.1);
  padding:2rem 1.5rem;border-radius:16px;text-align:center;
  transition:all 0.25s;backdrop-filter:blur(4px);
  position:relative;overflow:hidden;
}
.strength-card::after{
  content:'';position:absolute;top:-40px;right:-40px;
  width:120px;height:120px;border-radius:50%;
  background:radial-gradient(circle,rgba(114,200,240,0.12) 0%,transparent 70%);
}
.strength-card:hover{background:linear-gradient(145deg,rgba(46,168,220,0.15),rgba(114,200,240,0.1));border-color:rgba(114,200,240,0.4);transform:translateY(-4px);}
.strength-num{font-family:'Meiryo','メイリオ',sans-serif;font-size:4rem;font-weight:700;color:var(--sky-light);line-height:1;margin-bottom:0.3rem;}
.strength-unit{font-size:1.2rem;color:var(--sky-light);}
.strength-title{font-size:1.05rem;font-weight:700;color:var(--white);margin:0.8rem 0 0.5rem;letter-spacing:0.02em;white-space:nowrap;}
.strength-text{font-size:0.9rem;color:rgba(255,255,255,0.75);line-height:1.8;}

/* ===== PROFILE ===== */
.profile{
  background:
    radial-gradient(ellipse 80% 60% at 100% 50%, rgba(46,168,220,0.1) 0%, transparent 55%),
    linear-gradient(160deg,var(--white) 0%,var(--sky-bg) 100%);
}
.profile-inner{display:grid;grid-template-columns:1fr 1.7fr;gap:5rem;align-items:start;}
.profile-portrait{position:sticky;top:90px;}
.profile-img-wrap{position:relative;margin-bottom:1.5rem;}
.profile-img{
  width:100%;border-radius:20px;display:block;
  border:3px solid var(--white);
  box-shadow:0 15px 50px rgba(46,168,220,0.2);
}
.profile-img-label{
  position:absolute;bottom:0;left:0;right:0;
  background:linear-gradient(to top,rgba(10,46,80,0.92),transparent);
  padding:2.5rem 1.5rem 1.5rem;border-radius:0 0 20px 20px;
}
.profile-img-name{font-family:'Meiryo','メイリオ',sans-serif;font-size:1.92rem;font-weight:700;color:var(--white);letter-spacing:0.06em;}
.profile-img-name-en{font-family:'Meiryo','メイリオ',sans-serif;font-size:1.02rem;color:var(--sky-light);letter-spacing:0.15em;margin-top:0.2rem;}
.profile-creds{display:flex;flex-direction:column;gap:0.5rem;}
.profile-cred{
  display:flex;align-items:center;gap:0.6rem;
  padding:0.65rem 1rem;
  background:linear-gradient(135deg,var(--white),var(--card-bg1));
  border:1.5px solid var(--border);border-radius:30px;
  font-size:0.936rem;font-weight:500;color:var(--navy);
  box-shadow:0 2px 10px rgba(46,168,220,0.07);
}
.profile-cred-dot{width:8px;height:8px;border-radius:50%;background:var(--sky);flex-shrink:0;}
.profile-intro{font-size:1.08rem;color:var(--text-mid);line-height:2;margin-bottom:2rem;}
.profile-section-title{font-size:0.816rem;letter-spacing:0.2em;color:var(--sky);text-transform:uppercase;font-weight:700;margin-bottom:1rem;padding-bottom:0.5rem;border-bottom:2px solid var(--border);}
.timeline{margin-bottom:2.5rem;}
.timeline-item{display:grid;grid-template-columns:140px 1fr;gap:1.5rem;padding:1rem 0;border-bottom:1px solid var(--border);}
.timeline-year{font-size:0.864rem;color:var(--sky);font-weight:700;padding-top:0.15rem;letter-spacing:0.04em;}
.timeline-content{font-size:0.984rem;color:var(--text-mid);line-height:1.85;}
.timeline-content strong{color:var(--navy);font-weight:700;display:block;margin-bottom:0.2rem;}
.certs-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:0.6rem;margin-bottom:2rem;}
.cert-item{display:flex;align-items:center;gap:0.5rem;font-size:0.936rem;color:var(--text-mid);}
.cert-check{color:var(--sky);font-size:1.08rem;font-weight:700;}

/* ===== PROCESS ===== */
.process{
  background:
    radial-gradient(ellipse 60% 80% at 50% 0%, rgba(46,168,220,0.08) 0%, transparent 60%),
    var(--white);
}
.process-steps{display:grid;grid-template-columns:repeat(5,1fr);gap:0;position:relative;}
.process-steps::before{content:'';position:absolute;top:1.9rem;left:10%;right:10%;height:2px;background:linear-gradient(90deg,var(--sky-pale),var(--sky),var(--sky-pale));z-index:0;}
.process-step{position:relative;z-index:1;text-align:center;padding:0 0.5rem;}
.process-step-num{width:3.8rem;height:3.8rem;background:linear-gradient(135deg,var(--sky),var(--sky-deep));border-radius:50%;display:flex;align-items:center;justify-content:center;margin:0 auto 1rem;font-family:'Meiryo','メイリオ',sans-serif;font-size:1.56rem;font-weight:600;color:var(--white);box-shadow:0 6px 20px rgba(46,168,220,0.35);}
.process-step-title{font-size:1.18rem;font-weight:800;color:var(--navy);margin-bottom:0.55rem;letter-spacing:0.04em;}
.process-step-text{font-size:1.02rem;color:var(--text-mid);line-height:1.85;font-weight:500;}

/* ===== CONCERNS — 名刺と同じ青波グラデ ===== */
.concerns{
  padding:5.5rem 2rem;
  background:
    radial-gradient(ellipse 80% 70% at 85% 20%, rgba(255,255,255,0.18) 0%, transparent 50%),
    radial-gradient(ellipse 60% 75% at 92% 80%, rgba(24,120,190,0.32) 0%, transparent 50%),
    radial-gradient(ellipse 58% 62% at 18% 18%, rgba(114,200,240,0.20) 0%, transparent 55%),
    radial-gradient(ellipse 50% 60% at 70% 60%, rgba(114,200,240,0.22) 0%, transparent 50%),
    linear-gradient(160deg,#39aae7 0%, #248dce 42%, #1769b1 100%);
  position:relative;overflow:hidden;
}
.concerns::before{
  content:'';position:absolute;top:-100px;right:-100px;
  width:500px;height:500px;border-radius:50%;
  background:radial-gradient(circle,rgba(255,255,255,0.07) 0%,transparent 70%);
}
.concerns .section-title{color:var(--white);}
.concerns-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;}
.concern-item{
  display:flex;align-items:flex-start;gap:0.8rem;
  padding:1.2rem 1.4rem;
  background:rgba(255,255,255,0.12);
  border:1px solid rgba(255,255,255,0.25);
  border-radius:12px;backdrop-filter:blur(6px);
  transition:background 0.2s;
}
.concern-item:hover{background:rgba(255,255,255,0.2);}
.concern-check{width:24px;height:24px;border-radius:50%;background:rgba(255,255,255,0.22);border:1.5px solid rgba(255,255,255,0.7);display:flex;align-items:center;justify-content:center;flex-shrink:0;margin-top:3px;color:var(--white);font-size:0.92rem;font-weight:700;}
.concern-text{font-size:1.12rem;color:rgba(255,255,255,0.96);line-height:1.85;font-weight:600;}

/* ===== CONTACT ===== */
.contact{
  background:
    radial-gradient(ellipse 60% 70% at 0% 50%, rgba(46,168,220,0.08) 0%, transparent 55%),
    linear-gradient(160deg,var(--white) 0%,var(--sky-bg) 100%);
}
.contact-inner{display:grid;grid-template-columns:1fr 1.5fr;gap:4rem;align-items:start;}
.contact-info-title{font-family:'Meiryo','メイリオ',sans-serif;font-size:1.68rem;font-weight:700;color:var(--navy);margin-bottom:0.5rem;line-height:1.5;}
.contact-info-sub{font-size:0.984rem;color:var(--text-soft);margin-bottom:2rem;line-height:1.85;}
.contact-detail{display:flex;flex-direction:column;gap:0.7rem;margin-bottom:2rem;}
.contact-detail-item{display:flex;align-items:center;gap:0.8rem;font-size:0.984rem;color:var(--text-mid);}
.contact-detail-icon{width:34px;height:34px;background:linear-gradient(135deg,var(--sky),var(--sky-deep));border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:1.08rem;flex-shrink:0;box-shadow:0 3px 12px rgba(46,168,220,0.28);}
.contact-form{background:var(--white);padding:2.5rem;border-radius:20px;border:1.5px solid var(--border);box-shadow:0 10px 45px rgba(46,168,220,0.1);}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-bottom:1rem;}
.form-group{margin-bottom:1rem;}
.form-label{display:block;font-size:0.9rem;font-weight:700;color:var(--navy);margin-bottom:0.4rem;letter-spacing:0.06em;}
.form-label span{color:#e24b4a;margin-left:0.2rem;}
.form-input,.form-select,.form-textarea{width:100%;padding:0.75rem 1rem;border:1.5px solid var(--border);border-radius:10px;font-family:'Meiryo','メイリオ',sans-serif;font-size:0.984rem;color:var(--text);background:var(--sky-bg);outline:none;transition:border-color 0.2s,box-shadow 0.2s;}
.form-input:focus,.form-select:focus,.form-textarea:focus{border-color:var(--sky);background:var(--white);box-shadow:0 0 0 3px rgba(46,168,220,0.12);}
.form-textarea{min-height:120px;resize:vertical;}
.form-submit{width:100%;padding:1rem;background:linear-gradient(135deg,var(--sky),var(--sky-deep));color:var(--white);border:none;border-radius:30px;font-family:'Meiryo','メイリオ',sans-serif;font-size:1.104rem;font-weight:700;letter-spacing:0.08em;cursor:pointer;box-shadow:0 6px 20px rgba(46,168,220,0.35);transition:all 0.2s;margin-top:0.5rem;}
.form-submit:hover{opacity:0.9;transform:translateY(-1px);box-shadow:0 10px 28px rgba(46,168,220,0.45);}
.form-submit:disabled{opacity:0.6;cursor:not-allowed;transform:none;box-shadow:none;}
.form-error{background:#fff0f0;border:1.5px solid #f5c6c6;color:#c0392b;border-radius:10px;padding:0.75rem 1rem;font-size:0.93rem;margin-bottom:0.75rem;}

/* ===== FOOTER BADGE ===== */
.footer-brand-top{display:flex;align-items:flex-start;gap:0;}
.footer-badge-img{height:104px;width:auto;display:block;background:transparent;flex-shrink:0;}
.footer-badge-list{display:flex;flex-direction:column;justify-content:center;gap:0.7rem;margin-left:1.2rem;min-width:0;}
.footer-badge-item{font-size:0.96rem;color:#d8f0ff;letter-spacing:0.06em;font-weight:700;border:1px solid rgba(216,240,255,0.45);padding:0.38rem 1rem;border-radius:20px;white-space:normal;word-break:break-word;}

/* ===== FOOTER ===== */
footer{
  background:
    radial-gradient(ellipse 80% 70% at 85% 20%, rgba(255,255,255,0.16) 0%, transparent 50%),
    radial-gradient(ellipse 60% 75% at 92% 80%, rgba(24,120,190,0.28) 0%, transparent 50%),
    radial-gradient(ellipse 58% 62% at 18% 18%, rgba(114,200,240,0.16) 0%, transparent 55%),
    linear-gradient(160deg,#2e95d6 0%,#2a79bf 48%,#1f5ea3 100%);
  padding:4rem 2rem 2rem;
}
.footer-inner{max-width:1200px;margin:0 auto;}
.footer-top{display:grid;grid-template-columns:1.5fr 1fr 1fr;gap:3rem;padding-bottom:3rem;border-bottom:1px solid rgba(255,255,255,0.08);margin-bottom:2rem;}
.footer-brand-text{font-size:1.02rem;line-height:1.95;color:rgba(255,255,255,0.86);margin-top:1rem;}
.footer-col-title{font-size:0.94rem;letter-spacing:0.2em;color:#d8f0ff;text-transform:uppercase;font-weight:700;margin-bottom:1rem;}
.footer-links{list-style:none;display:flex;flex-direction:column;gap:0.55rem;}
.footer-links a{color:rgba(255,255,255,0.88);text-decoration:none;font-size:1.04rem;transition:color 0.2s;}
.footer-links a:hover{color:rgba(255,255,255,0.85);}
.footer-contact-item{display:flex;align-items:flex-start;gap:0.5rem;font-size:1.02rem;color:rgba(255,255,255,0.88);margin-bottom:0.7rem;line-height:1.7;}
.footer-bottom{display:flex;justify-content:space-between;align-items:center;font-size:0.96rem;}
.footer-copy{color:rgba(255,255,255,0.72);}
.footer-cert{font-size:0.96rem;color:#d8f0ff;letter-spacing:0.06em;font-weight:700;border:1px solid rgba(216,240,255,0.45);padding:0.38rem 0.95rem;border-radius:20px;}

@media(max-width:900px){
  .hero{background-position:58% center;min-height:760px;}
  .hero::before{content:'';position:absolute;inset:0;background:linear-gradient(90deg,rgba(245,251,255,0.94) 0%,rgba(245,251,255,0.70) 58%,rgba(245,251,255,0.18) 100%);z-index:1;}
  .hero-container{width:100%;padding:5rem 1.5rem 3rem;}
  .hero-text{max-width:92%;}
  .hero-desc{font-size:1rem;line-height:1.9;margin-bottom:2rem;}
  .hero-tagline{font-size:2.1rem;}
  .hero-portrait,.hero-deco{display:none;}
  .values-grid,.services-grid{grid-template-columns:1fr 1fr;}
  .strengths-grid{grid-template-columns:1fr 1fr;}
  .profile-inner{grid-template-columns:1fr;}
  .profile-portrait{position:static;}
  .process-steps{grid-template-columns:1fr 1fr;}
  .process-steps::before{display:none;}
  .concerns-grid{grid-template-columns:1fr 1fr;}
  .contact-inner{grid-template-columns:1fr;}
  .footer-top{grid-template-columns:1fr;}
  .nav-hamburger{display:flex;}
  .nav-logo-text{display:none;}
  .nav-links{
    display:none;
    position:absolute;top:90px;left:0;right:0;
    flex-direction:column;gap:0;
    background:rgba(255,255,255,0.98);
    border-top:1px solid var(--sky-pale);
    border-bottom:2px solid var(--sky-pale);
    box-shadow:0 8px 30px rgba(46,168,220,0.13);
    z-index:999;
  }
  .nav-links.is-open{display:flex;}
  .nav-links li{width:100%;border-bottom:1px solid var(--sky-pale);}
  .nav-links li:last-child{border-bottom:none;padding:0.8rem 1.8rem;}
  .nav-links a{
    display:block;padding:0.9rem 1.8rem;
    font-size:1rem;white-space:normal;
  }
  .nav-links .nav-cta{
    display:block;text-align:center;
    border-radius:30px;margin:0;padding:0.75rem 1.8rem;
  }
}

@media(max-width:600px){
  .values-grid,.services-grid,.strengths-grid,.concerns-grid,.form-row,.process-steps,.certs-grid{grid-template-columns:1fr;}
  .footer-brand-top{flex-direction:column;}
  .footer-badge-list{margin-left:0;margin-top:0.8rem;width:100%;}
  .footer-brand-text{overflow-wrap:break-word;}
}

/* ===== 代表写真のみ調整 ===== */
.hero-portrait{
  display:block!important;
  position:absolute!important;
  left:78%!important;
  right:auto!important;
  bottom:7.2vh!important;
  transform:translateX(-50%)!important;
  z-index:3!important;
}
.hero-portrait-frame{
  width:205px!important;
  height:205px!important;
  position:relative!important;
}
.hero-portrait-circle{
  display:none!important;
}
.hero-portrait-img{
  position:static!important;
  transform:none!important;
  width:100%!important;
  height:100%!important;
  object-fit:cover!important;
  object-position:center center!important;
  border-radius:50%!important;
  border:5px solid #ffffff!important;
  box-shadow:0 10px 28px rgba(0,90,150,.22)!important;
  filter:none!important;
}
@media(max-width:900px){
  .hero-portrait{
    left:78%!important;
    right:auto!important;
    bottom:4vh!important;
    transform:translateX(-50%)!important;
  }
  .hero-portrait-frame{
    width:120px!important;
    height:120px!important;
  }
}


/* ===== 代表写真下テキストのみ追加 ===== */
.hero-portrait-caption{
  margin-top:14px;
  text-align:center;
  color:#0a2e50;
  text-shadow:0 1px 5px rgba(255,255,255,.9);
  line-height:1.45;
  white-space:nowrap;
}
.caption-role{
  font-size:0.9rem;
  font-weight:700;
  letter-spacing:.08em;
}
.caption-name{
  font-size:1.42rem;
  font-weight:800;
  letter-spacing:.14em;
}
.caption-license{
  font-size:0.78rem;
  font-weight:700;
  letter-spacing:.02em;
}
@media(max-width:900px){
  .hero-portrait-caption{
    display:none;
  }
}


/* ===== 代表写真・肩書きのみ非表示 ===== */
.hero-portrait{
  display:none!important;
}
.hero-portrait-caption{
  display:none!important;
}


/* ===== 主な支援分野の見出しのみ拡大 ===== */
.contact-support-title,
.support-title{
  font-size:1.6rem!important;
  font-weight:800!important;
}