@import url('https://fonts.googleapis.com/css2?family=Shippori+Mincho:wght@400;500;600;700&family=Zen+Kaku+Gothic+New:wght@400;500;700&family=EB+Garamond:ital,wght@0,400;0,500;1,400;1,500&display=swap');

:root{
  /* ブランドガイドライン準拠のカラーパレット */
  --paper:#F7F3EA;      /* Ivory */
  --paper-deep:#E7DFC9; /* Sand Beige */
  --ink:#22201B;
  --ink-soft:#544E3F;
  --pine:#1B2F4A;       /* Midnight Blue */
  --pine-deep:#0D1B2A;  /* Deep Navy */
  --brass:#C7A25A;      /* Warm Gold */
  --brass-soft:#D9BC85;
  --clay:#8C5A3C;
  --line:#DDD3BA;
  --white:#FFFDF8;
}

*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font-family:'Zen Kaku Gothic New', sans-serif;
  line-height:1.85;
  -webkit-font-smoothing:antialiased;
}

.eyebrow{
  font-family:'EB Garamond', serif;
  font-style:italic;
  font-weight:500;
  letter-spacing:.14em;
  font-size:.8rem;
  color:var(--brass);
  text-transform:uppercase;
}

h1,h2,h3{
  font-family:'Shippori Mincho', serif;
  font-weight:600;
  color:var(--pine-deep);
  margin:0 0 .5em;
  letter-spacing:.02em;
}

a{color:inherit;}

.wrap{max-width:1040px; margin:0 auto; padding:0 28px;}

/* ---------- Header ---------- */
.site-header{
  padding:20px 0;
  border-bottom:1px solid var(--line);
  background:var(--pine);
}
.site-header .wrap{display:flex; align-items:center; justify-content:space-between; gap:24px;}
.brandmark{display:flex; align-items:center; text-decoration:none;}
.logo-img{height:40px; width:auto; display:block;}
.brandmark.home .logo-img{height:56px;}
.main-nav{display:flex; align-items:center; gap:30px; flex:1; justify-content:center;}
.main-nav a{color:var(--paper); text-decoration:none; font-size:.86rem; letter-spacing:.04em; opacity:.85; transition:.2s;}
.main-nav a:hover{opacity:1; color:var(--brass-soft);}
@media(max-width:860px){.main-nav{display:none;}}
.header-cta{
  font-family:'Zen Kaku Gothic New'; font-weight:700; font-size:.85rem;
  background:var(--brass); color:var(--pine-deep);
  padding:11px 24px; text-decoration:none; letter-spacing:.03em;
  transition:.2s; white-space:nowrap;
}
.header-cta:hover{background:var(--brass-soft);}
@media(max-width:400px){
  .site-header .wrap{gap:12px;}
  .brandmark.home .logo-img{height:42px;}
  .header-cta{padding:10px 14px; font-size:.78rem;}
}

/* ---------- Hero ---------- */
.logo-img-lg{height:64px; width:auto; margin:0 auto 30px; display:block;}

