/* ===== partner page ===== */

/* hero lead */
.phero__lead{font-size:26px;font-weight:700;line-height:1.7;margin:22px 0 16px}
.phero__desc{font-size:13px;color:#6a6a6a}

/* ROLES (two speech-bubble rows) */
.roles{position:relative;overflow:hidden}
.roles::before{
  content:"";position:absolute;right:-12%;top:-6%;width:560px;height:560px;
  background:url("../images/blob.png") no-repeat center/contain;
  mix-blend-mode:multiply;filter:blur(54px);opacity:.4;z-index:0;pointer-events:none;
}
.role{max-width:820px;margin:0 auto;position:relative;z-index:1}
.role+.role{margin-top:60px}
.role__chip{
  position:relative;width:fit-content;margin:0 auto 30px;
  background:#6f6f74;color:#fff;font-size:15px;font-weight:700;
  padding:14px 34px;border-radius:40px;
}
.role__chip::after{
  content:"";position:absolute;left:50%;bottom:-8px;transform:translateX(-50%);
  border:9px solid transparent;border-bottom:0;border-top-color:#6f6f74;
}
.role__body{display:grid;grid-template-columns:80px 1fr;align-items:center}
.role__no{font-family:var(--latin);font-size:46px;color:#e0ded7;line-height:1}
.role__main{border-left:1px solid #dcdad3;padding-left:30px}
.role__title{font-size:22px;font-weight:700;margin-bottom:8px}
.role__desc{font-size:13px;color:#6a6a6a}

/* CO-CREATE sections (LIFE / SOCIAL) */
.cocreate{position:relative;overflow:hidden}
.cocreate--alt{background:#efede8}
.cocreate__inner{display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:center}
.cocreate__big{
  font-family:var(--latin);font-size:104px;font-weight:400;color:#e6e3dc;
  letter-spacing:.04em;line-height:1;margin-bottom:-6px;
}
.cocreate--alt .cocreate__big{color:#e2dfd7}
.cocreate__label{display:flex;align-items:center;gap:12px;font-size:19px;font-weight:700;margin-bottom:18px}
.cocreate__label .no{font-family:var(--latin);font-size:15px;color:#9a9a9a;letter-spacing:.1em}
.cocreate__desc{font-size:13px;color:#5a5a5a;line-height:2.05;max-width:420px}
.cocreate__list-title{font-size:14px;font-weight:700;border-bottom:2px solid #1b1b1b;padding-bottom:12px;margin-bottom:6px}
.colist{list-style:none}
.colist li{display:flex;align-items:center;gap:14px;font-size:14px;font-weight:700;padding:16px 0;border-bottom:1px solid #e2e0da}
.colist li::before{
  content:"";width:26px;height:26px;border-radius:50%;flex-shrink:0;
  background:var(--plum) url("../images/logo-o.png") no-repeat center/12px;
}
.cocreate__cap{font-size:12px;color:#8a8a8a;line-height:1.9;margin-top:20px}

/* MERIT cards */
.merit-pill-wrap{text-align:center;margin-bottom:46px}
.merit-pill{display:inline-block;background:var(--plum);color:#fff;font-size:15px;font-weight:700;padding:13px 42px;border-radius:40px;letter-spacing:.04em}
.merits{max-width:1000px;margin:0 auto;display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.merit{background:#fff;border:1px solid #ececec;border-radius:6px;padding:32px 26px;text-align:center;box-shadow:0 8px 24px rgba(0,0,0,.03)}
.merit__title{font-size:14px;font-weight:700;line-height:1.6;margin-bottom:12px}
.merit__desc{font-size:11.5px;color:#8a8a8a;line-height:1.85}

/* CTA bar */
.cta-bar{
  max-width:1100px;margin:0 auto;background:var(--plum);color:#fff;
  border-radius:44px;padding:24px 44px;display:flex;justify-content:center;align-items:center;gap:24px;
  font-size:14px;font-weight:700;letter-spacing:.03em;
}
.cta-bar .btn__arrow{font-size:14px}

/* gallery slider placeholder */
.pgallery{max-width:1100px;margin:0 auto;display:flex;gap:26px;justify-content:center;align-items:center}
.pgallery__box{flex:1;max-width:500px;height:300px;background:#e6e4de;border-radius:6px}
.pgallery__dots{display:flex;gap:9px;justify-content:center;margin-top:26px}
.pgallery__dots span{width:8px;height:8px;border-radius:50%;background:#d0cdc5}
.pgallery__dots span.on{background:#6f6f74}

/* MESSAGE (centered) */
.pmsg{text-align:center;background:#efede8}
.pmsg__body{max-width:800px;margin:0 auto;font-size:13px;color:#4a4a4a;line-height:2.25}

/* FAQ */
.faq__card{max-width:900px;margin:0 auto;background:#fff;border-radius:10px;box-shadow:0 20px 50px rgba(0,0,0,.05);padding:16px 54px 44px}
.faq__tabs{display:flex;gap:12px;justify-content:center;margin:24px 0 8px}
.faq__tab{border:1px solid #dcdcdc;border-radius:30px;padding:9px 24px;font-size:12px;color:#666}
.faq__tab.on{background:#3d3936;color:#fff;border-color:#3d3936}
.faq__item{border-bottom:1px solid #ededed;padding:26px 0}
.faq__q,.faq__a{display:flex;gap:14px;align-items:flex-start}
.faq__q{font-size:15px;font-weight:700}
.faq__a{font-size:12.5px;color:#6a6a6a;line-height:1.95;margin-top:14px}
.faq__mark{
  width:24px;height:24px;border-radius:50%;flex-shrink:0;
  display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700;
}
.faq__mark--q{border:1.5px solid #333;color:#333}
.faq__mark--a{background:#3d3936;color:#fff}

@media(max-width:900px){
  .role__body{grid-template-columns:54px 1fr}
  .role__no{font-size:32px}
  .cocreate__inner{grid-template-columns:1fr;gap:34px}
  .cocreate__big{font-size:70px}
  .merits{grid-template-columns:1fr 1fr}
  .pgallery{flex-direction:column}
  .pgallery__box{width:100%;max-width:none}
  .faq__card{padding:12px 24px 32px}
}

/* ===== mobile (SP comp: sp/partner.png) ===== */
@media(max-width:820px){
  .phero__lead{font-size:20px;margin:16px 0 12px}

  .role{padding-left:22px;padding-right:22px}
  .role+.role{margin-top:40px}
  .role__chip{font-size:13px;padding:12px 22px;line-height:1.6}
  .role__body{grid-template-columns:44px 1fr}
  .role__no{font-size:30px}
  .role__main{padding-left:20px}
  .role__title{font-size:18px}

  .cocreate__inner{gap:26px}
  .cocreate__big{font-size:62px}
  .cocreate__label{font-size:17px}
  .cocreate__desc{max-width:none}

  .merits{gap:14px;padding-left:22px;padding-right:22px}
  .merit{padding:22px 14px}
  .merit__title{font-size:13px}
  .merit__desc{font-size:11px}

  .cta-bar{padding:20px 22px;margin-left:22px;margin-right:22px;
    font-size:12.5px;gap:14px;border-radius:26px}

  .pgallery{padding-left:22px;padding-right:22px}
  .pgallery__box{height:200px}

  .pmsg__body{font-size:12.5px;padding-left:22px;padding-right:22px}

  .faq__card{margin-left:18px;margin-right:18px;padding:10px 18px 28px}
  .faq__tabs{flex-wrap:wrap}
  .faq__q{font-size:14px}
  .faq__a{font-size:12px}
}
