/* MIRAIKI publication extension — scoped to new document pages.
   Approved style.css / mobile hero patch / maid-cafe CSS are not overwritten. */
.mp-skip{position:fixed;z-index:10000;top:-100px;left:18px;padding:12px 20px;border-radius:10px;background:#fff;color:#072447;box-shadow:0 2px 16px #07244722}
.mp-skip:focus{top:12px}
.mp-visual-notice{font-size:11px;line-height:1.9;color:#617c90;padding-block:10px 18px}
.miraiki-inner-page .site-header{background:rgba(248,251,253,.97);box-shadow:0 1px 0 #07244712}
.mp-page{padding:138px 0 112px;background:linear-gradient(180deg,#f2f9fc 0,#fff 380px);min-height:70vh}
.mp-shell{max-width:1260px}
.mp-breadcrumb{margin:0 0 48px;font-size:12px;line-height:1.8;color:#59778c}
.mp-breadcrumb ol{list-style:none;display:flex;flex-wrap:wrap;gap:8px 13px;padding:0;margin:0}
.mp-breadcrumb li{min-width:0;max-width:100%;overflow-wrap:anywhere}
.mp-breadcrumb li+li::before{content:'/';color:#b6cbd8;padding-right:13px}
.mp-breadcrumb a:hover{color:#13765f;text-decoration:underline;text-underline-offset:4px}
.mp-page-heading{margin-bottom:64px;padding-bottom:44px;border-bottom:1px solid #dbe8ef}
.mp-label{font-family:'Outfit',sans-serif;font-size:13px;font-weight:600;letter-spacing:.2em;color:#247c6c;margin-bottom:20px}
.mp-page-heading h1{font-family:'Zen Kaku Gothic New',sans-serif;font-size:clamp(34px,4vw,58px);font-weight:900;line-height:1.4;letter-spacing:.02em;color:#072447;max-width:100%;word-break:normal;overflow-wrap:break-word}
.mp-page-lead{font-size:clamp(16px,1.4vw,20px);font-weight:500;line-height:1.95;margin-top:22px;color:#426177;max-width:46em}
.mp-prose{font-size:17px;line-height:2.05;letter-spacing:.025em;color:#23435c;word-break:normal;overflow-wrap:break-word}
.mp-prose>*:first-child{margin-top:0}
.mp-prose p{margin:0 0 22px;max-width:100%;word-break:normal;overflow-wrap:break-word}
.mp-prose h2{font-size:clamp(24px,2.3vw,34px);font-weight:700;color:#072447;line-height:1.55;margin:62px 0 22px;letter-spacing:.02em}
.mp-prose h3{font-size:24px;line-height:1.5;font-weight:700;color:#072447;margin:28px 0 16px}
.mp-prose a:not(.mp-button){color:#13785e;text-decoration:underline;text-underline-offset:5px;text-decoration-color:#8bbcac}
.mp-prose a:hover{text-decoration-color:currentColor}
.mp-prose ul,.mp-prose ol{margin:20px 0 32px;padding-left:1.6em}
.mp-prose li{padding-left:.2em;margin-bottom:10px}
.mp-prose img{max-width:100%;height:auto}
.mp-intro{max-width:56em;font-size:19px;line-height:2.1;margin-bottom:44px}
.mp-company{margin:0}
.mp-company>div{display:grid;grid-template-columns:190px minmax(0,1fr);gap:32px;padding:27px 0;border-bottom:1px solid #dbe8ef}
.mp-company>div:first-child{border-top:1px solid #dbe8ef}
.mp-company dt{font-weight:700;color:#072447}
.mp-company dd{margin:0;min-width:0;overflow-wrap:anywhere}
.mp-note{font-size:14px!important;line-height:1.95;padding:22px 25px;background:#f3f8fb;border-left:3px solid #99cbc8;margin-top:28px!important;color:#547185}
.mp-prose .mp-note a{color:inherit}
.mp-links{display:flex;flex-wrap:wrap;gap:16px 26px;margin-top:38px}
.mp-links a{display:inline-flex;align-items:center;gap:24px;color:#072447!important;text-decoration:none!important;border-bottom:1px solid #b6ceda;padding:14px 0;font-weight:700;font-size:15px}
.mp-links a:hover{border-bottom-color:#2ab68e}
.mp-links span{font-family:sans-serif}
.mp-service-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:30px;margin:42px 0}
.mp-service{padding:40px 36px;border-radius:24px;border:1px solid #d7e8e2;min-width:0}
.mp-service-mint{background:linear-gradient(140deg,#e9f8f2,#f5fcf9)}
.mp-service-pink{background:linear-gradient(140deg,#fcecf5,#fff8fc);border-color:#efdae6}
.mp-prose .mp-service h2{margin:18px 0 22px;font-size:31px}
.mp-kicker{font-family:'Outfit',sans-serif;font-weight:600;font-size:12px;letter-spacing:.15em;color:#58798b}
.mp-button{display:inline-flex;align-items:center;justify-content:space-between;gap:20px;max-width:100%;padding:16px 22px;border-radius:999px;background:#e3f5ec;border:1px solid #b9decb;color:#072447!important;text-decoration:none!important;font-size:15px;line-height:1.65;font-weight:700;transition:background .2s ease}
.mp-button:hover{background:#d4efe2}
.mp-button-pink{background:#f9e4f0;border-color:#edc4da}
.mp-button-pink:hover{background:#f3d7e7}
.mp-button-outline{background:white;border-color:#bdd1dd}
.mp-service-detail{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:54px;align-items:start;margin-bottom:52px}
.mp-service-detail h2:first-child{margin-top:0}
.mp-service-photo{margin:0}
.mp-service-photo img{border-radius:24px;width:100%;height:auto;display:block}
.mp-service-photo figcaption{font-size:12px;line-height:1.8;color:#718696;margin-top:13px}
.mp-values{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;margin-top:50px}
.mp-values section{min-width:0;padding:28px 26px;border-top:3px solid #80c9b2;background:#f7fbfa;border-radius:0 0 16px 16px}
.mp-values section:nth-child(2){border-top-color:#8fc8e8;background:#f7fbfd}
.mp-values section:nth-child(3){border-top-color:#e6b3cf;background:#fdf9fb}
.mp-values span{font-family:'Outfit',sans-serif;font-size:11px;letter-spacing:.1em;color:#5f7d8f}
.mp-values h3{margin:22px 0 16px;font-size:25px}
.mp-values p{font-size:16px;line-height:1.95;margin-bottom:0}
.mp-contact-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:28px;margin:42px 0}
.mp-contact-grid section{padding:36px 30px;background:#f5fbf8;border:1px solid #d7e8e0;border-radius:24px;min-width:0}
.mp-contact-grid section+section{background:#fcf4f9;border-color:#eddae5}
.mp-contact-grid h2{margin:16px 0 22px;font-size:25px}
.mp-contact-value{display:block;font-family:'Outfit',sans-serif;font-size:clamp(20px,2vw,27px);font-weight:600;line-height:1.6;overflow-wrap:anywhere;text-decoration:none!important;margin-bottom:24px}
.mp-page-cta{display:flex;justify-content:space-between;align-items:center;gap:36px;margin-top:76px;padding:38px 40px;border-radius:24px;background:linear-gradient(105deg,#eff9f5,#f2f8fd 55%,#fcf0f7);border:1px solid #e2ecf1}
.mp-page-cta p{font-family:'Outfit',sans-serif;font-size:12px;letter-spacing:.16em;color:#607f95;margin-bottom:14px}
.mp-page-cta h2{font-size:26px;line-height:1.5;margin:0;color:#072447;font-weight:700}
.mp-news-list{border-top:1px solid #cddfe9}
.mp-news-entry{display:grid;grid-template-columns:210px minmax(0,1fr);gap:32px;padding:35px 0;border-bottom:1px solid #dbe8ef}
.mp-news-meta{display:flex;align-items:center;flex-wrap:wrap;gap:12px;font-family:'Outfit',sans-serif;font-size:14px;line-height:1.7;color:#678295}
.mp-news-meta .news-badge{padding:5px 12px;font-size:11px;line-height:1.7;min-height:28px;border:0}
.mp-news-entry h2{font-size:24px;line-height:1.6;letter-spacing:.015em;color:#072447;margin-bottom:12px}
.mp-news-entry h2 a{display:flex;gap:24px;justify-content:space-between;align-items:baseline}
.mp-news-entry h2 span{flex-shrink:0;color:#339b83;font-family:sans-serif;font-size:19px}
.mp-news-entry p{font-size:15px;line-height:1.95;max-width:100%;color:#57758a}
.mp-page-heading .mp-news-meta{margin-top:30px}
.mp-pagination{display:flex;gap:12px;flex-wrap:wrap;margin-top:44px}
.mp-pagination a,.mp-pagination span{min-width:42px;padding:8px 14px;display:block;border-radius:8px;background:#f0f7f9;color:#072447}
.mp-pagination .current{background:#072447;color:#fff}
.mp-back{margin-top:52px}
.mp-article-shell{max-width:1120px}
.mp-prose-privacy-policy{max-width:56em}
.mp-prose-privacy-policy h2{font-size:25px}
@media (max-width:1000px){
 .mp-values{grid-template-columns:1fr}
 .mp-service-detail{gap:36px}
 .mp-contact-grid,.mp-service-grid{grid-template-columns:1fr}
 .mp-news-entry{grid-template-columns:160px minmax(0,1fr);gap:24px}
}
@media (max-width:760px){
 .mp-page{padding:112px 0 76px;background:linear-gradient(180deg,#f2f9fc,#fff 300px)}
 .mp-breadcrumb{font-size:11px;margin-bottom:34px}
 .mp-page-heading{padding-bottom:30px;margin-bottom:36px}
 .mp-page-heading h1{font-size:clamp(28px,7.8vw,36px);line-height:1.5;letter-spacing:0}
 .mp-label{font-size:11px;margin-bottom:16px}
 .mp-page-lead{font-size:16px;line-height:1.95;margin-top:18px}
 .mp-prose{font-size:16px;line-height:2.05;letter-spacing:.015em}
 .mp-prose h2{margin-top:42px;margin-bottom:18px;font-size:24px;line-height:1.65}
 .mp-prose h3{font-size:22px}
 .mp-intro{font-size:17px;line-height:2.05;margin-bottom:30px}
 .mp-company>div{grid-template-columns:1fr;gap:10px;padding:23px 0}
 .mp-company dt{font-size:14px;color:#658293}
 .mp-company dd{font-size:16px;line-height:1.95}
 .mp-service-grid{gap:22px;margin-block:30px}
 .mp-service{padding:28px 24px;border-radius:20px}
 .mp-prose .mp-service h2{font-size:27px}
 .mp-service-detail{grid-template-columns:1fr;gap:28px;margin-bottom:36px}
 .mp-service-photo img{border-radius:18px}
 .mp-service-photo figcaption{font-size:11px}
 .mp-values{gap:20px;margin-top:34px}
 .mp-values section{padding:27px 24px}
 .mp-values h3{font-size:24px}
 .mp-links{flex-direction:column;align-items:flex-start;gap:8px;margin-top:30px}
 .mp-links a{font-size:14px;line-height:1.9;width:100%}
 .mp-button{font-size:14px;padding:14px 19px;line-height:1.8;gap:16px}
 .mp-note{padding:20px;font-size:13px!important}
 .mp-contact-grid{gap:22px;margin-block:30px}
 .mp-contact-grid section{padding:28px 23px}
 .mp-contact-grid h2{font-size:23px}
 .mp-contact-value{font-size:20px;letter-spacing:-.025em}
 .mp-page-cta{flex-direction:column;align-items:stretch;padding:29px 24px;gap:26px;margin-top:52px;border-radius:20px}
 .mp-page-cta h2{font-size:24px}
 .mp-news-entry{grid-template-columns:1fr;gap:20px;padding:28px 0}
 .mp-news-entry h2{font-size:22px;line-height:1.75}
 .mp-news-entry p{font-size:14px;line-height:1.95}
 .mp-news-meta{font-size:12px;gap:12px}
 .mp-visual-notice{font-size:10px;line-height:1.9;padding-top:0;padding-bottom:16px}
 .mp-prose-privacy-policy h2{font-size:22px;line-height:1.6}
}
@media (prefers-reduced-motion:reduce){.mp-button{transition:none}}

/* Keep the approved animated heading readable under OS motion reduction. */
@media(prefers-reduced-motion:reduce){.hero-line .hero-word{animation:none!important;transform:none!important}}
