/* =========================================================
   OA CENTER TRIATHLON TEAM  —  recruit landing page  (rev.2)
   Sporty bold type · gradient hero · real race photos
   ========================================================= */

:root{
  --base:#ffffff;
  --ink:#1a1f26;
  --navy:#103770;
  --navy-d:#0c2a55;
  --sky:#37a8e3;
  --lightsky:#eff8fd;
  --sky2:#83b7d2;
  --red:#bf2c37;
  --gray:#707070;

  --grad:linear-gradient(142deg,#0e2f63 0%,#103770 30%,#0a6aa6 72%,#2f9fd8 100%);
  --grad-soft:linear-gradient(142deg,#103770,#1f74b3);

  --display:"brandon-grotesque","Saira Condensed",sans-serif;
  --jp:"Noto Sans JP",-apple-system,"Hiragino Kaku Gothic ProN",Meiryo,sans-serif;

  --ease:cubic-bezier(.16,1,.3,1);
  --pad:clamp(22px,6vw,120px);
}

/* Noto Sans JP セルフホスト（Google Fonts がブロックされる環境でも確実に表示） */
@font-face{font-family:"Noto Sans JP";font-style:normal;font-weight:500;font-display:swap;src:url(fonts/noto-sans-jp-500.woff2) format("woff2");}
@font-face{font-family:"Noto Sans JP";font-style:normal;font-weight:700;font-display:swap;src:url(fonts/noto-sans-jp-700.woff2) format("woff2");}
@font-face{font-family:"Noto Sans JP";font-style:normal;font-weight:900;font-display:swap;src:url(fonts/noto-sans-jp-900.woff2) format("woff2");}

*,*::before,*::after{box-sizing:border-box;}
html{-webkit-text-size-adjust:100%;}
body{margin:0;overflow-x:hidden;-webkit-font-smoothing:antialiased;}
/* タイポグラフィは LP ラッパーにスコープ（共通 header/footer に影響させない） */
.tri-lp{
  font-family:var(--jp);
  font-weight:500;
  line-height:1.7;
  color:var(--ink);
  background:var(--base);
}
body.is-loading{overflow:hidden;height:100vh;}
/* color:inherit は付けない（コンポーネントのリンク文字色指定を上書きしてしまうため） */
.tri-lp a{text-decoration:none;}
img{max-width:100%;display:block;}

.display{font-family:var(--display);}

/* ---------- utilities ---------- */
.kicker{
  font-family:var(--display);font-weight:700;
  text-transform:uppercase;letter-spacing:.22em;
  font-size:clamp(12px,1.1vw,14px);color:var(--sky);
}
.fade{opacity:0;transform:translateY(34px);
  transition:opacity 1s var(--ease),transform 1s var(--ease);}
.fade.is-visible{opacity:1;transform:none;}
.d1{transition-delay:.08s;} .d2{transition-delay:.16s;}
.d3{transition-delay:.24s;} .d4{transition-delay:.32s;} .d5{transition-delay:.40s;}
@media (prefers-reduced-motion:reduce){.fade{opacity:1;transform:none;transition:none;}}

.reveal-line{display:block;overflow:hidden;padding:.04em 0;}
.reveal-line>span{display:block;transform:translateY(118%);
  transition:transform 1.05s var(--ease);}
.ready .reveal-line>span,.reveal-line.go>span{transform:translateY(0);}
.reveal-line:nth-child(1)>span{transition-delay:.05s;}
.reveal-line:nth-child(2)>span{transition-delay:.18s;}
.reveal-line:nth-child(3)>span{transition-delay:.31s;}

/* image placeholder (kept for any future empty slot) */
.ph{position:relative;overflow:hidden;
  background:repeating-linear-gradient(135deg,#eef7fd 0,#eef7fd 13px,#e2f0fb 13px,#e2f0fb 26px);
  display:flex;align-items:center;justify-content:center;}
.ph::after{content:attr(data-ph);font-family:ui-monospace,monospace;font-size:11px;
  letter-spacing:.06em;color:#5d96b8;text-align:center;padding:6px 10px;}

.shot{width:100%;height:100%;object-fit:cover;display:block;}

/* =========================================================
   HEADER
   ========================================================= */
.site-header{position:fixed;inset:0 0 auto 0;z-index:60;
  display:flex;align-items:center;justify-content:space-between;
  padding:18px var(--pad);
  opacity:0;transform:translateY(-12px);
  transition:opacity .8s var(--ease) .2s,transform .8s var(--ease) .2s,
    background .4s var(--ease),box-shadow .4s var(--ease);
  pointer-events:none;}
.ready .site-header{opacity:1;transform:none;}
.site-header.solid{background:rgba(255,255,255,.92);backdrop-filter:blur(10px);
  box-shadow:0 1px 0 rgba(16,55,112,.08);}
.brand{display:flex;align-items:baseline;gap:7px;pointer-events:auto;}
.brand__mark{font-family:var(--display);font-weight:800;font-size:25px;
  color:#fff;letter-spacing:.02em;transition:color .4s;}
.brand__name{font-family:var(--display);font-weight:600;font-size:14px;
  letter-spacing:.24em;color:rgba(255,255,255,.7);text-transform:uppercase;transition:color .4s;}
.site-header.solid .brand__mark{color:var(--navy);}
.site-header.solid .brand__name{color:var(--gray);}
.header-cta{pointer-events:auto;display:inline-flex;align-items:center;gap:8px;
  font-family:var(--display);font-size:14px;font-weight:700;letter-spacing:.08em;
  color:#fff;padding:9px 18px;border:1.5px solid rgba(255,255,255,.5);border-radius:40px;
  text-transform:uppercase;transition:background .3s,color .3s,border-color .3s;}
.header-cta span{transition:transform .3s var(--ease);}
.site-header.solid .header-cta{color:var(--navy);border-color:rgba(16,55,112,.3);}
.header-cta:hover{background:#fff;color:var(--navy);border-color:#fff;}
.site-header.solid .header-cta:hover{background:var(--navy);color:#fff;border-color:var(--navy);}
.header-cta:hover span{transform:translateX(4px);}

/* =========================================================
   ⓪ LOADER
   ========================================================= */
.loader{position:fixed;inset:0;z-index:100;background:var(--navy-d);
  display:flex;align-items:center;justify-content:center;
  transition:transform 1s var(--ease) .1s;will-change:transform;}
.loader::before{content:"";position:absolute;inset:0;background:var(--grad);opacity:.9;}
.loader.done{transform:translateY(-101%);}
.loader__inner{position:relative;text-align:center;padding:0 24px;width:min(94vw,860px);}
.loader__kicker{margin:0 0 16px;font-family:var(--display);font-weight:700;
  letter-spacing:.4em;text-transform:uppercase;font-size:clamp(12px,1.4vw,15px);
  color:rgba(255,255,255,.7);opacity:0;animation:loFade .8s var(--ease) .15s forwards;}
.loader__title{font-family:var(--display);font-weight:800;text-transform:uppercase;
  line-height:.9;letter-spacing:.01em;font-size:clamp(48px,11vw,150px);color:#fff;}
.loader__bar{margin:38px auto 0;width:min(72%,400px);height:2px;
  background:rgba(255,255,255,.2);overflow:hidden;border-radius:2px;}
.loader__bar i{display:block;height:100%;width:0;background:#fff;}
.loader__count{margin:13px 0 0;font-family:var(--display);font-weight:700;
  font-size:13px;letter-spacing:.2em;color:rgba(255,255,255,.7);}
.loader__count::after{content:"%";}
@keyframes loFade{to{opacity:1;}}

/* =========================================================
   ① HERO  (solid gradient bg + sporty white type + team photo)
   ========================================================= */
.hero{position:relative;min-height:100svh;display:flex;flex-direction:column;
  justify-content:center;padding:118px var(--pad) 0;overflow:hidden;
  background:var(--grad);color:#fff;}
.hero::after{content:"";position:absolute;inset:0;pointer-events:none;
  background:radial-gradient(70% 55% at 85% 18%,rgba(86,190,240,.35),transparent 60%);}
.hero__inner{position:relative;z-index:3;max-width:1280px;margin:0 auto;width:100%;
  flex:1;display:grid;grid-template-columns:1.22fr .78fr;gap:clamp(28px,4vw,56px);
  align-items:center;}
.hero__copy{max-width:720px;}
.hero__kicker{margin:0 0 24px;color:rgba(255,255,255,.85);}
.hero__title{margin:0;font-family:var(--jp);font-weight:900;color:#fff;
  font-size:clamp(30px,4.1vw,56px);line-height:1.18;letter-spacing:.002em;}
.hero__title em{font-style:normal;color:#bfe6fb;}
.hero__sub{margin:28px 0 0;font-size:clamp(15px,1.7vw,21px);color:rgba(255,255,255,.82);
  font-weight:500;opacity:0;transform:translateY(20px);
  transition:opacity 1s var(--ease) .6s,transform 1s var(--ease) .6s;}
.ready .hero__sub{opacity:1;transform:none;}

.hero__media{position:relative;justify-self:end;width:100%;max-width:560px;
  opacity:0;transform:translateY(34px) scale(.97);
  transition:opacity 1.1s var(--ease) .5s,transform 1.1s var(--ease) .5s;}
.ready .hero__media{opacity:1;transform:none;}
.hero__media figure{margin:0;border-radius:8px;overflow:hidden;transform:rotate(2deg);
  box-shadow:0 50px 90px -40px rgba(0,0,0,.6);aspect-ratio:4/3;}
.hero__media img{width:100%;height:100%;object-fit:cover;}
.hero__tag{position:absolute;left:-14px;bottom:24px;transform:rotate(2deg);
  background:#fff;color:var(--navy);font-family:var(--display);font-weight:800;
  text-transform:uppercase;letter-spacing:.06em;font-size:14px;padding:9px 16px;border-radius:5px;
  box-shadow:0 16px 30px -16px rgba(0,0,0,.5);}

.hero__scroll{position:absolute;left:var(--pad);bottom:118px;z-index:3;
  font-family:var(--display);font-weight:700;font-size:12px;letter-spacing:.3em;
  color:rgba(255,255,255,.7);display:flex;align-items:center;gap:12px;text-transform:uppercase;
  opacity:0;transition:opacity 1s var(--ease) .85s;}
.ready .hero__scroll{opacity:1;}
.hero__scroll::after{content:"";width:46px;height:1px;background:rgba(255,255,255,.6);
  animation:scrollLine 1.8s var(--ease) infinite;transform-origin:left;}
@keyframes scrollLine{0%,100%{transform:scaleX(.4);opacity:.4;}50%{transform:scaleX(1);opacity:1;}}

/* hero marquee — outlined white */
.hero__marquee{position:relative;z-index:3;width:100%;overflow:hidden;padding:6px 0 20px;}
.marquee{white-space:nowrap;}
.marquee__track{display:inline-flex;will-change:transform;animation:marquee 24s linear infinite;}
.marquee--fast .marquee__track{animation-duration:17s;}
.marquee__track span{display:inline-block;font-family:var(--display);font-weight:800;
  text-transform:uppercase;font-size:clamp(40px,8vw,120px);line-height:1;padding-right:.34em;
  color:transparent;-webkit-text-stroke:1.3px rgba(255,255,255,.62);}
.marquee__track b{-webkit-text-stroke:0;color:rgba(255,255,255,.85);padding:0 .14em;font-weight:800;}
@keyframes marquee{from{transform:translateX(0);}to{transform:translateX(-50%);}}
@media (prefers-reduced-motion:reduce){.marquee__track{animation:none;}}

/* =========================================================
   ② MESSAGE  (pinned · image fixed · scroll text-fill · text left)
   ========================================================= */
.message{position:relative;height:250vh;background:var(--lightsky);}
.message__sticky{position:sticky;top:0;height:100svh;overflow:hidden;
  display:grid;grid-template-columns:1.12fr .88fr;align-items:stretch;}
.message__logo{position:absolute;z-index:0;left:-8%;top:50%;transform:translateY(-50%);
  width:min(60vw,640px);pointer-events:none;}
.message__logo svg{width:100%;height:auto;}
.message__text{position:relative;z-index:2;align-self:center;
  padding:0 clamp(28px,4vw,72px) 0 var(--pad);max-width:760px;}
.message__flag{display:inline-block;margin:0 0 26px;font-family:ui-monospace,monospace;
  font-size:12px;letter-spacing:.04em;color:var(--gray);
  border:1px dashed rgba(112,112,112,.5);border-radius:4px;padding:5px 10px;}
.message__body{margin:0;font-family:var(--jp);font-weight:700;
  font-size:clamp(22px,2.9vw,40px);line-height:1.7;letter-spacing:.01em;}
.message__body .char{color:#c2d2e2;transition:color .12s linear;}
.message__body .char.on{color:var(--navy);}
.message__name{margin:40px 0 0;display:flex;align-items:baseline;gap:14px;
  font-size:16px;font-weight:700;color:var(--ink);}
.message__name span{font-size:13px;color:var(--gray);font-weight:500;letter-spacing:.05em;}
.message__name::before{content:"";width:38px;height:2px;background:var(--sky);align-self:center;}
.message__media{position:relative;z-index:1;overflow:hidden;}
.message__media img{width:100%;height:100%;object-fit:cover;object-position:60% center;}
.message__media::after{content:"";position:absolute;inset:0;
  background:linear-gradient(100deg,rgba(239,248,253,.85),transparent 26%);}

/* =========================================================
   ③ ACTIVITY  (news / お知らせ list)
   ========================================================= */
.activity{padding:clamp(90px,12vw,150px) var(--pad);}
.activity__inner{max-width:1180px;margin:0 auto;}
.activity__head{display:flex;align-items:flex-end;justify-content:space-between;
  gap:20px;flex-wrap:wrap;margin:0 0 clamp(34px,4vw,52px);}
.activity__title{margin:0;font-family:var(--display);font-weight:800;text-transform:uppercase;
  font-size:clamp(48px,8vw,110px);line-height:.9;color:var(--navy);letter-spacing:.005em;}
.activity__title small{display:block;font-family:var(--jp);font-weight:700;
  font-size:clamp(13px,1.4vw,16px);letter-spacing:.1em;color:var(--gray);margin-top:10px;}
.activity__note{font-family:ui-monospace,monospace;font-size:11.5px;color:var(--sky2);
  border:1px dashed rgba(131,183,210,.8);border-radius:4px;padding:6px 10px;}
.news{border-top:2px solid var(--navy);}
.news-item{display:grid;grid-template-columns:148px 86px 1fr auto;gap:26px;align-items:center;
  padding:26px 10px;border-bottom:1px solid rgba(16,55,112,.14);
  transition:background .35s var(--ease),padding-left .35s var(--ease);cursor:pointer;}
.news-item:hover{background:var(--lightsky);padding-left:22px;}
.news-date{font-family:var(--display);font-weight:700;font-size:19px;color:var(--navy);
  letter-spacing:.04em;}
.news-cat{justify-self:start;font-family:var(--display);font-weight:700;font-size:11px;
  letter-spacing:.12em;text-transform:uppercase;color:var(--sky);
  border:1.5px solid currentColor;border-radius:30px;padding:4px 11px;}
.news-cat.is-race{color:var(--red);}
.news-title{font-weight:700;font-size:clamp(15px,1.6vw,18px);color:var(--ink);line-height:1.5;}
.news-title .tmp{font-weight:500;font-size:12px;color:var(--sky2);margin-left:8px;
  font-family:ui-monospace,monospace;}
.news-arrow{font-family:var(--display);font-size:22px;color:var(--navy);
  transition:transform .35s var(--ease);}
.news-item:hover .news-arrow{transform:translateX(7px);}

/* =========================================================
   ④ GALLERY  (pinned horizontal · real photos · no race text)
   ========================================================= */
.gallery{position:relative;background:var(--navy);}
.gallery__sticky{position:sticky;top:0;height:100svh;overflow:hidden;display:flex;align-items:center;}
.gallery__bg{position:absolute;inset:0;z-index:0;
  background:linear-gradient(135deg,#0d2c5c,#103770,#0a6aa6,#37a8e3,#103770);
  background-size:320% 320%;animation:undulate 16s ease-in-out infinite;}
.gallery__bg::after{content:"";position:absolute;inset:-20%;
  background:radial-gradient(40% 50% at 25% 30%,rgba(55,168,227,.45),transparent 60%),
             radial-gradient(45% 45% at 80% 70%,rgba(16,55,112,.6),transparent 62%);
  animation:blob 18s ease-in-out infinite alternate;mix-blend-mode:screen;}
@keyframes undulate{0%{background-position:0% 50%;}50%{background-position:100% 50%;}100%{background-position:0% 50%;}}
@keyframes blob{0%{transform:translate(0,0) scale(1);}100%{transform:translate(6%,-5%) scale(1.15);}}
@media (prefers-reduced-motion:reduce){.gallery__bg,.gallery__bg::after{animation:none;}}

.gallery__track{position:relative;z-index:2;display:flex;align-items:center;
  gap:clamp(20px,2.6vw,40px);padding:0 clamp(24px,8vw,120px);will-change:transform;}
.g-panel{flex:0 0 auto;}
.g-panel--label{display:flex;flex-direction:column;justify-content:center;
  padding-right:clamp(8px,2vw,30px);}
.g-label{font-family:var(--display);font-weight:800;text-transform:uppercase;
  line-height:.84;letter-spacing:-.005em;color:#fff;font-size:clamp(76px,15vw,220px);}
.g-label.outline{color:transparent;-webkit-text-stroke:1.6px rgba(255,255,255,.72);}
.g-label__meta{margin:14px 0 0;font-family:var(--display);font-weight:700;
  letter-spacing:.22em;text-transform:uppercase;font-size:13px;color:rgba(255,255,255,.8);}
.g-shot{position:relative;width:clamp(260px,36vw,500px);height:clamp(330px,62vh,640px);
  border-radius:5px;overflow:hidden;box-shadow:0 40px 70px -34px rgba(0,0,0,.6);}
.g-shot img{width:100%;height:100%;object-fit:cover;}
.g-shot--wide{width:clamp(380px,52vw,760px);height:clamp(280px,46vh,500px);}
.g-shot--tall{height:clamp(380px,72vh,720px);}
.gallery__hint{position:absolute;z-index:3;bottom:clamp(20px,5vh,40px);right:var(--pad);
  font-family:var(--display);font-weight:700;letter-spacing:.24em;text-transform:uppercase;
  font-size:12px;color:rgba(255,255,255,.7);display:flex;align-items:center;gap:10px;}
.gallery__hint::after{content:"→";font-size:16px;}
.gallery__label{position:absolute;z-index:3;top:clamp(24px,6vh,52px);left:var(--pad);}
.gallery__label .kicker{color:rgba(255,255,255,.85);}

.gallery.is-native .gallery__sticky{position:relative;height:auto;padding:60px 0;
  overflow-x:auto;scroll-snap-type:x proximity;-webkit-overflow-scrolling:touch;}
.gallery.is-native .gallery__track{transform:none!important;}
.gallery.is-native .g-shot{scroll-snap-align:center;}

/* =========================================================
   ⑤ MEMBERS
   ========================================================= */
.members{padding:clamp(90px,12vw,160px) var(--pad);}
.members__head{max-width:1180px;margin:0 auto clamp(40px,5vw,64px);
  display:flex;align-items:flex-end;justify-content:space-between;gap:24px;flex-wrap:wrap;}
.members__title{font-family:var(--display);font-weight:800;text-transform:uppercase;
  font-size:clamp(48px,9vw,120px);line-height:.88;color:var(--navy);margin:0;}
.members__note{font-size:13px;color:var(--gray);max-width:34ch;}
.members__grid{max-width:1180px;margin:0 auto;display:grid;
  grid-template-columns:repeat(3,1fr);gap:clamp(20px,3vw,40px);}
.member{background:#fff;border:1px solid rgba(16,55,112,.08);border-radius:8px;overflow:hidden;
  box-shadow:0 24px 48px -30px rgba(16,55,112,.35);
  transition:transform .4s var(--ease),box-shadow .4s var(--ease);}
.member:hover{transform:translateY(-6px);box-shadow:0 34px 60px -28px rgba(16,55,112,.45);}
.member__photo{aspect-ratio:4/5;overflow:hidden;background:var(--lightsky);}
.member__photo img{width:100%;height:100%;object-fit:cover;object-position:center 28%;
  transition:transform .6s var(--ease);}
.member:hover .member__photo img{transform:scale(1.05);}
.member__body{padding:24px 24px 28px;}
.member__role{font-family:var(--display);font-weight:700;letter-spacing:.14em;
  text-transform:uppercase;font-size:12px;color:var(--sky);margin:0 0 8px;}
.member__name{margin:0;font-size:23px;font-weight:900;color:var(--navy);}
.member__name span{font-family:var(--display);font-size:13px;font-weight:600;
  color:var(--gray);margin-left:10px;letter-spacing:.04em;text-transform:uppercase;}
.member__quote{margin:16px 0 0;font-size:14.5px;line-height:1.85;color:#3a4754;}
.member__tag{display:inline-block;margin:16px 0 0;font-family:ui-monospace,monospace;
  font-size:10.5px;letter-spacing:.05em;color:var(--sky2);
  border:1px dashed rgba(131,183,210,.7);border-radius:3px;padding:3px 7px;}

/* =========================================================
   ⑥ UPDATES (note)  — conditional
   ========================================================= */
.updates{padding:clamp(70px,9vw,120px) var(--pad);background:var(--lightsky);}
.updates__inner{max-width:1180px;margin:0 auto;}
.updates__head{display:flex;align-items:flex-end;justify-content:space-between;
  gap:20px;margin:0 0 36px;flex-wrap:wrap;}
.updates__title{font-family:var(--display);font-weight:800;text-transform:uppercase;
  font-size:clamp(38px,6vw,72px);color:var(--navy);margin:0;}
.updates__cond{font-family:ui-monospace,monospace;font-size:11px;color:var(--sky2);
  border:1px dashed rgba(131,183,210,.8);border-radius:3px;padding:5px 9px;}
.updates__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;}
.note-card{background:#fff;border-radius:8px;padding:22px;border:1px solid rgba(16,55,112,.08);
  transition:transform .35s var(--ease);display:flex;flex-direction:column;gap:14px;}
.note-card:hover{transform:translateY(-4px);}
.note-card__thumb{aspect-ratio:16/9;border-radius:5px;}
.note-card__date{font-family:var(--display);font-weight:700;font-size:13px;
  letter-spacing:.1em;color:var(--sky);}
.note-card__title{font-size:15px;font-weight:700;color:var(--ink);line-height:1.55;margin:0;}
.note-card__more{margin-top:auto;font-family:var(--display);font-weight:700;font-size:12px;
  letter-spacing:.1em;text-transform:uppercase;color:var(--navy);}

/* =========================================================
   ⑦ LINKS  (North Nine — transparent logo on brand-navy chip)
   ========================================================= */
.links{padding:clamp(70px,9vw,120px) var(--pad);}
.links__inner{max-width:1180px;margin:0 auto;}
.link-card{display:flex;align-items:center;justify-content:space-between;gap:28px;
  padding:clamp(30px,4vw,52px);border-radius:10px;color:#fff;
  background:linear-gradient(120deg,#13243f,#1b3a66);position:relative;overflow:hidden;
  transition:transform .4s var(--ease),box-shadow .4s var(--ease);
  box-shadow:0 26px 50px -34px rgba(16,55,112,.6);}
.link-card::after{content:"";position:absolute;right:-10%;top:-30%;width:50%;height:160%;
  background:radial-gradient(circle,rgba(55,168,227,.35),transparent 60%);}
.link-card:hover{transform:translateY(-4px);box-shadow:0 36px 60px -34px rgba(16,55,112,.7);}
.link-card__l{position:relative;z-index:2;display:flex;flex-direction:column;gap:14px;}
.link-card__tag{font-family:var(--display);font-weight:700;letter-spacing:.18em;
  text-transform:uppercase;font-size:12px;color:var(--sky);}
.link-card__logo{height:clamp(34px,4.4vw,52px);width:auto;}
.link-card__url{font-size:13px;color:rgba(255,255,255,.65);}
.link-card__arrow{position:relative;z-index:2;font-family:var(--display);font-size:34px;
  flex:0 0 auto;transition:transform .4s var(--ease);}
.link-card:hover .link-card__arrow{transform:translateX(9px);}

/* =========================================================
   ⑧ CTA
   ========================================================= */
.cta{position:relative;overflow:hidden;background:var(--grad);color:#fff;
  padding:clamp(90px,14vw,180px) var(--pad);text-align:center;}
.cta__marquee{position:absolute;inset:auto 0 8%;z-index:0;opacity:.18;}
.cta__marquee .marquee__track span{-webkit-text-stroke:0;color:rgba(255,255,255,.9);}
.cta__inner{position:relative;z-index:2;max-width:900px;margin:0 auto;}
.cta__lead{margin:0 0 28px;font-family:var(--jp);font-weight:900;
  font-size:clamp(22px,3vw,40px);letter-spacing:.01em;}
.cta__btn{display:inline-flex;align-items:center;gap:16px;background:#fff;color:var(--navy);
  font-family:var(--display);font-weight:800;text-transform:uppercase;letter-spacing:.04em;
  font-size:clamp(17px,1.9vw,22px);padding:20px 40px;border-radius:50px;
  transition:transform .35s var(--ease),box-shadow .35s var(--ease);
  box-shadow:0 20px 40px -16px rgba(0,0,0,.45);}
.cta__btn span{transition:transform .35s var(--ease);}
.cta__btn:hover{transform:translateY(-4px);}
.cta__btn:hover span{transform:translateX(6px);}
.cta__sub{margin:22px 0 0;font-family:var(--display);font-weight:700;font-size:13px;
  letter-spacing:.18em;color:rgba(255,255,255,.7);text-transform:uppercase;}

/* =========================================================
   FOOTER
   ========================================================= */
.site-footer{padding:40px var(--pad);display:flex;align-items:center;
  justify-content:space-between;gap:18px;flex-wrap:wrap;border-top:1px solid rgba(16,55,112,.1);}
.site-footer .brand__mark{color:var(--navy);font-size:20px;}
.site-footer .brand__name{color:var(--gray);}
.site-footer small{color:var(--gray);font-size:12px;font-family:var(--display);letter-spacing:.06em;}

/* =========================================================
   RESPONSIVE
   ========================================================= */
@media (max-width:920px){
  .hero__inner{grid-template-columns:1fr;gap:34px;align-content:center;}
  .hero__media{order:-1;justify-self:start;max-width:440px;}
  .hero__media figure{aspect-ratio:16/10;transform:rotate(1.5deg);}
  .hero__scroll{display:none;}
  .message__sticky{grid-template-columns:1fr;}
  .message__media{order:-1;height:42vh;}
  .message__media::after{background:linear-gradient(0deg,rgba(239,248,253,.9),transparent 40%);}
  .message__text{align-self:start;padding:30px var(--pad) 0;}
  .message{height:220vh;}
  .members__grid{grid-template-columns:1fr;max-width:460px;}
  .updates__grid{grid-template-columns:1fr;}
  .news-item{grid-template-columns:1fr auto;gap:6px 16px;row-gap:8px;padding:22px 10px;}
  .news-date{grid-column:1;font-size:17px;}
  .news-cat{grid-column:2;grid-row:1;}
  .news-title{grid-column:1 / -1;grid-row:2;}
  .news-arrow{display:none;}
}
@media (max-width:560px){
  :root{--pad:22px;}
  .hero__title{font-size:clamp(30px,8vw,44px);}
  .link-card{flex-direction:column;align-items:flex-start;}
  .link-card__arrow{align-self:flex-end;}
}

/* =========================================================
   HERO variant — full-bleed TEAM slideshow + deep gradient
   (Pattern C design · Pattern B copy)
   ========================================================= */
.hero--photo{background:var(--navy-d);color:#fff;}
.hero--photo::after{display:none;}
.hero--photo .hero__scroll{display:none;}
.hero__slides{position:absolute;inset:0;z-index:0;overflow:hidden;}
.hero__slide{position:absolute;inset:0;background-size:cover;background-position:center 36%;
  opacity:0;transform:scale(1.05);will-change:opacity,transform;
  transition:opacity 1.6s ease,transform 7s ease-out;}
.hero__slide.is-active{opacity:1;transform:scale(1.2);}
.hero__overlay{position:absolute;inset:0;z-index:1;pointer-events:none;
  background:
    linear-gradient(110deg,rgba(8,26,56,.94) 0%,rgba(10,38,78,.7) 42%,rgba(16,55,112,.26) 78%),
    linear-gradient(0deg,rgba(8,26,56,.9),transparent 50%);}
.hero--photo .hero__inner{grid-template-columns:1fr;align-items:flex-end;max-width:1280px;}
.hero--photo .hero__copy{max-width:900px;padding-bottom:clamp(104px,15vh,172px);}
.hero--photo .hero__title{font-size:clamp(34px,5vw,72px);line-height:1.14;
  text-shadow:0 2px 30px rgba(0,0,0,.3);}
.hero--photo .hero__title em{font-style:normal;color:#9fd8f7;}
.hero--photo .hero__sub{max-width:42ch;color:rgba(255,255,255,.9);}
.hero--photo .hero__marquee{position:absolute;left:0;right:0;bottom:0;z-index:3;}
@media (prefers-reduced-motion:reduce){
  .hero__slide{transition:opacity 1s ease;transform:none;}
  .hero__slide.is-active{transform:none;}
}

/* =========================================================
   THEME INTEGRATION & rev.3 (共通header/footer統合・追加修正)
   ※ triathlon ページのみ読込。後勝ちで上書き。
   ========================================================= */
/* 共通 .container の overflow:hidden が position:sticky を壊すため解除 */
.container{overflow:visible;}
/* テーマ標準のローディングGIFは隠す（独自ローダー使用） */
#loading{display:none!important;}

/* ① HERO: サブコピー改行なし＋コピー群と下マーキーの間隔を広げる */
.hero--photo .hero__sub{max-width:none;white-space:nowrap;}
.hero--photo .hero__copy{padding-bottom:clamp(150px,22vh,260px);}

/* ③ ACTIVITY: お知らせカード（3枚）＋一覧ボタン */
.activity__all{font-family:var(--display);font-weight:700;letter-spacing:.08em;text-transform:uppercase;
  font-size:14px;color:var(--navy);display:inline-flex;align-items:center;gap:8px;white-space:nowrap;
  border:1.5px solid rgba(16,55,112,.3);border-radius:40px;padding:9px 20px;transition:background .3s,color .3s;}
.activity__all span{transition:transform .3s var(--ease);}
.activity__all:hover{background:var(--navy);color:#fff;}
.activity__all:hover span{transform:translateX(4px);}
.act-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(18px,2.4vw,30px);}
.act-card{display:flex;flex-direction:column;background:#fff;border:1px solid rgba(16,55,112,.1);
  border-radius:10px;overflow:hidden;box-shadow:0 22px 44px -32px rgba(16,55,112,.4);
  transition:transform .4s var(--ease),box-shadow .4s var(--ease);}
.act-card:hover{transform:translateY(-6px);box-shadow:0 32px 56px -30px rgba(16,55,112,.5);}
.act-card__thumb{aspect-ratio:16/10;overflow:hidden;background:var(--lightsky);}
.act-card__thumb img{width:100%;height:100%;object-fit:cover;transition:transform .6s var(--ease);}
.act-card:hover .act-card__thumb img{transform:scale(1.05);}
.act-card__thumb .ph{width:100%;height:100%;aspect-ratio:auto;}
.act-card__body{padding:20px 20px 24px;display:flex;flex-direction:column;gap:12px;flex:1;}
.act-card__meta{display:flex;align-items:center;gap:12px;}
.act-card__date{font-family:var(--display);font-weight:700;font-size:14px;letter-spacing:.06em;color:var(--sky);}
.act-card__cat{font-family:var(--display);font-weight:700;font-size:11px;letter-spacing:.1em;text-transform:uppercase;
  color:var(--navy);border:1.5px solid rgba(16,55,112,.25);border-radius:30px;padding:3px 11px;}
.act-card__title{margin:0;font-size:15.5px;font-weight:700;line-height:1.6;color:var(--ink);}
.act-card__title .tmp{font-weight:500;font-size:12px;color:var(--sky2);font-family:ui-monospace,monospace;margin-left:4px;}

/* note 横長リンク */
.note-strip{margin-top:clamp(26px,3.4vw,42px);display:flex;align-items:center;gap:16px;
  padding:15px 22px;border-radius:50px;background:var(--ink);color:#fff;width:fit-content;
  transition:transform .3s var(--ease),box-shadow .3s var(--ease);box-shadow:0 16px 30px -20px rgba(0,0,0,.45);}
.note-strip:hover{transform:translateY(-2px);}
.note-strip__logo{font-family:var(--display);font-weight:800;font-size:17px;letter-spacing:.01em;
  background:#fff;color:var(--ink);border-radius:6px;padding:2px 11px;text-transform:lowercase;}
.note-strip__txt{font-weight:700;font-size:14px;letter-spacing:.02em;}
.note-strip__arrow{margin-left:8px;font-family:var(--display);font-size:19px;transition:transform .3s var(--ease);}
.note-strip:hover .note-strip__arrow{transform:translateX(5px);}

/* ④ GALLERY 右端の色補正：基色をグラデ始点に合わせ、トラック末尾に余白 */
.gallery{background:#0d2c5c;}
.gallery__track{padding-right:clamp(60px,12vw,160px);}

/* =========================================================
   スマホ最適化（rev.3）
   ========================================================= */
@media (max-width:760px){
  .act-cards{grid-template-columns:1fr;max-width:460px;margin:0 auto;}
  .activity__head{align-items:center;}
}
@media (max-width:560px){
  .hero--photo .hero__sub{white-space:normal;font-size:15px;}
  .hero--photo .hero__copy{padding-bottom:clamp(120px,16vh,170px);}
  .hero__title{font-size:clamp(28px,7.4vw,40px);}
  .activity__head{flex-direction:column;align-items:flex-start;gap:14px;}
  .note-strip{flex-wrap:wrap;gap:8px 12px;width:auto;}
  .note-strip__arrow{margin-left:0;}
  .members__head{flex-direction:column;align-items:flex-start;}
}

/* HERO見出し：swim/bike/run の長い2行目を1行に収める */
.hero--photo .hero__copy{max-width:1060px;}
.hero--photo .hero__title{font-size:clamp(27px,3.5vw,50px);line-height:1.18;}
@media (max-width:560px){
  .hero--photo .hero__title{font-size:clamp(24px,6.4vw,34px);}
}

/* =========================================================
   rev.4 修正：ボタン文字色・CTA下線・フォント戻し対応
   ========================================================= */
/* note 横長リンク：濃色背景に白文字を明示 */
.note-strip,.note-strip__txt,.note-strip__arrow{color:#fff;}
/* CTA ボタン：白地にネイビー文字を明示（白文字化を防止） */
.cta__btn{color:var(--navy);}
.cta__lead,.cta__sub{color:#fff;}
/* 一覧を見る */
.activity__all{color:var(--navy);}
/* CTA とフッターの間に区切り線 */
.cta{border-bottom:3px solid var(--sky);}

/* =========================================================
   rev.5 ギャラリー：SPもPCと同じ横スクロール＋画像アスペクト比を統一
   ========================================================= */
/* PC は width/height 固定のため aspect-ratio は無視され、SP（width:auto）でのみ効く */
.g-shot{aspect-ratio:4 / 5;}
.g-shot--wide{aspect-ratio:16 / 10;}
.g-shot--tall{aspect-ratio:7 / 10;}

@media (max-width:760px){
  /* SP では height だけ指定し、width は aspect-ratio から算出＝PCと同じ比率に */
  .g-shot{width:auto;height:54vh;}
  .g-shot--wide{width:auto;height:40vh;}
  .g-shot--tall{width:auto;height:60vh;}
  .gallery__track{gap:16px;padding:0 18px;}
  .g-label{font-size:clamp(60px,20vw,140px);}
  .gallery__hint{font-size:11px;bottom:16px;}
}

/* =========================================================
   rev.6 メンバー4名：2×2 レイアウト
   ========================================================= */
.members__grid{grid-template-columns:repeat(2,1fr);max-width:920px;}
@media (max-width:560px){
  .members__grid{grid-template-columns:1fr;max-width:430px;}
}

/* =========================================================
   rev.7 メンバー：コンテンツ幅に合わせた横カード（左画像／右紹介文・単一カラム）
   ========================================================= */
.members__head{max-width:1180px;}
.members__grid{display:flex;flex-direction:column;gap:clamp(16px,2vw,26px);max-width:1180px;grid-template-columns:none;}
.member{display:grid;grid-template-columns:clamp(240px,34%,360px) 1fr;align-items:stretch;}
/* 写真は横幅=列幅で固定、縦はカード高さに合わせて伸縮し object-fit:cover でトリミング（隙間なし・横幅統一・縦可変） */
.member__photo{position:relative;width:100%;aspect-ratio:auto;height:auto;min-height:0;overflow:hidden;}
/* 画像は絶対配置でボックス（=カード/本文高さ）いっぱいに cover。画像の自然な高さに引っ張られない */
.member__photo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 32%;}
.member__body{padding:clamp(24px,3vw,46px);display:flex;flex-direction:column;justify-content:center;}
.member__quote{max-width:64ch;}
@media (max-width:600px){
  .member{grid-template-columns:1fr;}
  .member__photo{min-height:0;aspect-ratio:4/3;}
  .member__body{padding:22px 22px 26px;}
}

/* =========================================================
   rev.8 ACTIVITY = note 記事フィード（アイキャッチ付き）
   ========================================================= */
.activity__all{text-transform:none;}              /* 「noteで見る」を小文字維持 */
.activity__all .note-mark{font-weight:800;letter-spacing:-.01em;}
.act-card__cat{text-transform:lowercase;}         /* note バッジは小文字 */
.act-empty{color:var(--gray);font-size:14px;padding:8px 2px;}

/* rev.8b ACTIVITY 記事0件時の準備中表示 */
.act-empty{grid-column:1 / -1;text-align:center;color:var(--gray);font-size:15px;
  padding:48px 20px;border:1px dashed rgba(16,55,112,.2);border-radius:10px;background:#fafdff;}
.act-empty a{color:var(--navy);font-weight:700;margin-left:6px;white-space:nowrap;}

/* =========================================================
   rev.9 メンバー：プロフィール文の幅制限を撤去（上下左右パディングで統一）
   ========================================================= */
.member__quote{max-width:none;}
