/* uminohoshi page — shared inner-page components */

/* ─── Page Hero ─── */
.page-hero{
  background:
    radial-gradient(120% 80% at 100% 0%,var(--c-blue-100) 0%,transparent 50%),
    radial-gradient(80% 100% at 0% 100%,var(--c-bg-cream) 0%,transparent 60%),
    var(--c-bg-sky);
  padding:52px 0 60px; border-bottom:1px solid var(--c-border-soft);
}
.breadcrumb{ display:flex; align-items:center; gap:6px; font-size:15px; color:var(--c-text-mute); margin-bottom:28px; }
.breadcrumb a{ color:var(--c-text-mute); text-decoration:none; }
.breadcrumb a:hover{ color:var(--c-blue-600); }
.breadcrumb .sep{ color:var(--c-border); }
.page-hero h1{ font-weight:800; font-size:clamp(28px,4vw,44px); letter-spacing:.04em; line-height:1.4; margin:12px 0 18px; }

/* ─── Anchor Nav ─── */
.anchor-nav{
  position:sticky; top:var(--header-h, 90px); z-index:55;
  background:rgba(255,255,255,.96); backdrop-filter:blur(8px);
  border-bottom:1px solid var(--c-border-soft);
  box-shadow:0 2px 12px rgba(63,127,163,.07);
}
.anchor-nav-inner{ display:flex; overflow-x:auto; -webkit-overflow-scrolling:touch; scrollbar-width:none; }
.anchor-nav-inner::-webkit-scrollbar{ display:none; }
.anchor-link{
  display:flex; align-items:center; gap:7px;
  padding:13px 18px; font-size:15px; font-weight:600;
  color:var(--c-text-sub); text-decoration:none; white-space:nowrap;
  border-bottom:2px solid transparent; transition:color .15s,border-color .15s; flex-shrink:0;
}
.anchor-link:hover{ color:var(--c-blue-600); }
.anchor-link.is-active{ color:var(--c-blue-600); border-bottom-color:var(--c-blue-600); }
.anchor-badge{ font-size:10px; font-weight:700; color:#fff; background:var(--accent); padding:1px 5px; border-radius:999px; }

/* ─── Info Grid ─── */
.info-grid{
  border:1px solid var(--c-border-soft); border-radius:16px; overflow:hidden;
  margin:24px 0 20px; background:#fff; box-shadow:var(--shadow-sm);
}
.info-row{ display:grid; grid-template-columns:100px 1fr; border-bottom:1px solid var(--c-border-soft); }
.info-row:last-child{ border-bottom:0; }
.info-label{
  padding:13px 14px; font-size:15px; font-weight:600; letter-spacing:.05em;
  color:var(--c-blue-600); background:var(--c-blue-50); display:flex; align-items:center;
}
.info-value{ padding:13px 16px; font-size:15px; color:var(--c-text); line-height:1.7; }
.tbd{
  color:var(--c-text-mute); font-size:15px;
  background:var(--c-bg-warm); padding:2px 8px; border-radius:4px; display:inline-block;
}

/* ─── Page Note ─── */
.page-note{
  font-size:15px; color:var(--c-text-mute); line-height:1.85;
  padding:14px 18px; background:var(--c-bg-warm); border-radius:10px;
  border-left:3px solid var(--c-blue-200); margin-bottom:28px;
}

/* ─── Contact Banner ─── */
.contact-banner{
  background:linear-gradient(135deg,rgba(44,90,120,.9),rgba(63,127,163,.7) 60%,rgba(232,168,124,.25)),
  var(--c-blue-800);
  padding:80px 0;
}
.contact-banner h2{ font-weight:700; font-size:clamp(20px,3vw,30px); letter-spacing:.06em; line-height:1.5; color:#fff; margin-bottom:12px; }
.contact-banner p{ color:rgba(255,255,255,.88); margin-bottom:28px; }
.contact-btns{ display:flex; flex-wrap:wrap; gap:14px; }

/* ─── Active nav link ─── */
.nav-link.is-current{ color:var(--c-blue-600); }

/* ─── パスワード保護フォーム（WordPress デフォルト .post-password-form） ─── */
.post-password-form{
  max-width:480px;
  padding:36px 32px;
  background:#fff;
  border:1px solid var(--c-border-soft);
  border-radius:20px;
  box-shadow:var(--shadow-sm);
  margin:40px auto;
}
.post-password-form > p:first-child{
  font-size:15px; color:var(--c-text-sub); line-height:1.8; margin-bottom:24px;
}
/* label + input + submit を縦並びに */
.post-password-form > p:last-child{
  display:flex; flex-direction:column; gap:10px;
}
.post-password-form label{
  font-size:14px; font-weight:600; color:var(--c-text);
}
.post-password-form input[type="password"]{
  display:block; width:100%;
  padding:11px 14px; border:1px solid var(--c-border);
  border-radius:10px; font-size:15px; color:var(--c-text);
  font-family:inherit; background:#fff; box-sizing:border-box;
  transition:border-color .15s, box-shadow .15s;
}
.post-password-form input[type="password"]:focus{
  outline:none; border-color:var(--c-blue-400);
  box-shadow:0 0 0 3px rgba(63,127,163,.12);
}
.post-password-form input[type="submit"]{
  display:inline-flex; align-items:center; justify-content:center;
  padding:12px 28px; border-radius:999px; border:none; cursor:pointer;
  font-size:15px; font-weight:700; letter-spacing:.08em;
  background:var(--accent); color:#fff;
  box-shadow:0 8px 22px rgba(232,168,124,.42);
  transition:background .15s, transform .15s;
  font-family:inherit; align-self:flex-start;
}
.post-password-form input[type="submit"]:hover{
  background:var(--accent-dark); transform:translateY(-1px);
}

/* ─── Gallery Lightbox（トップページ） ─── */
.gl-overlay{
  position:fixed; top:0; right:0; bottom:0; left:0; z-index:1000;
  background:rgba(8,18,28,.93); -webkit-backdrop-filter:blur(6px); backdrop-filter:blur(6px);
  display:flex; flex-direction:column; align-items:center; justify-content:center;
  opacity:0; pointer-events:none;
  transition:opacity .25s;
}
.gl-overlay.is-open{ opacity:1; pointer-events:auto; }

.gl-close{
  position:absolute; top:14px; right:16px;
  background:rgba(255,255,255,.1); border:1px solid rgba(255,255,255,.18);
  color:#fff; width:40px; height:40px; border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  cursor:pointer; transition:background .15s;
}
.gl-close:hover{ background:rgba(255,255,255,.22); }

.gl-prev,.gl-next{
  position:absolute; top:50%; transform:translateY(-50%);
  background:rgba(255,255,255,.1); border:1px solid rgba(255,255,255,.18);
  color:#fff; width:48px; height:48px; border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  cursor:pointer; transition:background .15s;
}
.gl-prev{ left:16px; }
.gl-next{ right:16px; }
.gl-prev:hover,.gl-next:hover{ background:rgba(255,255,255,.26); }
@media(max-width:640px){ .gl-prev{ left:6px; } .gl-next{ right:6px; } }

.gl-stage{
  flex:1 1 0; display:flex; align-items:center; justify-content:center;
  width:100%; padding:56px 72px 12px; box-sizing:border-box; min-height:0; overflow:hidden;
}
@media(max-width:640px){ .gl-stage{ padding:56px 16px 12px; } }

.gl-img{
  display:block; max-width:100%; width:auto; height:auto;
  max-height:calc(100vh - 110px);
  object-fit:contain; border-radius:8px; transition:opacity .2s;
}
.gl-img.is-loading{ opacity:0; }

.gl-thumbs{
  display:flex; gap:6px; padding:10px 16px 16px;
  overflow-x:auto; flex-shrink:0; max-width:100%;
  scrollbar-width:thin; scrollbar-color:rgba(255,255,255,.3) transparent;
}
.gl-thumbs::-webkit-scrollbar{ height:4px; }
.gl-thumbs::-webkit-scrollbar-track{ background:transparent; }
.gl-thumbs::-webkit-scrollbar-thumb{ background:rgba(255,255,255,.3); border-radius:2px; }

.gl-thumb{
  width:54px; height:54px; flex-shrink:0;
  object-fit:cover; border-radius:6px; cursor:pointer;
  opacity:.45; border:2px solid transparent;
  transition:opacity .15s, border-color .15s, transform .15s;
}
.gl-thumb:hover{ opacity:.75; transform:scale(1.05); }
.gl-thumb.is-active{ opacity:1; border-color:#fff; transform:scale(1.08); }


/* ─── 汎用固定ページの本文（2026-08-03 追加）─── */
.page-body{ max-width:820px; }
.page-body h2{
  font-size:20px; font-weight:700; margin:40px 0 14px; padding-left:12px;
  border-left:5px solid var(--c-orange); line-height:1.5;
}
.page-body h3{ font-size:17px; font-weight:700; margin:28px 0 10px; color:var(--c-blue-800); }
.page-body p{ margin:0 0 18px; line-height:1.95; }
.page-body ul, .page-body ol{ margin:0 0 18px; padding-left:1.6em; }
.page-body ul{ list-style:disc; }
.page-body ol{ list-style:decimal; }
.page-body li{ margin-bottom:8px; line-height:1.9; }
.page-body a{ color:var(--c-blue-600); text-decoration:underline; }
.page-body table{ width:100%; margin:0 0 18px; border:1px solid var(--c-border-soft); border-radius:10px; overflow:hidden; }
.page-body th, .page-body td{ padding:12px 14px; border-bottom:1px dotted var(--c-border); text-align:left; font-size:15px; }
.page-body th{ background:var(--c-bg-warm); width:180px; font-weight:700; }
.page-body > *:first-child{ margin-top:0; }
@media(max-width:599px){
  .page-body th{ display:block; width:auto; }
  .page-body td{ display:block; }
}
