/* externalized brand-polish (30 pages: e.g. marriage-charmant.html, marriage-ehren.html, marriage-eid.html) */
/* ===== Brand Typography Polish — final pass ===== */
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
body{font-feature-settings:"palt" 1;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}
/* Japanese running text: airy, refined tracking */
p,li,dd,dt,td,th,.lead,.a,.cjp{letter-spacing:.03em}
.lead{line-height:2.05}
/* Display headings: elegant tracking + graceful line-breaking */
.hero h1,.subhero h1,.h-sec{letter-spacing:.07em;text-wrap:balance}
.hero h1{line-height:1.5}
.h-sec{line-height:1.55}
/* Latin accents keep default metrics (palt is CJK-only) */
.ey,.en,.tag,.go,.cen{font-feature-settings:normal}
/* PC: calm, unified lead measure */
@media(min-width:1200px){.lead{font-size:16px}}
/* SP: balanced sizing & rhythm */
@media(max-width:560px){
  body{line-height:1.9}
  .lead{font-size:14.5px;line-height:1.98}
  .hero h1,.subhero h1{letter-spacing:.045em}
  .h-sec{letter-spacing:.045em;line-height:1.5}
}

/* ===== スマホ用メニュー（ハンバーガー＋ドロワー） ===== */
.lang-switch{display:inline-flex;align-items:stretch;font-family:"Cormorant Garamond",serif;font-size:12.5px;letter-spacing:.18em;line-height:1;border:1px solid currentColor;border-radius:999px;overflow:hidden;opacity:.9;white-space:nowrap}
.lang-switch>*{display:inline-block;padding:6px 12px;color:inherit;text-decoration:none;opacity:.5;transition:opacity .2s}
.lang-switch>*:not(:first-child){border-left:1px solid currentColor}
.lang-switch>a:hover,.lang-switch>.on{opacity:1}
.lang-switch>.on{font-weight:700}
@media(max-width:640px){header.nav .lang-switch{display:none}}
.ns-burger{display:none;position:relative;z-index:1002;width:42px;height:42px;
  border:none;background:transparent;cursor:pointer;padding:0;flex:none}
.ns-burger span{position:absolute;left:10px;width:22px;height:1.5px;background:#EEF1F3;
  transition:transform .3s ease,opacity .2s ease,top .3s ease}
.ns-burger span:nth-child(1){top:14px}
.ns-burger span:nth-child(2){top:20px}
.ns-burger span:nth-child(3){top:26px}
.ns-burger[aria-expanded="true"] span:nth-child(1){top:20px;transform:rotate(45deg)}
.ns-burger[aria-expanded="true"] span:nth-child(2){opacity:0}
.ns-burger[aria-expanded="true"] span:nth-child(3){top:20px;transform:rotate(-45deg)}

