/* IP PARTNER reference design. Scoped to the /ip-partner/ page only. */
.pl-ip-partner{--p:#9a82cf;--pd:#67518f;--deep:#4d3c70;--lav:#eee9f8;--soft:#f7f4fc;--text:#393443;--muted:#777182;--line:rgba(111,91,151,.16)}
.pl-ip-partner *{box-sizing:border-box}
.pl-ip-partner{scroll-behavior:smooth}
.pl-ip-partner{margin:0;color:var(--text);background:#fff;font-family:-apple-system,BlinkMacSystemFont,"Noto Sans JP","Hiragino Kaku Gothic ProN","Yu Gothic",Meiryo,sans-serif;line-height:1.9;letter-spacing:.035em}
.pl-ip-partner a{color:inherit;text-decoration:none}
.pl-ip-partner .header{position:absolute;z-index:5;top:0;left:0;width:100%;padding:24px 5vw;display:flex;justify-content:space-between;align-items:center}
.pl-ip-partner .logo{font-family:Georgia,serif;font-size:1.15rem;letter-spacing:.08em}
.pl-ip-partner .header-contact{font-size:.68rem;letter-spacing:.18em;color:var(--pd)}
.pl-ip-partner .hero{min-height:720px;position:relative;overflow:hidden;display:flex;align-items:center;background:radial-gradient(circle at 78% 30%,rgba(191,173,230,.45),transparent 30%),linear-gradient(135deg,#fff,#f8f5fc 55%,#eee8f8)}
.pl-ip-partner .hero-inner{position:relative;z-index:2;padding:120px 0 90px}
.pl-ip-partner .wrap{width:min(1120px,90%);margin:auto}
.pl-ip-partner .narrow{width:min(760px,88%);margin:auto}
.pl-ip-partner .eyebrow, .pl-ip-partner .label{margin:0 0 20px;color:var(--pd);font-size:.68rem;font-weight:700;letter-spacing:.22em}
.pl-ip-partner .hero h1{margin:0;font-family:Georgia,"Times New Roman","Noto Serif JP",serif;font-size:clamp(3.2rem,7vw,6.5rem);line-height:1.15;font-weight:500;letter-spacing:-.025em}
.pl-ip-partner .hero h1 em{color:var(--p);font-style:normal}
.pl-ip-partner .hero-copy{margin:34px 0 38px;color:var(--muted);font-size:1rem}
.pl-ip-partner .button{display:inline-flex;gap:28px;align-items:center;padding:14px 22px;border:1px solid rgba(103,81,143,.35);border-radius:999px;color:var(--pd);background:rgba(255,255,255,.72);font-size:.78rem;letter-spacing:.08em;transition:.25s}
.pl-ip-partner .button:hover{transform:translateY(-2px);box-shadow:0 18px 50px rgba(92,72,126,.09)}
.pl-ip-partner .button span{font-size:1rem}
.pl-ip-partner .orb{position:absolute;border-radius:50%;pointer-events:none}
.pl-ip-partner .orb-a{width:320px;height:320px;right:7%;bottom:-100px;background:rgba(185,164,226,.3)}
.pl-ip-partner .orb-b{width:150px;height:150px;right:24%;top:16%;background:rgba(221,211,241,.65)}
.pl-ip-partner .section{padding:120px 0}
.pl-ip-partner .section h2{margin:0 0 35px;font-family:Georgia,"Times New Roman","Noto Serif JP",serif;font-size:clamp(2.1rem,4vw,3.6rem);line-height:1.35;font-weight:500;letter-spacing:-.02em}
.pl-ip-partner .section h2 span{color:var(--p)}
.pl-ip-partner .lead{margin:0 0 32px;font-size:1.12rem;line-height:2.1}
.pl-ip-partner .narrow>p:not(.label):not(.lead){color:var(--muted);font-size:.96rem}
.pl-ip-partner .soft{background:var(--soft)}
.pl-ip-partner .heading-row{display:flex;justify-content:space-between;gap:50px;align-items:end;margin-bottom:55px}
.pl-ip-partner .heading-row h2{margin-bottom:0}
.pl-ip-partner .heading-row>p{max-width:380px;margin:0 0 7px;color:var(--muted);font-size:.9rem}
.pl-ip-partner .cards{display:grid;grid-template-columns:repeat(2,1fr);gap:18px}
.pl-ip-partner .card{position:relative;min-height:270px;padding:34px;border:1px solid var(--line);border-radius:24px;background:rgba(255,255,255,.8);box-shadow:0 8px 30px rgba(92,72,126,.035)}
.pl-ip-partner .card small{position:absolute;top:25px;right:28px;color:#b4a7c9;font-family:Georgia,serif;letter-spacing:.15em}
.pl-ip-partner .card i{width:48px;height:48px;margin-bottom:28px;display:grid;place-items:center;border-radius:50%;color:var(--pd);background:var(--lav);font-style:normal}
.pl-ip-partner .card h3{margin:0 0 12px;font-family:Georgia,serif;font-size:1.35rem;font-weight:500}
.pl-ip-partner .card p{margin:0;color:var(--muted);font-size:.86rem}
.pl-ip-partner .split{display:grid;grid-template-columns:.9fr 1.1fr;gap:100px;align-items:center}
.pl-ip-partner .large{color:var(--pd)!important;font-size:1.15rem!important;line-height:1.8}
.pl-ip-partner .text p{color:var(--muted);font-size:.94rem}
.pl-ip-partner .flow{display:grid;grid-template-columns:repeat(4,1fr);gap:15px}
.pl-ip-partner .flow>div{padding:28px 24px;border-radius:20px;background:#fff;border:1px solid var(--line)}
.pl-ip-partner .flow b{color:var(--p);font-family:Georgia,serif;font-size:.85rem}
.pl-ip-partner .flow h3{margin:16px 0 10px;font-size:1.05rem}
.pl-ip-partner .flow p{margin:0;color:var(--muted);font-size:.78rem;line-height:1.8}
.pl-ip-partner .support{background:radial-gradient(circle at 85% 15%,rgba(203,187,232,.35),transparent 27%),#fff}
.pl-ip-partner .support-box{margin:45px 0 30px;padding:42px;border-radius:28px;text-align:center;background:linear-gradient(135deg,#f3eefb,#eae3f7)}
.pl-ip-partner .support-box small{color:var(--pd);font-size:.68rem;font-weight:700;letter-spacing:.22em}
.pl-ip-partner .support-box strong{display:block;color:var(--deep);font-family:Georgia,"Times New Roman",serif;font-size:clamp(1.8rem,4vw,3rem);line-height:1.45;font-weight:500}
.pl-ip-partner .support-box p{margin:18px 0 0;color:var(--muted);font-size:.72rem}
.pl-ip-partner .note{color:var(--muted);font-size:.75rem!important}
.pl-ip-partner .checks{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}
.pl-ip-partner .checks div{padding:17px 20px 17px 45px;position:relative;border-radius:14px;background:#fff;color:#5e5668;font-size:.86rem;border:1px solid var(--line)}
.pl-ip-partner .checks div:before{content:"✓";position:absolute;left:20px;color:var(--p);font-weight:700}
.pl-ip-partner .vision{background:var(--deep);color:#fff}
.pl-ip-partner .vision .label{color:#cfc2e5}
.pl-ip-partner .vision h2{color:#fff}
.pl-ip-partner .vision h2 span{color:#d8cbed}
.pl-ip-partner .center{text-align:center}
.pl-ip-partner .vision p:not(.label):not(.sign){color:#d8d0e2;font-size:.95rem}
.pl-ip-partner .sign{margin-top:55px;color:#fff;font-family:Georgia,"Times New Roman","Noto Serif JP",serif;font-size:1.5rem;letter-spacing:.1em}
.pl-ip-partner .contact{background:#f7f4fc}
.pl-ip-partner .contact p:not(.label){color:var(--muted);font-size:.9rem}
.pl-ip-partner .contact .button{margin-top:25px}
.pl-ip-partner .dark{color:#fff;border-color:var(--deep);background:var(--deep)}
.pl-ip-partner .footer{padding:38px 5vw;display:flex;justify-content:space-between;gap:30px;align-items:center;color:#81788d;background:#fff;border-top:1px solid var(--line);font-size:.72rem}
.pl-ip-partner .footer strong{display:block;margin-bottom:3px;color:var(--deep);font-family:Georgia,serif;font-size:1rem;letter-spacing:.06em}
.pl-ip-partner .footer p{margin:0}
.pl-ip-partner .footer>a{color:var(--pd)}
@media (max-width:820px){.pl-ip-partner .hero{min-height:690px}
.pl-ip-partner .hero-inner{padding-top:130px}
.pl-ip-partner .section{padding:90px 0}
.pl-ip-partner .heading-row, .pl-ip-partner .split{display:block}
.pl-ip-partner .heading-row>p{margin-top:24px}
.pl-ip-partner .split>.text{margin-top:45px}
.pl-ip-partner .flow{grid-template-columns:1fr 1fr}}
@media (max-width:600px){.pl-ip-partner .header{padding:19px 6vw}
.pl-ip-partner .header-contact{font-size:.62rem}
.pl-ip-partner .hero{min-height:670px}
.pl-ip-partner .hero-inner{width:86%;padding-top:115px}
.pl-ip-partner .hero h1{font-size:clamp(2.65rem,12vw,4rem)}
.pl-ip-partner .hero-copy{font-size:.84rem}
.pl-ip-partner .pc{display:none}
.pl-ip-partner .button{padding:13px 19px;font-size:.7rem}
.pl-ip-partner .section{padding:78px 0}
.pl-ip-partner .wrap, .pl-ip-partner .narrow{width:86%}
.pl-ip-partner .section h2{font-size:2.15rem}
.pl-ip-partner .lead{font-size:1rem}
.pl-ip-partner .cards{grid-template-columns:1fr}
.pl-ip-partner .card{min-height:auto;padding:29px}
.pl-ip-partner .heading-row{margin-bottom:38px}
.pl-ip-partner .flow{grid-template-columns:1fr}
.pl-ip-partner .support-box{padding:34px 22px}
.pl-ip-partner .support-box strong{font-size:1.8rem}
.pl-ip-partner .checks{grid-template-columns:1fr}
.pl-ip-partner .sign{font-size:1.15rem}
.pl-ip-partner .footer{display:block;padding:30px 7vw}
.pl-ip-partner .footer>a{display:inline-block;margin-top:16px}}

/* Consolidated IP PARTNER typography (previous additional CSS; mobile last rule wins). */
body.page .pl-ip-partner .hero h1{font-size:clamp(36px,5vw,68px)!important;line-height:1.35}
@media(max-width:767px){
 body.page .pl-ip-partner .hero h1{font-size:clamp(26px,7vw,36px)!important;letter-spacing:-.06em!important;line-height:1.4!important}
 body.page .pl-ip-partner .section#about h2{font-size:clamp(25px,6.5vw,32px)!important;line-height:1.5!important;letter-spacing:-.05em!important}
}