.hero{
  padding:110px 0 100px;
  text-align:left;
  position:relative;
  color:var(--paper);
  background:
    linear-gradient(100deg, rgba(10,25,48,.93) 0%, rgba(10,25,48,.82) 42%, rgba(10,25,48,.45) 75%, rgba(10,25,48,.25) 100%),
    url('assets/hero-bg.jpg') center right / cover no-repeat,
    var(--pine-deep);
}
.hero .wrap{max-width:1040px;}
.hero .hero-inner{max-width:620px;}
.hero .eyebrow{color:var(--brass-soft);}
.hero h1{color:var(--paper); font-size:clamp(2.3rem,4.6vw,3.4rem); line-height:1.35; font-weight:700;}
.hero .lede{
  font-family:'Zen Kaku Gothic New'; font-style:normal;
  color:#D9DFE8; font-size:1.05rem; letter-spacing:.02em;
  max-width:520px; margin:0 0 30px;
}
.hero p.desc{max-width:520px; margin:0; color:#C7CEDA; font-size:.94rem;}
.hero .cta-row{margin-top:38px; display:flex; gap:16px; flex-wrap:wrap; justify-content:flex-start;}
.hero .btn-primary{background:var(--brass); color:var(--pine-deep);}
.hero .btn-primary:hover{background:var(--brass-soft);}
.hero .btn-ghost{border:1px solid rgba(247,243,233,.5); color:var(--paper);}
.hero .btn-ghost:hover{background:rgba(247,243,233,.1);}
.btn-primary{
  background:var(--pine); color:var(--white); text-decoration:none;
  padding:14px 34px; font-family:'Zen Kaku Gothic New'; font-weight:700;
  font-size:.92rem; letter-spacing:.06em; transition:.2s;
}
.btn-primary:hover{background:var(--pine-deep);}
.btn-ghost{
  border:1px solid var(--ink-soft); color:var(--ink); text-decoration:none;
  padding:13px 34px; font-size:.92rem; letter-spacing:.06em;
}

/* ---------- Scenes (use cases) ---------- */
.scenes{display:grid; grid-template-columns:repeat(4,1fr); gap:22px;}
@media(max-width:820px){.scenes{grid-template-columns:1fr 1fr;}}
@media(max-width:640px){.scenes{grid-template-columns:1fr;}}
.scene-card{
  background:var(--white); border:1px solid var(--line);
  padding:16px; text-align:left; display:flex; gap:14px; align-items:stretch;
}
.scene-photo{width:105px; flex-shrink:0; background-size:cover; background-position:center;}
.scene-text{display:flex; flex-direction:column; justify-content:center;}
.scene-icon{
  width:32px; height:32px; border-radius:50%;
  background:var(--paper-deep); border:1px solid var(--brass-soft);
  display:flex; align-items:center; justify-content:center;
  margin-bottom:10px; color:var(--pine); font-size:.9rem;
}
.scene-card h4{font-family:'Shippori Mincho'; font-size:.95rem; margin:0 0 6px; color:var(--pine-deep);}
.scene-card p{font-size:.78rem; color:var(--ink-soft); margin:0; line-height:1.6;}

/* ---------- Course cards (photo + content) — horizontal slider ---------- */
.course-slider-wrap{position:relative; display:flex; align-items:center; gap:10px;}
.course-slider{
  display:flex; gap:28px; overflow-x:auto; scroll-snap-type:x mandatory;
  padding:4px 4px 14px;
}
.course-slider .course-card{flex:0 0 320px; scroll-snap-align:start; display:flex; flex-direction:column;}
@media(max-width:640px){.course-slider .course-card{flex-basis:82vw;}}
.course-card{background:var(--white); border:1px solid var(--line); overflow:hidden; display:flex; flex-direction:column;}
.course-photo{
  height:220px; flex-shrink:0;
  display:flex; align-items:flex-end; justify-content:flex-start;
  color:var(--paper); font-family:'EB Garamond'; font-style:italic; font-size:.75rem;
  letter-spacing:.03em; padding:14px 16px;
  background-size:cover; background-position:center;
  background-color:var(--pine-deep);
  position:relative;
}
.course-photo::before{
  content:""; position:absolute; inset:0;
  background:linear-gradient(0deg, rgba(10,25,48,.55) 0%, rgba(10,25,48,0) 45%);
}
.course-photo span{position:relative; z-index:1;}
.course-body{padding:32px 34px; display:flex; flex-direction:column; flex:1;}
.course-body .course-eyebrow{font-family:'EB Garamond',serif; font-style:italic; color:var(--brass); letter-spacing:.14em; font-size:.82rem; text-transform:uppercase;}
.course-body .course-desc{font-size:.88rem; color:var(--ink-soft); margin:.6em 0 16px; line-height:1.75;}
.course-body .price{font-family:'Shippori Mincho', serif; font-weight:600; font-size:1.9rem; color:var(--pine-deep); margin:auto 0 16px;}
.course-body .price small{font-family:'Zen Kaku Gothic New'; font-size:.85rem; color:var(--ink-soft); font-weight:400;}
.select-btn{
  display:block; text-align:center;
  background:var(--pine); color:var(--white); text-decoration:none;
  padding:13px; font-weight:700; letter-spacing:.05em; font-size:.9rem;
}
.select-btn:hover{opacity:.88;}
.slider-arrow{
  flex-shrink:0; width:40px; height:40px; border-radius:50%; border:1px solid var(--line);
  background:var(--white); color:var(--pine-deep); font-size:1.3rem; line-height:1; cursor:pointer;
  display:flex; align-items:center; justify-content:center; transition:.2s;
}
.slider-arrow:hover{background:var(--pine); color:var(--white); border-color:var(--pine);}
@media(max-width:640px){.slider-arrow{display:none;}}

.course-card[data-course]{cursor:pointer; transition:box-shadow .2s, transform .2s;}
.course-card[data-course]:hover{box-shadow:0 10px 26px rgba(13,27,42,.12); transform:translateY(-2px);}
.course-card[data-course]:focus-visible{outline:2px solid var(--brass); outline-offset:2px;}
.course-preview-hint{font-size:.8rem; color:var(--brass); font-weight:700; letter-spacing:.02em; margin:0;}

/* ---------- Item lineup preview modal ---------- */
.item-modal-overlay{
  position:fixed; inset:0; background:rgba(13,27,42,.6);
  display:flex; align-items:center; justify-content:center; padding:20px;
  opacity:0; visibility:hidden; transition:opacity .2s; z-index:100;
}
.item-modal-overlay.open{opacity:1; visibility:visible;}
.item-modal{
  background:var(--white); max-width:640px; width:100%; max-height:82vh; overflow-y:auto;
  padding:38px 40px; position:relative;
  transform:translateY(12px); transition:transform .2s;
}
.item-modal-overlay.open .item-modal{transform:translateY(0);}
.item-modal h3{font-family:'Shippori Mincho', serif; font-size:1.3rem; color:var(--pine-deep);}
.item-modal-close{
  position:absolute; top:16px; right:16px; width:34px; height:34px; border-radius:50%;
  border:1px solid var(--line); background:var(--white); color:var(--ink-soft);
  font-size:1.2rem; line-height:1; cursor:pointer; display:flex; align-items:center; justify-content:center;
}
.item-modal-close:hover{background:var(--paper-deep);}
.item-modal-note{
  font-size:.82rem; color:var(--ink-soft); background:var(--paper-deep);
  border-left:3px solid var(--brass); padding:10px 14px; margin:0 0 24px; line-height:1.7;
}
.item-modal-grid{display:grid; grid-template-columns:repeat(auto-fill,minmax(160px,1fr)); gap:20px;}
.item-preview-photo{
  height:120px; background-size:cover; background-position:center; background-color:var(--paper-deep);
  border:1px solid var(--line);
}
.item-preview-name{font-size:.85rem; font-weight:700; color:var(--ink); margin:8px 0 2px;}
.item-preview-desc{font-size:.76rem; color:var(--ink-soft); margin:0; line-height:1.6;}
.item-modal-empty{grid-column:1/-1; text-align:center; color:var(--ink-soft); font-size:.88rem; padding:20px 0;}
@media(max-width:640px){.item-modal{padding:30px 22px;}}

/* ---------- Sub-page hero band (order page) ---------- */
.subhero{
  padding:64px 0 54px; text-align:center; color:var(--paper); position:relative;
  background:
    linear-gradient(100deg, rgba(10,25,48,.90) 0%, rgba(10,25,48,.78) 55%, rgba(10,25,48,.55) 100%),
    url('assets/hero-bg.jpg') center 30% / cover no-repeat,
    var(--pine-deep);
}
.subhero h1{color:var(--paper); font-size:2rem; margin-bottom:.3em;}
.subhero p{color:#D9DFE8; font-size:.92rem; margin:0;}

/* ---------- Step indicator ---------- */
.steps{display:flex; justify-content:center; align-items:center; gap:10px; margin:34px 0 50px; flex-wrap:wrap;}
.steps .step{display:flex; align-items:center; gap:8px; font-size:.82rem; color:var(--ink-soft);}
.steps .step-num{
  width:26px; height:26px; border-radius:50%; border:1px solid var(--line);
  display:flex; align-items:center; justify-content:center; font-family:'EB Garamond'; font-style:italic;
}
.steps .step.active .step-num{background:var(--brass); border-color:var(--brass); color:var(--pine-deep);}
.steps .step.active{color:var(--pine-deep); font-weight:700;}
.steps .step-divider{width:36px; height:1px; background:var(--line);}

/* ---------- Two-column order layout ---------- */
.order-layout{display:grid; grid-template-columns:1.5fr 1fr; gap:32px; align-items:start;}
.order-layout > *{min-width:0;}
@media(max-width:900px){.order-layout{grid-template-columns:1fr;}}
.summary-card{
  background:var(--white); border:1px solid var(--line); padding:30px; position:sticky; top:20px;
}
.summary-card h4{font-family:'Shippori Mincho'; font-size:1.1rem; margin:0 0 18px;}
.summary-photo{height:110px; background-size:cover; background-position:center; background-color:var(--pine-deep); margin-bottom:14px;}
.summary-row{display:flex; justify-content:space-between; font-size:.87rem; color:var(--ink-soft); padding:8px 0; border-top:1px solid var(--line);}
.summary-row:first-of-type{border-top:none;}
.summary-total{display:flex; justify-content:space-between; align-items:baseline; margin-top:16px; padding-top:16px; border-top:1px solid var(--ink-soft);}
.summary-total .label{font-size:.85rem; color:var(--ink-soft);}
.summary-total .amount{font-family:'Shippori Mincho'; font-weight:600; font-size:1.5rem; color:var(--pine-deep);}

/* ---------- Course pick with photo (order form) — horizontal slider ---------- */
.course-pick-slider-wrap{position:relative; display:flex; align-items:center; gap:10px; margin-top:8px;}
.course-pick-photo{display:flex; gap:14px; overflow-x:auto; scroll-snap-type:x mandatory; padding:4px 4px 10px;}
.course-pick-photo .course-radio{flex:0 0 220px; scroll-snap-align:start;}
@media(max-width:560px){.course-pick-photo .course-radio{flex-basis:78vw;}}
.course-radio{border:1px solid var(--line); cursor:pointer; overflow:hidden; background:var(--white);}
.course-radio.checked{border-color:var(--brass); box-shadow:0 0 0 1px var(--brass);}
.course-radio .cr-photo{height:110px; background-size:cover; background-position:center; background-color:var(--pine-deep);}
.course-radio .cr-body{padding:14px 16px;}
.course-radio .cr-body input{width:auto; margin-right:8px;}
.course-radio .cr-name{font-family:'Shippori Mincho'; font-size:1rem; color:var(--pine-deep);}
.course-radio .cr-price{font-size:.85rem; color:var(--ink-soft); margin-top:4px;}

/* ---------- Gift page: banner + item grid + form ---------- */
.gift-banner{
  display:grid; grid-template-columns:1.2fr 1fr; align-items:stretch;
  border:1px solid var(--line); background:var(--white); overflow:hidden; margin-bottom:50px;
}
@media(max-width:680px){.gift-banner{grid-template-columns:1fr;}}
.gift-banner-text{padding:44px 40px; display:flex; flex-direction:column; justify-content:center;}
.gift-banner-text h2{font-size:1.9rem;}
.gift-banner-photo{background:url('assets/giftbox.jpg') center/cover no-repeat; min-height:200px;}
.gift-from{font-size:.88rem; color:var(--ink-soft); margin:10px 0 4px;}

.gift-layout{display:grid; grid-template-columns:1.4fr 1fr; gap:36px; align-items:start;}
.gift-layout > *{min-width:0;}
@media(max-width:900px){.gift-layout{grid-template-columns:1fr;}}
.item-grid{display:grid; grid-template-columns:1fr 1fr; gap:18px;}
@media(max-width:560px){.item-grid{grid-template-columns:1fr;}}
.item-card{border:1px solid var(--line); background:var(--white); cursor:pointer; position:relative; overflow:hidden;}
.item-card.checked{border-color:var(--brass); box-shadow:0 0 0 1px var(--brass);}
.item-card.is-sold-out{cursor:not-allowed; opacity:.55;}
.item-card.is-sold-out .ic-photo{filter:grayscale(1);}
.item-card .ic-photo{height:150px; background-size:cover; background-position:center; position:relative;}
.item-card .ic-photo.noimg{background:linear-gradient(160deg, var(--pine) 0%, var(--pine-deep) 100%);}
.item-card .ic-badge{
  position:absolute; top:10px; left:10px; background:var(--brass); color:var(--pine-deep);
  font-size:.7rem; font-weight:700; padding:4px 10px; letter-spacing:.03em;
}
.item-card .ic-body{padding:16px 18px;}
.item-card .ic-body input{position:absolute; top:14px; right:14px;}
.item-card .ic-name{font-family:'Shippori Mincho'; font-size:.98rem; color:var(--pine-deep); margin-bottom:4px; padding-right:20px;}
.item-card .ic-desc{font-size:.8rem; color:var(--ink-soft); margin:0;}

/* ---------- Section ---------- */
section{padding:80px 0;}
.section-head{text-align:center; max-width:640px; margin:0 auto 56px;}
.section-head h2{font-size:2rem;}
.section-head p{color:var(--ink-soft); font-size:.95rem;}

/* ---------- Ledger cards (courses) ---------- */
.courses{display:grid; grid-template-columns:1fr 1fr; gap:36px;}
@media(max-width:720px){.courses{grid-template-columns:1fr;}}

.ledger{
  background:var(--white);
  border:1px solid var(--line);
  padding:44px 38px;
  position:relative;
}
.ledger::before, .ledger::after,
.ledger .corner-b::before, .ledger .corner-b::after{
  content:""; position:absolute; width:16px; height:16px;
  border-color:var(--brass); border-style:solid;
}
.ledger::before{top:10px; left:10px; border-width:1.5px 0 0 1.5px;}
.ledger::after{top:10px; right:10px; border-width:1.5px 1.5px 0 0;}
.ledger .corner-b{position:absolute; inset:0;}
.ledger .corner-b::before{bottom:10px; left:10px; top:auto; border-width:0 0 1.5px 1.5px;}
.ledger .corner-b::after{bottom:10px; right:10px; top:auto; border-width:0 1.5px 1.5px 0;}

.ledger .course-eyebrow{font-family:'EB Garamond',serif; font-style:italic; color:var(--brass); letter-spacing:.12em; font-size:.85rem;}
.ledger h3{font-size:1.6rem; margin:.2em 0 .1em;}
.ledger .price{font-family:'Shippori Mincho', serif; font-weight:600; font-size:2.1rem; color:var(--pine-deep); margin:14px 0 4px;}
.ledger .price small{font-family:'Zen Kaku Gothic New'; font-size:.9rem; color:var(--ink-soft); font-weight:400;}
.ledger ul{list-style:none; padding:0; margin:22px 0 0; font-size:.92rem; color:var(--ink-soft);}
.ledger ul li{padding:9px 0; border-top:1px solid var(--line);}
.ledger ul li:first-child{border-top:none;}
.ledger .select-btn{
  display:block; text-align:center; margin-top:28px;
  background:var(--pine); color:var(--white); text-decoration:none;
  padding:13px; font-weight:700; letter-spacing:.05em; font-size:.9rem;
}
.ledger.premium .select-btn{background:var(--brass); color:var(--ink);}
.ledger .select-btn:hover{opacity:.88;}

/* ---------- Compare table ---------- */
.compare{width:100%; border-collapse:collapse; font-size:.9rem;}
.compare th, .compare td{padding:16px 18px; border:1px solid var(--line); text-align:left; vertical-align:top;}
.compare thead th{background:var(--pine); color:var(--white); font-family:'Shippori Mincho', serif; font-weight:600;}
.compare td.us{background:var(--white); font-weight:700; color:var(--pine-deep);}

/* ---------- Flow ---------- */
.flow{display:grid; grid-template-columns:repeat(5,1fr); gap:0;}
@media(max-width:900px){.flow{grid-template-columns:repeat(3,1fr);}}
@media(max-width:560px){.flow{grid-template-columns:1fr 1fr;}}
.flow-step{padding:22px 18px; border-left:1px solid var(--line);}
.flow-step:first-child{border-left:none;}
@media(max-width:900px){.flow-step:nth-child(3n+1){border-left:none;}}
.flow-badge{
  width:34px; height:34px; border-radius:50%;
  background:var(--pine); color:var(--paper);
  display:flex; align-items:center; justify-content:center;
  font-family:'EB Garamond', serif; font-style:italic; font-size:1rem;
  margin-bottom:14px;
}
.flow-step h4{font-family:'Shippori Mincho'; font-size:1rem; margin:.2em 0; color:var(--pine-deep);}
.flow-step p{font-size:.83rem; color:var(--ink-soft); margin:0;}

/* ---------- Footer ---------- */
footer{
  background:var(--pine-deep); color:var(--paper);
  padding:56px 0 26px;
}
footer .foot-grid{display:grid; grid-template-columns:1.4fr 1fr 1fr; gap:36px; text-align:left;}
@media(max-width:720px){footer .foot-grid{grid-template-columns:1fr; text-align:center;}}
footer .logo-img{height:36px; width:auto; display:block;}
footer .foot-tagline{color:#B9C2CC; font-size:.82rem; margin-top:10px;}
footer .foot-col h5{font-family:'EB Garamond'; font-style:italic; font-weight:400; color:var(--brass-soft); letter-spacing:.08em; font-size:.85rem; margin:0 0 14px;}
footer .foot-col a{display:block; text-decoration:none; color:#C9D2C9; font-size:.85rem; margin-bottom:9px;}
footer .foot-col a:hover{color:var(--brass-soft);}
footer .foot-bottom{
  border-top:1px solid rgba(247,243,233,.15); margin-top:40px; padding-top:20px;
  display:flex; justify-content:space-between; flex-wrap:wrap; gap:10px;
  font-size:.75rem; color:#8D97A3;
}

/* ---------- Forms (order page) ---------- */
.form-card{
  background:var(--white); border:1px solid var(--line);
  max-width:640px; margin:0 auto; padding:44px;
}
.form-card label{display:block; font-size:.85rem; color:var(--ink-soft); margin:20px 0 6px; font-weight:700;}
.form-card label .req{color:var(--clay); margin-left:4px;}
.form-card input, .form-card select, .form-card textarea{
  width:100%; padding:12px 14px; border:1px solid var(--line); background:var(--paper);
  font-family:'Zen Kaku Gothic New'; font-size:.95rem; color:var(--ink);
}
.form-card input:focus, .form-card select:focus, .form-card textarea:focus{
  outline:2px solid var(--brass); outline-offset:1px; background:var(--white);
}
.form-card .course-pick{display:grid; grid-template-columns:1fr 1fr; gap:14px; margin-top:8px;}
.course-opt{border:1px solid var(--line); padding:16px; cursor:pointer; font-size:.88rem;}
.course-opt input{width:auto; margin-right:8px;}
.course-opt.checked{border-color:var(--brass); background:var(--paper-deep);}
.submit-btn{
  width:100%; margin-top:32px; background:var(--pine); color:var(--white);
  border:none; padding:16px; font-family:'Zen Kaku Gothic New'; font-weight:700;
  font-size:1rem; letter-spacing:.05em; cursor:pointer; transition:.2s;
}
.submit-btn:hover{background:var(--pine-deep);}
.submit-btn:disabled{background:var(--ink-soft); cursor:wait;}
.note-box{
  background:var(--paper-deep); border-left:3px solid var(--brass);
  padding:16px 20px; font-size:.85rem; color:var(--ink-soft); margin:24px 0;
}
.error-msg{color:#9B3A2E; font-size:.85rem; margin-top:6px; display:none;}
#formMsg{margin-top:20px; padding:14px 18px; font-size:.9rem; display:none;}
#formMsg.ok{background:#E7EEE5; color:var(--pine-deep); display:block;}
#formMsg.err{background:#F5E4E0; color:#9B3A2E; display:block;}
#redeemMsg{margin-top:20px; padding:14px 18px; font-size:.9rem; display:none;}
#redeemMsg.err{background:#F5E4E0; color:#9B3A2E; display:block;}

/* --- 領収証 --- */
.receipt-sheet{
  background:#fff; color:#1a1a1a; max-width:720px; margin:0 auto 40px;
  padding:56px 64px; border:1px solid #ccc; font-family:'Shippori Mincho', serif;
  page-break-after:always;
}
.receipt-title{text-align:center; font-size:1.8rem; letter-spacing:.3em; margin-bottom:28px;}
.receipt-meta{display:flex; justify-content:space-between; font-size:.85rem; color:#555; margin-bottom:24px;}
.receipt-atena{font-size:1.3rem; border-bottom:2px solid #1a1a1a; padding-bottom:10px; margin-bottom:24px;}
.receipt-amount-box{border:2px solid #1a1a1a; padding:16px 20px; margin-bottom:10px;}
.receipt-amount{font-size:1.9rem; text-align:center; font-weight:700; letter-spacing:.05em;}
.receipt-desc{font-size:.95rem; margin-top:18px; margin-bottom:6px;}
.receipt-confirm{font-size:.95rem; margin-bottom:28px;}
table.receipt-breakdown{width:60%; margin-left:auto; border-collapse:collapse; font-size:.9rem; margin-bottom:32px;}
table.receipt-breakdown td{padding:6px 4px; border-bottom:1px solid #ddd;}
table.receipt-breakdown td.num{text-align:right;}
table.receipt-breakdown tr.total-row td{border-top:2px solid #1a1a1a; border-bottom:none; font-weight:700; padding-top:10px;}
.receipt-issuer-row{margin-top:40px; display:flex; justify-content:space-between; align-items:flex-end; gap:20px;}
.receipt-issuer{font-size:.9rem; line-height:1.7;}
.receipt-seal{width:110px; height:auto; flex-shrink:0; opacity:.92;}
.receipt-footnote{margin-top:24px; font-size:.75rem; color:#888;}
.receipt-toolbar{max-width:720px; margin:0 auto 20px; display:flex; justify-content:flex-end; gap:10px;}
@media print{
  .receipt-toolbar, .no-print{display:none !important;}
  .receipt-sheet{border:none; margin:0 auto; padding:20mm;}
  body{background:#fff;}
}

/* --- 請求書 --- */
.invoice-sheet{max-width:820px;}
.invoice-en-title{text-align:center; font-size:.8rem; letter-spacing:.5em; color:#888; margin-top:-20px; margin-bottom:28px;}
.invoice-header-row{display:flex; justify-content:space-between; gap:32px; margin-bottom:20px;}
.invoice-client{flex:1; min-width:0;}
.invoice-client-name{font-size:1.2rem; border-bottom:2px solid #1a1a1a; padding-bottom:8px; margin-bottom:14px;}
.invoice-subject{font-size:.9rem; margin-bottom:8px;}
.invoice-lead{font-size:.9rem;}
.invoice-issuer-block{width:280px; flex-shrink:0; position:relative;}
table.invoice-meta-table{width:100%; border-collapse:collapse; font-size:.82rem; margin-bottom:14px;}
table.invoice-meta-table td{padding:3px 4px; border-bottom:1px solid #ddd;}
table.invoice-meta-table td:first-child{color:#555; width:40%;}
.invoice-issuer-info{font-size:.8rem; line-height:1.6;}
.invoice-seal{position:absolute; top:-6px; right:0; width:90px;}
table.invoice-terms-table{width:100%; border-collapse:collapse; font-size:.85rem; margin-bottom:24px;}
table.invoice-terms-table td{padding:6px 8px; border:1px solid #ddd;}
table.invoice-terms-table td:first-child{background:#F7F5F0; width:120px; color:#555;}
table.invoice-items-table{width:100%; border-collapse:collapse; font-size:.85rem; margin:24px 0;}
table.invoice-items-table th, table.invoice-items-table td{border:1px solid #ccc; padding:8px 10px;}
table.invoice-items-table th{background:#F7F5F0; font-size:.78rem; color:#555;}
table.invoice-items-table td.num{text-align:right;}
.invoice-bank{margin-top:24px; padding-top:16px; border-top:1px solid #ddd;}
.invoice-bank-title{font-weight:700; margin-bottom:8px;}
.invoice-bank-body{font-size:.9rem; line-height:1.7;}
@media print{
  .invoice-sheet{padding:16mm;}
}

/* --- 特商法・プライバシーポリシー・利用規約 --- */
.legal-doc{max-width:840px; padding-bottom:80px; line-height:1.8; font-size:.92rem;}
.legal-doc h3{margin-top:36px; margin-bottom:10px; font-size:1.05rem; color:var(--pine-deep);}
.legal-doc ul{margin:0 0 16px; padding-left:1.4em;}
.legal-doc li{margin-bottom:6px;}
table.legal-table{width:100%; border-collapse:collapse; margin-top:20px;}
table.legal-table th, table.legal-table td{border-bottom:1px solid var(--line); padding:16px 12px; text-align:left; vertical-align:top;}
table.legal-table th{width:180px; color:var(--ink-soft); font-weight:700; font-size:.85rem;}
table.legal-subtable{width:100%; border-collapse:collapse;}
table.legal-subtable td{border:none; padding:2px 0;}