.ns-drawer{position:fixed;inset:0;z-index:1001;background:linear-gradient(165deg,#3E4A55,#2B333A 60%,#242b31);
  display:flex;flex-direction:column;padding:88px 26px 34px;overflow-y:auto;
  opacity:0;visibility:hidden;transform:translateY(-12px);
  transition:opacity .32s ease,transform .32s ease,visibility .32s;
  -webkit-overflow-scrolling:touch}
.ns-drawer.open{opacity:1;visibility:visible;transform:translateY(0)}
.ns-drawer .ns-eyebrow{font-family:"Cormorant Garamond",serif;letter-spacing:.34em;
  text-transform:uppercase;font-size:11px;color:#9FADB7;margin-bottom:20px}
.ns-drawer nav{display:flex;flex-direction:column}
.ns-drawer nav a{display:flex;align-items:baseline;gap:12px;padding:16px 2px;
  border-bottom:1px solid rgba(238,241,243,.13);text-decoration:none;color:#EEF1F3;
  opacity:0;transform:translateY(8px);transition:opacity .4s ease,transform .4s ease}
.ns-drawer.open nav a{opacity:1;transform:translateY(0)}
.ns-drawer nav a .jp{font-family:"Zen Old Mincho",serif;font-size:17px;letter-spacing:.06em}
.ns-drawer nav a .en{font-family:"Cormorant Garamond",serif;font-size:11.5px;
  letter-spacing:.18em;text-transform:uppercase;color:#9FADB7;margin-left:auto}
.ns-drawer nav a:active{background:rgba(238,241,243,.06)}
.ns-drawer .ns-foot{margin-top:auto;padding-top:30px}
.ns-drawer .ns-cta{display:flex;align-items:center;justify-content:center;gap:8px;
  width:100%;padding:16px;border-radius:999px;background:#5A6E7B;color:#fff;
  font-size:15px;font-weight:700;letter-spacing:.04em;text-decoration:none}
.ns-drawer .ns-sns{display:block;text-align:center;margin-top:16px;font-size:12.5px;
  letter-spacing:.06em;color:#9FADB7;text-decoration:none}
body.ns-lock{overflow:hidden}
/* メニューを開いている間はヘッダーを最前面へ（閉じるボタンを押せるように） */
body.ns-lock header.nav{z-index:1002;background:transparent;backdrop-filter:none;box-shadow:none}
body.ns-lock header.nav .wordmark{position:relative;z-index:1003}
/* 下部固定CTAはメニュー表示中は隠す */
body.ns-lock .m-cta{display:none !important}

@media(max-width:640px){
  .ns-burger{display:block}
  header.nav nav.menu{display:none}   /* PC用メニューは隠す（640pxで統一） */
  header.nav .btn{display:none}       /* 右側CTAはドロワー内に集約 */
  header.nav{gap:12px}
}
@media(min-width:641px){
  .ns-drawer{display:none}
}

/* ===== 価格表示（スマホ最適化） ===== */
.ns-price .plist{list-style:none;margin:0;padding:0}
.ns-price .plist li{display:flex;align-items:baseline;justify-content:space-between;
  gap:10px;padding:9px 0;border-bottom:1px dotted #DBDFE4}
.ns-price .plist li:last-child{border-bottom:none}
.ns-price .mt{font-size:13px;color:#6a727b;letter-spacing:.02em;flex:1 1 auto}
.ns-price .pv{font-family:"Cormorant Garamond",serif;font-size:19px;font-weight:600;
  color:var(--forest);letter-spacing:.02em;white-space:nowrap;flex:none}

.ns-price .pgrp{margin-bottom:14px;padding:12px 14px;background:#F6F7F8;
  border:1px solid #E3E7EA;border-radius:10px}
.ns-price .pgh{font-family:"Zen Old Mincho",serif;font-size:13px;color:var(--forest);
  letter-spacing:.08em;padding-bottom:8px;margin-bottom:2px;border-bottom:1px solid #DBDFE4}

.ns-price .ptotal{margin:4px 0 14px;padding:14px 16px;border-radius:10px;
  background:#3E4A55;color:#EEF1F3}
.ns-price .ptotal .tl{font-family:"Zen Old Mincho",serif;font-size:13px;
  letter-spacing:.1em;color:#9FADB7;padding-bottom:8px;margin-bottom:2px;
  border-bottom:1px solid rgba(238,241,243,.2)}
.ns-price .ptotal .plist li{border-bottom:1px dotted rgba(238,241,243,.22)}
.ns-price .ptotal .plist li:last-child{border-bottom:none}
.ns-price .ptotal .mt{color:#C3CBD2}
.ns-price .ptotal .pv{color:#fff;font-size:21px}

.ns-price .ptax{font-size:12px;color:#8a929a;margin:2px 0 12px}
.ns-price .pnote{list-style:none;margin:0;padding:12px 14px;background:#F6F7F8;
  border-left:3px solid #9FADB7;border-radius:0 8px 8px 0}
.ns-price .pnote li{font-size:11.5px;line-height:1.8;color:#77808a;padding-left:1.1em;
  text-indent:-1.1em;margin-bottom:6px}
.ns-price .pnote li:last-child{margin-bottom:0}
.ns-price .pnote li::before{content:"※ "}

/* --- スマホでは表を縦積みにして横幅をフルに使う --- */
@media(max-width:640px){
  table.spec, table.spec tbody, table.spec tr, table.spec th, table.spec td{
    display:block;width:100%}
  table.spec tr{padding:14px 0;border-bottom:1px solid var(--line)}
  table.spec tr:last-child{border-bottom:none}
  table.spec th{width:auto;padding:0 0 7px;border-bottom:none;
    font-size:11.5px;letter-spacing:.14em;color:#8a929a;font-weight:500}
  table.spec td{padding:0;border-bottom:none;font-size:14px;line-height:1.85}
  .ns-price .pv{font-size:21px}
  .ns-price .mt{font-size:13.5px}
}
