/*
Theme Name: Do-Date New
Theme URI: https://new.do-date.com
Author: 株式会社Do-Date
Description: 株式会社Do-Date 新サイト用テーマ（制作中）
Version: 1.0
Text Domain: do-date-new
*/

:root{
  --ground:#FFFFFF;
  --ground-deep:#F3F6F7;
  --surface:#FFFFFF;
  --ink:#262A2D;
  --ink-soft:#6E7679;
  --accent:#4FA8C9;
  --accent-strong:#357E9A;
  --gold:#8A9499;
  --gold-soft:#D7DCDE;
  --rose:#DCEEF3;
  --line:#E3E7E9;
  --shadow: 0 24px 60px -30px rgba(38,42,45,0.18);
  --footer-bg:#8892A0;
  --footer-text:#F3F5F6;
  --footer-text-soft:#C7CFD3;
}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    --ground:#14181A;
    --ground-deep:#0F1214;
    --surface:#1D2224;
    --ink:#ECEEEF;
    --ink-soft:#AAB2B5;
    --accent:#7CC6DE;
    --accent-strong:#9BD6EA;
    --gold:#9AA3A7;
    --gold-soft:#4A5256;
    --rose:#33474D;
    --line:#2C3336;
    --shadow: 0 24px 60px -30px rgba(0,0,0,0.6);
  }
}
:root[data-theme="dark"]{
  --ground:#14181A;
  --ground-deep:#0F1214;
  --surface:#1D2224;
  --ink:#ECEEEF;
  --ink-soft:#AAB2B5;
  --accent:#7CC6DE;
  --accent-strong:#9BD6EA;
  --gold:#9AA3A7;
  --gold-soft:#4A5256;
  --rose:#33474D;
  --line:#2C3336;
  --shadow: 0 24px 60px -30px rgba(0,0,0,0.6);
}

*{box-sizing:border-box;}
body{
  margin:0;
  background:var(--ground);
  color:var(--ink);
  font-family:"Zen Kaku Gothic New","Hiragino Sans",sans-serif;
  line-height:1.8;
  overflow-x:hidden;
}
h1,h2,h3{
  font-family:"Zen Old Mincho",serif;
  font-weight:700;
  margin:0;
  color:var(--ink);
}
p{margin:0;}
a{color:inherit;text-decoration:none;}
img{max-width:100%;}
.eyebrow{
  font-family:"Cormorant Garamond",serif;
  font-style:italic;
  font-size:0.95rem;
  letter-spacing:0.14em;
  color:var(--accent);
  display:inline-flex;
  align-items:center;
  gap:0.6em;
}
.eyebrow::before{
  content:"";
  width:28px;height:1px;
  background:var(--gold);
  display:inline-block;
}
.wrap{
  max-width:1180px;
  margin:0 auto;
  padding:0 clamp(20px,4vw,56px);
}

/* ---------- Header ---------- */
header{
  position:sticky;top:0;z-index:50;
  background:transparent;
  transition:background .3s ease;
}
/* ヒーロー画像が無いページ、またはヒーローを過ぎてスクロールした後は、
   下の文字と重ならないよう薄い白背景を敷く */
header:not(.has-hero),
header.has-hero.scrolled{
  background:color-mix(in srgb, var(--ground) 88%, transparent);
  backdrop-filter:blur(10px);
  border-bottom:1px solid var(--line);
}
.nav{
  display:flex;align-items:center;justify-content:space-between;
  gap:10px;
  padding:18px clamp(14px,3vw,40px);
}
.logo{
  display:flex;align-items:center;gap:14px;
  flex-shrink:0;
}
.logo img.mark{
  height:clamp(54px,4.7vw,76px);width:auto;display:block;
  filter:drop-shadow(0 0 5px rgba(255,255,255,.75)) drop-shadow(0 0 14px rgba(255,255,255,.4));
}
.logo img.type{
  height:clamp(32px,2.7vw,44px);width:auto;display:block;
  filter:drop-shadow(0 0 5px rgba(255,255,255,.75)) drop-shadow(0 0 14px rgba(255,255,255,.4));
}
footer .logo img.mark{height:clamp(54px,4.7vw,76px);filter:none;}
footer .logo img.type{height:clamp(32px,2.7vw,44px);filter:none;}
.nav-links{
  display:flex;gap:clamp(6px,1.1vw,16px);
  font-family:"Zen Old Mincho",serif;
  font-size:clamp(0.85rem,1.15vw,1rem);font-weight:600;letter-spacing:0.02em;
  white-space:nowrap;
  flex-shrink:1;
  min-width:0;
}
.nav-links a{
  position:relative;padding:4px 0;color:var(--ink-soft);
  transition:color .25s;
}
.nav-links a:hover, .nav-links a:focus-visible{color:var(--accent);}
.nav-links a:focus-visible{outline:2px solid var(--accent);outline-offset:4px;}
/* トップページのヒーロー上に重なっている間は白文字にして視認性を確保 */
header.has-hero:not(.scrolled) .nav-links a{
  color:#fff;text-shadow:0 1px 8px rgba(0,0,0,.5);
}
header.has-hero:not(.scrolled) .nav-links a:hover{color:var(--accent-strong);}
.burger{display:none;}

/* ---------- Hero ---------- */
.hero{
  position:relative;
  min-height:min(88vh,760px);
  display:flex;
  align-items:center;
  overflow:hidden;
  color:#fff;
  margin-top:-86px;
  padding:226px 0 80px;
}
.hero-bg{
  position:absolute;inset:0;z-index:0;
}
.hero-bg img{width:100%;height:100%;object-fit:cover;object-position:50% 30%;display:block;}
.hero-slide{
  position:absolute;inset:0;
  opacity:0;
  transition:opacity 1.6s ease;
}
.hero-slide.is-active{opacity:1;}
.hero-slide[data-tone="bright"]{filter:brightness(1.24) saturate(1.05);}
.hero-slide[data-tone="dark"]{filter:brightness(1.22) saturate(1.05);}

