/* =========================================================
   Sub pages — Contact, Privacy, Legal
   Shared page-level styles for the secondary pages.
   ========================================================= */

.gnav a.is-active{ color:var(--navy) }
.gnav a.is-active::after{ width:100%; left:0 }

/* ---------- Page hero (compact) ---------- */
.subpage-hero{
  padding:calc(64px + var(--gap)) 0 calc(var(--gap) * .55);
  background:var(--paper);
  border-bottom:1px solid var(--line);
  position:relative;
  overflow:hidden;
}
.subpage-hero::before{
  content:"";
  position:absolute; right:-10%; top:-30%;
  width:50%; height:80%;
  background:radial-gradient(ellipse at center,
    oklch(0.72 0.06 78 / .08) 0%, transparent 55%);
  pointer-events:none;
}
.subpage-hero__inner{ position:relative; z-index:2 }

.crumbs{
  display:flex; gap:10px; align-items:center;
  color:var(--ink-mute);
  margin-bottom:40px;
}
.crumbs a{ color:var(--ink-mute); transition:color .3s }
.crumbs a:hover{ color:var(--navy) }
.crumbs span:not(.mono){ opacity:.5 }

.subpage-hero__index{
  color:var(--gold-deep);
  margin-bottom:18px;
}
.subpage-hero__title{
  font-family:var(--serif);
  font-weight:400;
  font-size:clamp(38px, 6vw, 82px);
  line-height:1.2;
  letter-spacing:.03em;
  color:var(--navy-ink);
  margin:0 0 24px;
  word-break:keep-all;
  overflow-wrap:normal;
  line-break:strict;
}
.subpage-hero__title--em{
  font-weight:500;
  color:var(--navy);
  position:relative;
  display:inline-block;
  padding-bottom:.14em;
}
.subpage-hero__title--em::after{
  content:"";
  position:absolute; left:0; bottom:.02em;
  width:1.4em; height:2px;
  background:var(--gold);
}
.subpage-hero__latin{
  font-family:var(--latin); font-style:italic;
  font-size:clamp(15px, 1.5vw, 20px);
  color:var(--ink-mute);
  letter-spacing:.04em;
  margin:0 0 28px;
}
.subpage-hero__lead{
  font-family:var(--serif);
  font-weight:300;
  font-size:clamp(14px, 1.15vw, 17px);
  line-height:2;
  color:var(--ink-soft);
  max-width:56ch;
  margin:0;
}


/* =========================================================
   CONTACT PAGE
   ========================================================= */
.contact-section{
  padding:var(--gap) 0 calc(var(--gap) * .8);
  background:var(--paper);
}
.contact-layout{
  display:grid;
  grid-template-columns: 4fr 6fr;
  gap:clamp(40px, 6vw, 96px);
  align-items:start;
}
.contact-info{
  position:sticky; top:96px;
  display:flex; flex-direction:column; gap:36px;
  padding-top:8px;
  border-top:2px solid var(--gold);
}
.contact-info__eye{
  color:var(--gold-deep);
  padding-top:10px;
}
.contact-info__h{
  font-family:var(--serif);
  font-weight:500;
  font-size:clamp(24px, 2.6vw, 32px);
  color:var(--navy-ink);
  line-height:1.4;
  letter-spacing:.03em;
  margin:0;
  word-break:keep-all;
}
.contact-info__p{
  font-family:var(--serif);
  font-weight:400;
  font-size:14.5px;
  line-height:2;
  color:var(--ink-soft);
  margin:0;
  max-width:36ch;
}
.contact-info__list{
  list-style:none; padding:0; margin:0;
  border-top:1px solid var(--line);
}
.contact-info__list li{
  display:grid;
  grid-template-columns: 110px 1fr;
  gap:14px;
  padding:16px 0;
  border-bottom:1px solid var(--line);
  align-items:baseline;
}
.contact-info__list dt,
.contact-info__list li > .k{
  font-family:var(--mono);
  font-size:10.5px;
  letter-spacing:.14em;
  color:var(--ink-mute);
  text-transform:uppercase;
}
.contact-info__list li > .v{
  font-family:var(--serif);
  font-size:14px;
  color:var(--ink);
  line-height:1.85;
}

@media (max-width:820px){
  .contact-layout{ grid-template-columns:1fr }
  .contact-info{ position:static }
}

