/* CMS component adaptations; publishing foundations remain in the five company stylesheets. */
.main-visual .slide-inner picture { display:block; width:100%; height:100%; }
.main-visual .slide-inner video,.main-visual .slide-inner iframe { width:100%; height:100%; object-fit:cover; border:0; }
.product-cats a { display:block; padding:12px 20px; border-radius:30px; }
.product-cats a.active { color:#fff; background:var(--primary,#194b83); }
.product-detail .product-cms-body { padding:40px 0; }
.cms-not-found { max-width:720px; margin:15vh auto; padding:30px; text-align:center; }
.cms-not-found h1 { margin:40px 0 20px; }
.cms-not-found p { margin-bottom:30px; }

/* Basic motion: short reveal, slow hero zoom and restrained interaction feedback. */
.nr-reveal { transition:opacity .65s ease, translate .65s cubic-bezier(.22,.61,.36,1); transition-delay:var(--nr-delay,0ms); }
#main .nr-reveal { transition-duration:1.1s; }
.nr-will-reveal { opacity:0; translate:0 22px; }
.nr-is-visible { opacity:1; translate:0 0; }
#header { transition:box-shadow .3s ease, background-color .3s ease; }
#header.nr-scrolled { box-shadow:0 4px 22px rgba(10,35,65,.09); }
.nr-motion-enabled .main-slider .slide-inner { overflow:hidden; }
.nr-motion-enabled .main-slider .swiper-slide-active .slide-inner picture > img { animation:nr-hero-zoom 8s ease-out both; }
.nr-motion-enabled .main-slider .swiper-slide-active .slide-caption h2 { animation:nr-caption-in 1.2s .2s both; }
.nr-motion-enabled .main-slider .swiper-slide-active .slide-caption p { animation:nr-caption-in 1.2s .4s both; }
.main-slider.nr-hero-paused .swiper-slide-active .slide-inner picture > img { animation-play-state:paused; }
.history-era .history-era-head { transition:opacity .45s ease; }
.nr-motion-enabled .history-era:not(.nr-era-active) .history-era-head { opacity:.65; }
.history-era.nr-era-active .history-era-body::before { box-shadow:0 0 0 7px #dce8f5; transition:box-shadow .5s ease; }
.product-card-thumb img, .notice-thumb img { transition:transform .5s ease; }
.notice-thumb { overflow:hidden; }
@media (hover:hover) and (pointer:fine) {
    .product-card a:hover .product-card-thumb img, .product-card a:focus-visible .product-card-thumb img { transform:scale(1.045); }
    .notice-item:hover .notice-thumb img, .notice-item:focus-visible .notice-thumb img { transform:scale(1.04); }
    .btn-primary:hover, .btn-outline:hover { box-shadow:0 5px 16px rgba(18,53,91,.12); }
}
@keyframes nr-hero-zoom { from { transform:scale(1.055); } to { transform:scale(1); } }
@keyframes nr-caption-in { from { opacity:0; transform:translateY(18px); } to { opacity:1; transform:translateY(0); } }
@media (prefers-reduced-motion:reduce) {
    html { scroll-behavior:auto !important; }
    .nr-reveal, .history-era .history-era-head { opacity:1 !important; translate:none !important; transition:none !important; }
    .main-slider .slide-inner img, .main-slider .slide-caption h2, .main-slider .slide-caption p, .hero-scroll-icon svg path { animation:none !important; }
    .product-card-thumb img, .notice-thumb img, .biz-card-bg { transition:none !important; transform:none !important; }
    [data-aos] { opacity:1 !important; transform:none !important; transition:none !important; }
}
@media print { .nr-reveal { opacity:1 !important; translate:none !important; } }

/* DB-managed business subpages: temporary content until the final copy is registered. */
.nr-page-preparing {padding:72px 24px; text-align:center; background:#f3f6f9;}
.nr-page-preparing img {display:block; width:200px; max-width:65%; height:auto; margin:0 auto 32px;}
.nr-page-preparing h3 {margin:0 0 16px; color:#1e4178; font-size:clamp(22px,3vw,30px); word-break:keep-all;}
.nr-page-preparing p {margin:0 0 28px; color:#667085; line-height:1.8; word-break:keep-all;}

/* Header background image is stored in tbl_header.contents, like the reference CMS. */
.sub-visual[style*="background-image"]::after {background-image:inherit;}
