/* Homepage visual extends toward the right edge on wide screens. */
.hero-grid{width:calc(100% + max(0px,(100vw - 1240px)/2 - 24px));grid-template-columns:minmax(0,min(40%,520px)) minmax(0,1fr);gap:clamp(24px,3vw,64px)}
.hero h1 em{font-size:clamp(24px,2.8vw,43px)}
.hero-visual.carousel{display:block;min-height:0;width:100%;background:radial-gradient(ellipse at 50% 30%,#183e53,#061b2b 75%);border:1px solid #315365;border-radius:6px;overflow:hidden;box-shadow:0 24px 70px #0002}
.hero-visual.carousel:before{display:none}
.field-carousel{position:relative;max-width:1040px;margin:0 auto;overflow:hidden;border:1px solid #315365;border-radius:6px;background:radial-gradient(ellipse at 50% 30%,#183e53,#061b2b 75%);box-shadow:0 18px 48px #071c2e14}
.carousel-slides{position:relative;aspect-ratio:16/10;padding-bottom:110px}
.hero-slide{position:absolute;inset:0;margin:0;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .7s ease,visibility .7s}
.hero-slide.is-active{opacity:1;visibility:visible;pointer-events:auto}
.hero-visual.carousel img{position:absolute;inset:0 0 110px;width:100%;height:calc(100% - 110px);max-height:none;object-fit:contain;filter:none;mix-blend-mode:normal;border-radius:0}
.hero-visual.carousel .hero-slide:first-child img{object-fit:cover;object-position:center 42%}
.hero-slide figcaption{position:absolute;left:22px;right:22px;bottom:60px;line-height:1.5;color:#a9c4d4;font-size:11px}
.hero-slide figcaption strong{display:block;color:#e2f3fa;font-size:15px;font-weight:500;margin-bottom:3px}
.carousel-controls{display:flex;align-items:center;gap:10px;position:absolute;left:16px;right:16px;bottom:12px;height:36px;z-index:2}
.carousel-controls button{flex-shrink:0;display:grid;place-items:center;border:1px solid #426376;color:#c3dce7;background:transparent;padding:0;border-radius:3px}
.carousel-controls button:hover{border-color:var(--cyan);color:var(--cyan);background:#163e52}
.carousel-controls .carousel-arrow,.carousel-controls .carousel-pause{width:32px;height:32px;font-size:23px;line-height:1}
.carousel-controls .carousel-pause{font-size:12px;margin-left:2px;width:54px}
.carousel-dots{position:relative;display:flex;flex:1;min-width:0;align-items:center;gap:8px;overflow-x:auto;scrollbar-width:none;padding:6px 0}.carousel-dots::-webkit-scrollbar{display:none}.carousel-count{flex-shrink:0;color:#bfd5df;font-size:12px;white-space:nowrap;font-variant-numeric:tabular-nums}
.carousel-controls .carousel-dot{width:8px;height:8px;border-radius:50%;border-color:#89b2c5}
.carousel-controls .carousel-dot.is-active{background:var(--cyan);border-color:var(--cyan);box-shadow:0 0 10px #54d6d04d}
@media(min-width:1800px){.carousel-slides{aspect-ratio:16/9}}
@media(max-width:1100px){.hero-grid{gap:24px}.hero-slide figcaption{right:16px;left:16px}.carousel-controls{right:10px;gap:6px}.carousel-dots{gap:6px}}
@media(max-width:900px){.hero-grid{width:100%;grid-template-columns:1fr;gap:30px}.hero-grid>div:first-child{max-width:650px}.hero .lead{max-width:590px}.hero h1{font-size:clamp(41px,6vw,58px)}.hero h1 em{font-size:clamp(25px,4.2vw,38px)}.carousel-slides{aspect-ratio:16/10}.hero-visual.carousel{margin:0;width:100%}}
@media(max-width:480px){.hero-visual.carousel{width:calc(100% + 12px);margin:0 -6px}.carousel-slides{aspect-ratio:auto;height:calc((100vw - 24px)*.6 + 110px)}.hero-visual.carousel img{height:calc(100% - 110px);inset:0 0 110px}.hero-slide figcaption{left:16px;right:16px;bottom:56px}.hero-slide figcaption strong{font-size:14px}.carousel-controls{left:16px;right:16px;bottom:10px;justify-content:flex-end;gap:8px}.carousel-dots{gap:10px}.carousel-controls .carousel-dot{width:9px;height:9px}.carousel-controls .carousel-arrow,.carousel-controls .carousel-pause{width:34px;height:34px}.carousel-controls .carousel-pause{width:54px}}
@media(prefers-reduced-motion:reduce){.hero-slide{transition:none}}

/* A stable frame accommodates both portrait field photos and landscape details. */
.field-carousel .carousel-slides{aspect-ratio:auto;height:clamp(440px,50vw,680px);padding-bottom:112px}
.field-carousel .zoom{position:absolute;inset:0 0 112px;display:block;width:100%;height:calc(100% - 112px);padding:18px;background:transparent}
.field-carousel .zoom img{display:block;width:100%;height:100%;object-fit:contain}
.field-carousel .zoom:focus-visible{outline:3px solid var(--cyan);outline-offset:-5px}
.field-carousel .hero-slide figcaption{left:22px;right:22px;bottom:60px}
@media(max-width:640px){.field-carousel .carousel-slides{height:580px;height:clamp(440px,72svh,620px)}.field-carousel .zoom{padding:12px}.field-carousel .hero-slide figcaption{left:16px;right:16px}.field-carousel .carousel-controls{left:16px;right:16px;gap:8px}}
