/* =====================================================================
   同志社香里OBOG — Design System (v1)
   ブランド: スクールカラー紫(#5135B4)＋翠(ジェイドグリーン)。
   トーン: 信頼・伝統 7 / モダン 3 → 見出し明朝・本文ゴシック・広い余白・細い罫線。
   既存スタイルを壊さないよう、すべて .ds スコープ配下に限定。
   ===================================================================== */
.ds {
  /* --- color tokens --- */
  --c-primary:#5135B4;        /* スクールカラー(紫) */
  --c-primary-d:#3f2890;
  --c-primary-50:#f4f1fc;
  --c-jade:#1f8a73;           /* 翠 */
  --c-jade-d:#176b59;
  --c-jade-50:#e8f4f0;
  --c-gold:#b88a1f;           /* 伝統的アクセント(控えめ) */
  --c-ink:#2a2a33;
  --c-ink-70:#4d4d57;
  --c-ink-50:#63636d;
  --c-line:#e6e3ef;
  --c-bg:#ffffff;
  --c-bg-soft:#faf9fd;

  /* --- spacing scale (8px grid) --- */
  --s1:4px; --s2:8px; --s3:12px; --s4:16px; --s5:24px; --s6:32px; --s7:48px; --s8:64px;

  /* --- radius / shadow / layout --- */
  --r-s:8px; --r:12px; --r-pill:999px;
  --shadow:0 1px 2px rgba(40,28,80,.05), 0 6px 20px rgba(40,28,80,.06);
  --shadow-s:0 1px 3px rgba(40,28,80,.08);
  --maxw:1040px;

  --font-body:"Hiragino Kaku Gothic ProN","Yu Gothic Medium","Yu Gothic",Meiryo,system-ui,sans-serif;
  --font-head:"Hiragino Mincho ProN","Yu Mincho",YuMincho,"Noto Serif JP",serif;

  color:var(--c-ink);
  font-family:var(--font-body);
  font-size:16px;
  line-height:1.85;
  -webkit-font-smoothing:antialiased;
}
.ds *{box-sizing:border-box}

/* --- layout --- */
.ds-container{max-width:var(--maxw);margin:0 auto;padding:0 20px}
.ds-section{padding:var(--s7) 0}
.ds-section--soft{background:var(--c-bg-soft)}
@media(max-width:560px){.ds-section{padding:var(--s6) 0}}

/* --- section heading (明朝・縦罫線アクセント) --- */
.ds-head{margin-bottom:var(--s5)}
.ds-head__kicker{display:block;font-size:12px;letter-spacing:.14em;color:var(--c-jade);font-weight:700;margin-bottom:var(--s1)}
.ds-head__title{font-family:var(--font-head);font-size:26px;font-weight:700;line-height:1.4;color:var(--c-ink);position:relative;padding-left:14px}
.ds-head__title::before{content:"";position:absolute;left:0;top:.15em;bottom:.15em;width:4px;border-radius:2px;background:linear-gradient(var(--c-primary),var(--c-jade))}
.ds-head--center{text-align:center}
.ds-head--center .ds-head__title{padding-left:0}
.ds-head--center .ds-head__title::before{display:none}
.ds-lead-center{text-align:center;color:var(--c-ink-70);font-size:16px;margin:-8px auto 26px;max-width:660px}
@media(max-width:560px){.ds-head__title{font-size:21px}}

