/* トップページの写真ヒーロー。既存ページには影響させない。 */
#hk-top #hk-hero{padding:0;overflow:hidden;background:#f4f1ea}
#hk-top #hk-hero .hk-photo-stage{position:relative;isolation:isolate;width:100%;height:clamp(530px,78svh,850px);overflow:hidden;color:#1b3a6e}
#hk-top #hk-hero .hk-photo-slides,#hk-top #hk-hero .hk-photo-slide{position:absolute;inset:0}
#hk-top #hk-hero .hk-photo-slide{opacity:0;visibility:hidden}
#hk-top #hk-hero .hk-photo-slide.is-current{opacity:1;visibility:visible;z-index:1}
#hk-top #hk-hero .hk-photo-slide img{display:block;width:100%;height:100%;max-width:none;object-fit:cover;object-position:center center}
#hk-top #hk-hero .hk-photo-stage::after{content:"";position:absolute;inset:0;z-index:2;pointer-events:none;background:linear-gradient(90deg,rgba(250,248,244,.93) 0%,rgba(250,248,244,.8) 36%,rgba(250,248,244,0) 64%)}
#hk-top #hk-hero .hk-photo-copy{position:absolute;z-index:3;left:clamp(20px,6vw,96px);bottom:clamp(64px,9vh,112px);width:min(650px,calc(100% - 40px));padding:clamp(24px,3.1vw,44px) 0;background:none;border:0;box-shadow:none}
#hk-top #hk-hero .hk-photo-roof{display:block;width:72px;height:24px;margin:0 0 14px 3px;position:relative}
#hk-top #hk-hero .hk-photo-roof::before,#hk-top #hk-hero .hk-photo-roof::after{content:"";position:absolute;top:9px;width:40px;height:1px;background:#1b3a6e}
#hk-top #hk-hero .hk-photo-roof::before{left:0;transform:rotate(-28deg);transform-origin:right center}
#hk-top #hk-hero .hk-photo-roof::after{right:0;transform:rotate(28deg);transform-origin:left center}
#hk-top #hk-hero .hk-photo-messages{position:relative;display:grid}
#hk-top #hk-hero .hk-photo-message{margin:0;grid-area:1/1}
#hk-top #hk-hero h1,#hk-top #hk-hero .hk-photo-title{margin:0;padding:0;color:#1b3a6e;font-family:var(--mi);font-size:clamp(2.5rem,5vw,4.8rem);font-weight:600;letter-spacing:.025em;line-height:1.22}
#hk-top #hk-hero h1 .l,#hk-top #hk-hero .hk-photo-title .l{display:block;color:inherit;white-space:nowrap}
#hk-top #hk-hero .sub{margin:18px 0 0;color:#3a4f6e;font-family:var(--la);font-size:clamp(.75rem,1.2vw,.94rem);letter-spacing:.09em;line-height:1.5}
#hk-top #hk-hero .hk-photo-message-link{display:inline-block;margin-top:15px;color:#1b3a6e;font-size:.84rem;font-weight:600;line-height:1.4;text-decoration:none;border-bottom:1px solid currentColor}
#hk-top #hk-hero .hk-photo-message-link:hover,#hk-top #hk-hero .hk-photo-message-link:focus-visible{color:#27508f}
#hk-top #hk-hero .cta-wrap{position:relative;display:flex;align-items:flex-end;gap:12px;margin-top:28px}
#hk-top #hk-hero .hk-photo-sign{position:relative;display:inline-flex;align-items:center;gap:1.7em;background:#1b3a6e;color:#fff;border:1px solid #1b3a6e;padding:14px 18px;font-size:.92rem;font-weight:600;line-height:1.4;box-shadow:4px 4px 0 #9fc0f0;transition:transform .2s,box-shadow .2s,background .2s}
#hk-top #hk-hero .hk-photo-sign::before,#hk-top #hk-hero .hk-photo-sign::after{content:"";position:absolute;top:-12px;height:11px;width:1px;background:#9fc0f0}
#hk-top #hk-hero .hk-photo-sign::before{left:15px}
#hk-top #hk-hero .hk-photo-sign::after{right:15px}
#hk-top #hk-hero .hk-photo-sign:hover,#hk-top #hk-hero .hk-photo-sign:focus-visible{background:#27508f;color:#fff;transform:translateY(-2px);box-shadow:4px 6px 0 #9fc0f0}
#hk-top #hk-hero .hk-photo-iemaru{width:50px;height:50px;object-fit:contain;flex:none}
#hk-top #hk-hero .hk-photo-controls{display:none;position:absolute;z-index:4;right:clamp(20px,5vw,76px);bottom:clamp(20px,4vw,42px);align-items:center;gap:16px;padding:8px 12px;background:rgba(39,80,143,.72);border:1px solid rgba(255,255,255,.35)}
#hk-top #hk-hero .hk-photo-dots{display:flex;align-items:center;gap:6px}
#hk-top #hk-hero .hk-photo-controls button{appearance:none;border:0;cursor:pointer;color:#fff;background:transparent}
#hk-top #hk-hero .hk-photo-dots button{width:25px;height:28px;padding:0;display:grid;place-items:center}
#hk-top #hk-hero .hk-photo-dots button::after{content:"";width:7px;height:7px;border-radius:50%;background:rgba(255,255,255,.55);transition:background .2s,transform .2s}
#hk-top #hk-hero .hk-photo-dots button.is-current::after{background:#fff;transform:scale(1.5)}
#hk-top #hk-hero .hk-photo-toggle{min-width:32px;height:32px;padding:0;font-size:19px;line-height:1}
#hk-top #hk-hero .hk-photo-controls button:focus-visible{outline:2px solid #fff;outline-offset:2px}
@media (prefers-reduced-motion:no-preference){
  html.hk-anim #hk-top #hk-hero .hk-photo-stage.is-ready .hk-photo-controls{display:flex}
  html.hk-anim #hk-top #hk-hero .hk-photo-stage.is-ready .hk-photo-slide{visibility:visible;transition:opacity .9s ease}
  html.hk-anim #hk-top #hk-hero .hk-photo-stage.is-ready .hk-photo-slide.is-current img{animation:hkPhotoZoom 7s linear both}
  html.hk-anim #hk-top #hk-hero .hk-photo-stage.is-ready .hk-photo-message{opacity:0;transform:translateY(8px);transition:opacity .45s ease,transform .45s ease}
  html.hk-anim #hk-top #hk-hero .hk-photo-stage.is-ready .hk-photo-message.is-current{opacity:1;transform:none}
  html.hk-anim #hk-top #hk-hero .hk-photo-stage.is-paused .hk-photo-slide.is-current img{animation-play-state:paused}
}
@keyframes hkPhotoZoom{from{transform:scale(1)}to{transform:scale(1.065)}}
@media (max-width:680px){
  #hk-top #hk-hero .hk-photo-stage{height:clamp(520px,73svh,700px)}
  #hk-top #hk-hero .hk-photo-slide img{object-position:center center}
  #hk-top #hk-hero .hk-photo-stage::after{background:linear-gradient(0deg,rgba(250,248,244,.94) 0%,rgba(250,248,244,.86) 48%,rgba(250,248,244,0) 78%)}
  #hk-top #hk-hero .hk-photo-copy{left:16px;bottom:76px;width:calc(100% - 32px);padding:24px 20px}
  #hk-top #hk-hero h1,#hk-top #hk-hero .hk-photo-title{font-size:clamp(2rem,8.7vw,3rem)}
  #hk-top #hk-hero .sub{margin-top:13px;font-size:.75rem}
  #hk-top #hk-hero .hk-photo-message-link{margin-top:12px;font-size:.8rem}
  #hk-top #hk-hero .cta-wrap{margin-top:24px}
  #hk-top #hk-hero .hk-photo-iemaru{width:44px;height:44px}
  #hk-top #hk-hero .hk-photo-controls{left:50%;right:auto;bottom:18px;transform:translateX(-50%)}
}
@media (max-width:360px){#hk-top #hk-hero h1,#hk-top #hk-hero .hk-photo-title{font-size:1.9rem}}
@media (prefers-reduced-motion:reduce){#hk-top #hk-hero .hk-photo-slide:not(:first-child){display:none!important}#hk-top #hk-hero .hk-photo-slide:first-child{opacity:1!important;visibility:visible!important}}
@media print{#hk-top #hk-hero .hk-photo-stage{height:540px}}
