
/* ========== SERVICE LIST PAGE CSS ========== */
/* ========== SERVICE LIST PAGE CSS — ========== */
/* ========== SERVICE LIST PAGE — 3-column layout ========== */
:root{--sv-pad:clamp(20px,4vw,52px);--sv-gap:8px}

body.has-service .page-hero .cover-catch :is(h1,h2){font-size:clamp(28px,3.2vw,46px);line-height:1.55;letter-spacing:.08em}

/* INTRO */
.sv-intro{padding:clamp(64px,9vw,140px) var(--sv-pad) clamp(36px,6vw,90px);text-align:center}
.sv-intro .inner{max-width:780px;margin:0 auto}
.sv-intro p{font-size:clamp(14.5px,1.05vw,16.5px);line-height:2.4;letter-spacing:.12em;color:var(--ink);margin:0 0 22px}
.sv-intro p:last-child{margin-bottom:0}
.sv-intro .em{font-weight:700;color:var(--accent);letter-spacing:.16em}

/* TAG STRIP */
.sv-tags{max-width:1200px;margin:0 auto;padding:0 var(--sv-pad) clamp(70px,9vw,120px);display:flex;flex-wrap:wrap;gap:8px 10px;justify-content:center}
.sv-tags a{display:inline-flex;align-items:center;padding:10px 18px;border:1px solid var(--ink);border-radius:999px;font-size:12.5px;letter-spacing:.12em;color:var(--ink);text-decoration:none;background:#fff;transition:background .25s ease,color .25s ease,transform .25s ease}
.sv-tags a:hover{background:var(--ink);color:#fff;transform:translateY(-2px)}

/* ============ SERVICE ITEM ============ */
.sv-item{width:100%;max-width:1340px;margin:0 auto;padding:clamp(70px,9vw,140px) clamp(16px,2.5vw,40px) 0;position:relative}
.sv-item.alt{background:transparent}

/* 3-COLUMN GRID: left text / main image / right stacked subs */
.sv-grid{display:grid;grid-template-columns:0.85fr 1.85fr 0.95fr;gap:var(--sv-gap);align-items:stretch;width:100%}
/* Disable .rev (all items use same layout per ) */
.sv-grid.rev{grid-template-columns:0.85fr 1.85fr 0.95fr}
.sv-grid.rev .sv-label-col,.sv-grid.rev .sv-img-col{order:initial}

/* LEFT TEXT COLUMN */
.sv-label-col{display:flex;flex-direction:column;justify-content:flex-start;padding:8px 0 0;gap:18px;min-height:560px}
.sv-no{font-family:"Shippori Mincho","Noto Serif JP",serif;font-weight:400;font-size:clamp(56px,5.5vw,84px);line-height:1;color:var(--ink);letter-spacing:.02em;align-self:flex-start;padding-left:clamp(28px,4vw,60px)}

.sv-title-wrap{display:flex;flex-direction:row-reverse;align-items:flex-start;gap:clamp(18px,2vw,32px);padding-left:clamp(12px,2vw,28px);flex:1}
.vert-title{writing-mode:vertical-rl;-webkit-writing-mode:vertical-rl;text-orientation:upright;font-family:"Shippori Mincho","Noto Serif JP",serif;font-weight:400;font-size:clamp(24px,2.5vw,38px);line-height:1.9;letter-spacing:.34em;color:var(--ink);margin:0;white-space:nowrap}
.vert-title .dot{font-size:.55em;opacity:.5}
.vert-title br{display:none}
.vert-sub{writing-mode:vertical-rl;-webkit-writing-mode:vertical-rl;font-family:"Noto Sans JP",sans-serif;font-weight:400;font-size:clamp(11.5px,.85vw,13.5px);line-height:2.4;letter-spacing:.18em;color:#9c9994;white-space:normal;max-height:clamp(220px,30vw,420px)}

/* CENTER MAIN IMAGE */
.sv-img-main-col{position:relative;width:100%;height:0;padding-bottom:100%;overflow:hidden}
.sv-img-main-col img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block;transition:transform 1.6s cubic-bezier(.16,1,.3,1)}
.sv-img-main-col:hover img{transform:scale(1.04)}

/* RIGHT STACKED SUBS — locked aspect so all items render at item-02 size */
.sv-img-sub-col{display:flex;flex-direction:column;gap:var(--sv-gap);width:100%;align-self:start}
.sv-img-sub-col .img-sub{position:relative;width:100%;aspect-ratio:326 / 313;overflow:hidden;flex:0 0 auto}
.sv-img-sub-col .img-sub img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block;transition:transform 1.6s cubic-bezier(.16,1,.3,1)}
.sv-img-sub-col .img-sub:hover img{transform:scale(1.04)}

/* BODY TEXT */
.sv-body{margin:clamp(40px,5vw,72px) auto 0;max-width:760px;padding:0 clamp(16px,3vw,40px) clamp(60px,8vw,120px);text-align:left}
.sv-body p{font-size:clamp(14px,1vw,15.5px);line-height:2.3;letter-spacing:.1em;color:var(--ink);margin:0 0 22px}
.sv-body p:last-of-type{margin-bottom:30px}
.sv-body .em{font-weight:700;color:var(--accent);letter-spacing:.14em}

/* VIEW MORE */
.sv-more{display:flex;width:-webkit-fit-content;width:fit-content;margin-left:auto;align-items:center;gap:14px;padding:14px 28px 14px 30px;border:1px solid var(--ink);border-radius:999px;font-family:"Jost",sans-serif;font-weight:500;font-size:12.5px;letter-spacing:.28em;color:var(--ink);text-decoration:none;background:#fff;transition:background .3s ease,color .3s ease,padding .3s ease}
.sv-more .arrow{font-size:15px;transition:transform .3s ease}
.sv-more:hover{background:var(--ink);color:#fff;padding-right:36px}
.sv-more:hover .arrow{transform:translateX(4px)}

/* CLOSING */
.sv-closing{background:var(--ink);color:#fff;padding:clamp(80px,10vw,140px) var(--sv-pad);text-align:center;margin-top:0}
.sv-closing .inner{max-width:780px;margin:0 auto}
.sv-closing .eb{font-family:"Jost",sans-serif;font-weight:300;font-size:11px;letter-spacing:.45em;color:rgba(255,255,255,.55);margin-bottom:24px}
.sv-closing h2{font-family:"Shippori Mincho","Noto Serif JP",serif;font-weight:500;font-size:clamp(22px,2.4vw,34px);line-height:1.9;letter-spacing:.18em;margin:0 0 36px}
.sv-closing p{font-size:clamp(13.5px,1vw,15px);line-height:2.3;letter-spacing:.1em;color:rgba(255,255,255,.78);margin:0 0 44px}
.sv-closing .em{color:#fff;font-weight:700}
.sv-closing .btns{display:flex;gap:14px;justify-content:center;flex-wrap:wrap}
.sv-closing .btn{display:inline-flex;align-items:center;justify-content:center;min-width:200px;padding:16px 28px;background:#fff;color:var(--ink);border:1px solid #fff;border-radius:999px;text-decoration:none;font-size:13px;letter-spacing:.24em;font-family:"Noto Sans JP",sans-serif;font-weight:600;transition:background .3s ease,color .3s ease,transform .3s ease}
.sv-closing .btn:hover{transform:translateY(-2px)}
.sv-closing .btn.outline{background:transparent;color:#fff}
.sv-closing .btn.outline:hover{background:#fff;color:var(--ink)}

/* REVEAL (visible by default) */
.sv-intro.reveal,.sv-tags.reveal,.sv-item .reveal,.sv-closing.reveal,.sv-img-col.reveal-img{opacity:1;transform:none;clip-path:none}
@media (prefers-reduced-motion: no-preference){
  .sv-intro.reveal,.sv-tags.reveal,.sv-item .reveal,.sv-closing.reveal{opacity:0;transform:translateY(20px);transition:opacity .9s ease,transform 1s cubic-bezier(.16,1,.3,1);animation:svIn 0s ease 1.4s forwards}
  .sv-intro.reveal.is-inview,.sv-tags.reveal.is-inview,.sv-item .reveal.is-inview,.sv-closing.reveal.is-inview{opacity:1;transform:none}
}
@keyframes svIn{to{opacity:1;transform:none}}

/* TABLET */
@media (max-width:1023px){
  .sv-item{padding-top:64px}
  .sv-grid,.sv-grid.rev{grid-template-columns:1fr 1.4fr;gap:6px}
  .sv-label-col{grid-column:1 / -1;flex-direction:row;align-items:flex-end;gap:24px;min-height:auto;padding:0 20px 28px}
  .sv-label-col .sv-no{padding-left:0}
  .sv-title-wrap{padding-left:0;min-height:200px}
  .sv-img-main-col{padding-bottom:78%}
  .sv-img-sub-col{grid-template-rows:1fr 1fr}
}
/* MOBILE */
@media (max-width:767px){
  .sv-item{padding-top:54px}
  .sv-grid,.sv-grid.rev{grid-template-columns:1fr;gap:6px}
  .sv-label-col{flex-direction:column;align-items:flex-start;padding:0 20px 20px;gap:14px}
  .sv-no{font-size:clamp(48px,12vw,68px)}
  .vert-title{font-size:22px;letter-spacing:.24em}
  .vert-sub{font-size:11.5px;letter-spacing:.16em;max-height:none;writing-mode:horizontal-tb;-webkit-writing-mode:horizontal-tb;line-height:2}
  .sv-title-wrap{min-height:160px;gap:14px}
  .sv-img-main-col{padding-bottom:75%}
  .sv-img-sub-col{grid-template-columns:1fr 1fr;grid-template-rows:none}
  .sv-intro{padding:56px 18px 24px}
  .sv-intro p{font-size:14px;line-height:2.2}
  .sv-intro p br{display:none}
  .sv-tags{padding:0 18px 46px;gap:6px 8px}
  .sv-tags a{padding:8px 14px;font-size:11.5px;letter-spacing:.1em}
  .sv-body{padding:0 20px 56px;margin-top:30px}
  .sv-body p{font-size:13.5px;line-height:2.1}
  .sv-more{padding:12px 22px;font-size:11.5px}
  .sv-closing{padding:64px 18px}
  .sv-closing h2{font-size:20px;letter-spacing:.14em}
  .sv-closing p{font-size:13px;line-height:2.1}
  .sv-closing p br{display:none}
  .sv-closing .btn{min-width:0;width:100%;padding:14px 18px}
}


/* sv-item-vertical-restack v1 */
.sv-item .sv-grid{
  display:flex !important;
  flex-direction:column !important;
  align-items:center !important;
  gap:32px !important;
  max-width:780px !important;
  margin:0 auto !important;
}
.sv-item .sv-img-sub-col{display:none !important}
.sv-item .sv-label-col{display:contents !important}
.sv-item .sv-no{
  font-family:var(--label-en) !important;
  font-size:clamp(72px,10vw,132px) !important;
  font-weight:200 !important;
  letter-spacing:.02em !important;
  line-height:1 !important;
  color:#2D3744 !important;
  writing-mode:horizontal-tb !important;
  transform:none !important;
  order:1 !important;
  text-align:center !important;
  width:auto !important;
  margin:0 !important;
  padding:0 !important;
}
.sv-item .sv-img-main-col{
  order:2 !important;
  width:100% !important;
  margin:0 !important;
  padding:0 !important;
  aspect-ratio:auto !important;
  height:auto !important;
}
.sv-item .sv-img-main-col img{
  width:100% !important;
  height:auto !important;
  aspect-ratio:16/10 !important;
  object-fit:cover !important;
  display:block !important;
  border-radius:0 !important;
}
.sv-item .sv-title-wrap{
  order:3 !important;
  text-align:center !important;
  width:100% !important;
  writing-mode:horizontal-tb !important;
  transform:none !important;
  margin:0 !important;
  padding:0 !important;
}
.sv-item .sv-title-wrap .vert-title{
  writing-mode:horizontal-tb !important;
  transform:none !important;
  font-size:clamp(22px,2.6vw,30px) !important;
  letter-spacing:.18em !important;
  color:#2D3744 !important;
  margin:0 0 12px !important;
  padding:0 !important;
  line-height:1.4 !important;
  height:auto !important;
  width:auto !important;
}
.sv-item .sv-title-wrap .vert-sub{
  writing-mode:horizontal-tb !important;
  transform:none !important;
  font-size:14px !important;
  color:#4A5563 !important;
  line-height:1.9 !important;
  letter-spacing:.05em !important;
  margin:0 !important;
  padding:0 !important;
  height:auto !important;
  width:auto !important;
}
.sv-item .sv-body{
  max-width:780px !important;
  margin:24px auto 0 !important;
  padding-top:0 !important;
}
.sv-item .sv-body .body-col{text-align:left !important}
.sv-item .sv-img-main-col,.sv-item .reveal-img{overflow:visible !important;height:auto !important;padding-bottom:0 !important;position:relative !important}
.sv-item .sv-img-main-col img{position:static !important;top:auto !important;left:auto !important;transform:none !important;clip-path:none !important}
.sv-item .sv-label-col.reveal{opacity:1 !important;transform:none !important}

/* sv-item-vertical-restack v1.1 patched */

.sv-item .sv-no{align-self:center !important}
.sv-item .sv-title-wrap{display:block !important;align-self:center !important}
.sv-item .sv-title-wrap .vert-title,.sv-item .sv-title-wrap .vert-sub{display:block !important;width:auto !important}
.sv-item .sv-img-main-col{align-self:center !important}
/* sv-item-vertical-restack v1.2 alignment */


/* sv-3col-layout */
.sv-3col{display:grid !important;grid-template-columns:repeat(3,1fr) !important;gap:56px 32px !important;max-width:1240px !important;margin:80px auto !important;padding:0 32px !important}
@media (max-width:1023px){.sv-3col{grid-template-columns:repeat(2,1fr) !important;gap:48px 24px !important}}
@media (max-width:767px){.sv-3col{grid-template-columns:1fr !important;gap:56px !important}}
.sv-3col .sv-item{margin:0 !important;padding:0 !important;min-height:0 !important;background:transparent !important}
.sv-3col .sv-item .sv-grid{max-width:none !important;gap:14px !important;margin:0 !important}
.sv-3col .sv-item .sv-no{font-size:56px !important;line-height:1 !important;margin:0 !important}
.sv-3col .sv-item .sv-img-main-col{margin:0 !important}
.sv-3col .sv-item .sv-img-main-col img{aspect-ratio:4/3 !important}
.sv-3col .sv-item .sv-title-wrap{margin:4px 0 0 !important}
.sv-3col .sv-item .vert-title{font-size:18px !important;letter-spacing:.14em !important;margin:0 0 6px !important}
.sv-3col .sv-item .vert-sub{font-size:11.5px !important;line-height:1.7 !important;letter-spacing:.04em !important}
.sv-3col .sv-item .sv-body{max-width:none !important;margin:12px auto 0 !important;padding:0 !important}
.sv-3col .sv-item .sv-body p{font-size:12.5px !important;line-height:1.9 !important;margin-bottom:10px !important}
.sv-3col .sv-item .sv-more,.sv-3col .sv-item .btn{padding:10px 20px !important;font-size:11px !important;margin-top:12px !important}

/* sv-3col-refine v1 */
.sv-3col .sv-item .vert-sub{display:none !important}
.sv-3col .sv-item .sv-body{margin-top:14px !important}
.sv-3col .sv-item .sv-body p:first-of-type{
  display:-webkit-box !important;
  -webkit-line-clamp:3 !important;
  -webkit-box-orient:vertical !important;
  overflow:hidden !important;
  font-size:12.5px !important;
  line-height:1.85 !important;
  margin:0 !important;
}
.sv-3col .sv-item .sv-body p:not(:first-of-type){display:none !important}
.sv-3col .sv-item .sv-body .em,
.sv-3col .sv-item .sv-body strong,
.sv-3col .sv-item .sv-body b{display:none !important}
.sv-3col .sv-item .sv-more,
.sv-3col .sv-item .btn,
.sv-3col .sv-item a.btn{display:inline-flex !important;margin-top:20px !important}
/* Outline number design — big editorial stroke-only */
.sv-3col .sv-item .sv-no{
  font-size:clamp(96px,10vw,140px) !important;
  font-weight:700 !important;
  letter-spacing:-.02em !important;
  -webkit-text-stroke:1.5px #2D3744 !important;
  color:transparent !important;
  line-height:.9 !important;
  padding:0 !important;
  margin:0 !important;
  font-family:'Playfair Display', 'Times New Roman', serif !important;
  font-style:italic !important;
}

/* sv-3col-magazine v1 */
.sv-3col{
  background:#1B2432 !important;
  padding:120px max(40px,calc((100vw - 1240px) / 2)) !important;
  max-width:none !important;
  margin:0 !important;
  gap:100px 40px !important;
  grid-template-columns:repeat(3,1fr) !important;
  align-items:start !important;
}
.sv-3col .sv-item:nth-child(1){margin-top:0 !important}
.sv-3col .sv-item:nth-child(2){margin-top:80px !important}
.sv-3col .sv-item:nth-child(3){margin-top:20px !important}
.sv-3col .sv-item:nth-child(4){margin-top:60px !important}
.sv-3col .sv-item:nth-child(5){margin-top:0 !important}
.sv-3col .sv-item:nth-child(6){margin-top:100px !important}
.sv-3col .sv-item:nth-child(7){margin-top:40px !important}
.sv-3col .sv-item{position:relative !important}
.sv-3col .sv-item .sv-grid{
  position:relative !important;
  display:block !important;
  padding:0 !important;
  margin:0 !important;
  max-width:none !important;
}
.sv-3col .sv-item .sv-no{
  position:absolute !important;
  top:-40px !important;
  right:0 !important;
  left:auto !important;
  z-index:5 !important;
  font-size:clamp(80px,9.3vw,133px) !important;
  font-weight:700 !important;
  font-style:normal !important;
  font-family:'Jost',sans-serif !important;
  text-align:right !important;
  color:#FFFFFF !important;
  -webkit-text-stroke:0 !important;
  line-height:.85 !important;
  letter-spacing:-.04em !important;
  text-shadow:0 6px 24px rgba(0,0,0,.35) !important;
  pointer-events:none !important;
  align-self:auto !important;
  padding:0 !important;
  margin:0 !important;
  transform:none !important;
  width:auto !important;
}
.sv-3col .sv-item .sv-img-main-col{
  position:relative !important;
  z-index:1 !important;
  margin:0 !important;
  align-self:auto !important;
}
.sv-3col .sv-item .sv-img-main-col img{
  aspect-ratio:3/4 !important;
  width:100% !important;
  object-fit:cover !important;
  display:block !important;
}
.sv-3col .sv-item .sv-title-wrap{
  align-self:auto !important;
  text-align:left !important;
  margin:22px 0 0 !important;
  padding:0 4px !important;
}
.sv-3col .sv-item .vert-title{
  color:#fff !important;
  text-align:left !important;
  font-size:20px !important;
  font-weight:500 !important;
  letter-spacing:.14em !important;
  margin:0 !important;
}
.sv-3col .sv-item .sv-body{
  padding:0 4px !important;
  margin:14px 0 0 !important;
  max-width:none !important;
}
.sv-3col .sv-item .sv-body p:first-of-type{
  color:#B9C3CE !important;
  font-size:12.5px !important;
  line-height:1.9 !important;
  text-align:left !important;
  -webkit-line-clamp:3 !important;
}
.sv-3col .sv-item .sv-more,
.sv-3col .sv-item .btn,
.sv-3col .sv-item a.btn{
  color:#fff !important;
  border:1px solid rgba(255,255,255,.5) !important;
  background:transparent !important;
  margin:22px 0 0 4px !important;
  padding:11px 22px !important;
  font-size:11px !important;
  letter-spacing:.18em !important;
}
.sv-3col .sv-item .sv-more:hover,
.sv-3col .sv-item .btn:hover{
  background:#E8CE84 !important;
  border-color:#E8CE84 !important;
  color:#1B2432 !important;
}
@media (max-width:1023px){
  .sv-3col{padding:80px 24px !important;gap:60px 24px !important}
  .sv-3col .sv-item{margin-top:0 !important}
  .sv-3col .sv-item:nth-child(even){margin-top:40px !important}
  .sv-3col .sv-item .sv-no{font-size:clamp(80px,15vw,140px) !important;top:-24px !important}
}
@media (max-width:767px){
  .sv-3col{padding:60px 20px !important;gap:64px !important}
  .sv-3col .sv-item{margin-top:0 !important}
  .sv-3col .sv-item:nth-child(even){margin-top:0 !important}
  .sv-3col .sv-item .sv-no{font-size:96px !important;top:-16px !important;left:-6px !important}
}


/* 2026.09.18 追記 */
.sv-item .sv-body .body-col {
	color: #fff;
}