@charset "UTF-8";

/* ===== Visual polish layer (2026-08-26) ===== */
:root{
  --accent:#b7132d;
  --accent-dark:#8f0f24;
  --navy-deep:#0b263d;
  --shadow-soft:0 24px 60px rgba(10,34,55,.10);
  --shadow-card:0 18px 45px rgba(10,34,55,.12);
}

body{background:#fff;letter-spacing:.01em}
.content-section{position:relative;overflow:hidden}
.content-section>.container{position:relative;z-index:2}

/* header */
.site-header{backdrop-filter:saturate(140%) blur(12px);-webkit-backdrop-filter:saturate(140%) blur(12px)}
.site-header::after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:2px;background:linear-gradient(90deg,transparent 0,var(--accent) 18%,var(--accent) 28%,transparent 48%);opacity:.75;pointer-events:none}
.global-nav a{position:relative;overflow:hidden}
.global-nav a:not(.global-nav__contact)::after{content:"";position:absolute;left:50%;bottom:9px;width:28px;height:2px;background:var(--accent);transform:translateX(-50%) scaleX(0);transform-origin:center;transition:transform .25s ease}
.global-nav a:not(.global-nav__contact):hover::after{transform:translateX(-50%) scaleX(1)}
.global-nav__contact{position:relative;box-shadow:inset 0 0 0 1px rgba(255,255,255,.08);transition:background .25s ease,transform .25s ease}
.global-nav__contact:hover{background:var(--accent)!important;transform:translateY(-1px)}

/* hero */
.hero::before{content:"";position:absolute;z-index:2;left:0;bottom:0;width:38%;height:5px;background:var(--accent)}
.hero::after{content:"SCROLL";position:absolute;z-index:4;right:28px;bottom:52px;color:rgba(255,255,255,.8);font:700 .68rem/1 Arial,sans-serif;letter-spacing:.24em;writing-mode:vertical-rl;padding-bottom:55px;background:linear-gradient(rgba(255,255,255,.65),rgba(255,255,255,.65)) center bottom/1px 42px no-repeat}
.hero__overlay{background:linear-gradient(90deg,rgba(5,22,36,.82) 0%,rgba(5,22,36,.54) 43%,rgba(5,22,36,.17) 74%,rgba(5,22,36,.08) 100%)}
.hero__content::before{display:none}
.hero h1{letter-spacing:.04em}
.hero__content>p:last-child{position:relative;padding-left:20px}
.hero__content>p:last-child::before{content:"";position:absolute;left:0;top:.35em;bottom:.35em;width:2px;background:rgba(255,255,255,.58)}
.hero__dots button{border-radius:99px}

/* section titles */
.section-title{position:relative;padding-left:22px}
.section-title::before{content:"";position:absolute;left:0;top:4px;width:4px;height:64px;background:linear-gradient(var(--accent),var(--accent-dark))}
.section-title p{font-size:.82rem;letter-spacing:.24em}
.section-title h2{position:relative;z-index:1;letter-spacing:.04em}
.section-title h2::after{content:"";display:block;width:44px;height:2px;margin-top:18px;background:var(--navy)}

/* about */
.about-section::before{content:"ABOUT";position:absolute;right:-10px;top:30px;color:rgba(16,42,67,.035);font:900 clamp(6rem,18vw,14rem)/1 Arial,sans-serif;letter-spacing:.04em;pointer-events:none}
.section-copy h3{position:relative}
.section-copy h3::after{content:"";display:block;width:84px;height:1px;margin-top:20px;background:rgba(183,19,45,.7)}
.section-photo{position:relative;padding:0 20px 20px 0}
.section-photo::after{content:"";position:absolute;right:0;bottom:0;width:44%;height:44%;border-right:4px solid var(--accent);border-bottom:4px solid var(--accent);z-index:-1}
.section-photo img{transition:transform .45s ease,box-shadow .45s ease;box-shadow:var(--shadow-card)}
.section-photo:hover img{transform:translate(-4px,-4px);box-shadow:0 28px 68px rgba(10,34,55,.16)}

