:root{--teal:#00a199;--primary:#00a199;--teal-dark:#008b84;--coral:#d96d67;--ink:#231815;--muted:#6f7474;--pale:#f1faf9;--line:#dfe8e7;--white:#fff;--shadow:0 12px 34px rgba(30,65,63,.09)}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;color:var(--ink);font-family:"Noto Sans JP",sans-serif;line-height:1.8;background:#fff}img{display:block;max-width:100%}a{color:inherit;text-decoration:none}.container{width:min(1180px,calc(100% - 48px));margin:auto}.site-header{position:sticky;top:0;z-index:100;background:rgba(255,255,255,.96);border-bottom:1px solid #eee;backdrop-filter:blur(12px)}.header-inner{min-height:86px;display:flex;align-items:center;gap:28px}.logo{display:flex;align-items:baseline;gap:8px;white-space:nowrap}.logo-main{color:var(--teal);font-size:34px;font-weight:700;letter-spacing:-1px}.logo-sub{font-weight:700}.global-nav{margin-left:auto;display:flex;align-items:center;gap:25px;font-size:13px;font-weight:600}.global-nav a{position:relative}.global-nav a:after{content:"";position:absolute;left:0;bottom:-7px;width:0;height:2px;background:var(--teal);transition:.25s}.global-nav a:hover:after{width:100%}.header-contact{align-self:stretch;min-width:134px;display:grid;place-content:center;text-align:center;background:var(--coral);color:white;font-size:13px;font-weight:700;line-height:1.55}.menu-button{display:none;margin-left:auto;border:0;background:none;padding:8px}.menu-button span{display:block;width:26px;height:2px;margin:6px;background:var(--teal)}
.hero{background:linear-gradient(90deg,#fff 0 48%,#eef7f6 48%);overflow:hidden}.hero-grid{min-height:590px;display:grid;grid-template-columns:1.02fr .98fr;align-items:center}.hero-copy{z-index:2;padding:70px 0}.eyebrow,.section-label{color:var(--teal);font-weight:700;letter-spacing:.08em}.hero h1,.serif{font-family:"Noto Serif JP",serif}.hero h1{font-size:clamp(36px,4vw,59px);line-height:1.6;margin:18px 0 22px;letter-spacing:.08em}.hero h1 em,.serif em{font-style:normal;color:var(--teal)}.hero-copy>p:last-of-type{font-weight:600}.hero-image{height:590px;position:relative}.hero-image:before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,#fff 0,transparent 18%);z-index:1}.hero-image img{width:100%;height:100%;object-fit:cover;object-position:50% center}.hero-actions{display:flex;gap:14px;margin-top:34px;flex-wrap:wrap}.button{min-height:58px;display:inline-flex;align-items:center;justify-content:space-between;gap:30px;padding:0 24px;border-radius:6px;color:#fff;font-weight:700;box-shadow:0 7px 20px rgba(0,0,0,.08)}.button-primary{background:var(--teal)}.button-accent{background:var(--coral)}.section{padding:90px 0}.two-column{display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:center}.section-label{font-size:18px}.serif{font-size:clamp(28px,3vw,42px);line-height:1.65;margin:22px 0}.lead{color:#4d5555}.outline-button{display:inline-flex;align-items:center;justify-content:space-between;gap:45px;border:1px solid var(--teal);color:var(--teal);padding:9px 20px;border-radius:4px;font-weight:700;margin-top:15px}.about-image{width:100%;height:390px;object-fit:cover;border-radius:5px}.section-title{text-align:center;margin:0;font-size:30px}.title-line{width:54px;height:3px;background:var(--teal);margin:13px auto 36px}.card-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}.service-card{border:1px solid #e1e7e6;padding:30px 25px 22px;min-height:355px;box-shadow:var(--shadow);display:flex;flex-direction:column;background:#fff}.service-card .icon{font-size:49px;color:var(--teal);line-height:1}.service-card h3{color:var(--teal);font-size:20px}.service-card p{font-size:14px;flex:1}.service-card a{color:var(--teal);font-weight:700;display:flex;justify-content:space-between}.service-card.coral .icon,.service-card.coral h3{color:var(--coral)}.strengths{background:linear-gradient(180deg,#f3fbfa,#eef8f7)}.strength-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:24px;text-align:center}.strength-grid article{position:relative}.number{position:absolute;top:-6px;left:calc(50% - 52px);background:var(--teal);color:#fff;border-radius:999px;padding:2px 9px;font-size:12px}.circle-icon{width:105px;height:105px;margin:auto;border-radius:50%;display:grid;place-content:center;background:#fff;border:1px solid #dce8e7;color:var(--teal);font-size:45px;box-shadow:0 6px 18px rgba(0,0,0,.05)}.strength-grid h3{font-size:16px;line-height:1.55}.strength-grid p{font-size:13px;color:#5e6766}.flow-list{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(8,1fr);gap:16px;text-align:center}.flow-list li{position:relative}.flow-list li:not(:last-child):after{content:"›";position:absolute;right:-13px;top:48px;color:var(--teal);font-size:30px}.flow-list span{display:inline-grid;place-content:center;width:25px;height:25px;background:var(--teal);color:#fff;border-radius:50%;font-size:11px}.flow-list b{display:block;color:var(--teal);font-size:40px;line-height:1.6}.flow-list p{font-size:13px;font-weight:700;line-height:1.55}.faq-section{padding-top:40px}.faq-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:20px}.faq-box{border:1px solid #e4e8e8;padding:26px 30px;box-shadow:var(--shadow)}.faq-heading{display:flex;align-items:center}.faq-heading h2{margin:0 0 15px}.faq-box details{border-top:1px solid #e5eaea;padding:13px 0}.faq-box summary{cursor:pointer;font-weight:600;list-style:none}.faq-box summary:before{content:"Q";display:inline-grid;place-content:center;width:22px;height:22px;border-radius:50%;background:var(--teal);color:#fff;margin-right:10px;font-size:12px}.faq-box details p{padding-left:34px;color:#5d6766;font-size:14px}.contact-banner{display:grid;grid-template-columns:1.2fr .8fr;background:linear-gradient(135deg,var(--teal),#42c3ba);color:#fff;overflow:hidden}.contact-banner>div{padding:38px 28px}.contact-banner h2{font-size:20px}.contact-banner img{height:100%;object-fit:cover}.white-button{background:#fff;color:var(--teal);min-height:48px;padding:0 18px;font-size:14px;box-shadow:none}.site-footer{border-top:1px solid #eee}.footer-grid{display:grid;grid-template-columns:280px 1fr;gap:65px;padding:55px 0}.footer-logo{margin-bottom:14px}.footer-grid p{font-size:12px}.footer-links{display:grid;grid-template-columns:repeat(4,1fr);gap:15px 26px;align-content:start;font-size:13px;font-weight:600}.footer-bottom{background:#251813;color:#fff;text-align:center;padding:24px}.page-top{position:fixed;right:24px;bottom:20px;width:48px;height:48px;border-radius:50%;display:grid;place-content:center;background:var(--teal);color:#fff;box-shadow:var(--shadow)}
@media(max-width:1000px){.global-nav,.header-contact{display:none}.menu-button{display:block}.global-nav.is-open{display:flex;position:absolute;left:0;right:0;top:86px;padding:22px 24px;background:#fff;flex-direction:column;align-items:flex-start;box-shadow:var(--shadow)}.hero-grid{grid-template-columns:1fr}.hero{background:#fff}.hero-copy{padding-bottom:35px}.hero-image{height:420px;margin:0 -24px}.two-column{gap:36px}.card-grid{grid-template-columns:repeat(2,1fr)}.strength-grid{grid-template-columns:repeat(3,1fr);row-gap:45px}.flow-list{grid-template-columns:repeat(4,1fr);row-gap:40px}.faq-grid{grid-template-columns:1fr}.footer-grid{grid-template-columns:1fr}}
@media(max-width:680px){.container{width:min(100% - 30px,1180px)}.header-inner{min-height:70px}.logo-main{font-size:28px}.global-nav.is-open{top:70px}.section{padding:65px 0}.hero-grid{min-height:auto}.hero h1{font-size:34px;letter-spacing:.03em}.hero-image{height:320px}.pc{display:none}.button{width:100%}.two-column{grid-template-columns:1fr}.about-image{height:300px}.card-grid,.strength-grid{grid-template-columns:1fr}.service-card{min-height:auto}.flow-list{grid-template-columns:repeat(2,1fr)}.flow-list li:nth-child(even):after{display:none}.faq-box{padding:20px 16px}.contact-banner{grid-template-columns:1fr}.contact-banner img{height:220px;width:100%}.footer-links{grid-template-columns:repeat(2,1fr)}.page-top{right:14px}.footer-grid{padding:42px 0}}

/* Contact form */
.inquiry-section{background:linear-gradient(180deg,#f4fbfa,#fff)}
.inquiry-layout{display:grid;grid-template-columns:.82fr 1.18fr;gap:72px;align-items:start}
.inquiry-intro{position:sticky;top:125px}
.contact-info{margin:32px 0;border-top:1px solid var(--line)}
.contact-info div{display:grid;grid-template-columns:100px 1fr;padding:15px 0;border-bottom:1px solid var(--line)}
.contact-info dt{font-weight:700;color:var(--teal)}
.contact-info dd{margin:0;font-weight:700}.contact-info a{font-size:24px}
.form-note{font-size:12px;color:var(--muted)}.form-note span{color:var(--coral)}
.contact-form{background:#fff;border:1px solid #e1e9e8;padding:38px;box-shadow:var(--shadow);border-radius:8px}
.form-row{margin-bottom:23px}.two-fields{display:grid;grid-template-columns:1fr 1fr;gap:20px}
.contact-form label{display:block;font-weight:700;font-size:14px}
.required{display:inline-block;color:#fff;background:var(--coral);font-size:10px;line-height:1.4;padding:2px 6px;border-radius:3px;margin-left:5px;vertical-align:2px}
.contact-form input,.contact-form select,.contact-form textarea{width:100%;margin-top:8px;border:1px solid #cad8d6;border-radius:4px;background:#fff;padding:13px 14px;font:inherit;color:var(--ink);transition:.2s}
.contact-form textarea{resize:vertical;min-height:160px}.contact-form input:focus,.contact-form select:focus,.contact-form textarea:focus{outline:3px solid rgba(0,161,153,.14);border-color:var(--teal)}
.contact-form .is-invalid{border-color:var(--coral);background:#fff8f7}.error-message{display:block;min-height:18px;color:#b94e49;font-size:12px;font-weight:500;margin-top:3px}
.privacy-check{display:flex!important;align-items:flex-start;gap:10px;font-weight:500!important;margin:2px 0 0}.privacy-check input{width:18px;height:18px;margin:5px 0 0;accent-color:var(--teal);flex:0 0 auto}.privacy-check .required{color:#fff}.privacy-error{margin-left:28px}
.text-button,.footer-policy-button{border:0;padding:0;background:none;color:var(--teal);font:inherit;font-weight:700;text-decoration:underline;cursor:pointer}.footer-policy-button{text-align:left;text-decoration:none;color:var(--ink);font-size:13px}
.submit-button{width:100%;min-height:64px;border:0;border-radius:5px;background:var(--teal);color:#fff;font:inherit;font-weight:700;display:flex;justify-content:center;align-items:center;gap:35px;cursor:pointer;transition:.2s;box-shadow:0 8px 22px rgba(0,161,153,.2)}.submit-button:hover,.modal-primary:hover{background:var(--teal-dark);transform:translateY(-1px)}

/* Modal */
body.modal-open{overflow:hidden}.modal[hidden]{display:none}.modal{position:fixed;inset:0;z-index:1000;display:grid;place-items:center;padding:24px}.modal-backdrop{position:absolute;inset:0;background:rgba(25,32,31,.65);backdrop-filter:blur(3px)}.modal-panel{position:relative;width:min(680px,100%);max-height:calc(100vh - 48px);overflow:auto;background:#fff;border-radius:9px;padding:42px;box-shadow:0 25px 70px rgba(0,0,0,.24)}.modal-panel-wide{width:min(820px,100%)}.modal-panel-small{width:min(500px,100%);text-align:center}.modal-panel h2{margin:5px 0 15px;font-size:30px}.modal-close{position:absolute;right:16px;top:12px;width:40px;height:40px;border:0;background:none;font-size:32px;line-height:1;cursor:pointer;color:#5f6867}.policy-content{background:#f8fbfb;border:1px solid var(--line);padding:24px;margin:20px 0;max-height:52vh;overflow:auto}.policy-content h3{font-size:16px;color:var(--teal);margin:22px 0 4px}.policy-content p{font-size:14px;margin:5px 0}.policy-date{text-align:right;color:var(--muted);margin-top:24px!important}.modal-primary,.modal-secondary{min-width:145px;min-height:50px;border-radius:4px;padding:0 22px;font:inherit;font-weight:700;cursor:pointer}.modal-primary{border:0;background:var(--teal);color:#fff}.modal-secondary{border:1px solid var(--teal);background:#fff;color:var(--teal)}.modal-actions{display:flex;justify-content:center;gap:14px;margin-top:28px}.confirm-list{border-top:1px solid var(--line);margin:22px 0}.confirm-list div{display:grid;grid-template-columns:150px 1fr;border-bottom:1px solid var(--line);padding:14px 0}.confirm-list dt{font-weight:700;color:#4f5958}.confirm-list dd{margin:0;white-space:pre-wrap;overflow-wrap:anywhere}.thanks-icon{width:70px;height:70px;border-radius:50%;display:grid;place-content:center;margin:0 auto 20px;background:var(--pale);color:var(--teal);font-size:34px;font-weight:700}

@media(max-width:1000px){.inquiry-layout{grid-template-columns:1fr;gap:35px}.inquiry-intro{position:static}}
@media(max-width:680px){.contact-form{padding:24px 18px}.two-fields{grid-template-columns:1fr;gap:0}.modal{padding:12px}.modal-panel{padding:34px 20px}.confirm-list div{grid-template-columns:1fr;gap:5px}.modal-actions{flex-direction:column-reverse}.modal-primary,.modal-secondary{width:100%}.contact-info a{font-size:20px}}

/* Official JIPCO logo */
.logo{display:inline-flex;align-items:center;line-height:1}
.logo-image{display:block;width:178px;height:auto}
.footer-logo-image{width:190px}
@media(max-width:680px){.logo-image{width:145px}.footer-logo-image{width:170px}}

/* PHP contact form utilities */
.honeypot {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  overflow: hidden !important;
  clip: rect(0 0 0 0) !important;
  clip-path: inset(50%) !important;
  white-space: nowrap !important;
}

.modal-primary:disabled,
.submit-button:disabled {
  cursor: wait;
  opacity: .65;
}

/* Digital support cards */
.digital-card{scroll-margin-top:110px}
.digital-card .icon{font-family:Arial,sans-serif;font-weight:700;letter-spacing:-.08em}
@media(max-width:1000px){.card-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:680px){.card-grid{grid-template-columns:1fr}}


/* Member service / BMST */
.member-service-section{background:linear-gradient(180deg,#f7fbfb 0%,#fff 100%);scroll-margin-top:100px}
.centered-label{text-align:center}
.member-service-lead{max-width:820px;margin:0 auto 34px;text-align:center;color:var(--muted);line-height:1.9}
.bmst-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:28px;max-width:1040px;margin:0 auto}
.bmst-card{position:relative;background:#fff;border:1px solid var(--line);border-radius:10px;padding:34px;box-shadow:0 12px 35px rgba(31,72,69,.08);overflow:hidden}
.bmst-card::before{content:"";position:absolute;inset:0 0 auto;height:5px;background:var(--teal)}
.bmst-lite::before{background:var(--coral)}
.bmst-badge{display:inline-flex;align-items:center;min-height:34px;padding:0 15px;border-radius:999px;background:var(--pale);color:var(--teal);font-weight:700;letter-spacing:.04em}
.bmst-lite .bmst-badge{background:#fff0ee;color:var(--coral)}
.bmst-card h3{font-size:24px;margin:18px 0 10px}
.bmst-copy,.bmst-use{color:var(--muted);line-height:1.8}
.bmst-card ul{margin:22px 0;padding:20px 20px 20px 42px;background:#f8fbfb;border-radius:6px}
.bmst-card li+li{margin-top:8px}
.bmst-use{min-height:58px}
.bmst-price{margin:22px 0 18px;padding:14px 16px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);font-weight:700;color:var(--ink)}
.bmst-card .outline-button{width:100%;justify-content:center}
.bmst-note{text-align:center;margin:24px 0 0;color:var(--muted);font-size:13px}
@media(max-width:760px){.bmst-grid{grid-template-columns:1fr}.bmst-card{padding:28px 22px}.bmst-use{min-height:0}}

/* PC header readability: keep every navigation item on one line */
.site-header .container{
  width:min(1440px,calc(100% - 32px));
}
.header-inner{
  gap:16px;
}
.site-header .logo-image{
  width:160px;
}
.global-nav{
  gap:clamp(10px,1.35vw,20px);
  font-size:clamp(11px,.9vw,13px);
  flex-wrap:nowrap;
  min-width:0;
}
.global-nav a{
  white-space:nowrap;
  flex:0 0 auto;
}
.header-contact{
  min-width:122px;
  padding-inline:10px;
  flex:0 0 auto;
}

/* Use the compact menu before the desktop navigation becomes cramped. */
@media(max-width:1180px){
  .global-nav,.header-contact{display:none}
  .menu-button{display:block}
  .global-nav.is-open{
    display:flex;
    position:absolute;
    left:0;
    right:0;
    top:86px;
    padding:22px 24px;
    background:#fff;
    flex-direction:column;
    align-items:flex-start;
    gap:16px;
    font-size:14px;
    box-shadow:var(--shadow)
  }
  .global-nav.is-open a{white-space:nowrap}
}

@media(max-width:680px){
  .site-header .container{width:min(100% - 30px,1180px)}
  .site-header .logo-image{width:145px}
  .global-nav.is-open{top:70px}
}

/* Detail pages */
.detail-hero{padding:72px 0 60px;background:linear-gradient(135deg,#eefaf8 0%,#fff 65%);border-bottom:1px solid #e4eeec}
.detail-hero .breadcrumb{font-size:.82rem;color:#647774;margin-bottom:24px}
.detail-hero .breadcrumb a{color:var(--primary);text-decoration:none}
.detail-hero h1{font-family:'Noto Serif JP',serif;font-size:clamp(2rem,4vw,3.2rem);line-height:1.35;margin:0 0 18px;color:#253531}
.detail-hero h1 em{font-style:normal;color:var(--primary)}
.detail-hero .detail-lead{max-width:760px;font-size:1.05rem;line-height:2;color:#50605d}
.detail-main{padding:72px 0 96px}
.detail-content{max-width:960px;margin:0 auto}
.detail-section{margin-bottom:64px}
.detail-section h2{font-family:'Noto Serif JP',serif;font-size:clamp(1.55rem,3vw,2.15rem);line-height:1.5;margin:0 0 22px;padding-left:18px;border-left:5px solid var(--primary);color:#273934}
.detail-section h3{font-size:1.18rem;margin:30px 0 12px;color:#24443e}
.detail-section p{line-height:2;color:#4f5f5c}
.detail-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px;margin-top:28px}
.detail-card{background:#fff;border:1px solid #dfe9e7;border-radius:14px;padding:26px;box-shadow:0 10px 28px rgba(24,75,67,.06)}
.detail-card .detail-number{display:inline-flex;width:36px;height:36px;align-items:center;justify-content:center;border-radius:50%;background:var(--primary);color:#fff;font-weight:700;margin-bottom:16px}
.detail-card h3{margin:0 0 10px;font-size:1.08rem}
.detail-card p{margin:0;font-size:.94rem;line-height:1.8}
.support-list,.occupation-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin:24px 0 0;padding:0;list-style:none}
.support-list li,.occupation-list li{position:relative;padding:17px 18px 17px 46px;background:#f5faf9;border-radius:10px;color:#40514d;line-height:1.65}
.support-list li::before,.occupation-list li::before{content:'✓';position:absolute;left:18px;top:17px;color:var(--primary);font-weight:700}
.notice-box{margin-top:30px;padding:22px 24px;background:#fff7f5;border-left:5px solid var(--accent);border-radius:8px;color:#594b48;line-height:1.8}
.detail-cta{display:flex;align-items:center;justify-content:space-between;gap:28px;padding:34px 38px;background:var(--primary);border-radius:16px;color:#fff;margin-top:70px}
.detail-cta h2{border:0;padding:0;margin:0 0 8px;color:#fff;font-family:'Noto Serif JP',serif;font-size:1.55rem}
.detail-cta p{margin:0;color:#e8fffb;line-height:1.7}
.detail-cta .button{flex:0 0 auto;background:#fff;color:var(--teal);border:2px solid #fff;box-shadow:0 8px 22px rgba(0,0,0,.14);transition:background .2s,color .2s,transform .2s}.detail-cta .button:hover{background:var(--teal-dark);color:#fff;transform:translateY(-2px)}
.detail-footer{padding:36px 0;background:#213b36;color:#fff}
.detail-footer-inner{display:flex;align-items:center;justify-content:space-between;gap:30px}
.detail-footer .logo-image{width:180px;filter:brightness(0) invert(1)}
.detail-footer p{margin:12px 0 0;line-height:1.8;font-size:.88rem;color:#d8e4e1}
.detail-footer-nav{display:flex;flex-wrap:wrap;gap:12px 24px;justify-content:flex-end}
.detail-footer-nav a{color:#fff;text-decoration:none;font-size:.9rem}
@media(max-width:900px){.detail-grid{grid-template-columns:1fr}.support-list,.occupation-list{grid-template-columns:1fr}.detail-cta{align-items:flex-start;flex-direction:column}.detail-footer-inner{align-items:flex-start;flex-direction:column}.detail-footer-nav{justify-content:flex-start}}
@media(max-width:600px){.detail-hero{padding:48px 0 42px}.detail-main{padding:50px 0 70px}.detail-section{margin-bottom:48px}.detail-cta{padding:28px 22px}.detail-card{padding:22px}}

/* Stable target for links to #top. Kept separate from the sticky header. */
.top-anchor{position:absolute;top:0;left:0;width:1px;height:1px;pointer-events:none}
