/* NK Civic Hybrid v1.5.0: original implementation of a spacious editorial political site.
 * Reference: content hierarchy and section rhythm of mori-shigeyuki.com.
 * No assets or code from the reference site are included.
 * Brand primary remains #7D003D.
 */
:root{--nk-primary:#7D003D;--nk-accent:#7D003D;--nk-editorial-ink:#282329;--nk-editorial-paper:#FFF;--nk-editorial-soft:#F7F5F6;--nk-editorial-outline:#E9E3E6}
html{scroll-padding-top:96px}
body{color:var(--nk-editorial-ink);background:#fff}
.nk-topline{background:#7D003D;min-height:28px}
.nk-topline .nk-container{min-height:28px}
.nk-header{position:sticky;top:0;background:#fff;border-bottom:1px solid #ECE6E9;box-shadow:0 4px 18px #2C18210A}
.nk-header-inner{min-height:92px;gap:20px}
.nk-brand-sub{font-size:11px;letter-spacing:.11em;text-transform:uppercase;color:#7D003D}
.nk-brand-name{color:#282329;letter-spacing:.025em;line-height:1.25}
.nk-brand-symbol{border-radius:1px;background:#7D003D}
.nk-menu{gap:clamp(11px,1.5vw,25px)}
.nk-menu a:not(.nk-header-cta){font-size:13px;letter-spacing:.04em}
.nk-menu .nk-header-cta{border-radius:2px;padding:12px 18px}
.nk-section{padding-block:clamp(72px,7.4vw,118px)}
.nk-section.alt{background:var(--nk-editorial-soft)}
.nk-section-head{max-width:920px;margin-bottom:clamp(36px,4vw,58px)}
.nk-section-head .nk-eyebrow{font-size:13px;font-weight:850;letter-spacing:.25em}
.nk-section-head h2{font-size:clamp(30px,4vw,54px);font-weight:900;letter-spacing:.07em;line-height:1.3;margin:10px 0 19px}
.nk-section-head p{font-size:clamp(14px,1.45vw,17px);line-height:1.9;color:#58535A}
.nk-section-head:after{width:86px;height:3px;margin-top:26px;background:#7D003D}
/* Visual: slideshow uses local media only, with headline independent from the images */
.nk-mori-hero{position:relative;isolation:isolate;background:#7D003D;min-height:0;overflow:hidden;color:#fff}
.nk-mori-hero:before{content:"";position:absolute;inset:0;z-index:2;pointer-events:none;background:linear-gradient(90deg,rgba(41,0,20,.78) 0%,rgba(63,0,33,.57) 44%,rgba(35,0,19,.12) 100%)}
.nk-mori-hero:not(.nk-has-slideshow):before{display:none}
.nk-mori-hero:after,.nk-mori-hero.nk-has-figure:after{content:none!important}
.nk-mori-hero .nk-hero-art{display:none!important}
.nk-mori-hero .nk-hero-layout,.nk-mori-hero.nk-figure-left .nk-hero-layout{position:relative;z-index:3;min-height:clamp(520px,50vw,720px);padding-block:40px 0}
.nk-mori-hero .nk-hero-layout .nk-hero-content{position:relative;z-index:4;padding-block:36px 100px;max-width:650px}
.nk-mori-hero .nk-hero-layout .nk-hero-content h1{font-weight:900;letter-spacing:.025em;line-height:1.4;margin:18px 0 24px}
.nk-mori-hero .nk-hero-layout .nk-hero-content p{line-height:2;max-width:640px}
.nk-mori-hero .nk-hero-kicker{font-size:13px;color:#fff;border-color:#fff}
.nk-mori-hero .nk-hero-small{font-size:10px;color:#F7E8EE;letter-spacing:.3em}
.nk-mori-hero .nk-btn{min-height:52px;border-radius:2px}
.nk-mori-hero .nk-btn.primary{color:#7D003D;background:#fff}
.nk-mori-hero .nk-btn.ghost{border:1px solid #fff;color:#fff;background:#ffffff0B}
.nk-mori-hero .nk-hero-bottom-rule{height:4px;background:#7D003D}
.nk-mori-hero.nk-has-slideshow .nk-hero-layout,.nk-mori-hero.nk-has-slideshow.nk-figure-left .nk-hero-layout{display:flex;align-items:center;justify-content:flex-start;min-height:clamp(560px,49vw,730px)}
.nk-mori-hero.nk-has-slideshow:not(.nk-has-figure) .nk-hero-content{flex:0 1 710px;max-width:710px;margin:0;padding:90px 0 120px}
.nk-mori-hero.nk-has-slideshow:not(.nk-has-figure) .nk-hero-placeholder{display:none}
.nk-mori-hero.nk-has-slideshow.nk-has-figure .nk-hero-figure{z-index:3}
/* Slideshow controls and transitions */
.nk-mori-slider{position:absolute;inset:0;z-index:1;overflow:hidden;background:#490026}
.nk-mori-slides{position:absolute;inset:0}
.nk-mori-slide{position:absolute;inset:0;opacity:0;visibility:hidden;transition:opacity .9s ease,visibility .9s ease;pointer-events:none}
.nk-mori-slide.is-active{opacity:1;visibility:visible}
.nk-mori-slide picture,.nk-mori-slide img{display:block;width:100%;height:100%}
.nk-mori-slide-img{object-fit:cover;object-position:var(--nk-slide-x,50%) var(--nk-slide-y,35%);filter:none}
.nk-mori-slider-controls{position:absolute;right:max(18px,calc((100vw - 1160px)/2));bottom:28px;z-index:8;display:flex;align-items:center;gap:11px;padding:6px;background:rgba(37,9,23,.47);border:1px solid rgba(255,255,255,.2);border-radius:100px}
.nk-mori-slider-controls button{color:#fff;background:transparent;border:0;border-radius:80px;min-width:38px;min-height:38px;display:grid;place-items:center;cursor:pointer}
.nk-mori-slider-controls button:hover,.nk-mori-slider-controls button:focus-visible{background:#FFFFFF36}
.nk-mori-slider-controls .nk-mori-slide-control{font-size:28px;line-height:1}
.nk-mori-slide-dots{display:flex;align-items:center;gap:7px}
.nk-mori-slider-controls .nk-mori-dot{min-width:10px;min-height:10px;width:10px;height:10px;background:#FFFFFF85;border:0;border-radius:100%;padding:0}
.nk-mori-slider-controls .nk-mori-dot.is-current{background:#fff;box-shadow:0 0 0 3px #FFFFFF34}
.nk-mori-slider-controls .nk-mori-slide-pause{min-width:65px;font-weight:700;font-size:11px;padding:0 11px;white-space:nowrap}
.nk-slide-transition-mask::after{content:"";position:absolute;inset:0;background:#230010;transform:scaleX(0);transform-origin:left center;pointer-events:none;z-index:3}
.nk-slide-transition-mask.is-transitioning::after{animation:nkMoriMask .72s ease-in-out both}
@keyframes nkMoriMask{0%{transform:scaleX(0);transform-origin:left}47%{transform:scaleX(1);transform-origin:left}53%{transform:scaleX(1);transform-origin:right}100%{transform:scaleX(0);transform-origin:right}}
/* section jump links */
.nk-quicklinks{margin:0;background:#fff;border-bottom:1px solid #E9E4E6}
.nk-quick-grid{box-shadow:none;border:0;border-radius:0;grid-template-columns:repeat(4,minmax(0,1fr))}
.nk-quick-grid a{min-height:110px;border-right:1px solid var(--nk-editorial-outline);letter-spacing:.08em;font-size:15px}
.nk-quick-grid small{font-size:10px;letter-spacing:.16em}
.nk-quick-grid a:hover,.nk-quick-grid a:focus-visible{background:#FBF6F8}
/* Profile first, full-width editorial paired layout */
#profile{background:#fff}
.nk-about-grid{grid-template-columns:minmax(0,.88fr) minmax(0,1.12fr);gap:clamp(32px,5vw,94px)}
.nk-about-picture{max-width:480px;max-height:none;aspect-ratio:4/5;border-radius:0;background:#F2EEF0;position:relative}
.nk-about-picture:after{content:"";position:absolute;right:-12px;bottom:-12px;width:68%;height:56%;border:3px solid #7D003D;z-index:-1}
.nk-about-copy .nk-eyebrow{font-size:13px;letter-spacing:.22em}
.nk-about-copy h2{font-size:clamp(31px,3.8vw,54px);margin:10px 0 20px;line-height:1.33}
.nk-about-copy p{line-height:2.05;font-size:16px}
.nk-about-copy .nk-btn.outline{margin-top:22px;min-height:52px;border-radius:2px}
/* Policy list: strong numerals and visible article links */
#policies{background:#F7F5F6}
.nk-card-grid.nk-policy-grid{gap:18px;grid-template-columns:repeat(2,minmax(0,1fr))}
.nk-policy-card{background:#fff;border:1px solid #E7E1E4;border-left:4px solid #7D003D;border-radius:2px;box-shadow:none;min-width:0}
.nk-policy-card .nk-card-body{min-height:240px;padding:clamp(22px,3vw,33px)}
.nk-policy-card .nk-policy-num{background:transparent;border:none;border-radius:0;color:#7D003D;padding:0;font-size:12px;letter-spacing:.2em}
.nk-policy-card .nk-card-title{margin:16px 0 14px;line-height:1.48}
.nk-policy-card .nk-card-title-link{color:#7D003D;font-size:clamp(19px,1.8vw,27px);font-weight:900}
.nk-policy-card .nk-card-body>p{color:#555057;line-height:1.95}
.nk-policy-card .nk-more{margin-top:auto;font-weight:850;text-decoration:none}
.nk-policy-card:last-child:nth-child(odd){grid-column:1/-1}
.nk-policy-card:hover{box-shadow:0 12px 30px #40021D12;transform:translateY(-1px);border-color:#BA91A6}
/* Direct HTML stories retain editor-created layouts */
#stories .nk-story-top-html{width:100%;max-width:1160px;margin:0 auto}
#stories .nk-story-top-html img{max-width:100%;height:auto}
#stories .nk-story-top-html>*{max-width:100%}
/* Activities: simple text rows instead of dense cards. */
#activities{background:#fff}
#activities .nk-latest-list{display:block;max-width:1000px;margin-inline:auto;list-style:none}
#activities .nk-latest-list li{border-bottom:1px solid #E6DEE2;padding:0}
#activities .nk-latest-list li:first-child{border-top:1px solid #E6DEE2}
#activities .nk-latest-list a{display:block;padding:20px 12px;font-size:16px;font-weight:750;text-decoration:none}
#activities .nk-latest-list time{min-width:118px;margin-right:22px;color:#7D003D;font-weight:800}
#results{background:#F7F5F6}
.nk-social-grid .nk-social-card{border-radius:2px}
#contact{background:#7D003D;color:#fff}
#contact .nk-section-head h2,#contact .nk-section-head .nk-eyebrow,#contact .nk-section-head p{color:#fff}
#contact .nk-section-head::after{background:#fff}
#contact .nk-contact-panel{border-color:#FFFFFF53;border-radius:2px;background:#FFFFFF10}
.nk-footer{background:#34001D;color:#fff}
/* inner articles follow same typography and brand */
.nk-inner-hero{background:#7D003D;padding-block:clamp(65px,8vw,112px)}
.nk-article-wrap{max-width:900px;line-height:1.95}
.nk-article-wrap h2{border-left:4px solid #7D003D;padding-left:15px;margin-top:1.8em}
@media(max-width:1080px){
 .nk-header-inner{min-height:75px}.nk-nav{background:#fff}
 .nk-mori-hero .nk-hero-layout .nk-hero-content h1{font-size:clamp(31px,4.2vw,50px)}
}
@media(max-width:700px){
 :root{--nk-mobile-sns-height:72px}
 .nk-header-inner{min-height:68px}
 .nk-mori-hero .nk-hero-layout,.nk-mori-hero.nk-figure-left .nk-hero-layout{min-height:0;padding-top:0}
 .nk-mori-hero.nk-has-slideshow .nk-hero-layout,.nk-mori-hero.nk-has-slideshow.nk-figure-left .nk-hero-layout{min-height:clamp(430px,105vw,570px);display:flex;align-items:center}
 .nk-mori-hero.nk-has-slideshow:not(.nk-has-figure) .nk-hero-content{flex:1;max-width:100%;padding:58px 0 125px;margin:0}
 .nk-mori-hero .nk-hero-layout .nk-hero-content h1{font-size:clamp(22px,6vw,34px);margin:14px 0 17px}
 .nk-mori-hero .nk-hero-layout .nk-hero-content p{font-size:13px;line-height:1.9}
 .nk-mori-hero .nk-buttons{gap:9px}
 .nk-mori-slider-controls{right:14px;bottom:19px;gap:6px;padding:4px}
 .nk-mori-slider-controls button{min-width:32px;min-height:34px}
 .nk-mori-slider-controls .nk-mori-slide-pause{min-width:60px;font-size:10px}
 .nk-mori-slide-img{object-position:var(--nk-slide-mobile-x,50%) var(--nk-slide-mobile-y,35%)}
 .nk-quick-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
 .nk-quick-grid a{min-height:75px;border-bottom:1px solid #E9E4E6;font-size:13px}
 .nk-section{padding-block:62px}
 .nk-section-head{margin-bottom:30px}
 .nk-section-head h2{font-size:clamp(27px,7.5vw,34px)}
 .nk-about-grid{grid-template-columns:1fr;gap:28px}
 .nk-about-picture{width:min(100%,420px);aspect-ratio:4/4.4;max-height:440px;margin:auto}
 .nk-about-copy h2{font-size:36px}
 .nk-card-grid.nk-policy-grid{grid-template-columns:1fr;gap:14px}
 .nk-policy-card:last-child:nth-child(odd){grid-column:auto}
 .nk-policy-card .nk-card-body{min-height:0;padding:22px}
 .nk-policy-card .nk-card-title-link{font-size:clamp(18px,5.2vw,23px)}
 #activities .nk-latest-list a{font-size:14px;padding:17px 4px}
 #activities .nk-latest-list time{display:block;font-size:11px;margin:0 0 4px}
}
@media(max-width:420px){
 .nk-mori-hero.nk-has-slideshow .nk-hero-layout{min-height:460px}
 .nk-mori-hero .nk-hero-kicker{font-size:11px}
 .nk-mori-hero .nk-hero-layout .nk-hero-content p{font-size:12.5px}
 .nk-mori-slider-controls{bottom:12px}
 .nk-mori-hero.nk-has-slideshow:not(.nk-has-figure) .nk-hero-content{padding-bottom:116px}
}
@media(prefers-reduced-motion:reduce){
 .nk-mori-slide{transition:none!important}
 .nk-slide-transition-mask.is-transitioning::after{animation:none!important}
}
/* The full-width hero layout must not block slider controls beneath its transparent area. */
.nk-mori-hero.nk-has-slideshow .nk-hero-layout{pointer-events:none}
.nk-mori-hero.nk-has-slideshow .nk-hero-content{pointer-events:auto}