.hero-bg::after{transition:background 1.6s ease;}
.hero-bg.is-bright::after{
  background:
    linear-gradient(100deg, rgba(8,16,24,.48) 0%, rgba(8,16,24,.24) 30%, rgba(8,16,24,.04) 52%, rgba(8,16,24,0) 70%),
    linear-gradient(180deg, rgba(8,16,24,.26) 0%, rgba(8,16,24,0) 22%, rgba(8,16,24,0) 68%, rgba(8,16,24,.26) 100%);
}
.hero-bg::after{
  content:"";position:absolute;inset:0;
  background:
    linear-gradient(100deg, rgba(24,16,12,.5) 0%, rgba(24,16,12,.34) 32%, rgba(24,16,12,.16) 58%, rgba(24,16,12,.08) 100%),
    linear-gradient(180deg, rgba(24,16,12,.22) 0%, rgba(24,16,12,.04) 24%, rgba(24,16,12,.05) 66%, rgba(24,16,12,.28) 100%);
}
.hero-inner{
  position:relative;z-index:2;
  max-width:640px;
  margin:0;
}
.hero h1{
  font-size:clamp(2.5rem,5.4vw,4.4rem);
  line-height:1.28;
  margin-top:18px;
  color:#fff;
}
.hero h1 em{
  font-style:normal;color:var(--accent-strong);
}
.hero-lead{
  margin-top:26px;max-width:46ch;
  color:rgba(255,255,255,.85);font-size:1.02rem;
}
.hero-ctas{
  margin-top:36px;display:flex;gap:16px;flex-wrap:wrap;
}
.btn{
  display:inline-flex;align-items:center;gap:10px;
  padding:14px 30px;font-size:0.86rem;letter-spacing:0.05em;
  border-radius:2px;transition:transform .25s, box-shadow .25s, background .25s, color .25s;
}
.btn-solid{background:var(--accent);color:#fff;}
.btn-solid:hover{background:var(--accent-strong);transform:translateY(-2px);box-shadow:var(--shadow);}
.hero .btn-line{border:1px solid rgba(255,255,255,.7);color:#fff;}
.hero .btn-line:hover{border-color:#fff;background:#fff;color:var(--ink);transform:translateY(-2px);}

/* ---------- Mission strip ---------- */
.mission{
  border-top:1px solid var(--line);border-bottom:1px solid var(--line);
  background:var(--ground-deep);
}
.mission-inner{
  padding-top:clamp(40px,6vw,64px);
  padding-bottom:clamp(40px,6vw,64px);
}
.mission-inner .section-head{margin-bottom:0;}
.mission .section-head h2{
  font-size:clamp(1.05rem,1.7vw,1.4rem);line-height:1.6;margin-top:14px;
}
.mission p{color:var(--ink-soft);max-width:60ch;}

/* ---------- Services ---------- */
.section{padding:clamp(72px,9vw,120px) 0;}
.services-section{position:relative;overflow:hidden;}
.services-section > .wrap{position:relative;z-index:1;}
.services-bg{
  position:absolute;left:0;right:0;bottom:0;z-index:0;
  width:100%;height:88%;
  pointer-events:none;
}
.services-bg img{
  width:100%;height:100%;object-fit:cover;object-position:right center;display:block;
  -webkit-mask-image:linear-gradient(to top left, rgba(0,0,0,.85) 0%, rgba(0,0,0,.4) 30%, rgba(0,0,0,0) 55%);
  mask-image:linear-gradient(to top left, rgba(0,0,0,.85) 0%, rgba(0,0,0,.4) 30%, rgba(0,0,0,0) 55%);
}
@media (max-width:860px){
  .services-bg{display:none;}
}
.section-head{max-width:640px;margin-bottom:clamp(40px,5vw,64px);}
.section-head h2{font-size:clamp(2rem,3.6vw,2.8rem);margin-top:14px;}
.section-head p{color:var(--ink-soft);margin-top:16px;}
#news .section-head h2{font-size:clamp(1.6rem,2.8vw,2.15rem);}

.service-grid{
  display:grid;
  grid-template-columns:repeat(6,1fr);
  gap:20px;
}
.service-card{
  position:relative;
  overflow:hidden;
  background:var(--surface);
  border:1px solid var(--line);
  padding:30px 26px;
  grid-column:span 3;
  min-height:250px;
  transition:transform .3s, box-shadow .3s, border-color .3s;
  opacity:0;transform:translateY(24px);
}
.service-card.in{opacity:1;transform:translateY(0);}
.service-card:hover{transform:translateY(-6px);box-shadow:var(--shadow);border-color:var(--gold);}
.service-card-bg{
  position:absolute;inset:0;z-index:0;
  background-image:var(--card-bg);
  background-size:cover;background-position:center;
  opacity:.4;
  transition:opacity .35s ease;
  -webkit-mask-image:linear-gradient(to top left, rgba(0,0,0,.9) 0%, rgba(0,0,0,.35) 45%, rgba(0,0,0,0) 75%);
  mask-image:linear-gradient(to top left, rgba(0,0,0,.9) 0%, rgba(0,0,0,.35) 45%, rgba(0,0,0,0) 75%);
}
.service-card:hover .service-card-bg{opacity:1;}
.service-card .num,
.service-card h3,
.service-card p{position:relative;z-index:1;}
.service-card .badge-new{z-index:1;}
.service-card .num{
  font-family:"Cormorant Garamond",serif;font-style:italic;
  font-size:2rem;line-height:1;color:var(--gold);
}
.service-card h3{
  font-size:1.28rem;margin-top:14px;font-weight:600;
}
.service-card p{
  margin-top:10px;color:var(--ink-soft);font-size:0.9rem;
}
.service-card.existing{grid-column:span 3;}
.service-card.upcoming{
  grid-column:span 3;
  background:var(--surface);
  border:1px solid var(--accent);
}
.service-card.upcoming .num{color:var(--accent);}
.service-card.upcoming h3{color:var(--ink);}
.service-card.upcoming p{color:var(--ink-soft);}
.badge-new{
  position:absolute;top:22px;right:22px;
  font-family:"Cormorant Garamond",serif;font-style:italic;font-weight:600;
  font-size:0.78rem;letter-spacing:0.08em;
  padding:4px 12px;border:none;background:#F5C518;color:#3A2A00;
  border-radius:999px;
}

@media (max-width:860px){
  .service-card{grid-column:span 6 !important;}
  .hero-inner{grid-template-columns:1fr;}
  .nav-links{display:none;}
}

/* ---------- Philosophy ---------- */
.philosophy{
  position:relative;
  background:var(--ground-deep);color:var(--ink);
  border-top:1px solid var(--line);border-bottom:1px solid var(--line);
  overflow:hidden;
}
.philosophy::before{
  content:"";position:absolute;inset:0;z-index:0;
  background:url('assets/images/ceo-bg.jpg') center 30%/cover no-repeat;
  opacity:.14;
  filter:grayscale(.3);
}
@media (max-width:640px){
  .philosophy::before{opacity:.05;}
}
.philosophy::after{
  content:"";position:absolute;inset:0;z-index:0;
  background:linear-gradient(180deg, var(--ground-deep) 0%, transparent 20%, transparent 75%, var(--ground-deep) 100%);
}
.philosophy .wrap{position:relative;z-index:1;padding:clamp(70px,9vw,110px) clamp(20px,4vw,56px);}
.philosophy h2{
  color:var(--ink);font-size:clamp(1.8rem,3.4vw,2.6rem);margin-top:16px;max-width:20ch;
}
.phil-grid{
  margin-top:48px;display:grid;grid-template-columns:repeat(3,1fr);gap:32px;
}
.phil-item{background:var(--surface);border:1px solid var(--line);padding:26px;}
.phil-item .num{font-family:"Cormorant Garamond",serif;font-style:italic;color:var(--gold);font-size:1.4rem;}
.phil-item h3{color:var(--ink);font-size:1.1rem;margin-top:10px;font-weight:600;}
.phil-item p{color:var(--ink-soft);margin-top:8px;font-size:0.88rem;}
@media (max-width:860px){.phil-grid{grid-template-columns:1fr;}}

/* ---------- CEO ---------- */
.ceo-grid{
  display:grid;grid-template-columns:0.8fr 1.2fr;gap:60px;align-items:center;
}
.ceo-photo{
  aspect-ratio:3/4;overflow:hidden;border:1px solid var(--line);
  background:var(--surface);
}
.ceo-photo img{width:100%;height:100%;object-fit:cover;display:block;}
.ceo-text h2{font-size:clamp(1.5rem,2.6vw,2.05rem);margin-top:16px;max-width:16ch;}
.ceo-lead{margin-top:22px;color:var(--ink-soft);max-width:52ch;font-size:1rem;}
.ceo-sign{margin-top:32px;padding-top:24px;border-top:1px solid var(--line);}
.ceo-name{font-family:"Zen Old Mincho",serif;font-size:1.1rem;color:var(--ink);}
.ceo-name span{display:block;font-family:"Cormorant Garamond",serif;font-style:italic;color:var(--ink-soft);font-size:0.85rem;margin-top:4px;}
@media (max-width:860px){.ceo-grid{grid-template-columns:1fr;}.ceo-photo{max-width:320px;}}

/* ---------- News & Blog ---------- */
.nb-grid{
  display:grid;grid-template-columns:0.9fr 1.1fr;gap:56px;
}
.nb-grid-1{grid-template-columns:1fr;max-width:760px;}
.nb-grid-2x2{grid-template-columns:1fr 1fr;}
.nb-col h3{
  font-family:"Cormorant Garamond",serif;font-style:italic;font-weight:500;
  font-size:1.6rem;color:var(--ink);
  display:flex;align-items:baseline;gap:10px;
}
.nb-col h3::after{content:"";flex:1;height:1px;background:var(--line);}
.news-list{list-style:none;margin:22px 0 0;padding:0;}
.news-list li{border-bottom:1px solid var(--line);}
.news-list a{
  display:flex;gap:18px;padding:16px 0;align-items:baseline;
  transition:opacity .2s;
}
.news-list a:hover{opacity:0.6;}
.news-list time{
  font-family:"Cormorant Garamond",serif;font-style:italic;color:var(--ink-soft);
  font-size:0.85rem;flex:none;width:5.5em;
}
.news-list span{font-size:0.88rem;color:var(--ink);}
.blog-list{margin-top:22px;display:flex;flex-direction:column;gap:20px;}
.blog-item{
  display:flex;gap:18px;padding-bottom:20px;border-bottom:1px solid var(--line);
}
.blog-item:last-child{border-bottom:none;padding-bottom:0;}
.blog-thumb{
  width:96px;height:96px;flex:none;
  background:linear-gradient(155deg, var(--rose), var(--gold-soft));
  display:grid;place-items:center;
  font-family:"Cormorant Garamond",serif;font-style:italic;color:var(--surface);
  font-size:0.78rem;text-align:center;
  overflow:hidden;
}
.blog-thumb img{width:100%;height:100%;object-fit:cover;}
.blog-item time{
  font-family:"Cormorant Garamond",serif;font-style:italic;color:var(--ink-soft);
  font-size:0.8rem;
}
.blog-item h4{
  font-family:"Zen Kaku Gothic New",sans-serif;font-weight:700;
  font-size:0.96rem;margin-top:6px;color:var(--ink);line-height:1.6;
}
.nb-more{
  margin-top:26px;display:inline-flex;align-items:center;gap:8px;
  font-size:0.8rem;letter-spacing:0.04em;color:var(--accent);
  border-bottom:1px solid var(--accent);padding-bottom:2px;
}
@media (max-width:860px){.nb-grid,.nb-grid-2x2{grid-template-columns:1fr;gap:48px;}}

/* ---------- Footer ---------- */
footer{background:var(--footer-bg);color:var(--footer-text);}
.footer-top{
  padding:48px 0 36px;
  display:flex;justify-content:space-between;align-items:center;gap:32px;flex-wrap:wrap;
}
.footer-brand .logo{display:flex;align-items:center;gap:14px;}
footer .logo img.mark,
footer .logo img.type{
  filter:brightness(0) invert(1);
}
.footer-meta{font-size:0.98rem;color:var(--footer-text-soft);margin-top:24px;}
.footer-line{display:flex;align-items:center;gap:16px;}
.footer-line-qr{
  width:64px;height:64px;border-radius:6px;
  background:#fff;padding:4px;display:block;
}
.footer-line-text{display:flex;flex-direction:column;gap:4px;}
.footer-line-label{font-size:0.92rem;font-weight:600;color:#fff;}
.footer-line-sub{
  font-family:"Cormorant Garamond",serif;font-style:italic;
  font-size:0.8rem;letter-spacing:0.06em;color:var(--footer-text-soft);
}
.footer-nav-wrap{padding:8px 0 32px;}
.footer-links{
  display:flex;gap:clamp(12px,1.8vw,20px);flex-wrap:nowrap;
  font-family:"Zen Old Mincho",serif;
  font-size:clamp(0.82rem,1.1vw,1rem);font-weight:600;letter-spacing:0.01em;
  color:var(--footer-text-soft);
  white-space:nowrap;
}
.footer-links a:hover{color:#fff;}
.footer-divider{border-top:1px solid rgba(255,255,255,.22);}
.footer-social{display:flex;gap:12px;}
.social-icon{
  width:40px;height:40px;border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  background:rgba(255,255,255,.14);
  transition:background .25s, transform .25s;
}
.social-icon i{font-size:16px;color:#fff;}
.social-icon:hover{background:rgba(255,255,255,.3);transform:translateY(-2px);}
.footer-bottom{
  padding:22px 0;
  font-size:0.76rem;color:var(--footer-text-soft);
  display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;
}
.footer-copyright{margin:0;}

.reveal{opacity:0;transform:translateY(22px);transition:opacity .7s ease, transform .7s ease;}
.reveal.in{opacity:1;transform:translateY(0);}

@media (prefers-reduced-motion: reduce){
  *{transition:none !important;animation:none !important;}
}

/* ---------- Company page ---------- */
.company-table{
  margin-top:8px;border-top:1px solid var(--line);max-width:800px;
}
.company-table dl{
  display:grid;grid-template-columns:200px 1fr;
  padding:24px 0;border-bottom:1px solid var(--line);margin:0;gap:8px 24px;
}
.company-table dt{
  font-family:"Cormorant Garamond",serif;font-style:italic;
  color:var(--ink-soft);font-size:0.95rem;
}
.company-table dd{margin:0;color:var(--ink);line-height:1.9;}
@media (max-width:640px){
  .company-table dl{grid-template-columns:1fr;gap:6px;}
}

/* ---------- 下層ページ共通：タイトルバナー ---------- */
.page-banner{
  position:relative;
  background:var(--ground-deep);
  border-bottom:1px solid var(--line);
  padding:clamp(40px,5vw,64px) 0 clamp(32px,4vw,48px);
  overflow:hidden;
}
.page-banner::before{
  content:"";position:absolute;inset:0;z-index:0;
  background:url('assets/images/ceo-bg.jpg') center 30%/cover no-repeat;
  opacity:.14;
  filter:grayscale(.3);
}
@media (max-width:640px){
  .page-banner::before{opacity:.05;}
}
.page-banner::after{
  content:"";position:absolute;inset:0;z-index:0;
  background:linear-gradient(180deg, var(--ground-deep) 0%, transparent 30%, transparent 70%, var(--ground-deep) 100%);
}
.page-banner .wrap{position:relative;z-index:1;}
.back-button{
  display:inline-flex;align-items:center;gap:4px;
  font-size:0.8rem;color:var(--ink-soft);margin-bottom:14px;
  transition:color .2s;
}
.back-button:hover{color:var(--accent);}
.breadcrumb{
  display:flex;align-items:center;gap:8px;
  font-size:0.78rem;color:var(--ink-soft);margin-bottom:22px;
}
.breadcrumb a{color:var(--ink-soft);transition:color .2s;}
.breadcrumb a:hover{color:var(--accent);}
.breadcrumb-sep{color:var(--gold-soft);}
.breadcrumb-current{color:var(--ink);}
.page-banner h1{font-size:clamp(2rem,3.6vw,2.8rem);margin-top:14px;color:var(--ink);}
.product-title-kana{font-size:0.6em;margin-left:0.4em;color:var(--ink-soft);font-weight:500;}
.product-title-suffix{display:block;text-align:right;font-size:0.3em;margin-top:14px;color:var(--ink-soft);font-weight:400;letter-spacing:0.02em;}

.related-links{
  margin-top:64px;max-width:800px;
  display:grid;grid-template-columns:repeat(3,1fr);gap:16px;
}
.related-link-card{
  display:flex;justify-content:center;align-items:center;
  border:none;padding:26px 22px;border-radius:10px;
  background:linear-gradient(145deg, #9AA3B0 0%, var(--footer-bg) 55%, #767F8C 100%);
  box-shadow:
    0 1px 0 rgba(255,255,255,0.35) inset,
    0 -8px 14px rgba(0,0,0,0.15) inset,
    0 12px 26px -16px rgba(20,24,26,0.4);
  transition:box-shadow .3s ease, transform .3s ease;
}
.related-link-card:hover{
  transform:translateY(-3px);
  box-shadow:
    0 1px 0 rgba(255,255,255,0.45) inset,
    0 -8px 14px rgba(0,0,0,0.15) inset,
    0 18px 34px -16px rgba(20,24,26,0.45),
    0 0 26px 1px rgba(79,168,201,0.5);
}
.related-link-card .label{font-size:0.92rem;font-weight:700;color:var(--footer-text);text-align:center;letter-spacing:0.02em;}
@media (max-width:640px){
  .related-links{grid-template-columns:1fr;}
}

/* ---------- 下層ページ共通：コンテンツブロック ---------- */
.content-lead{font-size:1rem;color:var(--ink-soft);max-width:70ch;line-height:1.9;}
.content-lead.brand-intro{max-width:980px;line-height:1.8;}
@media (min-width:861px){
  .oneline{white-space:nowrap;}
  .content-lead.oneline{max-width:none;}
}
.content-block{margin-top:72px;max-width:980px;}
.content-block:first-child{margin-top:0;}
.content-block h2{font-size:clamp(1.4rem,2.4vw,1.8rem);}
.content-block h3{font-size:1.1rem;font-weight:600;margin:28px 0 12px;color:var(--ink);}
.content-block > p{color:var(--ink-soft);margin-top:16px;line-height:1.9;}

.check-list{list-style:none;margin:24px 0 0;padding:0;display:grid;grid-template-columns:repeat(2,1fr);gap:10px 24px;max-width:800px;}
.check-list li{position:relative;padding-left:28px;color:var(--ink-soft);font-size:0.92rem;line-height:1.7;}
.check-list li::before{content:"✓";position:absolute;left:0;top:0;color:var(--accent);font-weight:700;}
@media (max-width:640px){.check-list{grid-template-columns:1fr;}}

.device-showcase{
  display:grid;grid-template-columns:1.5fr 1fr;gap:36px;
  margin:28px 0 0;max-width:820px;align-items:center;
}
.device-showcase figure{margin:0;text-align:center;}
.device-showcase figcaption{
  margin-top:12px;font-family:"Cormorant Garamond",serif;font-style:italic;
  color:var(--ink-soft);font-size:0.92rem;letter-spacing:0.04em;
}
.device-main img{width:100%;height:auto;max-height:400px;object-fit:contain;display:block;margin:0 auto;}
.device-sub{display:flex;flex-direction:column;gap:28px;}
.device-sub img{width:100%;height:auto;max-height:160px;object-fit:contain;display:block;margin:0 auto;}
@media (max-width:640px){
  .device-showcase{grid-template-columns:1fr;max-width:360px;}
  .device-sub{flex-direction:row;}
  .device-sub figure{flex:1;}
}

.feature-plain{margin:28px 0 0;max-width:980px;}
.feature-plain img{width:100%;height:auto;display:block;}
.feature-plain figcaption{margin-top:16px;color:var(--ink-soft);font-size:0.88rem;line-height:1.8;}

.brand-icons{display:flex;flex-wrap:wrap;gap:28px;margin-top:18px;align-items:center;}
.brand-icons i{font-size:2.6rem;}
.brand-icons .fa-cc-visa{color:#1A1F71;}
.brand-icons .fa-cc-mastercard{color:#EB001B;}
.brand-icons .fa-cc-jcb{color:#0B4EA2;}
.brand-icons .fa-cc-amex{color:#2E77BC;}
.brand-icons .fa-cc-diners-club{color:#0079BE;}
.brand-icons .fa-cc-discover{color:#FF6000;}

.loan-points{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-top:28px;}
.loan-point{border:1px solid var(--line);background:var(--surface);padding:32px 26px;text-align:center;}
.loan-point .lp-num{
  display:inline-block;font-family:"Cormorant Garamond",serif;font-style:italic;
  font-size:1.9rem;color:var(--accent);
}
.loan-point h3{margin-top:10px;font-size:1.25rem;color:var(--ink);}
.loan-point p{margin-top:10px;color:var(--ink-soft);font-size:0.86rem;line-height:1.8;}
@media (max-width:860px){.loan-points{grid-template-columns:1fr;}}

.loan-point{position:relative;overflow:hidden;}
.loan-point-art{
  width:calc(100% + 52px);margin:-32px -26px 20px;
  aspect-ratio:4/3;overflow:hidden;
}
.loan-point-art img{width:100%;height:100%;display:block;object-fit:cover;}

.pyramid-feature{
  margin:36px 0 0;max-width:980px;
  border:1px solid var(--line);background:#fff;
  padding:clamp(24px,4vw,48px);
  box-shadow:0 30px 60px -36px rgba(38,42,45,0.18);
}
.pyramid-feature img{width:100%;height:auto;display:block;}
.pyramid-feature figcaption{
  margin-top:22px;padding-top:20px;border-top:1px solid var(--line);
  color:var(--ink-soft);font-size:0.9rem;line-height:1.8;text-align:center;
}

.can-cannot-grid{display:grid;grid-template-columns:1fr 1fr;gap:40px;margin-top:28px;}
.can-col h3{color:var(--accent-strong);font-size:1rem;font-weight:700;margin:0 0 4px;}
.cannot-col h3{color:#A2372A;font-size:1rem;font-weight:700;margin:0 0 4px;}
.can-col .check-list,
.cannot-col .cross-list{grid-template-columns:1fr;margin-top:18px;}
.cross-list{list-style:none;margin:18px 0 0;padding:0;display:grid;gap:10px;}
.cross-list li{position:relative;padding-left:28px;color:var(--ink-soft);font-size:0.92rem;line-height:1.7;}
.cross-list li::before{content:"×";position:absolute;left:0;top:0;color:#A2372A;font-weight:700;}
@media (max-width:640px){.can-cannot-grid{grid-template-columns:1fr;gap:28px;}}

.trial-box{
  display:flex;align-items:center;gap:32px;
  margin-top:24px;padding:clamp(24px,4vw,40px);max-width:980px;
  border:1px solid var(--accent);background:var(--rose);
}
.trial-badge{
  flex:none;width:118px;height:118px;border-radius:50%;
  background:var(--accent);color:#fff;display:flex;align-items:center;justify-content:center;
  font-family:"Cormorant Garamond",serif;font-style:italic;text-align:center;
  font-size:0.92rem;line-height:1.35;letter-spacing:0.02em;
}
.trial-text p{color:var(--ink);font-size:0.9rem;line-height:1.9;margin-top:12px;}
.trial-text p:first-child{margin-top:0;}
@media (max-width:640px){
  .trial-box{flex-direction:column;text-align:center;}
}

.sub-cards{display:flex;flex-direction:column;gap:32px;margin-top:24px;max-width:980px;}
.sub-card{border:1px solid var(--line);padding:34px;background:var(--surface);overflow:hidden;box-shadow:0 30px 60px -36px rgba(38,42,45,0.18);}
.sub-card-img{
  display:block;width:calc(100% + 68px);max-width:calc(100% + 68px);margin:-34px -34px 28px;
  aspect-ratio:21/9;object-fit:cover;
}
@media (max-width:640px){
  .sub-card{padding:24px;}
  .sub-card-img{width:calc(100% + 48px);margin:-24px -24px 22px;}
}
.sub-card h3{margin:0;font-size:1.15rem;color:var(--ink);}
.sub-card .price{display:inline-block;margin-top:14px;font-family:"Cormorant Garamond",serif;font-style:italic;color:var(--accent);font-size:1.1rem;}
.sub-card p{margin-top:12px;color:var(--ink-soft);font-size:0.9rem;line-height:1.8;}
.sub-card ul{margin:16px 0 0;padding-left:20px;color:var(--ink-soft);font-size:0.88rem;line-height:1.9;}
@media (max-width:640px){.sub-cards{grid-template-columns:1fr;}}

.sub-cards-3{display:grid;grid-template-columns:repeat(3,1fr);max-width:none;}
.sub-cards-3 .sub-card{overflow:hidden;padding:30px;box-shadow:none;}
.sub-card-art{
  position:relative;
  width:calc(100% + 60px);margin:-30px -30px 20px;
  aspect-ratio:4/3;overflow:hidden;
}
.sub-card-art img{width:100%;height:100%;display:block;object-fit:cover;}
.new-products-block{margin-bottom:64px;padding-bottom:48px;border-bottom:1px solid var(--line);}
.new-products-eyebrow{
  display:inline-flex;align-items:center;gap:6px;
  background:var(--accent);color:#fff;font-size:0.74rem;font-weight:700;letter-spacing:0.08em;
  padding:5px 14px;border-radius:20px;margin-bottom:18px;
}
.new-badge{
  position:absolute;top:14px;left:14px;z-index:2;
  background:var(--accent);color:#fff;font-size:0.72rem;font-weight:700;letter-spacing:0.05em;
  padding:5px 12px;border-radius:4px;
  box-shadow:0 6px 14px -6px rgba(20,24,26,0.5);
}
.sub-card-art .sub-card-placeholder{
  width:100%;height:100%;display:grid;place-items:center;
  background:linear-gradient(155deg, var(--rose), var(--gold-soft));
  font-family:"Cormorant Garamond",serif;font-style:italic;color:var(--surface);font-size:0.95rem;
}
a.sub-card{
  display:block;text-decoration:none;color:inherit;
  border-radius:20px;overflow:hidden;
  box-shadow:0 12px 26px -16px rgba(20,24,26,0.35);
  transition:box-shadow .3s ease, transform .3s ease;
}
a.sub-card:hover{
  transform:translateY(-4px);
  box-shadow:0 18px 34px -16px rgba(20,24,26,0.45), 0 0 26px 1px rgba(79,168,201,0.35);
}
.sub-card-logo{display:block;height:56px;width:auto;max-width:75%;object-fit:contain;margin:0 auto;}
.sub-card-title{display:block;}
.sub-card-title-en{display:block;}
.sub-card-title-kana{display:block;font-size:0.78em;margin-top:6px;color:var(--ink-soft);font-weight:500;}
@media (max-width:860px){.sub-cards-3{grid-template-columns:1fr;}}

.mini-flow{
  display:flex;flex-wrap:wrap;align-items:center;gap:8px;
  margin-top:24px;padding:16px 18px;background:var(--ground-deep);border:1px solid var(--line);
}
.mini-flow span{font-size:0.78rem;color:var(--ink);}
.mini-flow .mini-flow-arrow{color:var(--accent);font-size:0.8rem;}

.case-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-top:24px;}
.case-card{border:1px solid var(--line);background:var(--surface);overflow:hidden;}
.case-media{aspect-ratio:4/3;overflow:hidden;}
.case-media img{width:100%;height:100%;object-fit:cover;display:block;}
.case-body{padding:22px 24px 26px;}
.case-body h3{font-size:1.02rem;font-weight:700;color:var(--ink);margin:0;}
.case-meta{margin-top:6px;color:var(--ink-soft);font-size:0.8rem;}
.case-price{margin-top:14px;font-family:"Cormorant Garamond",serif;font-style:italic;font-size:1.35rem;color:var(--accent);}
.case-price span{font-size:0.7rem;font-style:normal;color:var(--ink-soft);margin-left:4px;}
.case-scope{margin-top:14px;padding-top:14px;border-top:1px solid var(--line);color:var(--ink-soft);font-size:0.82rem;line-height:1.8;}
@media (max-width:860px){
  .case-grid{grid-template-columns:1fr;}
}

.voice-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:20px;margin-top:24px;}
.voice-card{border:1px solid var(--line);background:var(--ground-deep);padding:24px 26px 22px;font-size:0.9rem;color:var(--ink-soft);line-height:1.8;position:relative;}
.voice-card::before{content:"\201C";font-family:"Cormorant Garamond",serif;font-size:2.6rem;color:var(--gold-soft);position:absolute;top:-4px;left:16px;}
.voice-card p{padding-left:4px;}

.flow-steps{list-style:none;margin:32px 0 0;padding:0;counter-reset:flow;max-width:760px;}
.flow-steps li{position:relative;padding:20px 0 20px 56px;border-bottom:1px solid var(--line);counter-increment:flow;}
.flow-steps li:last-child{border-bottom:none;}
.flow-steps li::before{
  content:counter(flow,decimal-leading-zero);
  position:absolute;left:0;top:16px;
  font-family:"Cormorant Garamond",serif;font-style:italic;font-size:1.05rem;color:var(--accent);
  width:36px;height:36px;border:1px solid var(--accent);border-radius:50%;
  display:flex;align-items:center;justify-content:center;
}
.flow-steps .step-title{font-weight:600;color:var(--ink);}
.flow-steps .step-desc{margin-top:6px;color:var(--ink-soft);font-size:0.88rem;line-height:1.7;}

.compare-table-wrap{overflow-x:auto;margin-top:24px;}
.compare-table{width:100%;border-collapse:collapse;font-size:0.86rem;min-width:560px;}
.compare-table th,.compare-table td{border:1px solid var(--line);padding:14px 16px;text-align:left;}
.compare-table th{background:var(--ground-deep);font-weight:600;color:var(--ink);}
.compare-table td{color:var(--ink-soft);}

.tag-list{display:flex;flex-wrap:wrap;gap:10px;margin-top:24px;}
.tag-list span{border:1px solid var(--line);padding:8px 18px;font-size:0.85rem;color:var(--ink-soft);border-radius:999px;}

.note{margin-top:16px;font-size:0.82rem;color:var(--ink-soft);}

.closing-note{margin-top:48px;padding:28px 32px;background:var(--ground-deep);border-left:3px solid var(--accent);font-size:0.92rem;color:var(--ink-soft);line-height:1.9;max-width:800px;}

/* ---------- Coming Soon ---------- */
.coming-soon{
  min-height:340px;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;
}
.coming-soon .cs-badge{
  font-family:"Cormorant Garamond",serif;font-style:italic;letter-spacing:0.1em;
  font-size:1rem;color:var(--accent);border:1px solid var(--accent);border-radius:999px;
  padding:8px 22px;
}
.coming-soon p{margin-top:24px;color:var(--ink-soft);max-width:60ch;line-height:1.9;}

/* ---------- お問い合わせ：LINE直通ボックス ---------- */
.contact-line-box{
  display:flex;align-items:center;gap:24px;
  margin:28px 0 40px;padding:22px 28px;
  border:1px solid var(--line);background:var(--ground-deep);
  max-width:720px;
}
.contact-line-qr{
  width:92px;height:92px;flex:none;
  background:#fff;padding:6px;border-radius:6px;border:1px solid var(--line);
}
.contact-line-label{
  display:inline-flex;align-items:center;gap:8px;
  font-weight:700;font-size:1rem;color:var(--ink);
}
.contact-line-label i{color:#06C755;font-size:1.15rem;}
.contact-line-box p{margin-top:8px;color:var(--ink-soft);font-size:0.86rem;line-height:1.8;}
@media (max-width:480px){
  .contact-line-box{flex-direction:column;align-items:flex-start;}
}

/* ---------- お問い合わせフォーム ---------- */
.contact-form{margin-top:12px;max-width:720px;}
.form-row{margin-top:24px;}
.form-row label{display:block;font-size:0.88rem;font-weight:600;color:var(--ink);margin-bottom:8px;}
.form-row label .req{color:#C0483A;font-size:0.76rem;margin-left:6px;font-weight:600;}
.form-row input[type="text"],
.form-row input[type="email"],
.form-row input[type="tel"],
.form-row select,
.form-row textarea{
  width:100%;border:1px solid var(--line);background:var(--surface);color:var(--ink);
  padding:12px 14px;font-family:inherit;font-size:0.92rem;border-radius:2px;
  transition:border-color .2s;
}
.form-row input:focus,
.form-row select:focus,
.form-row textarea:focus{outline:none;border-color:var(--accent);}
.form-row textarea{min-height:160px;resize:vertical;}
.form-honeypot{position:absolute;left:-9999px;top:-9999px;}
.form-submit{margin-top:36px;}
.form-submit button{
  appearance:none;border:none;cursor:pointer;
  display:inline-flex;align-items:center;gap:10px;
  padding:15px 40px;font-size:0.88rem;letter-spacing:0.05em;
  background:var(--accent);color:#fff;border-radius:2px;
  transition:background .25s, transform .25s;
}
.form-submit button:hover{background:var(--accent-strong);transform:translateY(-2px);}
.form-notice{
  margin-bottom:32px;padding:18px 22px;border-radius:2px;font-size:0.9rem;line-height:1.8;
}
.form-notice.success{background:#EAF6EE;border:1px solid #9BCBA9;color:#2C6E43;}
.form-notice.error{background:#FBEAEA;border:1px solid #E2A6A0;color:#A2372A;}

/* ---------- News/Blog 一覧：切り替えタブ ---------- */
.cat-tabs{display:flex;gap:12px;margin-bottom:44px;}
.cat-tab{
  padding:10px 28px;border:1px solid var(--line);
  font-family:"Cormorant Garamond",serif;font-style:italic;font-size:0.92rem;
  color:var(--ink-soft);transition:background .2s,color .2s,border-color .2s;
}
.cat-tab:hover{border-color:var(--accent);color:var(--accent);}
.cat-tab.active{background:var(--accent);color:#fff;border-color:var(--accent);}

/* ---------- News/Blog 一覧・記事 ---------- */
.post-list{list-style:none;margin:24px 0 0;padding:0;max-width:820px;}
.post-list li{border-bottom:1px solid var(--line);}
.post-list a{display:flex;gap:20px;padding:26px 0;transition:opacity .2s;}
.post-list a:hover{opacity:0.65;}
.post-list-thumb{
  width:120px;height:120px;flex:none;
  background:linear-gradient(155deg, var(--rose), var(--gold-soft));
  display:grid;place-items:center;
  font-family:"Cormorant Garamond",serif;font-style:italic;color:var(--surface);
  font-size:0.82rem;text-align:center;
  overflow:hidden;
}
.post-list-thumb img{width:100%;height:100%;object-fit:cover;display:block;}
.post-list-body{flex:1;min-width:0;}
.post-list time{
  font-family:"Cormorant Garamond",serif;font-style:italic;color:var(--ink-soft);font-size:0.85rem;
}
.post-list h2{font-size:1.1rem;margin-top:8px;font-weight:600;color:var(--ink);}
.post-list .excerpt{margin-top:10px;color:var(--ink-soft);font-size:0.88rem;line-height:1.8;}
@media (max-width:640px){
  .post-list-thumb{width:88px;height:88px;}
}
.pagination-nav{display:flex;justify-content:space-between;margin-top:48px;font-size:0.85rem;}
.pagination-nav a{color:var(--accent);border-bottom:1px solid var(--accent);padding-bottom:2px;}

.single-post-meta{
  display:flex;align-items:center;gap:16px;margin-top:8px;
  font-family:"Cormorant Garamond",serif;font-style:italic;color:var(--ink-soft);font-size:0.9rem;
}
.single-post-body{margin-top:40px;max-width:760px;color:var(--ink);line-height:2;font-size:0.96rem;}
.single-post-body p{margin:0 0 1.6em;}
.single-post-body img{display:block;margin:1.6em 0;}
.single-post-body h2{font-size:1.3rem;margin:2em 0 0.8em;}
.single-post-body h3{font-size:1.1rem;margin:1.8em 0 0.7em;}
.single-post-body a{color:var(--accent);text-decoration:underline;}
.single-post-body ul,.single-post-body ol{padding-left:1.4em;margin:0 0 1.6em;}

/* ---------- WordPress core alignments ---------- */
.alignwide{max-width:1180px;margin-left:auto;margin-right:auto;}
.alignfull{max-width:none;}

/* 指定の見出し・リード文は、PC幅では改行させず1行で表示する */
@media (min-width:861px){
  .mission h2,
  .section-head h2,
  .section-head p,
  .ceo-text h2{
    white-space:nowrap;
  }
}

/* ================================================
   Beauty EXPRESS マガジン
   雑誌を開いたような、サイトの他ページとは異なる編集的なデザイン
   ================================================ */
.magazine{
  --mag-bg:#FBF6EE;
  --mag-surface:#FFFFFF;
  --mag-ink:#2B2420;
  --mag-ink-soft:#8C7F70;
  --mag-accent:#B9834A;
  --mag-accent-soft:#E7D3B8;
  --mag-line:#E8DECE;
  background:var(--mag-bg);
  color:var(--mag-ink);
}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]) .magazine{
    --mag-bg:#1C1815;
    --mag-surface:#242019;
    --mag-ink:#F1E9DD;
    --mag-ink-soft:#B5A793;
    --mag-accent:#D9A25E;
    --mag-accent-soft:#4A3B26;
    --mag-line:#3A3226;
  }
}
:root[data-theme="dark"] .magazine{
  --mag-bg:#1C1815;
  --mag-surface:#242019;
  --mag-ink:#F1E9DD;
  --mag-ink-soft:#B5A793;
  --mag-accent:#D9A25E;
  --mag-accent-soft:#4A3B26;
  --mag-line:#3A3226;
}

.mag-masthead{
  border-bottom:1px solid var(--mag-line);
  padding:clamp(56px,7vw,96px) 0 clamp(44px,5vw,64px);
  text-align:center;
}
.mag-breadcrumb{
  display:flex;justify-content:center;align-items:center;gap:8px;
  font-size:0.76rem;color:var(--mag-ink-soft);margin-bottom:28px;
}
.mag-breadcrumb a{color:var(--mag-ink-soft);}
.mag-breadcrumb a:hover{color:var(--mag-accent);}
.back-button-mag{display:flex;justify-content:center;color:var(--mag-ink-soft);}
.back-button-mag:hover{color:var(--mag-accent);}
.mag-single-head .back-button-mag{justify-content:flex-start;}
.mag-issue{
  font-family:"Cormorant Garamond",serif;font-style:italic;
  font-size:0.98rem;letter-spacing:0.3em;color:var(--mag-accent);
  display:inline-flex;align-items:center;gap:14px;
}
.mag-issue::before,.mag-issue::after{content:"";width:34px;height:1px;background:var(--mag-accent-soft);}
.mag-title{
  font-family:"Zen Old Mincho",serif;font-weight:700;
  font-size:clamp(2.4rem,6vw,4.4rem);letter-spacing:0.02em;
  margin-top:22px;color:var(--mag-ink);
}
.mag-lead{
  margin:20px auto 0;max-width:52ch;color:var(--mag-ink-soft);
  font-size:1rem;line-height:2;
}

.mag-grid-wrap{padding:clamp(48px,6vw,80px) 0;}

.mag-feature{
  display:grid;grid-template-columns:1.2fr 1fr;gap:0;
  border:1px solid var(--mag-line);background:var(--mag-surface);
  overflow:hidden;text-decoration:none;color:inherit;
  box-shadow:0 30px 60px -36px rgba(43,36,32,0.28);
  margin-bottom:clamp(48px,6vw,72px);
}
.mag-feature-media{
  aspect-ratio:4/3;overflow:hidden;background:linear-gradient(155deg,var(--mag-accent-soft),var(--mag-bg));
}
.mag-feature-media img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .6s ease;}
.mag-feature:hover .mag-feature-media img{transform:scale(1.05);}
.mag-feature-body{
  padding:clamp(28px,4vw,52px);display:flex;flex-direction:column;justify-content:center;
}
.mag-tag{
  font-family:"Cormorant Garamond",serif;font-style:italic;font-weight:600;
  font-size:0.8rem;letter-spacing:0.16em;color:var(--mag-accent);
}
.mag-feature-body h2{
  font-family:"Zen Old Mincho",serif;font-size:clamp(1.4rem,2.6vw,2rem);
  line-height:1.5;margin-top:16px;color:var(--mag-ink);
}
.mag-feature-body p{margin-top:16px;color:var(--mag-ink-soft);font-size:0.92rem;line-height:1.9;}
.mag-feature-body time{
  display:block;margin-top:24px;font-family:"Cormorant Garamond",serif;font-style:italic;
  color:var(--mag-ink-soft);font-size:0.85rem;
}

.mag-grid{
  column-count:3;column-gap:28px;
}
.mag-card{
  break-inside:avoid;margin-bottom:28px;
  background:var(--mag-surface);border:1px solid var(--mag-line);
  display:block;text-decoration:none;color:inherit;
  transition:transform .3s, box-shadow .3s;
}
.mag-card:hover{transform:translateY(-4px);box-shadow:0 26px 50px -30px rgba(43,36,32,0.32);}
.mag-card-media{aspect-ratio:5/4;overflow:hidden;background:linear-gradient(155deg,var(--mag-accent-soft),var(--mag-bg));}
.mag-card-media img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .5s ease;}
.mag-card:hover .mag-card-media img{transform:scale(1.06);}
.mag-card-body{padding:22px 24px 26px;}
.mag-card-body .mag-tag{font-size:0.72rem;}
.mag-card-body h3{
  font-family:"Zen Old Mincho",serif;font-size:1.08rem;line-height:1.6;
  margin-top:12px;color:var(--mag-ink);font-weight:700;
}
.mag-card-body time{
  display:block;margin-top:14px;font-family:"Cormorant Garamond",serif;font-style:italic;
  color:var(--mag-ink-soft);font-size:0.8rem;
}

.mag-empty{
  text-align:center;padding:60px 20px;color:var(--mag-ink-soft);
  border:1px dashed var(--mag-line);
}

.mag-pagination{
  display:flex;justify-content:space-between;margin-top:16px;
  font-size:0.85rem;color:var(--mag-accent);
}
.mag-pagination a{color:var(--mag-accent);border-bottom:1px solid var(--mag-accent-soft);padding-bottom:2px;}

@media (max-width:860px){
  .mag-feature{grid-template-columns:1fr;}
  .mag-grid{column-count:2;}
}
@media (max-width:600px){
  .mag-grid{column-count:1;}
}

/* --- Beauty EXPRESS 単一記事（雑誌の見開き風） --- */
.mag-single-head{
  border-bottom:1px solid var(--mag-line);
  padding:clamp(48px,6vw,80px) 0 clamp(40px,5vw,56px);
}
.mag-single-head .mag-breadcrumb{justify-content:flex-start;}
.mag-single-head .mag-tag{font-size:0.82rem;}
.mag-single-head h1{
  font-family:"Zen Old Mincho",serif;font-weight:700;
  font-size:clamp(1.9rem,4.4vw,3.1rem);line-height:1.45;
  margin-top:20px;max-width:20ch;color:var(--mag-ink);
}
.mag-single-meta{
  display:flex;align-items:center;gap:18px;margin-top:26px;
  font-family:"Cormorant Garamond",serif;font-style:italic;
  color:var(--mag-ink-soft);font-size:0.92rem;
}
.mag-single-media{
  margin-top:clamp(32px,5vw,56px);
  aspect-ratio:16/9;overflow:hidden;
  box-shadow:0 40px 70px -40px rgba(43,36,32,0.35);
}
.mag-single-media img{width:100%;height:100%;object-fit:cover;display:block;}
.mag-single-body{
  margin:clamp(40px,5vw,56px) auto 0;max-width:680px;
  font-family:"Zen Kaku Gothic New",sans-serif;
  font-size:1.02rem;line-height:2.05;color:var(--mag-ink);
}
.mag-single-body p{margin:0 0 1.7em;}
.mag-single-body p:first-of-type::first-letter{
  font-family:"Cormorant Garamond",serif;font-style:italic;
  float:left;font-size:4.4rem;line-height:0.8;padding:8px 10px 0 0;color:var(--mag-accent);
}
.mag-single-body h2{font-family:"Zen Old Mincho",serif;font-size:1.4rem;margin:2em 0 0.8em;color:var(--mag-ink);}
.mag-single-body h3{font-family:"Zen Old Mincho",serif;font-size:1.15rem;margin:1.8em 0 0.7em;color:var(--mag-ink);}
.mag-single-body img{display:block;width:100%;margin:2em 0;box-shadow:0 30px 60px -36px rgba(43,36,32,0.3);}
.mag-single-body a{color:var(--mag-accent);text-decoration:underline;}
.mag-single-body blockquote{
  margin:2.2em 0;padding:6px 0 6px 28px;border-left:3px solid var(--mag-accent);
  font-family:"Zen Old Mincho",serif;font-size:1.15rem;color:var(--mag-ink);line-height:1.9;
}
.mag-single-foot{
  max-width:680px;margin:clamp(48px,6vw,72px) auto 0;padding-top:32px;border-top:1px solid var(--mag-line);
}
