/* Keep the original theme's layout, transitions and hover effects.
   Overrides below are limited to the NEWS overlap fix and CMS integration. */
.prototype .index-news-headline{position:relative;top:auto;left:auto;width:100%;margin-top:0;min-height:82px}
.prototype .index-news-headline h2{width:145px;min-height:82px;height:auto;flex:0 0 145px;font-size:22px;padding:18px}
.prototype .index-news-headline p{min-height:82px;height:auto;padding:18px 34px;white-space:normal;overflow-wrap:anywhere;min-width:0;font-size:16px}
.prototype .index-news-headline p a{max-width:100%}
.prototype .index-news-movie video{object-fit:contain}
.prototype .hero-still{position:absolute;inset:0;width:100%;height:100%;object-fit:contain}
.prototype .index-blog::before{display:none}
.prototype .index-blog{padding-top:100px}
.prototype .blog-shared-image{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.prototype.local-content .site-main{padding-top:160px}
@media(max-width:991px){.prototype.local-content .site-main{padding-top:110px}}
.prototype.local-content:has(.page-cover) .site-main{padding-top:0}
.prototype .video-toggle{position:absolute;right:16px;top:16px;z-index:2;background:#fffffff0;border:1px solid #ddd;border-radius:24px;font-size:11px;color:#17202a;padding:8px 14px;cursor:pointer}
.prototype .index-cover-copy-text{font-weight:700}
.prototype .index-cover-copy-text .wave-character{display:inline-block;white-space:pre;transform:translateY(100px);transition:transform .5s cubic-bezier(0,.54,.26,.98);transition-delay:var(--wave-delay)}
.prototype .index-cover-copy-text .show .wave-character{transform:translateY(0)}
.prototype .index-cover-copy-text .wave-line{display:block}
.prototype .index-cover-copy-text .hero-word{display:contents}
@media(max-width:991px){
 .prototype .index-cover-copy{padding-left:24px;padding-right:24px}
 .prototype .index-cover-copy-text{font-size:clamp(28px,8vw,44px);line-height:1.65;letter-spacing:.04em}
 .prototype .index-cover-copy-text .wave-line{letter-spacing:inherit}
 .prototype .index-cover-copy-text .wave-line+.wave-line{margin-top:.35em}
 .prototype .index-cover-copy-text .hero-word{display:inline-block;max-width:100%;white-space:normal;vertical-align:top}
 .prototype .page-aboutus-movie video{width:100%;height:100%;object-fit:cover;object-position:center}
 .prototype .index-news{margin-top:40px}
 .prototype .index-news-phrase{display:none}
 .prototype .video-toggle{display:none!important}
 .prototype video::-webkit-media-controls,.prototype video::-webkit-media-controls-start-playback-button{display:none!important}
}
.prototype .index-partners iframe{max-width:100%;border:0}
.prototype .header-modal .modal-body{overflow-y:auto}
.prototype .header-modal .modal-title{font-size:1rem}
.prototype .preview-banner{position:fixed;top:0;left:0;right:0;z-index:5000;background:#176f60;color:white;padding:8px 20px;font-size:12px;display:flex;align-items:center;gap:18px}
.prototype .preview-banner a{margin-left:auto;color:white;white-space:nowrap}
.prototype.is-preview .header{top:38px}
.prototype a:focus-visible,.prototype button:focus-visible{outline:3px solid #55a8e0;outline-offset:4px}
@media(min-width:992px){
  .prototype .header-modal{display:block!important}
  .prototype .index-news{height:max(0px,calc(42.552vw + 82px - 54vh));height:var(--news-space,max(0px,calc(42.552vw + 82px - 54vh)))}
  .prototype .service:focus-within .service-list,.prototype .service.is-expanded .service-list{height:300px;opacity:1;pointer-events:auto}
}
@media(max-width:991px){
  .prototype .index-news{height:auto!important}
  .prototype .index-news-headline{min-height:64px}
  .prototype .index-news-headline h2{width:85px;flex-basis:85px;min-height:64px;font-size:16px;padding:14px}
  .prototype .index-news-headline p{min-height:64px;padding:14px 16px;font-size:13px}
  .prototype .index-news-headline time{font-size:11px;margin-bottom:6px}
  .prototype .index-news-phrase{pointer-events:none}
  .prototype .header-modal .modal-content{overflow-y:auto}
  .prototype .header-modal .modal-body{flex-shrink:0;overflow:visible}
  .prototype .preview-banner span{display:none}
}
@media(prefers-reduced-motion:reduce){
  .prototype .animate,.prototype .animate *, .prototype .animate::before,.prototype .animate::after{animation:none!important;transition:none!important;opacity:1!important;transform:none!important}
}

.prototype .index-news-movie{overflow:hidden}.prototype .index-news-movie video{object-fit:cover}.prototype #hero-image{object-fit:cover;display:none}
@media(min-width:992px) and (orientation:landscape){.hero-pc-image #hero-image{display:block}.hero-pc-image #hero-video,.hero-pc-image .video-toggle{display:none}}
@media(max-width:991px),(orientation:portrait){.hero-sp-image #hero-image{display:block}.hero-sp-image #hero-video,.hero-sp-image .video-toggle{display:none}}

.prototype .archive-article-image,.prototype .archive-recent-item-image{overflow:hidden;position:relative}
.prototype .cms-article img{max-width:100%;height:auto}
.prototype .cms-article::after{content:"";display:block;clear:both}

.prototype .index-service-dsa a.managed-dsa-banner{background-image:none;overflow:hidden}.managed-dsa-image{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.prototype .managed-dsa-banner span{position:relative;z-index:1}.page-aboutus-movie{overflow:hidden}

.prototype .archive-list-item.cms-category{background:var(--category-bg)!important}.prototype .archive-list-item.cms-category a,.prototype .archive-article-meta .cms-category{color:var(--category-fg)!important}.prototype .archive-article-meta .cms-category{background:var(--category-bg)!important}

/* Keep the entire uploaded banner visible at its own aspect ratio. */
.prototype .index-service-dsa::before{display:none}
.prototype .index-service-dsa a.managed-dsa-banner{position:relative;inset:auto;display:block;height:auto;overflow:visible}
.prototype .managed-dsa-banner .managed-dsa-image{position:static;inset:auto;display:block;width:100%;max-width:100%;height:auto;object-fit:contain}
.prototype .managed-dsa-banner span{position:absolute;left:0;top:50%;transform:translateY(-50%);max-width:calc(100% - 2rem)}

/* Managed photos keep their whole image visible, including new aspect ratios. */
.prototype .blog-shared-image,.prototype #hero-image{object-fit:contain}
.prototype .cms-article img{object-fit:contain!important;aspect-ratio:auto!important}
.prototype .cms-article .wp-block-gallery img,.prototype .cms-article .blocks-gallery-grid img{height:auto!important;flex:none!important}
.prototype .cms-article .wp-block-gallery figure,.prototype .cms-article .blocks-gallery-item figure{height:auto!important;align-self:flex-start}
.prototype .cms-pagination{display:flex;flex-wrap:wrap;gap:12px;margin:48px 0}
.prototype .cms-pagination a,.prototype .cms-pagination span{display:grid;place-items:center;min-width:44px;min-height:44px;border:1px solid #003d89;padding:8px;color:#003d89}
.prototype .cms-pagination [aria-current]{background:#003d89;color:white}

/* Match the original staggered left/right photo composition, bounded to the page. */
.prototype .index-service-introduction{display:grid;grid-template-columns:repeat(20,minmax(0,1fr));row-gap:60px;width:100%;max-width:none;margin:0;padding:0 0 200px}
.prototype .index-service-introduction-text{grid-column:1 / span 10;grid-row:2;margin:0;padding:0 16.66%;min-width:0}
.prototype .index-service-introduction-text::before{display:none}
.prototype .index-service-introduction-copy{grid-column:1 / span 11;grid-row:3;align-self:center;margin:0;padding:0;min-width:0}
.prototype .index-service-introduction-image{position:static;inset:auto;width:100%;max-width:100%;height:auto;object-fit:contain;margin:0;align-self:start}
.prototype .index-service-introduction-image.-image1{grid-column:1 / span 10;grid-row:1;max-width:1179px}
.prototype .index-service-introduction-image.-image2{grid-column:13 / span 8;grid-row:1 / span 2;margin-top:220px;max-width:754px}
.prototype .index-service-introduction-image.-image3{grid-column:12 / span 9;grid-row:3;max-width:948px;align-self:end}
.prototype .index-about{padding:300px 0 700px}
.prototype .index-about-content{display:grid;grid-template-columns:repeat(20,minmax(0,1fr));grid-template-rows:minmax(1000px,auto) auto auto;column-gap:0;max-width:none;padding:0}
@media(min-width:992px){.prototype .index-about-content::after{left:46%;font-size:3vw;pointer-events:none}}
.prototype .index-about-content-first{grid-column:11 / span 10;grid-row:1;margin:0;padding:0;align-self:start;min-width:0}
.prototype .index-about-content-first>[class*="col-"]{flex:0 0 100%;max-width:100%;margin-left:0}
.prototype .index-about-content-last{grid-column:1 / -1;grid-row:3;margin:60px 0 0;min-width:0}
.prototype .index-about-image{position:static;inset:auto;width:100%;max-width:100%;height:auto;object-fit:contain;margin:0;align-self:start}
.prototype .index-about-image.-image1{grid-column:1 / span 9;grid-row:1;margin-top:100px}
.prototype .index-about-image.-image2{grid-column:1 / span 9;grid-row:2;margin-top:300px}
.prototype .index-about-image.-image3{grid-column:11 / span 10;grid-row:2;max-width:774px}
.prototype .index-company img{max-width:100%;height:auto;object-fit:contain}
.prototype .page-aboutus-row{height:auto;min-height:0;align-items:center;gap:30px 0}
.prototype .page-aboutus-row-image{position:static;inset:auto;width:50%;height:auto;max-width:50%;object-fit:contain;margin:0;padding:0 15px}
.prototype .page-aboutus-row-column{flex:0 0 50%;max-width:50%;margin-left:0;order:2}
.prototype .page-aboutus-row-image.-right{order:3}
.prototype .page-aboutus-row:last-of-type{margin-bottom:100px}
.prototype .page-aboutus-gather::before{display:none}
.prototype .page-aboutus-gather-image{position:static;inset:auto;display:block;width:100%;height:auto;object-fit:contain}
/* Let replacement photos determine section heights, without the old reserved gaps. */
.prototype .index-service-introduction{row-gap:clamp(32px,5vw,64px);padding-bottom:clamp(48px,6vw,100px)}
.prototype .index-service-introduction-image.-image2{margin-top:clamp(48px,10vw,160px)}
.prototype .index-about{padding:clamp(64px,8vw,128px) 0 clamp(64px,8vw,128px)}
.prototype .index-about-content{grid-template-rows:auto;row-gap:clamp(40px,5vw,80px)}
.prototype .index-about-image.-image1{margin-top:48px}
.prototype .index-about-image.-image2{margin-top:clamp(32px,6vw,96px)}
.prototype .index-about-content-last{margin-top:0}
.prototype .index-about-slogan{white-space:normal;overflow-wrap:anywhere}
.prototype .index-company{top:auto;padding:clamp(48px,6vw,96px) 0}
.prototype .index-partners{margin-top:0;padding-top:48px;padding-bottom:96px}
.prototype .footer{height:auto}
.prototype .footer-bottom{padding-top:32px;padding-bottom:24px}
@media(min-width:992px){.prototype .footer-top{position:relative;top:auto;right:auto;margin-left:auto;padding-top:64px}}
.prototype .site-main .page-common-last{padding-top:clamp(56px,7vw,112px);padding-bottom:clamp(64px,8vw,128px)}
.prototype .site-main .page-service-content{padding-bottom:clamp(56px,7vw,112px)}
.prototype .site-main .page-service-content-column-graywrap{padding-top:clamp(48px,6vw,96px);padding-bottom:clamp(48px,6vw,96px)}
.prototype .site-main .pb-400{padding-bottom:clamp(64px,8vw,128px)!important}
.prototype .page-main img:not(.blog-shared-image){max-width:100%;height:auto;object-fit:contain}
@media(min-width:992px){
 .prototype .site-main .mb-lg-250,.prototype .site-main .mb-lg-200,.prototype .site-main .mb-lg-150{margin-bottom:clamp(56px,7vw,112px)!important}
}
@media(max-width:991px){
 .prototype .index-service-introduction{row-gap:24px;margin-top:48px;padding:0 15px 40px}
 .prototype .index-service-introduction-text{grid-column:1 / -1;grid-row:1;padding:0 15px}
 .prototype .index-service-introduction-copy{grid-column:1 / -1;grid-row:2;padding:0 15px}
 .prototype .index-service-introduction-image.-image1{grid-column:1 / -1;grid-row:3}
 .prototype .index-service-introduction-image.-image2{grid-column:1 / -1;grid-row:4;margin-top:0}
 .prototype .index-service-introduction-image.-image3{grid-column:1 / -1;grid-row:5}
 .prototype .index-about{padding:64px 0}
 .prototype .index-about-content{grid-template-rows:auto;row-gap:30px;padding:0 30px}
 .prototype .index-about-content::after{display:none}
 .prototype .index-about-content-first{grid-column:1 / -1;grid-row:1}
 .prototype .index-about-content-first>[class*="col-"]{padding:0}
 .prototype .index-about-content-last{grid-column:1 / -1;grid-row:3;margin:0}
 .prototype .index-about-content-last>[class*="col-"]{padding:0}
 .prototype .index-about-image.-image1{grid-column:1 / -1;grid-row:2;margin-top:0}
 .prototype .index-about-image.-image2{grid-column:1 / -1;grid-row:4;margin-top:0}
 .prototype .index-about-image.-image3{grid-column:1 / -1;grid-row:5}
 .prototype .page-aboutus-row-image,.prototype .page-aboutus-row-column{width:100%;max-width:100%;flex-basis:100%}
 .prototype .page-aboutus-row-image.-right{order:1}
 .prototype .site-main .mb-150,.prototype .site-main .mb-200,.prototype .site-main .mb-250{margin-bottom:48px!important}
 .prototype .site-main .page-common-last{padding-top:48px;padding-bottom:56px}
 .prototype .index-partners{padding-top:32px;padding-bottom:64px}
 .prototype .index-service-introduction-copy p{font-size:clamp(22px,5.8vw,34px);white-space:normal;overflow-wrap:anywhere}
 .prototype .page-main .animate.-wordwave{letter-spacing:.03em;line-height:1.6}
 .prototype .page-common-title .font-68{font-size:clamp(24px,7vw,42px)}
}