/* message */
.message-section::before{content:"MESSAGE";position:absolute;right:-1vw;top:32px;color:rgba(16,42,67,.045);font:900 clamp(5.5rem,17vw,13rem)/.9 Arial,sans-serif;letter-spacing:.03em;pointer-events:none}
.message-heading{position:relative;padding-bottom:22px;border-bottom:1px solid rgba(16,42,67,.12)}
.message-heading::after{content:"";position:absolute;left:0;bottom:-1px;width:120px;height:3px;background:var(--accent)}
.message-heading p{letter-spacing:.22em}
.message-photo{position:relative;padding:12px;background:#fff;box-shadow:var(--shadow-soft)}
.message-photo::before{content:"";position:absolute;inset:-10px 10px 10px -10px;border:1px solid rgba(183,19,45,.4);z-index:-1}
.message-photo img{box-shadow:none}
.message-copy{position:relative;padding-top:8px}
.message-copy::before{content:"“";position:absolute;left:-12px;top:-52px;color:rgba(183,19,45,.12);font:700 7rem/1 Georgia,serif}

/* works */
.works-section{background:linear-gradient(180deg,#fff 0,#fff 72%,#f4f7f9 72%,#f4f7f9 100%)}
.works-section::before{content:"WORKS";position:absolute;left:-15px;top:34px;color:rgba(16,42,67,.035);font:900 clamp(6rem,18vw,14rem)/1 Arial,sans-serif;letter-spacing:.04em;pointer-events:none}
.works-heading{position:relative}
.works-heading__copy{border-left:1px solid rgba(16,42,67,.16);padding-left:34px}
.works-carousel-shell{padding:12px 0 26px}
.work-card{position:relative;border:1px solid rgba(16,42,67,.08);box-shadow:0 10px 28px rgba(10,34,55,.08);transition:transform .35s ease,box-shadow .35s ease,border-color .35s ease;overflow:hidden}
.work-card::before{content:"";position:absolute;z-index:3;left:0;top:0;width:0;height:4px;background:var(--accent);transition:width .35s ease}
.work-card:hover{transform:translateY(-8px);box-shadow:0 25px 55px rgba(10,34,55,.15);border-color:rgba(183,19,45,.18)}
.work-card:hover::before{width:100%}
.work-card__slider{overflow:hidden}
.work-card__slide{transition:opacity .5s ease,transform .6s ease}
.work-card:hover .work-card__slide.is-active{transform:scale(1.035)}
.work-card__type{display:inline-flex;align-items:center;gap:9px}
.work-card__type::before{content:"";width:22px;height:2px;background:var(--accent)}
.work-card__body>a{position:relative;padding-bottom:3px}
.work-card__body>a::after{content:"";position:absolute;left:0;bottom:0;width:100%;height:1px;background:var(--accent);transform:scaleX(.25);transform-origin:left;transition:transform .25s ease}
.work-card__body>a:hover::after{transform:scaleX(1)}
.works-arrow{transition:transform .2s ease,background .2s ease}
.works-arrow:hover{transform:scale(1.08)}

/* company */
.company-section::before{content:"COMPANY";position:absolute;right:-20px;top:34px;color:rgba(16,42,67,.04);font:900 clamp(5.5rem,17vw,13rem)/1 Arial,sans-serif;pointer-events:none}
.company-table-wrap{position:relative;border-top:4px solid var(--navy);box-shadow:var(--shadow-soft)}
.company-table-wrap::before{content:"";position:absolute;left:0;top:-4px;width:92px;height:4px;background:var(--accent)}
.info-table{border-top:0}
.info-table th{position:relative;background:#edf2f5}
.info-table th::after{content:"";position:absolute;right:0;top:30%;bottom:30%;width:1px;background:rgba(16,42,67,.15)}
.info-table tr{transition:background .2s ease}
.info-table tr:hover td{background:#fafcfd}

/* recruit */
.recruit-section--light{position:relative;background:#fff!important;color:var(--ink)!important}
.recruit-section--light::before{content:"RECRUIT";position:absolute;left:-20px;top:32px;color:rgba(16,42,67,.035);font:900 clamp(6rem,18vw,14rem)/1 Arial,sans-serif;pointer-events:none}
.recruit-layout{position:relative}
.recruit-intro{position:relative;padding-top:6px}
.recruit-details{position:relative;border-top:4px solid var(--navy);box-shadow:var(--shadow-soft)}
.recruit-details::before{content:"";position:absolute;left:0;top:-4px;width:92px;height:4px;background:var(--accent)}
.primary-button{position:relative;overflow:hidden;gap:16px;box-shadow:0 10px 24px rgba(16,42,67,.18);transition:transform .2s ease,box-shadow .2s ease,background .2s ease}
.primary-button::after{content:"→";transition:transform .2s ease}
.primary-button:hover{transform:translateY(-2px);box-shadow:0 16px 30px rgba(16,42,67,.22)}
.primary-button:hover::after{transform:translateX(5px)}

/* access */
.access-section::before{content:"ACCESS";position:absolute;right:-10px;top:34px;color:rgba(16,42,67,.035);font:900 clamp(6rem,18vw,14rem)/1 Arial,sans-serif;pointer-events:none}
.access-layout{position:relative;box-shadow:var(--shadow-soft);border:1px solid rgba(16,42,67,.08);overflow:hidden}
.access-layout::before{content:"";position:absolute;z-index:3;left:0;top:0;width:6px;height:100%;background:linear-gradient(var(--accent),var(--navy))}
.access-info{padding-left:52px}
.map-frame{position:relative;overflow:hidden}
.map-frame::after{content:"NISHINOMIYA";position:absolute;right:14px;bottom:9px;padding:5px 8px;background:rgba(11,38,61,.82);color:#fff;font:700 .65rem/1 Arial,sans-serif;letter-spacing:.18em;pointer-events:none}

/* contact */
.contact-section{position:relative;overflow:hidden;background:linear-gradient(125deg,#071d33 0,#0b3152 58%,#0d3f68 100%)}
.contact-section::before{content:"CONTACT";position:absolute;right:-20px;bottom:-28px;color:rgba(255,255,255,.035);font:900 clamp(7rem,20vw,16rem)/1 Arial,sans-serif;pointer-events:none}
.contact-section::after{content:"";position:absolute;left:0;top:0;width:34%;height:5px;background:var(--accent)}
.contact-copy__eyebrow{display:flex;align-items:center;gap:12px}
.contact-copy__eyebrow::before{content:"";width:34px;height:2px;background:#fff}
.contact-direct a{position:relative;padding-left:20px}
.contact-direct a::before{content:"";position:absolute;left:0;top:.8em;width:8px;height:8px;border:2px solid rgba(255,255,255,.7);transform:rotate(45deg)}
.contact-form{position:relative;border:1px solid rgba(255,255,255,.12);box-shadow:0 24px 65px rgba(0,0,0,.22);backdrop-filter:blur(3px)}
.contact-form::before{content:"";position:absolute;left:0;top:0;width:74px;height:4px;background:var(--accent)}
.contact-form input,.contact-form textarea,.contact-form select{transition:border-color .2s ease,box-shadow .2s ease,background .2s ease}
.contact-form input:focus,.contact-form textarea:focus,.contact-form select:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(183,19,45,.12);outline:none}

/* footer */
.site-footer{position:relative}
.site-footer::before{content:"";display:block;height:3px;background:linear-gradient(90deg,var(--accent) 0 120px,var(--navy) 120px 38%,#e9eef2 38%)}
.footer-links a{position:relative;padding-left:0;transition:padding-left .2s ease,color .2s ease}
.footer-links a::before{content:"→";position:absolute;left:0;opacity:0;transform:translateX(-8px);transition:.2s}
.footer-links a:hover{padding-left:22px}
.footer-links a:hover::before{opacity:1;transform:none}
.page-top{border-radius:4px;box-shadow:0 10px 26px rgba(10,34,55,.22)}
.page-top.is-visible{transform:none}

@media(max-width:1100px){
  .site-header::after{background:linear-gradient(90deg,var(--accent),transparent 36%)}
  .global-nav a:not(.global-nav__contact)::after{display:none}
}
@media(max-width:900px){
  .hero::after{display:none}
  .works-heading__copy{border-left:0;padding-left:0}
  .section-photo{padding-right:12px;padding-bottom:12px}
  .company-table-wrap,.recruit-details{box-shadow:0 14px 36px rgba(10,34,55,.09)}
  .access-info{padding-left:34px}
}
@media(max-width:640px){
  .section-title{padding-left:16px}
  .section-title::before{width:3px;height:54px}
  .hero::before{width:46%}
  .message-copy::before{display:none}
  .message-photo::before{inset:-6px 6px 6px -6px}
  .content-section::before{font-size:5rem!important;top:20px!important}
  .work-card:hover{transform:none}
  .access-layout::before{width:4px}
  .contact-section::before{font-size:6rem}
  .site-footer::before{background:linear-gradient(90deg,var(--accent) 0 80px,var(--navy) 80px 45%,#e9eef2 45%)}
}

/* ===== Refined decoration layer (2026-08-27) ===== */
/* Keep the existing layout; add depth, motion and clearer interactive cues. */
.section-title p{display:inline-flex;align-items:center;gap:12px}
.section-title p::after{content:"";width:34px;height:1px;background:currentColor;opacity:.45}
.section-title h2{font-weight:800;text-shadow:0 1px 0 rgba(255,255,255,.35)}

/* Subtle section separator without changing section dimensions */
.about-section,.message-section,.works-section,.company-section,.recruit-section--light,.access-section{border-bottom:1px solid rgba(16,42,67,.065)}

/* Works: image overlay + stronger link cue */
.work-card__slider::after{content:"";position:absolute;inset:auto 0 0;height:28%;background:linear-gradient(transparent,rgba(7,29,51,.14));pointer-events:none;z-index:2;opacity:.55;transition:opacity .35s ease}
.work-card:hover .work-card__slider::after{opacity:.9}
.work-card__body h3{transition:color .25s ease}
.work-card:hover .work-card__body h3{color:var(--navy-deep)}
.work-card__body>a span{display:inline-block;transition:transform .25s ease}
.work-card__body>a:hover span{transform:translateX(5px)}

/* Tables: restrained corporate finish */
.company-table-wrap,.recruit-details{border-radius:2px;overflow:hidden}
.info-table th{font-weight:800;letter-spacing:.025em}
.info-table td{transition:background .2s ease,padding-left .2s ease}
.info-table tr:hover td{padding-left:28px}

/* Access panel gets a very light inset frame */
.access-layout{background:rgba(255,255,255,.82)}
.access-info{position:relative}
.access-info::after{content:"";position:absolute;right:0;top:10%;height:80%;width:1px;background:linear-gradient(transparent,rgba(16,42,67,.14),transparent)}

/* Reveal motion: modest and professional */
.reveal{will-change:opacity,transform}
.reveal.is-visible{animation:nikkoSettle .65s cubic-bezier(.2,.65,.3,1) both}
@keyframes nikkoSettle{0%{filter:blur(1.5px)}100%{filter:blur(0)}}

@media (prefers-reduced-motion:reduce){
  .reveal.is-visible{animation:none}
  .work-card,.work-card__slide,.section-photo img,.info-table td{transition:none!important}
}
@media(max-width:900px){
  .info-table tr:hover td{padding-left:20px}
  .access-info::after{display:none}
}

/* ===== HERO ORIGINAL COLOR / BRIGHTNESS 2026-09-01 ===== */
/* Show hero photographs close to their original color and brightness. */
.hero__slide{
  filter:none !important;
}
.hero__overlay{
  background:linear-gradient(90deg,
    rgba(5,22,36,.22) 0%,
    rgba(5,22,36,.10) 38%,
    rgba(5,22,36,.03) 68%,
    rgba(5,22,36,0) 100%) !important;
}
/* Keep copy readable without darkening the photographs. */
.hero h1{
  text-shadow:0 3px 14px rgba(0,0,0,.52),0 1px 3px rgba(0,0,0,.45);
}
.hero__content>p:last-child{
  text-shadow:0 2px 8px rgba(0,0,0,.55);
}

/* ===== HEADER / HERO VIEWPORT TUNING 2026-09-01 ===== */
:root{
  --header-height:78px;
}
.site-header__inner{
  height:var(--header-height);
}
.site-logo img{
  width:255px;
}
.global-nav a{
  padding:12px 11px 10px;
}

/* Hero always fills the visible screen height regardless of monitor resolution. */
.hero{
  height:100vh;
  min-height:100vh !important;
}
@supports (height: 100dvh){
  .hero{
    height:100dvh;
    min-height:100dvh !important;
  }
}

/* Stronger copy contrast without darkening the photographs. */
.hero h1{
  text-shadow:
    0 4px 18px rgba(0,0,0,.86),
    0 2px 6px rgba(0,0,0,.90),
    1px 1px 2px rgba(0,0,0,.95);
}
.hero__content>p:last-child{
  font-weight:800;
  text-shadow:
    0 3px 12px rgba(0,0,0,.88),
    0 1px 4px rgba(0,0,0,.94);
}

@media(max-width:1100px){
  :root{--header-height:70px;}
  .site-logo img{width:220px;}
}
@media(max-width:640px){
  :root{--header-height:66px;}
  .site-logo img{width:195px;}
  .hero{
    height:100vh;
    min-height:100vh !important;
  }
  @supports (height: 100dvh){
    .hero{
      height:100dvh;
      min-height:100dvh !important;
    }
  }
  .hero__content{padding-top:var(--header-height);}
  .hero__content>p:last-child{font-weight:800;}
}

/* Hero motion adjustment 2026-09-02 */
.hero__slide{transform-origin:center center;}
.hero__slide:nth-child(1).is-active,
.hero__slide:nth-child(3).is-active{
  animation-name:heroZoomOutLarge!important;
}
.hero__slide:nth-child(2).is-active{
  animation-name:heroZoomInLarge!important;
}
.hero__slide.is-active{
  animation-duration:6.8s!important;
  animation-timing-function:cubic-bezier(.22,.61,.36,1)!important;
  animation-fill-mode:both!important;
}
@keyframes heroZoomOutLarge{
  from{transform:scale(1.16);}
  to{transform:scale(1.025);}
}
@keyframes heroZoomInLarge{
  from{transform:scale(1.025);}
  to{transform:scale(1.16);}
}
@media (prefers-reduced-motion:reduce){
  .hero__slide.is-active{animation:none!important;transform:scale(1.04);}
}

/* Hero slide transition smoothing 2026-09-02 */
.hero__slide{
  transition:opacity 1.25s ease-in-out!important;
  will-change:transform,opacity;
  backface-visibility:hidden;
}

/* Hero motion: finish before slide change 2026-09-02 */
.hero__slide.is-active{
  animation-duration:5.2s!important;
  animation-timing-function:cubic-bezier(.22,.61,.36,1)!important;
  animation-fill-mode:forwards!important;
}
.hero__slide{
  transition:opacity .8s ease-in-out!important;
}

/* Hero: prevent transform snap during fade-out 2026-09-02 */
.hero__slide:nth-child(1),
.hero__slide:nth-child(3){
  transform:scale(1.025);
}
.hero__slide:nth-child(2){
  transform:scale(1.16);
}

/* active中は従来どおり動かし、終了後もforwardsで最終位置を保持 */
.hero__slide:nth-child(1).is-active,
.hero__slide:nth-child(3).is-active{
  animation:heroZoomOutLarge 5.8s cubic-bezier(.22,.61,.36,1) forwards!important;
}
.hero__slide:nth-child(2).is-active{
  animation:heroZoomInLarge 5.8s cubic-bezier(.22,.61,.36,1) forwards!important;
}

/* 切替はopacityだけを滑らかに。transformは切替時にtransitionさせない */
.hero__slide{
  transition-property:opacity!important;
  transition-duration:2.2s!important;
  transition-timing-function:ease-in-out!important;
  will-change:opacity,transform;
}


/* Hero text motion 2026-09-02
   読みやすさを保ちながら、表示時にゆっくり浮かび上がる */
.hero__content > * {
  opacity: 0;
  transform: translateY(24px);
  animation: heroTextReveal 3.0s cubic-bezier(.22,.61,.36,1) forwards;
}
.hero__content > *:nth-child(1) { animation-delay: 1.30s; }
.hero__content > *:nth-child(2) { animation-delay: 2.00s; }
.hero__content > *:nth-child(3) { animation-delay: 2.70s; }
.hero__content > *:nth-child(4) { animation-delay: 3.40s; }

@keyframes heroTextReveal {
  0% {
    opacity: 0;
    transform: translateY(24px);
    letter-spacing: .045em;
  }
  100% {
    opacity: 1;
    transform: translateY(0);
    letter-spacing: inherit;
  }
}

@media (prefers-reduced-motion: reduce) {
  .hero__content > * {
    opacity: 1;
    transform: none;
    animation: none;
  }
}

/* Slower hero motion refinement 2026-09-02 */
.hero__slide:nth-child(1).is-active,
.hero__slide:nth-child(3).is-active{
  animation-duration:5.8s!important;
}
.hero__slide:nth-child(2).is-active{
  animation-duration:5.8s!important;
}


/* Hero text sequence timing FIXED 2026-09-02 */
.hero__content > * {
  opacity: 1;
  transform: none;
  animation: none;
}

.hero-text-step--1 {
  display: inline-block;
  opacity: 0;
  transform: translateY(24px);
  animation: heroTextReveal 3s cubic-bezier(.22,.61,.36,1) 1.3s forwards;
}

.hero-text-step--2 {
  display: inline-block;
  opacity: 0;
  transform: translateY(24px);
  animation: heroTextReveal 3s cubic-bezier(.22,.61,.36,1) 2.3s forwards;
}

.hero-text-step--3 {
  opacity: 0;
  transform: translateY(24px);
  animation: heroTextReveal 3s cubic-bezier(.22,.61,.36,1) 6.3s forwards;
}

@media (prefers-reduced-motion: reduce) {
  .hero-text-step--1,
  .hero-text-step--2,
  .hero-text-step--3 {
    opacity: 1;
    transform: none;
    animation: none;
  }
}


/* Hero text sequence - visible fix 2026-09-02 */
.hero__content > * {
  opacity: 1 !important;
  transform: none !important;
  animation: none !important;
}

.hero-text-step {
  opacity: 0;
  transform: translateY(24px);
  animation: none;
}

.hero-text-step.is-text-visible {
  animation: heroTextRevealStrict 3s cubic-bezier(.22,.61,.36,1) forwards !important;
}



@media (prefers-reduced-motion: reduce) {
  .hero-text-step,
  .hero-text-step.is-text-visible {
    opacity: 1;
    transform: none;
    animation: none !important;
  }
}


/* Hero text initial visibility fix 2026-09-02 */
.hero__content .hero-text-step {
  opacity: 0 !important;
  transform: translateY(24px) !important;
  animation: none !important;
}

.hero__content .hero-text-step.is-text-visible {
  animation: heroTextRevealStrict 3s cubic-bezier(.22,.61,.36,1) forwards !important;
}



/* animation中だけkeyframesの値を優先させる */
.hero__content .hero-text-step.is-text-visible {
  opacity: unset !important;
  transform: unset !important;
}

@media (prefers-reduced-motion: reduce) {
  .hero__content .hero-text-step,
  .hero__content .hero-text-step.is-text-visible {
    opacity: 1 !important;
    transform: none !important;
    animation: none !important;
  }
}


/* Hero copy punctuation/mobile line-break adjustment 2026-09-02 */
.hero-description-line{
  display:block;
}

/* スマホでは各文を途中で改行せず、指定した2行のまま表示 */
@media (max-width:640px){
  .hero__content .hero-text-step--3{
    padding-left:14px !important;
    font-size:12px !important;
    line-height:1.8 !important;
    letter-spacing:0 !important;
    max-width:none !important;
    width:max-content;
  }
  .hero-description-line{
    display:block;
    white-space:nowrap;
  }
}


/* Footer 3-column compact layout 2026-09-02 */
.site-footer__inner{
  padding-top:20px!important;
  padding-bottom:12px!important;
  gap:28px!important;
}
.footer-company img{
  margin-bottom:6px!important;
}
.footer-links.footer-links--three{
  display:grid!important;
  grid-template-columns:repeat(3,minmax(110px,1fr))!important;
  gap:8px 24px!important;
  align-items:start;
}
.footer-links__col{
  display:flex;
  flex-direction:column;
  gap:0;
}
.footer-links__col a{
  padding:3px 0!important;
  line-height:1.45;
}
.site-footer__bottom{
  padding-top:6px!important;
  padding-bottom:6px!important;
}
@media(max-width:640px){
  .site-footer__inner{
    padding-top:16px!important;
    padding-bottom:10px!important;
    gap:16px!important;
  }
  .footer-links.footer-links--three{
    grid-template-columns:repeat(3,1fr)!important;
    gap:6px 12px!important;
  }
  .footer-links__col a{
    font-size:12px!important;
    padding:2px 0!important;
  }
}

/* Sitemap organized sections 2026-09-02 */
.sitemap-sections{
  display:grid;
  gap:34px;
}
.sitemap-section{
  padding-bottom:26px;
  border-bottom:1px solid rgba(0,0,0,.12);
}
.sitemap-section:last-child{border-bottom:0}
.sitemap-section h2{
  margin:0 0 16px;
  font-size:24px;
}
.sitemap-section h3{
  margin:22px 0 10px;
  font-size:17px;
}
.sitemap-all-link{margin:0 0 12px}
.sitemap-all-link a{font-weight:700}
.sitemap-grid--works{
  grid-template-columns:repeat(2,minmax(0,1fr));
}
@media(max-width:640px){
  .sitemap-sections{gap:26px}
  .sitemap-section h2{font-size:21px}
  .sitemap-grid--works{grid-template-columns:1fr}
}


/* Footer link hover fix 2026-09-02 */
.footer-links.footer-links--three a{
  position:relative;
  display:inline-block;
  width:max-content;
  max-width:100%;
  transform:none!important;
  transition:opacity .25s ease!important;
  text-decoration:none!important;
}

.footer-links.footer-links--three a::before,
.footer-links.footer-links--three a::after{
  content:none!important;
  display:none!important;
}

.footer-links.footer-links--three a:hover,
.footer-links.footer-links--three a:focus-visible{
  transform:none!important;
  opacity:.58;
  text-decoration:none!important;
}

@media (hover:none){
  .footer-links.footer-links--three a:hover{
    opacity:1;
  }
}

/* Hero text reveal - consolidated */
@keyframes heroTextRevealStrict {
  from {
    opacity: 0;
    transform: translateY(20px);
    letter-spacing: .18em;
  }
  to {
    opacity: 1;
    transform: translateY(0);
    letter-spacing: normal;
  }
}



/* Hero description: fade only, no movement */
.hero__content p.hero-description-fade{
  animation-name:heroDescriptionFadeOnly!important;
}

@keyframes heroDescriptionFadeOnly{
  from{
    opacity:0;
    transform:none;
    letter-spacing:normal;
  }
  to{
    opacity:1;
    transform:none;
    letter-spacing:normal;
  }
}


/* Hero description - strict opacity-only fade */
.hero__content p.hero-description-fade{
  transform:none!important;
  translate:none!important;
  animation-name:heroDescriptionOpacityOnly!important;
  animation-timing-function:ease-in-out!important;
}

@keyframes heroDescriptionOpacityOnly{
  0%{
    opacity:0;
    transform:none;
    translate:none;
  }
  100%{
    opacity:1;
    transform:none;
    translate:none;
  }
}