/* --- buttons --- */
.ds-btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;padding:14px 28px;border-radius:var(--r-s);font-weight:700;font-size:16px;text-decoration:none;border:1.5px solid transparent;cursor:pointer;transition:all .15s;line-height:1.2}
.ds-btn--primary{background:var(--c-primary);color:#fff}
.ds-btn--primary:hover{background:var(--c-primary-d)}
.ds-btn--ghost{background:#fff;color:var(--c-primary);border-color:var(--c-primary)}
.ds-btn--ghost:hover{background:var(--c-primary-50)}
.ds-btn--jade{background:var(--c-jade);color:#fff}
.ds-btn--jade:hover{background:var(--c-jade-d)}
.ds-btn--block{display:flex;width:100%}
.ds-btn--lg{padding:19px 48px;font-size:19px;min-width:300px}

/* --- hero (校章＋明朝見出しの紫バンド) --- */
.ds-hero{position:relative;overflow:hidden;background:linear-gradient(118deg,#34205e 0%,#5135b4 58%,#3a2483 100%)}
.ds-hero__crest{position:absolute;right:-24px;bottom:-44px;width:320px;height:320px;margin:0;pointer-events:none;opacity:.10}
.ds-hero__crest img{width:100%;height:100%;object-fit:contain;filter:brightness(0) invert(1)}
.ds-hero__inner{position:relative;max-width:var(--maxw);margin:0 auto;padding:66px 20px;color:#fff}
.ds-hero__kicker{display:block;font-size:14px;font-weight:700;letter-spacing:.16em;color:#92e3d2;margin-bottom:14px}
.ds-hero__lead{margin:0;font-family:var(--font-head);font-size:33px;font-weight:700;line-height:1.5;letter-spacing:.04em}
.ds-hero__sub{margin:18px 0 0;font-size:16px;opacity:.92;line-height:1.75;max-width:560px}
@media(max-width:560px){.ds-hero__inner{padding:40px 20px}.ds-hero__lead{font-size:23px}.ds-hero__sub{font-size:14px}.ds-hero__crest{width:210px;height:210px;right:-34px;bottom:-20px}}

/* --- search mode cards (条件/エリア/ジャンル) --- */
.ds-modes{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.ds-mode{display:flex;flex-direction:column;align-items:center;text-align:center;gap:8px;padding:26px 16px;background:#fff;border:1px solid var(--c-line);border-radius:var(--r);text-decoration:none;color:var(--c-ink);box-shadow:var(--shadow-s);transition:all .15s}
.ds-mode:hover{border-color:var(--c-primary);box-shadow:var(--shadow);transform:translateY(-2px)}
.ds-mode__icon{width:52px;height:52px;display:flex;align-items:center;justify-content:center;border-radius:50%;background:var(--c-primary-50);color:var(--c-primary);font-size:22px}
.ds-mode__label{font-family:var(--font-head);font-weight:700;font-size:20px}
.ds-mode__desc{font-size:14px;color:var(--c-ink-70);line-height:1.6}
.ds-modes--alt{grid-template-columns:repeat(2,1fr);max-width:620px;margin:24px auto 0}
@media(max-width:560px){.ds-modes{grid-template-columns:1fr;gap:12px}.ds-modes--alt{grid-template-columns:1fr}.ds-mode{flex-direction:row;text-align:left;padding:16px 18px;gap:14px}.ds-mode__icon{width:44px;height:44px;font-size:18px;flex:0 0 auto}}

/* --- panel / card --- */
.ds-panel{background:#fff;border:1px solid var(--c-line);border-radius:var(--r);box-shadow:var(--shadow);padding:var(--s6)}
@media(max-width:560px){.ds-panel{padding:var(--s5)}}

/* --- search form --- */
.ds-form__row{display:grid;grid-template-columns:170px 1fr;align-items:center;gap:16px;padding:16px 0;border-bottom:1px solid var(--c-line)}
.ds-form__row:first-child{padding-top:0}
.ds-form__label{font-weight:700;font-size:16px;color:var(--c-ink)}
.ds-form input[type=text],.ds-form select{width:100%;padding:14px;border:1.5px solid var(--c-line);border-radius:var(--r-s);font-size:16px;background:#fff;color:var(--c-ink)}
.ds-form input:focus,.ds-form select:focus{outline:none;border-color:var(--c-primary);box-shadow:0 0 0 3px var(--c-primary-50)}
.ds-form__submit{margin-top:var(--s5);text-align:center}
@media(max-width:560px){.ds-form__row{grid-template-columns:1fr;gap:6px;align-items:stretch}}

/* --- news --- */
.ds-news{list-style:none;padding:0;margin:0}
.ds-news__item{display:flex;gap:16px;padding:16px 0;border-bottom:1px solid var(--c-line)}
.ds-news__item:last-child{border-bottom:none}
.ds-news__date{flex:0 0 auto;font-size:13px;color:var(--c-jade);font-weight:700;padding-top:2px}
.ds-news__title{font-weight:700;margin:0 0 2px}
.ds-news__content{font-size:14px;color:var(--c-ink-70);margin:0}
.ds-empty{color:var(--c-ink-50);text-align:center;padding:var(--s5) 0}
@media(max-width:560px){.ds-news__item{flex-direction:column;gap:2px}}

/* --- recent slider items (Slick と併用) --- */
.ds-recent .slider__item{padding:0 8px}
.ds-recent .slider__item a{display:block;background:#fff;border:1px solid var(--c-line);border-radius:var(--r);overflow:hidden;text-decoration:none;color:var(--c-ink);box-shadow:var(--shadow-s);transition:all .15s}
.ds-recent .slider__item a:hover{box-shadow:var(--shadow);transform:translateY(-2px)}
.ds-recent .slider__item img{width:100%;height:150px;object-fit:cover;display:block}
.ds-recent__body{padding:12px 14px}
.ds-recent .slider__name{font-weight:700;font-size:15px;margin:0 0 4px;line-height:1.4}
.ds-recent .slider__name--person{font-size:13px;color:var(--c-ink-70);margin:0}
.ds-recent .slider__name--graduate{font-size:12px;color:var(--c-jade);font-weight:700;margin:2px 0 0}

/* --- social banners --- */
.ds-social{display:flex;gap:16px;justify-content:center;flex-wrap:wrap}
.ds-social img{display:block;max-width:100%;height:auto;border-radius:var(--r-s)}

/* --- accordion (掲載要項) --- */
.ds-acc{border:1px solid var(--c-line);border-radius:var(--r);background:#fff;overflow:hidden}
.ds-acc__summary{cursor:pointer;font-family:var(--font-head);font-weight:700;font-size:18px;color:var(--c-primary);padding:18px 20px;list-style:none;display:flex;justify-content:space-between;align-items:center}
.ds-acc__summary::-webkit-details-marker{display:none}
.ds-acc__summary::after{content:"＋";color:var(--c-jade);font-weight:700}
.ds-acc[open] .ds-acc__summary::after{content:"−"}
.ds-acc__body{padding:0 20px 22px}
.ds-acc__lead{margin:0 0 16px;color:var(--c-ink-70)}
.ds-terms dt{font-weight:700;color:var(--c-primary);margin-top:14px}
.ds-terms dd{margin:2px 0 0;color:var(--c-ink-70);font-size:14px}

/* =====================================================================
   共有チラ(ヘッダー/フッター) — 既存 .header / footer をブランドに合わせて上書き。
   ※ markup/JS は変更せず色とボタンのみ刷新（黄→紫）。
   ===================================================================== */
/* 全幅の固定バー。中身は最大1040px（=.ds-container）に揃えて中央寄せ */
.header{
  position:sticky;top:0;z-index:50;
  width:100%;max-width:none;margin:0;height:auto;min-height:62px;
  display:flex;align-items:center;justify-content:space-between;gap:16px;
  padding:9px max(20px, calc((100% - 1040px) / 2));
  background:#fff;border-bottom:1px solid #e6e3ef;
  box-shadow:0 1px 3px rgba(40,28,80,.06);
  box-sizing:border-box;
}
.header__logo{position:static;margin:0;height:auto;display:flex;align-items:center}
.header__logo > a{display:flex;align-items:center;gap:12px;text-decoration:none}
.header__logo__img{position:static;top:auto;left:auto;width:40px;margin:0;flex:none}
.header__logo__img img{width:100%;display:block}
.header__logo__text{position:static;padding:0;font-size:19px;line-height:1.25}
.header__logo__text a{color:#2a2a33;font-weight:700;text-decoration:none;font-family:"Hiragino Mincho ProN","Yu Mincho",serif}
.header__menu{position:static;top:auto;right:auto;display:flex;align-items:center;gap:10px;margin:0}
.header__menu__item{position:static;width:auto;height:auto;margin:0;font-size:14px;color:inherit}
.header__menu__item a{position:static;transform:none;bottom:auto;right:auto;display:inline-flex;align-items:center;gap:6px;width:auto;padding:9px 18px;border-radius:8px;font-weight:700;font-size:14px;text-decoration:none}
.header__menu__item .icon{position:static;display:inline;margin:0 4px 0 0;font-size:14px}
.header__menu__item.register,.header__menu__item.menu{background:none}
.header__menu__item.register a{border:1.5px solid #5135B4;background:#fff;color:#5135B4;transition:all .15s}
.header__menu__item.register a:hover{background:#f4f1fc}
.header__menu__item.register a[href$="/register"],
.header__menu__item.register a[href$="/mypage"]{background:#5135B4;color:#fff;border-color:#5135B4}
.header__menu__item.register a[href$="/register"]:hover,
.header__menu__item.register a[href$="/mypage"]:hover{background:#3f2890;border-color:#3f2890}
.header__menu__item.menu a{color:#5135B4;padding:9px 12px}
@media(max-width:560px){
  .header{min-height:54px;padding:8px 16px}
  .header__logo__img{width:34px}
  .header__logo__text{font-size:15px}
  .menu-box{top:54px}
  .header__menu__item.menu a{font-size:13px}
  .header__menu__item.menu .icon{display:inline;margin-right:5px;font-size:15px}
}

footer{background:#241a45;color:#cdc6e4;text-align:center;padding:44px 20px;line-height:1.9}
footer p{margin:0}
footer .note{color:#a59cc6;font-size:12px;margin-top:8px}
footer .link{color:#e7e2f7;text-decoration:none;border-bottom:1px solid rgba(231,226,247,.4);padding-bottom:1px}
footer .link:hover{color:#fff;border-bottom-color:#fff}

/* polish */
.ds-btn--primary{box-shadow:0 2px 6px rgba(81,53,180,.25)}
.ds-panel{position:relative}

/* --- business card grid (アプリ的なコンテンツ表示) --- */
.ds-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:16px}
.ds-bizcard{display:flex;flex-direction:column;background:#fff;border:1px solid var(--c-line);border-radius:var(--r);overflow:hidden;text-decoration:none;color:var(--c-ink);box-shadow:var(--shadow-s);transition:transform .15s,box-shadow .15s,border-color .15s}
.ds-bizcard:hover{transform:translateY(-3px);box-shadow:var(--shadow);border-color:var(--c-primary)}
.ds-bizcard__img{display:block;aspect-ratio:4/3;background:var(--c-bg-soft);overflow:hidden}
.ds-bizcard__img img{width:100%;height:100%;object-fit:cover;display:block}
.ds-bizcard__body{padding:14px 16px}
.ds-bizcard__name{display:block;font-weight:700;font-size:16px;line-height:1.45;margin-bottom:5px}
.ds-bizcard__meta{display:block;font-size:13px;color:var(--c-ink-70)}
@media(max-width:560px){.ds-grid{grid-template-columns:repeat(2,1fr);gap:12px}.ds-bizcard__name{font-size:14px}}

/* --- 会議の合意: 翠を実アクセントに / 見出しに金の補助線 / No image のブランド化 --- */
.ds-bizcard{border-top:3px solid var(--c-jade)}
.ds-mode{border-top:3px solid var(--c-jade)}
.ds-head__title::after{content:"";display:block;width:38px;height:2px;background:var(--c-gold);margin-top:12px}
.ds-head--center .ds-head__title::after{margin-left:auto;margin-right:auto}
.ds-form input:focus,.ds-form select:focus{border-color:var(--c-jade);box-shadow:0 0 0 3px var(--c-jade-50)}
.ds-bizcard__noimg{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;aspect-ratio:4/3;background:linear-gradient(135deg,var(--c-primary-50) 0%,var(--c-jade-50) 100%);color:var(--c-ink-50);font-size:12px}
.ds-bizcard__noimg img{width:42px;height:42px;opacity:.45}

/* ============ 下層ページ共通ヘッダー ============ */
.ds-pagehead{position:relative;overflow:hidden;background:linear-gradient(118deg,#34205e 0%,#5135b4 58%,#3a2483 100%)}
.ds-pagehead__crest{position:absolute;right:-18px;bottom:-38px;width:190px;height:190px;margin:0;opacity:.10;pointer-events:none}
.ds-pagehead__crest img{width:100%;height:100%;object-fit:contain;filter:brightness(0) invert(1)}
.ds-pagehead__inner{position:relative;max-width:var(--maxw);margin:0 auto;padding:38px 20px;color:#fff}
.ds-pagehead__kicker{display:block;font-size:13px;font-weight:700;letter-spacing:.14em;color:#92e3d2;margin-bottom:8px}
.ds-pagehead__title{margin:0;font-family:var(--font-head);font-size:28px;font-weight:700;letter-spacing:.05em;line-height:1.35}
.ds-pagehead__lead{margin:12px 0 0;font-size:15px;opacity:.9;line-height:1.7}
@media(max-width:560px){.ds-pagehead__inner{padding:28px 20px}.ds-pagehead__title{font-size:21px}.ds-pagehead__crest{width:140px;height:140px}}

/* ============ 検索結果 ============ */
.ds-cond{display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding:12px 16px;background:var(--c-primary-50);border:1px solid var(--c-line);border-radius:var(--r-s);margin-bottom:18px}
.ds-cond__label{font-size:13px;font-weight:700;color:var(--c-primary);letter-spacing:.04em}
.ds-cond__chip{display:inline-flex;align-items:center;font-size:13px;padding:4px 12px;background:#fff;border:1px solid var(--c-line);border-radius:999px;color:var(--c-ink-70)}
.ds-result-bar{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:22px}
.ds-result-bar__count{margin:0;font-size:15px;color:var(--c-ink-70)}
.ds-result-bar__count b{font-family:var(--font-head);font-size:22px;color:var(--c-primary);margin:0 2px}
.ds-result-bar__sort{display:inline-flex;align-items:center;gap:8px;font-size:14px;color:var(--c-ink-70)}
.ds-result-bar__sort select{font-size:14px;padding:7px 30px 7px 12px;border:1px solid var(--c-line);border-radius:var(--r-s);background:#fff;color:var(--c-ink);cursor:pointer}
.ds-rlist{display:grid;grid-template-columns:repeat(2,1fr);gap:20px}
@media(max-width:720px){.ds-rlist{grid-template-columns:1fr}}
.ds-rcard{display:flex;flex-direction:column;background:#fff;border:1px solid var(--c-line);border-top:3px solid var(--c-jade);border-radius:var(--r);box-shadow:var(--shadow-s);padding:22px 24px;transition:transform .15s,box-shadow .15s}
.ds-rcard:hover{transform:translateY(-2px);box-shadow:var(--shadow)}
.ds-rcard__name{font-family:var(--font-head);font-size:20px;font-weight:700;color:var(--c-ink);margin:0 0 14px;line-height:1.4}
.ds-rcard__meta{display:grid;grid-template-columns:1fr 1fr;gap:8px 16px;margin:0 0 14px;padding:0;list-style:none}
.ds-rcard__meta li{display:flex;align-items:center;gap:8px;font-size:14px;color:var(--c-ink-70)}
.ds-rcard__meta i{color:var(--c-primary);width:16px;text-align:center;flex:none}
.ds-rcard__tags{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 14px}
.ds-rcard__tag{font-size:12px;font-weight:600;padding:3px 10px;border-radius:999px;background:var(--c-jade-50);color:var(--c-jade-d)}
.ds-rcard__text{font-size:14px;color:var(--c-ink-70);line-height:1.8;margin:0 0 18px;flex:1}
.ds-rcard__more{display:inline-flex;align-items:center;gap:6px;align-self:flex-start;margin-top:auto;font-size:14px;font-weight:700;color:var(--c-primary);text-decoration:none}
.ds-rcard__more:hover{color:var(--c-primary-d)}
.ds-rcard__more i{transition:transform .15s}
.ds-rcard:hover .ds-rcard__more i{transform:translateX(3px)}
.ds-noresult{text-align:center;padding:52px 24px;background:var(--c-bg-soft);border:1px solid var(--c-line);border-radius:var(--r)}
.ds-noresult__title{font-family:var(--font-head);font-size:19px;color:var(--c-ink);margin:0 0 10px}
.ds-noresult__text{font-size:14px;color:var(--c-ink-70);line-height:1.9;margin:0}
.ds-noresult a{color:var(--c-jade-d);font-weight:600}
.ds-pager{margin-top:34px}
.ds-pager .paging__list{display:flex;flex-wrap:wrap;justify-content:center;gap:6px;list-style:none;padding:0;margin:0}
.ds-pager .paging__item a,.ds-pager .paging__item>span{display:inline-flex;align-items:center;justify-content:center;min-width:40px;height:40px;padding:0 12px;border:1px solid var(--c-line);border-radius:var(--r-s);background:#fff;color:var(--c-ink-70);text-decoration:none;font-size:14px;transition:all .15s}
.ds-pager .paging__item a:hover{border-color:var(--c-primary);color:var(--c-primary)}
.ds-pager .paging__item.current>span{background:var(--c-primary);border-color:var(--c-primary);color:#fff;font-weight:700}
.ds-pager .paging__item.disabled>span{opacity:.4}
.ds-pager .paging__item .text{margin:0 2px}

/* ============ 組織詳細 ============ */
.ds-crumb{font-size:12px;color:var(--c-ink-50);margin:0 0 18px;line-height:1.8}
.ds-crumb a{color:var(--c-primary);text-decoration:none}
.ds-crumb a:hover{text-decoration:underline}
.ds-crumb__sep{margin:0 8px;color:var(--c-line)}
.ds-detail-head{background:#fff;border:1px solid var(--c-line);border-top:3px solid var(--c-jade);border-radius:var(--r);box-shadow:var(--shadow-s);padding:26px 28px;margin-bottom:24px}
.ds-detail-head__top{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:14px}
.ds-detail-head__title{font-family:var(--font-head);font-size:27px;font-weight:700;color:var(--c-ink);margin:0;line-height:1.35}
.ds-detail-head__retired{font-size:14px;color:var(--c-ink-50);font-family:var(--font-body);margin-left:8px}
.ds-detail-head__tags{display:flex;flex-wrap:wrap;gap:6px;margin:14px 0 0}
.ds-tag-cat{display:inline-flex;align-items:center;gap:6px;font-size:13px;font-weight:600;padding:4px 12px;border-radius:999px;background:var(--c-jade-50);color:var(--c-jade-d)}
.ds-tag-cat i{font-size:12px}
.ds-sns{display:inline-flex;gap:8px;list-style:none;padding:0;margin:0;flex-wrap:wrap}
.ds-sns a{display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;border-radius:50%;background:var(--c-primary-50);color:var(--c-primary);text-decoration:none;transition:all .15s}
.ds-sns a:hover{background:var(--c-primary);color:#fff}
.ds-detail-head__cta{display:flex;flex-wrap:wrap;gap:10px;margin-top:18px}
.ds-share{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin-top:18px;padding-top:16px;border-top:1px dashed var(--c-line)}
.ds-share__btn{display:inline-flex;align-items:center;gap:7px;padding:8px 16px;border-radius:999px;font-size:13px;font-weight:600;text-decoration:none;border:1px solid var(--c-line);background:#fff;color:var(--c-ink-70);cursor:pointer;transition:all .15s}
.ds-share__btn:hover{border-color:var(--c-primary);color:var(--c-primary)}
.ds-share__btn i{font-size:12px}
.ds-detail{display:grid;grid-template-columns:1fr 312px;gap:26px;align-items:start}
@media(max-width:860px){.ds-detail{grid-template-columns:1fr}}
.ds-card{background:#fff;border:1px solid var(--c-line);border-radius:var(--r);box-shadow:var(--shadow-s);padding:24px 28px;margin-bottom:22px}
.ds-card:last-child{margin-bottom:0}
.ds-card__title{font-family:var(--font-head);font-size:18px;color:var(--c-ink);margin:0 0 18px;padding-bottom:12px;border-bottom:2px solid var(--c-primary-50);position:relative}
.ds-card__title::before{content:"";position:absolute;left:0;bottom:-2px;width:48px;height:2px;background:var(--c-gold)}
.ds-dl{display:block}
.ds-dl__item{display:grid;grid-template-columns:128px 1fr;gap:16px;padding:14px 2px;border-bottom:1px solid var(--c-line);font-size:14px}
.ds-dl__item:last-child{border-bottom:0}
.ds-dl__k{font-weight:700;color:var(--c-ink-70)}
.ds-dl__v{color:var(--c-ink);line-height:1.85}
.ds-dl__v a{color:var(--c-primary);text-decoration:none}
.ds-dl__v a:hover{text-decoration:underline}
@media(max-width:560px){.ds-dl__item{grid-template-columns:1fr;gap:5px}}
.ds-prose{font-size:15px;line-height:1.95;color:var(--c-ink-70);margin:0}
.ds #gmap{width:100%;height:300px;border-radius:var(--r-s);overflow:hidden;background:var(--c-bg-soft);margin-top:6px}
.ds #gmap .gmap-fallback{display:inline-flex;align-items:center;gap:6px;margin:16px;padding:10px 16px;background:var(--c-primary);color:#fff;border-radius:var(--r-s);text-decoration:none;font-size:14px;font-weight:600}
.ds-gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:14px;margin:0;padding:0;list-style:none}
.ds-gallery__item{margin:0}
.ds-gallery__pic{display:block;margin:0;border-radius:var(--r-s);overflow:hidden;border:1px solid var(--c-line);aspect-ratio:4/3;background:var(--c-bg-soft)}
.ds-gallery__pic img{width:100%;height:100%;object-fit:cover;display:block}
.ds-gallery__cap{font-size:12px;color:var(--c-ink-50);margin:6px 2px 0;line-height:1.6}
.ds-profile{background:#fff;border:1px solid var(--c-line);border-radius:var(--r);box-shadow:var(--shadow-s);overflow:hidden;position:sticky;top:84px}
.ds-profile__photo{margin:0;aspect-ratio:4/3;background:linear-gradient(135deg,var(--c-primary-50),var(--c-jade-50));display:flex;align-items:center;justify-content:center;overflow:hidden}
.ds-profile__photo img{width:100%;height:100%;object-fit:cover}
.ds-profile__photo .ph{width:46px;height:46px;opacity:.4}
.ds-profile__body{padding:18px 20px}
.ds-profile__label{display:block;font-size:11px;font-weight:700;color:var(--c-jade-d);letter-spacing:.1em;margin-bottom:6px}
.ds-profile__name{font-family:var(--font-head);font-size:18px;font-weight:700;color:var(--c-ink);margin:0 0 12px;line-height:1.4}
.ds-profile__row{display:flex;align-items:flex-start;gap:8px;font-size:13px;color:var(--c-ink-70);margin:0 0 9px;line-height:1.7;word-break:break-word}
.ds-profile__row:last-child{margin-bottom:0}
.ds-profile__row i{color:var(--c-primary);width:15px;text-align:center;flex:none;margin-top:3px}
.ds-profile__row a{color:var(--c-primary);text-decoration:none}
.ds-related{margin-top:30px}
.ds-relgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:14px}
.ds-relcard{display:block;padding:16px 18px;background:#fff;border:1px solid var(--c-line);border-left:3px solid var(--c-jade);border-radius:var(--r-s);text-decoration:none;color:var(--c-ink);box-shadow:var(--shadow-s);transition:all .15s}
.ds-relcard:hover{transform:translateY(-2px);box-shadow:var(--shadow);border-left-color:var(--c-primary)}
.ds-relcard__name{display:block;font-family:var(--font-head);font-weight:700;font-size:15px;margin-bottom:6px;line-height:1.4}
.ds-relcard__meta{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--c-ink-50)}

/* ============ 地域 / ジャンル一覧（ディレクトリ型） ============ */
.ds-dirlist{display:flex;flex-direction:column;gap:10px}
.ds-dirblock{display:grid;grid-template-columns:170px 1fr;background:#fff;border:1px solid var(--c-line);border-radius:var(--r);box-shadow:var(--shadow-s);overflow:hidden}
@media(max-width:640px){.ds-dirblock{grid-template-columns:1fr}}
.ds-dirblock__label{display:flex;align-items:center;gap:10px;margin:0;padding:18px 20px;background:var(--c-primary-50);border-right:1px solid var(--c-line);font-family:var(--font-head);font-size:16px;font-weight:700;color:var(--c-primary);line-height:1.4}
@media(max-width:640px){.ds-dirblock__label{border-right:0;border-bottom:1px solid var(--c-line)}}
.ds-dirblock--area .ds-dirblock__label::before{content:"";width:5px;height:18px;background:var(--c-jade);border-radius:3px;flex:none}
.ds-dirblock__ico{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:8px;background:#fff;border:1px solid var(--c-line);color:var(--c-jade-d);font-size:14px;flex:none}
.ds-dirblock__items{display:flex;flex-wrap:wrap;gap:8px;align-content:flex-start;list-style:none;margin:0;padding:16px 20px}
.ds-dirblock__items li{display:flex}
.ds-dirblock__items a{display:inline-flex;align-items:center;gap:6px;padding:7px 15px;border:1px solid var(--c-line);border-radius:999px;font-size:14px;color:var(--c-ink-70);text-decoration:none;background:#fff;transition:all .15s}
.ds-dirblock__items a:hover{border-color:var(--c-primary);color:var(--c-primary);background:var(--c-primary-50)}
.ds-dirblock__items a i{font-size:11px;opacity:.55}

/* ============ フォームページ（会員登録・編集） ============ */
.ds-formpage{max-width:900px;margin:0 auto}
.ds-steps{display:flex;gap:10px;justify-content:center;max-width:520px;margin:0 auto 28px;padding:0 20px;list-style:none}
.ds-steps__item{flex:1;display:flex;align-items:center;justify-content:center;gap:6px;text-align:center;padding:11px 6px;border-radius:999px;background:#fff;border:1px solid var(--c-line);color:var(--c-ink-50);font-size:13px;font-weight:600}
.ds-steps__item.is-current{background:var(--c-primary);border-color:var(--c-primary);color:#fff}
.ds-steps__item.is-done{background:var(--c-jade-50);border-color:var(--c-jade);color:var(--c-jade-d)}
.ds-formpage .errors__list{list-style:none;margin:0 0 22px;padding:16px 20px;background:#fdecec;border:1px solid #f1c4c4;border-left:3px solid #d65a52;border-radius:var(--r-s)}
.ds-formpage .errors__item{color:#b3322c;font-size:14px;line-height:1.85}
.ds-formpage .alumni-condition-box{margin:0 0 26px;padding:14px 18px;background:var(--c-primary-50);border:1px solid var(--c-line);border-radius:var(--r-s);font-size:13px;color:var(--c-ink-70)}
.ds-formpage .alumni-condition-box__title{font-weight:700;color:var(--c-primary);margin-bottom:4px}
.ds-formpage .alumni-condition-box__content{line-height:1.75}
.ds-formpage .register__title{font-family:var(--font-head);font-size:19px;font-weight:700;color:var(--c-ink);margin:34px 0 0;padding:0 0 12px;border-left:0;border-bottom:2px solid var(--c-primary-50);position:relative}
.ds-formpage .register__title::before{content:"";position:absolute;left:0;bottom:-2px;width:48px;height:2px;background:var(--c-gold)}
.ds-formpage>.register__title:first-child,.ds-formpage .errors__list+.alumni-condition-box+.register__title{margin-top:8px}
.ds-formpage .required-text{color:#d65a52;font-size:12px;font-weight:700;font-family:var(--font-body)}
.ds-formpage p.required-text{margin:10px 0 0}
.ds-formpage table{width:100%;border-collapse:collapse;margin:14px 0 0;background:#fff;border:1px solid var(--c-line);border-radius:var(--r);overflow:hidden;box-shadow:var(--shadow-s)}
.ds-formpage table th{width:33%;text-align:left;vertical-align:top;padding:16px 18px;background:var(--c-bg-soft);border-bottom:1px solid var(--c-line);border-right:1px solid var(--c-line);font-size:14px;font-weight:700;color:var(--c-ink-70);line-height:1.65}
.ds-formpage table td{padding:14px 18px;border-bottom:1px solid var(--c-line);vertical-align:middle;font-size:14px;color:var(--c-ink)}
.ds-formpage table tr:last-child th,.ds-formpage table tr:last-child td{border-bottom:0}
.ds-formpage input[type=text],.ds-formpage input[type=email],.ds-formpage input[type=tel],.ds-formpage input[type=password],.ds-formpage input[type=number],.ds-formpage textarea,.ds-formpage select{font-size:15px;padding:10px 12px;border:1px solid var(--c-line);border-radius:var(--r-s);background:#fff;color:var(--c-ink);max-width:100%;font-family:inherit;line-height:1.5}
.ds-formpage input[type=text]:focus,.ds-formpage input[type=email]:focus,.ds-formpage input[type=tel]:focus,.ds-formpage input[type=password]:focus,.ds-formpage input[type=number]:focus,.ds-formpage textarea:focus,.ds-formpage select:focus{outline:none;border-color:var(--c-jade);box-shadow:0 0 0 3px var(--c-jade-50)}
.ds-formpage td>input[type=text]:not(.size-s):not(.number):not(.size-m),.ds-formpage td>input[type=email],.ds-formpage td>input[type=password],.ds-formpage td>textarea{width:100%}
.ds-formpage .size-m{width:min(100%,360px)}
.ds-formpage textarea{min-height:120px;line-height:1.75}
.ds-formpage .validation{color:#d65a52;font-size:13px;margin:7px 0 0;font-weight:600}
.ds-formpage .note,.ds-formpage td .desc{display:inline-block;font-size:12px;color:var(--c-ink-50);margin-left:8px;line-height:1.6}
.ds-formpage .select-wrap{display:inline-block;margin:0 4px 6px 0}
.ds-formpage .add-margin{margin-right:6px}
.ds-formpage .text{margin:0 10px 0 2px;font-size:14px;color:var(--c-ink-70)}
.ds-formpage .view_box{margin-bottom:8px}
.ds-formpage .img_view{margin-top:10px}
.ds-formpage .img_view img{max-width:200px;border-radius:var(--r-s);border:1px solid var(--c-line)}
.ds-formpage .img_del{font-size:12px;color:#d65a52}
.ds-formpage .check-box{width:17px;height:17px;accent-color:var(--c-primary);vertical-align:-3px;margin-right:6px}
.ds-formpage .form-check-label{font-size:14px;color:var(--c-ink-70);cursor:pointer}
.ds-formpage .ds-flash{display:flex;align-items:center;gap:8px;margin:0 0 20px;padding:13px 18px;border-radius:var(--r-s);font-size:14px;font-weight:600}
.ds-formpage .ds-flash--ok{background:var(--c-jade-50);border:1px solid var(--c-jade);color:var(--c-jade-d)}
.ds-formpage input[type=checkbox]{accent-color:var(--c-primary)}
.ds-formpage .form-text{font-size:14px;color:var(--c-ink-70);line-height:1.85;margin:0 0 14px}
.ds-formpage .form-note{font-size:13px;color:var(--c-ink-50);margin:0 0 18px;padding-left:1.2em;line-height:1.8}
.ds-formpage .forgot-password{margin:8px 0 0}
.ds-formpage .forgot-password a{font-size:13px;color:var(--c-primary);text-decoration:none}
.ds-formpage .forgot-password a:hover{text-decoration:underline}
.ds-formpage .login-remember{margin:16px 0 0}
.ds-formpage .login-remember label{display:inline-flex;align-items:center;gap:8px;font-size:14px;color:var(--c-ink-70);cursor:pointer}
.ds-formpage .ds-field{margin:0 0 18px}
.ds-formpage .ds-field__label{display:block;font-size:13px;font-weight:700;color:var(--c-ink-70);margin-bottom:7px}
.ds-formpage .ds-field input{width:100%}
.ds-formpage .ds-textlink{display:inline-flex;align-items:center;gap:6px;font-size:13px;color:var(--c-ink-50);background:none;border:0;cursor:pointer;text-decoration:underline;font-family:inherit;padding:0}
.ds-formpage .ds-textlink:hover{color:var(--c-primary)}
.ds-formpage .ds-authactions{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:14px;margin-top:22px}
.ds-formpage .terms-check{margin:18px 0;font-size:14px}
.ds-formpage .terms-check a{color:var(--c-primary);font-weight:700;text-decoration:none}
.ds-formpage .terms-check a:hover{text-decoration:underline}
.ds-formpage .submit-wrap{text-align:center;margin:30px 0 0}
.ds-formpage .submit-wrap .icon{display:none}
.ds-formpage .submit-wrap input[type=submit],.ds-formpage .submit-wrap button{font-family:var(--font-body);font-size:16px;font-weight:700;padding:14px 60px;background:var(--c-primary);color:#fff;border:0;border-radius:999px;cursor:pointer;box-shadow:var(--shadow);transition:all .15s}
.ds-formpage .submit-wrap input[type=submit]:hover{background:var(--c-primary-d)}
.ds-formpage .submit-wrap input[type=submit].inactive{background:#b6b2c6;cursor:not-allowed;box-shadow:none}
.ds-formpage .submit-wrap.back{margin-top:14px}
.ds-formpage .submit-wrap.back button{background:#fff;color:var(--c-primary);border:1px solid var(--c-primary);box-shadow:none}
.ds-formpage .submit-wrap.back button:hover{background:var(--c-primary-50)}
.ds-formpage .takeout-wrap{display:inline-block;margin-left:10px}
.ds-formpage td .view_box img{max-width:240px;border-radius:var(--r-s);border:1px solid var(--c-line)}
.ds-formpage td .view_box p{font-size:13px;color:var(--c-ink-50);margin-top:6px}

/* ============ 完了画面 ============ */
.ds-complete{max-width:640px;margin:0 auto;text-align:center;background:#fff;border:1px solid var(--c-line);border-top:3px solid var(--c-jade);border-radius:var(--r);box-shadow:var(--shadow-s);padding:44px 32px}
.ds-complete__icon{width:72px;height:72px;margin:0 auto 20px;border-radius:50%;background:var(--c-jade-50);color:var(--c-jade-d);display:flex;align-items:center;justify-content:center;font-size:30px}
.ds-complete__title{font-family:var(--font-head);font-size:23px;color:var(--c-ink);margin:0 0 8px;line-height:1.4}
.ds-complete__lead{font-size:15px;color:var(--c-ink-70);margin:0 0 24px}
.ds-complete__lead a{color:var(--c-primary);font-weight:600}
.ds-complete__notice{text-align:left;background:var(--c-bg-soft);border:1px solid var(--c-line);border-radius:var(--r-s);padding:20px 22px;font-size:14px;color:var(--c-ink-70);line-height:1.9}
.ds-complete__notice p{margin:0 0 10px}
.ds-complete__notice p:last-child{margin-bottom:0}
.ds-complete__notice ul{margin:10px 0;padding-left:20px}
.ds-complete__notice li{margin-bottom:6px}
.ds-complete__notice a{color:var(--c-primary);font-weight:600}
.ds-complete__notice strong{color:var(--c-ink)}
.ds-complete__actions{display:flex;flex-wrap:wrap;gap:12px;justify-content:center;margin-top:28px}

/* ============ マイページ ============ */
.ds-mypage-status{background:#fff;border:1px solid var(--c-line);border-top:3px solid var(--c-jade);border-radius:var(--r);box-shadow:var(--shadow-s);padding:26px 28px;margin-bottom:26px}
.ds-mypage-status__badge{display:inline-flex;align-items:center;gap:6px;padding:5px 15px;border-radius:999px;color:#fff;font-weight:700;font-size:13px;margin-bottom:12px}
.ds-mypage-status--none .ds-mypage-status__badge{background:var(--c-ink-50)}
.ds-mypage-status--pending .ds-mypage-status__badge{background:var(--c-gold)}
.ds-mypage-status--public .ds-mypage-status__badge{background:var(--c-jade)}
.ds-mypage-status__text{font-size:14px;color:var(--c-ink-70);line-height:1.85;margin:0 0 18px}
.ds-mypage-status__text:last-child{margin-bottom:0}
.ds-menu{display:flex;flex-direction:column;gap:10px}
.ds-menu__form{margin:0}
.ds-menu__item{display:flex;align-items:center;gap:14px;width:100%;padding:18px 22px;background:#fff;border:1px solid var(--c-line);border-radius:var(--r);box-shadow:var(--shadow-s);text-decoration:none;color:var(--c-ink);font-family:inherit;text-align:left;cursor:pointer;transition:all .15s}
.ds-menu__item:hover{border-color:var(--c-primary);transform:translateX(2px);box-shadow:var(--shadow)}
.ds-menu__ico{display:inline-flex;align-items:center;justify-content:center;width:42px;height:42px;border-radius:10px;background:var(--c-primary-50);color:var(--c-primary);font-size:16px;flex:none}
.ds-menu__body{flex:1;min-width:0}
.ds-menu__label{display:block;font-weight:700;font-size:15px}
.ds-menu__desc{display:block;font-size:12px;color:var(--c-ink-50);margin-top:3px}
.ds-menu__chev{color:var(--c-ink-50);flex:none}

/* ============ 画像管理（編集） ============ */
.ds-imgmanage{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:18px;list-style:none;margin:6px 0 0;padding:0}
.ds-imgmanage__item{display:flex;flex-direction:column;border:1px solid var(--c-line);border-radius:var(--r-s);overflow:hidden;background:#fff}
.ds-imgmanage__label{font-size:12px;font-weight:700;color:var(--c-ink-50);padding:10px 12px 0}
.ds-imgmanage__pic{display:block;margin:8px 0 0;aspect-ratio:4/3;background:var(--c-bg-soft);overflow:hidden}
.ds-imgmanage__pic img{width:100%;height:100%;object-fit:cover;display:block}
.ds-imgmanage__cap{font-size:12px;color:var(--c-ink-50);padding:8px 12px 0;margin:0}
.ds-imgmanage__del{margin:10px 12px 12px;font-size:13px;font-weight:600;color:#d65a52;text-decoration:none}
.ds-imgmanage__del:hover{text-decoration:underline}
.ds-formpage__back{margin-top:24px;text-align:center}

/* ============ 利用規約など文書ページ ============ */
.ds-terms-doc .term__title{font-family:var(--font-head);font-size:17px;font-weight:700;color:var(--c-ink);margin:30px 0 10px;padding-left:12px;border-left:3px solid var(--c-jade);line-height:1.5}
.ds-terms-doc .term__title:first-child{margin-top:0}
.ds-terms-doc .term__text{font-size:14px;color:var(--c-ink-70);line-height:1.95;margin:0 0 14px}
.ds-terms-doc .term__text:first-child{margin-top:0}