/* Form */
.form{
  display:flex; flex-direction:column; gap:8px;
  border-top:1px solid var(--line);
  padding-top:8px;
}
.form__row{
  display:grid;
  grid-template-columns: 170px 1fr;
  gap:24px;
  padding:22px 0;
  border-bottom:1px solid var(--line);
  align-items:start;
}
.form__label{
  display:flex; flex-direction:column; gap:4px;
  padding-top:10px;
}
.form__label .k{
  font-family:var(--serif);
  font-weight:500;
  font-size:14.5px;
  color:var(--navy-ink);
  letter-spacing:.04em;
}
.form__label .kk{
  font-family:var(--mono);
  font-size:10px;
  letter-spacing:.14em;
  color:var(--ink-mute);
  text-transform:uppercase;
}
.form__req{
  display:inline-block;
  font-family:var(--mono);
  font-size:9.5px;
  letter-spacing:.14em;
  color:var(--gold-deep);
  padding:2px 6px;
  border:1px solid var(--gold-deep);
  margin-top:6px;
  width:fit-content;
  text-transform:uppercase;
}
.form__field{ position:relative }
.form__input,
.form__select,
.form__textarea{
  width:100%;
  border:none;
  border-bottom:1px solid var(--line);
  padding:12px 4px;
  background:transparent;
  font-family:var(--serif);
  font-size:15px;
  color:var(--ink);
  line-height:1.7;
  outline:none;
  transition:border-color .3s;
  border-radius:0;
  -webkit-appearance:none;
  appearance:none;
}
.form__input::placeholder,
.form__textarea::placeholder{
  color:var(--ink-mute);
  opacity:.6;
  font-style:italic;
}
.form__input:focus,
.form__select:focus,
.form__textarea:focus{
  border-bottom-color:var(--navy);
}
.form__select{
  background-image:linear-gradient(45deg, transparent 50%, var(--ink-mute) 50%),
                    linear-gradient(-45deg, transparent 50%, var(--ink-mute) 50%);
  background-position:calc(100% - 14px) 20px, calc(100% - 8px) 20px;
  background-size:6px 6px, 6px 6px;
  background-repeat:no-repeat;
  padding-right:32px;
}
.form__textarea{
  min-height:160px;
  border:1px solid var(--line);
  padding:14px 16px;
  resize:vertical;
  font-family:var(--serif);
}
.form__textarea:focus{
  border-color:var(--navy);
  border-bottom-color:var(--navy);
}
.form__hint{
  font-family:var(--sans);
  font-size:11.5px;
  color:var(--ink-mute);
  margin-top:8px;
  line-height:1.7;
}

.form__consent{
  padding:24px 0 8px;
  display:grid;
  grid-template-columns: 170px 1fr;
  gap:24px;
  border-bottom:1px solid var(--line);
  align-items:start;
}
.form__check{
  display:flex; gap:14px; align-items:flex-start;
  cursor:pointer;
  padding:8px 0;
}
.form__check input{
  position:absolute;
  opacity:0;
  width:0; height:0;
}
.form__check-box{
  width:16px; height:16px;
  border:1.5px solid var(--ink);
  flex-shrink:0;
  margin-top:4px;
  position:relative;
  transition:background .3s, border-color .3s;
}
.form__check input:checked + .form__check-box{
  background:var(--navy);
  border-color:var(--navy);
}
.form__check input:checked + .form__check-box::after{
  content:"";
  position:absolute;
  left:4px; top:0;
  width:6px; height:11px;
  border:solid var(--white-warm);
  border-width:0 1.5px 1.5px 0;
  transform:rotate(45deg);
}
.form__check-text{
  font-family:var(--serif);
  font-size:14px;
  color:var(--ink);
  line-height:1.8;
}
.form__check-text a{
  color:var(--navy);
  border-bottom:1px solid var(--navy);
  transition:opacity .3s;
}
.form__check-text a:hover{ opacity:.6 }

.form__actions{
  margin-top:36px;
  display:flex; justify-content:flex-end;
  gap:16px;
}
.form__submit{
  display:inline-flex; align-items:center; justify-content:space-between;
  min-width:260px;
  padding:18px 24px;
  background:var(--navy);
  color:var(--white-warm);
  border:1px solid var(--navy);
  cursor:pointer;
  font-family:var(--latin); font-style:italic;
  font-size:15px; letter-spacing:.06em;
  transition:all .3s;
}
.form__submit:hover{
  background:var(--gold);
  border-color:var(--gold);
  color:var(--navy-ink);
}
.form__submit svg{ transition:transform .3s }
.form__submit:hover svg{ transform:translateX(4px) }

@media (max-width:820px){
  .form__row,
  .form__consent{
    grid-template-columns:1fr;
    gap:8px;
  }
  .form__label{ padding-top:0 }
  .form__req{ margin-top:4px }
  .form__actions{ justify-content:stretch }
  .form__submit{ width:100%; min-width:0 }
}


/* =========================================================
   LEGAL / PRIVACY DOCUMENT LAYOUT
   ========================================================= */
