@charset "UTF-8";
:root{
  --ocean:#006e9b;
  --deep:#004c72;
  --sea:#00a9a5;
  --sun:#f5d53d;
  --coral:#ef765e;
  --sand:#fff8e8;
  --ink:#263d46;
  --white:#fff;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;color:var(--ink);font-family:"Noto Sans JP","Yu Gothic","Hiragino Kaku Gothic ProN",Meiryo,sans-serif;background:linear-gradient(180deg,#dff5f2 0%,#bfe5e1 48%,#d8efed 100%)}
a{text-decoration:none;color:inherit}
.page-bg{
  min-height:100vh;
  position:relative;
  overflow:hidden;
  background:
    radial-gradient(circle at 12% 18%,rgba(255,255,255,.72) 0,rgba(255,255,255,.34) 13%,rgba(255,255,255,0) 34%),
    radial-gradient(circle at 88% 58%,rgba(255,255,255,.55) 0,rgba(255,255,255,.20) 17%,rgba(255,255,255,0) 38%),
    linear-gradient(135deg,#e1f6f3 0%,#b8e1dd 48%,#cce9e6 100%);
}
.page-bg::before,
.page-bg::after{
  content:"";
  position:absolute;
  left:50%;
  width:1500px;
  height:420px;
  border:2px solid rgba(255,255,255,.22);
  border-radius:50%;
  transform:translateX(-50%);
  pointer-events:none;
}
.page-bg::before{
  top:170px;
  box-shadow:
    0 0 0 38px rgba(255,255,255,.08),
    0 0 0 78px rgba(255,255,255,.045);
}
.page-bg::after{
  top:610px;
  width:1700px;
  height:460px;
  border-color:rgba(255,255,255,.16);
  box-shadow:
    0 0 0 42px rgba(255,255,255,.06),
    0 0 0 88px rgba(255,255,255,.035);
}
.header{display:none}
.header-inner{display:none}
.logo{display:flex;align-items:center;gap:13px}
.logo-no{font-family:Georgia,serif;font-size:57px;font-weight:bold;line-height:1;color:var(--ocean)}
.logo-text{display:flex;flex-direction:column;gap:4px}
.logo-text b{font-family:"Yu Mincho",serif;font-size:26px;letter-spacing:.04em;color:#39474c}
.logo-text em{font-style:normal;font-weight:800;font-size:23px;color:var(--ocean);letter-spacing:.04em}
.theme-mini{margin-left:auto;text-align:right;font-size:13px;line-height:1.25;color:#ef9b31;font-weight:700}
.theme-mini strong{font-size:19px;color:var(--sea)}
.menu-toggle{display:none}
.nav-wrap{position:sticky;top:20px;width:225px;z-index:10;padding:0}
.nav-inner{width:205px;margin:0;display:grid;gap:7px}
.nav-item{min-height:54px;padding:0 15px 0 18px;color:#fff;display:flex;align-items:center;justify-content:space-between;gap:5px;font-size:15px;font-weight:700;border:2px solid var(--ocean);border-radius:7px;background:var(--ocean);position:relative;transition:.2s;box-shadow:0 3px 8px rgba(0,70,95,.10)}
.nav-item span{font-size:15px;opacity:.85}
.nav-item:hover{background:var(--sea);border-color:var(--sea);transform:translateX(2px)}
.nav-item.active{background:var(--sun);border-color:var(--sun);color:#4b5050}
.nav-item.active span{color:#4b5050}
main{max-width:1180px;width:calc(100% - 48px);margin:28px auto 70px;display:grid;grid-template-columns:225px minmax(0,1fr);gap:18px;align-items:start}
.content-col{min-width:0}
.hero{position:relative;overflow:hidden;border-radius:7px;background:#005f85;box-shadow:0 15px 38px rgba(0,69,96,.18)}
.hero:after{content:"";position:absolute;inset:auto 0 0;height:30%;background:linear-gradient(transparent,rgba(0,47,69,.45));pointer-events:none}
.hero img{display:block;width:100%;height:auto}
.hero-caption{position:absolute;z-index:2;left:28px;bottom:24px;color:#fff;display:flex;align-items:center;gap:15px;text-shadow:0 2px 8px rgba(0,0,0,.3)}
.hero-caption span{font-size:13px;font-weight:800;letter-spacing:.14em}
.hero-caption b{font-size:13px;padding-left:15px;border-left:1px solid rgba(255,255,255,.6)}
.news-section{margin-top:28px;padding:35px 45px 42px;background:rgba(255,255,255,.95);border-radius:7px;box-shadow:0 10px 28px rgba(0,67,92,.10)}
.section-heading{display:flex;align-items:end;gap:15px;border-bottom:2px solid #d8eceb;padding-bottom:13px}
.section-heading .en{font-family:Georgia,serif;color:var(--sea);font-size:15px;font-weight:bold;letter-spacing:.14em}
.section-heading h2{margin:0;font-family:"Yu Mincho",serif;font-size:29px;color:#334b51}
.news-empty{padding:38px 10px 12px;color:#64767b;text-align:center;font-size:16px}
.sub-hero{min-height:230px;padding:45px 55px;display:flex;align-items:center;border-radius:24px 24px 0 0;overflow:hidden;color:#fff;position:relative;background:
 linear-gradient(115deg,rgba(0,76,114,.96),rgba(0,147,157,.82)),
 url("assets/top.jpg") center 55%/cover}
.sub-hero:after{content:"";position:absolute;width:260px;height:260px;border-radius:50%;right:8%;top:-95px;background:rgba(245,213,61,.18)}
.sub-hero div{position:relative;z-index:1}
.sub-hero span{font-size:12px;letter-spacing:.2em;font-weight:700;opacity:.85}
.sub-hero h1{font-family:"Yu Mincho",serif;font-size:42px;margin:9px 0 8px;letter-spacing:.06em}
.sub-hero p{margin:0;font-size:15px;color:#fff7bd;font-weight:700}
.placeholder-card{min-height:350px;margin-top:0;background:#fff;border-radius:0 0 22px 22px;box-shadow:0 10px 28px rgba(0,67,92,.10);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:22px}
.placeholder-icon{border:2px solid var(--sea);color:var(--sea);border-radius:50%;width:94px;height:94px;display:grid;place-items:center;font-size:15px;font-weight:800;transform:rotate(-7deg)}
.placeholder-card p{font-size:22px;font-weight:700;margin:0;color:#52666c;letter-spacing:.06em}
.footer{
  background:#fff;
  color:#3e3e3e;
  padding:54px 24px 0;
  position:relative;
}
.footer-wave{display:none}
.footer-inner{
  max-width:1080px;
  width:100%;
  margin:0 auto;
  display:grid;
  grid-template-columns:1fr;
  gap:22px;
  position:relative;
}
.footer-office{
  display:grid;
  grid-template-columns:165px 1fr;
  align-items:start;
  column-gap:24px;
  font-size:14px;
  line-height:1.7;
}
.footer-office p{margin:0 0 3px}
.footer-office .office-name{font-size:15px;font-weight:700;color:#3e3e3e}
.footer-office p:first-child{
  
  grid-row:1 / span 4;
  display:flex;
  align-items:center;
  justify-content:center;
  min-height:30px;
  margin:0;
  padding:4px 10px;
  border-radius:7px;
  background:var(--ocean);
  color:#fff;
  font-size:14px;
  font-weight:700;
  text-align:center;
}
.footer-office p:not(:first-child){grid-column:2}
.footer-office b{font-size:15px}
.footer small{
  display:block;
  width:calc(100% + 48px);
  margin:48px 0 0 -24px;
  padding:21px 20px 20px;
  background:#006f8f;
  color:#fff;
  text-align:center;
  font-size:13px;
  font-weight:700;
  opacity:1;
}
@media(max-width:900px){
 .header-inner{width:calc(100% - 24px);min-height:78px}
 .logo-no{font-size:40px}.logo-text b{font-size:17px}.logo-text em{font-size:16px}
 .theme-mini{display:none}
 .menu-toggle{display:flex;width:100%;height:54px;flex-direction:row;align-items:center;justify-content:center;gap:0;border:0;border-radius:7px;background:var(--ocean);color:#fff;margin:0 0 10px;cursor:pointer}
 .menu-toggle i{display:none}.menu-toggle b{font-size:19px;line-height:1;letter-spacing:.12em;margin:0}
 .nav-wrap{display:block;position:static;width:100%;padding:0;background:transparent;border-radius:0;box-shadow:none}
 .nav-wrap.open .nav-inner{display:grid}
 .nav-inner{display:none;width:100%;margin:0;grid-template-columns:repeat(2,1fr);gap:0;background:var(--ocean);border-radius:0 0 10px 10px;overflow:hidden}
 .nav-item{min-height:48px;border:0;border-radius:0;border-bottom:1px solid rgba(255,255,255,.16);font-size:14px}
 .nav-item:hover{transform:none}
 .nav-item.active{border-radius:0}
 .nav-item:nth-child(odd){border-left:0}
 main{width:calc(100% - 20px);margin:12px auto 40px;display:block}
 .content-col{width:100%}
 .hero{border-radius:13px}.hero-caption{left:14px;bottom:12px;gap:8px;flex-wrap:wrap}
 .hero-caption span,.hero-caption b{font-size:9px}.hero-caption b{padding-left:8px}
 .news-section{margin-top:12px;padding:23px 17px 28px;border-radius:13px}
 .section-heading h2{font-size:23px}.news-empty{padding:30px 5px 8px;font-size:14px}
 .sub-hero{min-height:180px;padding:30px 25px;border-radius:13px 13px 0 0}
 .sub-hero h1{font-size:30px}.sub-hero p{font-size:12px}
 .placeholder-card{min-height:260px;margin-top:12px;border-radius:13px}.placeholder-card p{font-size:17px}
 .footer-inner{grid-template-columns:1fr;gap:18px}
 .footer{padding:38px 16px 0}
 .footer-office{grid-template-columns:1fr;gap:5px;font-size:13px}
 .footer-office p:first-child{grid-row:auto;min-height:30px;font-size:13px;width:150px}
 .footer-office p:not(:first-child){grid-column:1}
 .footer-office b{font-size:15px}
 .footer-office .office-name{font-size:14px}
 .footer small{width:calc(100% + 32px);margin-left:-16px;margin-top:32px;font-size:12px}
}

/* TOP hero: text is HTML so it stays crisp and responsive */
.hero{position:relative}
.hero-text{position:absolute;inset:0;z-index:2;color:#fff;font-weight:700;text-shadow:0 2px 5px rgba(0,0,0,.55),0 0 10px rgba(0,0,0,.25);pointer-events:auto;user-select:text;-webkit-user-select:text}
.hero-title{position:absolute;top:4.8%;left:4%;right:4%;text-align:center;line-height:1.08;font-family:"Folk","フォーク","Noto Sans JP","Yu Gothic",sans-serif;color:#fff3a3;font-weight:900;-webkit-text-stroke:.4px rgba(70,55,0,.18);text-shadow:2px 2px 0 rgba(20,35,45,.58),0 0 7px rgba(0,0,0,.35)}
.hero-number{font-size:clamp(20px,3.6vw,37px);letter-spacing:.08em;margin-bottom:1.2%}
.hero-name{font-size:clamp(27px,5.15vw,52px);letter-spacing:.025em;white-space:nowrap}
.hero-in{font-size:clamp(23px,4vw,41px);margin-top:1.2%;letter-spacing:.04em}
.hero-theme{position:absolute;top:43%;right:7%;text-align:left;color:#fff21a;line-height:1.08;font-weight:900;text-shadow:0 2px 5px rgba(0,0,0,.65),0 0 10px rgba(0,0,0,.3);font-size:clamp(27px,4.8vw,52px);letter-spacing:.02em}
.hero-theme div{white-space:nowrap}
.hero-theme small{display:block;font-size:clamp(18px,3.0vw,30px);margin-top:4%;white-space:nowrap;font-weight:900}
.hero-info{position:absolute;left:5.5%;right:4.5%;bottom:5.5%;line-height:1.15}
.hero-info-row{display:flex;align-items:center;gap:2%;margin-top:1.6%}
.hero-info-row:first-child{margin-top:0}
.hero-info-row span{flex:0 0 auto;display:grid;place-items:center;width:clamp(42px,7vw,68px);height:clamp(42px,7vw,68px);border-radius:50%;background:#0aa7d2;border:2px solid rgba(255,255,255,.85);font-size:clamp(11px,1.5vw,16px);font-weight:900;text-shadow:0 1px 3px rgba(0,0,0,.35)}
.hero-info-row strong{font-size:clamp(17px,3.15vw,34px);letter-spacing:.02em;white-space:nowrap}
.hero-chair strong{font-size:clamp(16px,2.9vw,31px)}
.hero-chair em{font-style:normal;font-size:clamp(9px,1.45vw,15px);margin-left:1%;white-space:nowrap}
.hero-organizers{display:flex;justify-content:center;gap:clamp(12px,4vw,60px);margin-top:3%;padding:0;font-size:clamp(8px,1.35vw,14px);letter-spacing:.01em;white-space:nowrap}

@media(max-width:900px){
 .hero-text{ text-shadow:0 1px 4px rgba(0,0,0,.65),0 0 7px rgba(0,0,0,.25)}
 .hero-title{top:4.5%;left:2.5%;right:2.5%;text-shadow:1px 1px 0 rgba(20,35,45,.58),0 0 5px rgba(0,0,0,.35)}
 .hero-title{top:4.5%;left:3%;right:3%}
 .hero-number{font-size:clamp(14px,4.5vw,22px)}
 .hero-name{font-size:clamp(17px,5.7vw,31px)}
 .hero-in{font-size:clamp(16px,4.8vw,25px);margin-top:1%}
 .hero-theme{top:43%;right:5%;font-size:clamp(19px,5.2vw,32px)}
 .hero-theme small{font-size:clamp(13px,3.0vw,20px)}
 .hero-info{left:4%;right:3%;bottom:4.2%}
 .hero-info-row{gap:1.5%;margin-top:1.2%}
 .hero-info-row span{width:clamp(30px,8vw,48px);height:clamp(30px,8vw,48px);font-size:clamp(8px,2.3vw,12px);border-width:1px}
 .hero-info-row strong{font-size:clamp(11px,3.6vw,19px)}
 .hero-chair strong{font-size:clamp(11px,3.4vw,18px)}
 .hero-chair em{font-size:clamp(6px,1.9vw,10px)}
 .hero-organizers{font-size:clamp(5px,1.7vw,9px);gap:clamp(8px,2.5vw,18px);margin-top:2.5%;padding:0}
}

/* 学会名は画像側に含まれているため、HTMLの重複タイトルは非表示 */
.hero-title{display:none!important}

/* 背景の波模様をコンテンツの下に固定し、トップ画像には重ならないようにする */
.page-bg::before,
.page-bg::after{
  z-index:0;
}
.page-bg > *{
  position:relative;
  z-index:1;
}

/* 開催概要 */
.hero{
  border-radius:7px 7px 0 0;
}
.overview-card{
  margin-top:0;
  padding:34px 42px 38px;
  background:rgba(255,255,255,.96);
  border-radius:0 0 7px 7px;
  box-shadow:0 10px 28px rgba(0,67,92,.10);
}
.overview-list{margin:0}
.overview-row{
  display:grid;
  grid-template-columns:150px minmax(0,1fr);
  gap:24px;
  padding:17px 4px;
  border-bottom:1px solid #d8eceb;
}
.overview-row:first-child{padding-top:6px}
.overview-row:last-child{border-bottom:0}
.overview-row dt{
  margin:0;
  padding:7px 13px;
  align-self:start;
  border-radius:6px;
  background:#e1f3f1;
  color:#007d8d;
  font-weight:700;
  font-size:15px;
  line-height:1.5;
}
.overview-row dd{
  margin:0;
  color:#334b51;
  font-size:16px;
  line-height:1.75;
}
@media(max-width:700px){
  .hero{border-radius:13px 13px 0 0}
  .hero{border-bottom-left-radius:0;border-bottom-right-radius:0}
  .overview-card{padding:24px 18px 28px}
  .overview-row{
    grid-template-columns:92px minmax(0,1fr);
    gap:12px;
    padding:13px 0;
  }
  .overview-row dt{padding:6px 8px;font-size:13px}
  .overview-row dd{font-size:14px;line-height:1.65}
}


/* NEWS：前のデザインを復元 */
.news-list{
  margin-top:20px;
  border-top:1px solid #d8eceb;
}
.news-item{
  position:relative;
  display:flex;
  align-items:center;
  gap:22px;
  min-height:72px;
  padding:10px 8px 10px 4px;
  border-bottom:1px solid #d8eceb;
}
.news-item::before{
  content:"";
  width:4px;
  height:34px;
  flex:0 0 4px;
  border-radius:4px;
  background:linear-gradient(180deg,#00a9a5,#f5d53d);
}
.news-item time{
  flex:0 0 112px;
  min-width:112px;
  padding:9px 8px;
  box-sizing:border-box;
  border-radius:18px;
  background:#e6f5f3;
  color:#007d8d;
  text-align:center;
  font-size:14px;
  font-weight:700;
  letter-spacing:.04em;
  line-height:1.2;
}
.news-item p{
  margin:0;
  color:#3f565c;
  font-size:16px;
  line-height:1.7;
  font-weight:500;
}
@media(max-width:700px){
  .news-item{
    gap:12px;
    min-height:62px;
    padding:9px 4px;
  }
  .news-item::before{height:28px;}
  .news-item time{
    flex-basis:96px;
    min-width:96px;
    font-size:12px;
    padding:8px 5px;
  }
  .news-item p{font-size:14px;}
}


/* スマホ：開催概要のサブヒーローと本文カードを完全につなげる */
@media(max-width:700px){
  .sub-hero{
    border-radius:13px 13px 0 0;
    margin-bottom:0;
  }
  .overview-card{
    margin-top:0;
    border-radius:0 0 7px 7px;
  }
}


/* ご挨拶ページ */
.greeting-card{
  margin-top:0;
  padding:34px 42px 42px;
  background:#fff;
  border-radius:0 0 7px 7px;
  box-shadow:0 10px 28px rgba(0,67,92,.10);
  position:relative;
  z-index:2;
}
.greeting-label{
  display:inline-block;
  margin-bottom:24px;
  padding:8px 18px;
  border-radius:6px;
  background:#e1f3f1;
  color:#007d8d;
  font-size:16px;
  font-weight:700;
  line-height:1.4;
}
.greeting-body{
  color:#334b51;
  font-size:16px;
  line-height:2;
  letter-spacing:.02em;
}
.greeting-body p{
  margin:0 0 22px;
}
.greeting-body p:last-child{
  margin-bottom:0;
}
.greeting-closing{
  text-align:right;
  margin-top:28px !important;
  padding-right:6px;
}
@media(max-width:700px){
  .greeting-card{
    padding:24px 18px 30px;
    border-radius:0 0 7px 7px;
    background:#fff;
  }
  .greeting-label{
    margin-bottom:18px;
    padding:6px 12px;
    font-size:14px;
  }
  .greeting-body{
    font-size:14px;
    line-height:1.9;
    letter-spacing:0;
  }
  .greeting-body p{
    margin-bottom:18px;
  }
}
/* ご挨拶：大会長名を右寄せ */
.greeting-signature{
  text-align:right;
  margin:8px 0 0 !important;
  padding-right:6px;
}

@media(max-width:700px){
  .greeting-signature{
    padding-right:2px;
  }
}

.nav-item span {
  display: none;
}