.doc-section{
  padding:calc(var(--gap) * .8) 0;
  background:var(--paper);
}
.doc-layout{
  display:grid;
  grid-template-columns: 240px 1fr;
  gap:clamp(40px, 6vw, 96px);
  align-items:start;
  max-width:1080px;
  margin:0 auto;
}
.doc-nav{
  position:sticky; top:96px;
  padding-top:8px;
  border-top:2px solid var(--gold);
}
.doc-nav__label{
  color:var(--gold-deep);
  padding-top:10px;
  margin-bottom:16px;
}
.doc-nav__title{
  font-family:var(--latin); font-style:italic;
  font-size:22px;
  color:var(--navy-ink);
  letter-spacing:.04em;
  margin:0 0 20px;
}
.doc-nav__list{
  list-style:none;
  padding:0; margin:0;
  display:flex; flex-direction:column;
  border-top:1px solid var(--line);
}
.doc-nav__list li{
  border-bottom:1px solid var(--line);
}
.doc-nav__list a{
  display:grid;
  grid-template-columns:32px 1fr;
  gap:10px;
  padding:12px 0;
  align-items:baseline;
  color:var(--ink-soft);
  transition:color .3s;
  font-size:13px;
  line-height:1.6;
}
.doc-nav__list a:hover{ color:var(--navy) }
.doc-nav__list a span{
  font-family:var(--mono);
  font-size:10.5px;
  color:var(--gold-deep);
  letter-spacing:.1em;
}

.doc-body{
  padding-top:8px;
  border-top:2px solid var(--navy-ink);
}
.doc-meta{
  display:flex; justify-content:space-between;
  padding:14px 0 20px;
  border-bottom:1px solid var(--line);
  margin-bottom:40px;
  font-family:var(--mono);
  font-size:11px;
  color:var(--ink-mute);
  letter-spacing:.1em;
}

.doc-intro{
  font-family:var(--serif);
  font-size:15.5px;
  line-height:2.1;
  color:var(--ink);
  letter-spacing:.02em;
  margin:0 0 56px;
  max-width:62ch;
}

.doc-article{
  padding:24px 0 40px;
  border-top:1px solid var(--line);
}
.doc-article:first-of-type{ padding-top:0; border-top:0 }
.doc-article__index{
  font-family:var(--mono);
  font-size:10.5px;
  letter-spacing:.16em;
  color:var(--gold-deep);
  text-transform:uppercase;
  margin-bottom:10px;
}
.doc-article__h{
  font-family:var(--serif);
  font-weight:500;
  font-size:clamp(20px, 2vw, 26px);
  color:var(--navy-ink);
  letter-spacing:.03em;
  line-height:1.5;
  margin:0 0 24px;
  word-break:keep-all;
  overflow-wrap:normal;
}
.doc-article__p{
  font-family:var(--serif);
  font-size:15px;
  line-height:2.1;
  color:var(--ink);
  letter-spacing:.02em;
  margin:0 0 20px;
  max-width:62ch;
}
.doc-article__ol{
  padding-left:0;
  margin:0 0 24px;
  list-style:none;
  counter-reset: doc-o;
  max-width:62ch;
}
.doc-article__ol > li{
  counter-increment: doc-o;
  padding:16px 0 16px 44px;
  border-bottom:1px solid var(--line-soft);
  position:relative;
  font-family:var(--serif);
  font-size:14.5px;
  line-height:2;
  color:var(--ink);
}
.doc-article__ol > li::before{
  content: counter(doc-o, decimal-leading-zero);
  position:absolute; left:0; top:16px;
  font-family:var(--mono);
  font-size:11px;
  color:var(--gold-deep);
  letter-spacing:.1em;
}
.doc-article__ol > li b{
  display:block;
  font-family:var(--serif);
  font-weight:500;
  color:var(--navy-ink);
  margin-bottom:4px;
  letter-spacing:.03em;
}

/* Definition-list style rows (特商法など) */
.doc-dl{
  margin:0;
  border-top:1px solid var(--line);
}
.doc-dl__row{
  display:grid;
  grid-template-columns: 220px 1fr;
  gap:24px;
  padding:20px 0;
  border-bottom:1px solid var(--line);
  align-items:baseline;
}
.doc-dl__row dt{
  font-family:var(--serif);
  font-weight:500;
  font-size:14.5px;
  color:var(--navy-ink);
  letter-spacing:.03em;
}
.doc-dl__row dt span{
  display:block;
  margin-top:2px;
  font-family:var(--mono);
  font-size:10.5px;
  color:var(--ink-mute);
  letter-spacing:.1em;
  text-transform:uppercase;
}
.doc-dl__row dd{
  margin:0;
  font-family:var(--serif);
  font-size:14.5px;
  color:var(--ink);
  line-height:2;
}
.doc-note{
  margin-top:32px;
  padding:16px 20px;
  background:var(--paper-2);
  border-left:2px solid var(--gold);
  font-family:var(--serif);
  font-size:13px;
  line-height:1.95;
  color:var(--ink-soft);
}

@media (max-width:820px){
  .doc-layout{ grid-template-columns:1fr }
  .doc-nav{ position:static }
  .doc-dl__row{ grid-template-columns:1fr; gap:6px }
}
