:root{
  --wine:#7b0715;
  --wine2:#9a1021;
  --ink:#222;
  --text:#333;
  --muted:#666;
  --line:#e7dedb;
  --paper:#fffdfb;
  --soft:#f7f4f2;
  --dark:#181a1c;
  --serif:"Yu Mincho","Hiragino Mincho ProN","Noto Serif JP",serif;
  --sans:"Yu Gothic","Hiragino Kaku Gothic ProN","Noto Sans JP",system-ui,sans-serif;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;color:var(--text);font-family:var(--sans);line-height:1.85;letter-spacing:.03em;background:#fff;font-weight:500}
a{color:inherit;text-decoration:none}
img{max-width:100%;display:block}
.wrap{width:min(100% - 64px,1120px);margin-inline:auto}
.site-header{height:70px;background:#fff;border-bottom:1px solid #eee;position:sticky;top:0;z-index:10}
.head-inner{height:70px;display:flex;align-items:center;justify-content:space-between;gap:24px}
.logo{font-family:Georgia,serif;font-size:40px;line-height:.8;color:var(--wine);letter-spacing:.13em;font-weight:500}.logo small{display:block;font-family:var(--sans);font-size:10px;letter-spacing:.04em;margin-top:8px;color:#9a4b54}.nav{display:flex;align-items:center;gap:34px;font-size:14px;font-weight:700}.nav a{height:70px;display:flex;align-items:center;position:relative}.nav a.active:after{content:"";position:absolute;left:0;right:0;bottom:0;height:3px;background:var(--wine)}.nav-cta{height:58px!important;padding:0 34px;background:var(--wine);color:#fff!important;margin-left:4px}.menu{display:none}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:18px;min-width:190px;height:58px;padding:0 26px;border:1px solid var(--wine);color:var(--wine);font-weight:700;background:#fff;letter-spacing:.04em}.btn:after{content:"→"}.btn.primary{background:var(--wine);color:#fff}
/* TOP */
.hero{height:390px;background:#fff;position:relative;overflow:hidden;border-bottom:1px solid #f1eeee}.hero:after{content:"";position:absolute;right:0;top:0;width:65%;height:100%;background:url('assets/hero-final.jpg') center/cover no-repeat;z-index:0}.hero:before{content:"";position:absolute;right:0;top:0;width:65%;height:100%;background:linear-gradient(90deg,#fff 0%,rgba(255,255,255,.92) 16%,rgba(255,255,255,.55) 32%,rgba(255,255,255,0) 52%);z-index:1}.hero-grid{position:relative;z-index:2;width:min(100% - 64px,1120px);margin-inline:auto;height:100%;display:flex;align-items:center}.hero-copy{width:48%;padding-top:12px}.hero h1{font-family:var(--serif);font-size:52px;line-height:1.35;letter-spacing:.06em;color:var(--wine);margin:0 0 20px;white-space:nowrap}.hero .lead{font-size:20px;font-weight:800;line-height:1.75;margin:0 0 14px;color:#222}.hero p{max-width:500px;margin:0 0 28px;font-size:14px;line-height:1.9}.hero-actions{display:flex;gap:16px}.hero-visual{display:none}.center-lead{padding:42px 0 36px;text-align:center;background:linear-gradient(180deg,#fff 0%,var(--soft) 100%)}.center-lead .label,.eyebrow{font-size:12px;color:var(--wine);font-weight:800;letter-spacing:.16em;text-transform:uppercase}.center-lead h2{font-family:var(--serif);font-size:38px;line-height:1.45;letter-spacing:.12em;margin:12px 0 14px;color:#4c2024}.center-lead p{max-width:760px;margin:0 auto;font-size:14px;line-height:1.9}.center-lead .wrap{position:relative}.center-lead .wrap:before,.center-lead .wrap:after{content:"";position:absolute;top:28px;width:66px;height:66px;border-color:#b99096;border-style:solid;opacity:.75}.center-lead .wrap:before{left:72px;border-width:1px 0 0 1px}.center-lead .wrap:after{right:72px;border-width:1px 1px 0 0}.section{padding:52px 0}.section-title{text-align:center;margin-bottom:30px}.section-title h2,.page-title h1{font-family:var(--serif);font-size:34px;line-height:1.4;letter-spacing:.14em;margin:0;color:#3b2425}.section-title h2:after{content:"";display:block;width:46px;height:2px;background:var(--wine);margin:12px auto 0}.services{display:grid;grid-template-columns:repeat(4,1fr);gap:22px}.service-card{background:white;border:1px solid var(--line);box-shadow:0 10px 26px rgba(0,0,0,.04);position:relative;overflow:hidden;display:flex;flex-direction:column;min-height:286px}.service-card .thumb{height:124px;overflow:hidden;background:#ddd}.service-card .thumb img{width:100%;height:100%;object-fit:cover;transition:.45s}.service-card:hover .thumb img{transform:scale(1.05)}.service-card .icon{position:absolute;top:100px;left:22px;width:46px;height:46px;border-radius:50%;background:var(--wine);color:white;display:grid;place-items:center;border:4px solid #fff}.icon svg{width:24px;height:24px}.service-card .body{padding:34px 22px 18px}.service-card h3{font-family:var(--serif);font-size:22px;line-height:1.35;margin:0 0 8px;color:#342020}.service-card p{font-size:13px;line-height:1.8;margin:0;color:#454545}.arrow{color:var(--wine);font-weight:800;text-align:right;margin-top:12px}.reasons{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.reason{text-align:center;padding:22px 24px;border-left:1px solid var(--line);min-height:150px}.reason:first-child{border-left:0}.reason .bigicon{color:var(--wine);height:48px;display:grid;place-items:center;margin-bottom:8px}.reason .bigicon svg{width:42px;height:42px}.reason h3{font-size:17px;margin:0 0 6px;color:#4a1c20}.reason p{font-size:12px;line-height:1.7;margin:0;color:#555}.works-dark{background:linear-gradient(110deg,#141619,#262a2d);color:#fff;padding:34px 0 42px}.works-dark h2{font-family:var(--serif);font-size:28px;text-align:center;letter-spacing:.14em;margin:0 0 24px}.works-layout{display:block}.works-layout>div:first-child p{display:none}.works-layout>div:first-child .btn{display:none}.works-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:16px}.work-mini img{height:92px;width:100%;object-fit:cover}.work-mini span{display:block;text-align:center;font-size:12px;font-weight:700;line-height:1.5;margin-top:7px;color:#f4f4f4}.works-dark .wrap:after{content:"制作事例を見る　→";display:flex;align-items:center;justify-content:center;width:190px;height:42px;border:1px solid rgba(255,255,255,.55);margin:24px auto 0;font-size:13px;font-weight:700;color:#fff}.flow-mini{display:grid;grid-template-columns:repeat(5,1fr);gap:24px;align-items:start}.flow-step{text-align:center;position:relative}.flow-step:after{content:"▶";position:absolute;right:-17px;top:54px;font-size:12px;color:#111}.flow-step:last-child:after{display:none}.num{font-family:Georgia,serif;font-size:14px;color:var(--wine);font-weight:bold;margin-bottom:4px}.flow-step .circle{width:74px;height:74px;border:1px solid #d7cdca;border-radius:0;display:grid;place-items:center;margin:0 auto 10px;color:#111;background:#fff}.flow-step svg{width:36px;height:36px}.flow-step h3{font-size:15px;margin:0 0 6px}.flow-step p{font-size:12px;line-height:1.6;margin:0;color:#555}.faq-list{max-width:900px;margin:0 auto}.faq-row{border:1px solid var(--line);border-bottom:0;background:#fff}.faq-row:last-child{border-bottom:1px solid var(--line)}.faq-q{display:flex;justify-content:space-between;gap:20px;align-items:center;padding:13px 22px;font-weight:700;font-size:14px}.faq-q span:last-child{font-size:20px;color:var(--wine)}.faq-a{padding:0 22px 18px;color:#555;display:none;font-size:13px}.faq-row.open .faq-a{display:block}.cta{background:radial-gradient(circle at 88% 35%,rgba(255,255,255,.12),transparent 30%),linear-gradient(135deg,#710512,#9b1426);color:white;padding:44px 0}.cta .wrap{display:grid;grid-template-columns:1.45fr .9fr;gap:48px;align-items:center}.cta h2{font-family:var(--serif);font-size:30px;letter-spacing:.12em;margin:0 0 10px}.cta p{margin:0;color:#f0dfe2;font-size:14px}.cta .btn{background:#fff;color:var(--wine);border-color:#fff;width:100%;height:62px}.site-footer{padding:36px 0;background:#fff}.foot-inner{display:flex;justify-content:space-between;gap:30px;align-items:flex-start}.foot-nav{display:flex;gap:20px;flex-wrap:wrap;font-size:12px;color:#555}.copyright{font-size:11px;color:#999;margin-top:18px}
/* lower pages */
.page-hero{position:relative;background:#fff;overflow:hidden;border-bottom:1px solid #eee}.page-hero-inner{display:grid;grid-template-columns:42% 58%;min-height:320px}.page-copy{padding:58px 0 54px max(32px,calc((100vw - 1120px)/2));display:flex;flex-direction:column;justify-content:center}.page-copy h1{font-family:var(--serif);font-size:50px;letter-spacing:.12em;color:var(--wine);margin:0 0 8px}.page-copy .en{color:var(--wine);font-weight:700;font-family:Georgia,serif;letter-spacing:.08em}.page-copy p{font-size:18px;font-weight:700;margin:24px 0 0;max-width:600px}.page-photo{background:url('assets/hero-final.jpg') center/cover no-repeat;position:relative}.page-photo:before{content:"";position:absolute;left:0;top:0;width:48%;height:100%;background:linear-gradient(90deg,#fff,rgba(255,255,255,0))}.lead-block{text-align:center;padding:58px 0}.lead-block h2{font-family:var(--serif);font-size:33px;color:var(--wine);letter-spacing:.12em;line-height:1.6;margin:0 0 18px}.lead-block p{max-width:880px;margin:0 auto}.cards-4{display:grid;grid-template-columns:repeat(4,1fr);gap:22px}.detail-card{background:white;border:1px solid var(--line);padding:26px 24px}.detail-card .label{color:var(--wine);font-family:Georgia,serif;font-weight:bold}.detail-card h3{font-family:var(--serif);font-size:22px;margin:8px 0 12px;color:#3a2424}.detail-card ul{margin:16px 0 0;padding-left:1.2em;font-size:13px;color:#555}.six-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.small-box{border:1px solid var(--line);padding:24px;background:#fff}.small-box h3{margin:0 0 8px;color:#4a1c20}.case-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}.case-card{border:1px solid var(--line);background:#fff}.case-card img{height:170px;width:100%;object-fit:cover}.case-body{padding:20px}.case-body .cat{color:var(--wine);font-size:12px;font-weight:bold}.case-body h3{font-size:19px;margin:6px 0 10px}.case-body p{font-size:13px;margin:0;color:#555}.table{border-collapse:collapse;width:100%;background:white}.table th,.table td{border-bottom:1px solid var(--line);padding:15px 20px;text-align:left;vertical-align:top}.table th{width:25%;color:var(--wine);background:#fbf8f7}.note{font-size:13px;color:#777}.wide-card{border:1px solid var(--line);background:white;padding:24px 28px;margin-bottom:14px}.wide-card h3{margin:0 0 8px;color:#4a1c20}.contact-panel{display:grid;grid-template-columns:1fr 1fr;gap:24px}.contact-box{border:1px solid var(--line);background:white;padding:30px}.form-button-area{text-align:center;background:#fbf8f7;border:1px solid var(--line);padding:42px}.list{padding-left:1.2em}.list li{margin:.35em 0}.dark-band{background:#181a1c;color:#fff;padding:58px 0}.dark-band .section-title h2{color:white}.dark-band p{color:#ddd}.dark-band .detail-card{background:#222;border-color:#3b3b3b}.dark-band .detail-card h3{color:#fff}.dark-band .detail-card p,.dark-band .detail-card li{color:#ddd}.privacy h2{font-family:var(--serif);color:var(--wine);font-size:26px;margin:42px 0 12px}.privacy p,.privacy li{color:#555}
@media(max-width:900px){.wrap{width:min(100% - 36px,680px)}.site-header{height:64px}.head-inner{height:64px}.logo{font-size:32px}.logo small{font-size:8px}.nav{display:none}.menu{display:block;color:var(--wine);font-size:28px}.hero{height:auto}.hero:after{position:relative;display:block;width:100%;height:260px}.hero:before{display:none}.hero-grid{display:block;height:auto;width:100%}.hero-copy{width:100%;padding:50px 24px 38px}.hero h1{font-size:42px;line-height:1.45;white-space:normal}.hero .lead{font-size:18px}.hero-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px}.btn{min-width:0;width:100%}.center-lead{padding:48px 0}.center-lead h2{font-size:28px}.center-lead .wrap:before,.center-lead .wrap:after{display:none}.section{padding:50px 0}.section-title h2{font-size:30px}.services,.reasons,.works-layout,.works-grid,.flow-mini,.cards-4,.six-grid,.case-grid,.contact-panel{grid-template-columns:1fr}.service-card{min-height:0}.service-card .thumb{height:170px}.service-card .icon{top:143px}.reasons{border:0;gap:14px}.reason{border:1px solid var(--line);background:white}.works-grid{grid-template-columns:1fr 1fr}.work-mini img{height:120px}.flow-step:after{display:none}.flow-mini{gap:14px}.flow-step{border:1px solid var(--line);background:white;padding:22px}.flow-step .circle{border-radius:50%}.cta .wrap{grid-template-columns:1fr}.cta h2{font-size:27px}.foot-inner{display:block}.foot-nav{margin-top:22px}.page-hero-inner{display:block}.page-copy{padding:48px 24px}.page-copy h1{font-size:42px}.page-copy p{font-size:17px}.page-photo{height:220px}.lead-block{padding:50px 0}.lead-block h2{font-size:28px}.table th,.table td{display:block;width:100%;padding:12px 16px}.hero-actions .btn{font-size:13px;padding:0 12px;height:52px}}
@media(max-width:520px){.hero-actions{grid-template-columns:1fr}.hero h1{font-size:40px}.works-grid{grid-template-columns:1fr}.center-lead h2{font-size:25px}.section-title h2{font-size:27px}.page-copy h1{font-size:38px}}


/* ===== v4 final direction: full-screen hero + refined Az logo ===== */
:root{
  --wine:#7a0f22;
  --wine2:#9b1b2d;
  --ink:#202020;
  --text:#303030;
  --line:#e6ddda;
  --soft:#f7f3f1;
  --serif:"Yu Mincho","Hiragino Mincho ProN","Noto Serif JP","Times New Roman",serif;
  --sans:"Yu Gothic","Hiragino Kaku Gothic ProN","Noto Sans JP",system-ui,sans-serif;
}
body{font-weight:500;background:#fffdfc;}
.site-header{
  height:82px;
  background:rgba(255,255,255,.96);
  backdrop-filter:saturate(140%) blur(8px);
  border-bottom:1px solid rgba(0,0,0,.06);
}
.head-inner{height:82px;width:min(100% - 72px,1280px);}
.brand{
  display:inline-flex;
  align-items:center;
  gap:14px;
  color:var(--wine);
  min-width:180px;
}
.brand-mark{
  font-family:Georgia,"Times New Roman",serif;
  font-size:32px;
  line-height:.9;
  letter-spacing:-.11em;
  color:var(--wine);
}
.brand-divider{
  width:1px;
  height:34px;
  background:#d8c8c7;
}
.brand-word{
  display:block;
  font-family:Georgia,"Times New Roman",serif;
  font-size:32px;
  line-height:.82;
  letter-spacing:.13em;
  color:var(--wine);
}
.brand-word small{
  display:block;
  font-family:var(--sans);
  color:#6a5555;
  font-size:9px;
  letter-spacing:.09em;
  margin-top:8px;
  white-space:nowrap;
}
.site-footer .brand{min-width:220px;}
.nav{gap:36px;font-size:14px;}
.nav a{height:82px;}
.nav-cta{
  height:62px!important;
  padding:0 34px;
  box-shadow:0 10px 22px rgba(122,15,34,.12);
}
.logo{font-size:32px}

/* hero as true full-view first screen */
.hero{
  min-height:calc(100svh - 82px);
  height:auto;
  display:flex;
  align-items:center;
  background:
    linear-gradient(90deg,rgba(255,255,255,.98) 0%,rgba(255,255,255,.95) 27%,rgba(255,255,255,.76) 43%,rgba(255,255,255,.15) 64%,rgba(255,255,255,0) 100%),
    url('assets/hero-final.jpg') center right/cover no-repeat;
  border-bottom:1px solid #eee;
}
.hero:before,.hero:after{display:none!important;}
.hero-grid{
  width:min(100% - 96px,1280px);
  height:auto;
  display:block;
}
.hero-copy{
  width:min(660px,50vw);
  padding:clamp(50px,7vh,96px) 0;
}
.hero h1{
  font-family:var(--serif);
  font-size:clamp(58px,7.4vw,112px);
  line-height:1.18;
  letter-spacing:.06em;
  color:var(--wine);
  margin:0 0 clamp(24px,4vh,42px);
  white-space:normal;
  text-shadow:0 2px 0 rgba(255,255,255,.35);
}
.hero .lead{
  font-family:var(--serif);
  font-size:clamp(23px,2.05vw,34px);
  font-weight:700;
  line-height:1.75;
  letter-spacing:.06em;
  margin:0 0 28px;
  color:#161616;
}
.hero p{
  max-width:620px;
  font-size:clamp(14px,1.05vw,17px);
  line-height:2.05;
  color:#111;
  margin-bottom:34px;
}
.hero-actions{gap:22px}
.btn{
  min-width:230px;
  height:64px;
  letter-spacing:.06em;
  border-color:var(--wine);
  transition:.25s ease;
}
.btn:hover{
  transform:translateY(-2px);
  box-shadow:0 10px 24px rgba(122,15,34,.12);
}
.btn.primary{background:var(--wine);}

.name-story{
  padding:42px 0;
  background:#fff;
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
}
.name-story-inner{
  display:grid;
  grid-template-columns:.55fr 1fr 1.2fr;
  gap:32px;
  align-items:center;
}
.name-kicker{
  color:var(--wine);
  font-family:Georgia,serif;
  letter-spacing:.16em;
  font-weight:700;
  margin:0;
}
.name-story h2{
  font-family:var(--serif);
  font-size:30px;
  letter-spacing:.12em;
  color:#4a1c20;
  margin:0;
}
.name-story p:last-child{
  margin:0;
  color:#555;
  font-size:14px;
  line-height:1.95;
}
.center-lead{padding-top:56px;}
.services{gap:26px;}
.service-card{border-color:#e9e0de;box-shadow:0 16px 34px rgba(45,20,20,.06)}
.works-dark{padding:46px 0 52px;background:linear-gradient(110deg,#131517,#25282b 70%,#181a1c);}
.cta{padding:54px 0;}
.page-photo{background-image:url('assets/hero-final.jpg');}
.page-copy h1{color:var(--wine);}

/* responsive */
@media(max-width:900px){
  .site-header{height:68px;}
  .head-inner{height:68px;width:min(100% - 36px,680px);}
  .brand{gap:10px;min-width:0}
  .brand-mark{font-size:26px}
  .brand-divider{height:28px}
  .brand-word{font-size:27px}
  .brand-word small{font-size:7px;margin-top:6px}
  .hero{
    min-height:auto;
    background:
      linear-gradient(180deg,rgba(255,255,255,.98) 0%,rgba(255,255,255,.93) 47%,rgba(255,255,255,.2) 100%),
      url('assets/hero-final.jpg') center right/cover no-repeat;
  }
  .hero-grid{width:min(100% - 36px,680px);}
  .hero-copy{width:100%;padding:58px 0 360px;}
  .hero h1{font-size:clamp(48px,13vw,72px);}
  .hero .lead{font-size:20px;}
  .hero p{font-size:14px;}
  .hero-actions{grid-template-columns:1fr 1fr;display:grid;}
  .name-story-inner{grid-template-columns:1fr;gap:12px;}
  .name-story h2{font-size:25px;}
}
@media(max-width:520px){
  .brand-mark,.brand-divider{display:none}
  .hero-copy{padding-bottom:320px;}
  .hero-actions{grid-template-columns:1fr;}
  .btn{height:58px;}
}


/* v4 refined case-study section */
.works-dark .wrap:after{display:none !important;content:none !important;}
.works-head{text-align:center;max-width:860px;margin:0 auto 28px;}
.works-head .eyebrow{display:block;margin-bottom:8px;color:#c49aa1;}
.works-head h2{margin:0 0 12px;}
.works-intro{margin:0 auto;color:rgba(255,255,255,.78);font-size:14px;line-height:1.9;max-width:760px;}
.works-grid.refined{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px;}
.work-card{display:flex;flex-direction:column;background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.12);overflow:hidden;transition:.25s ease;box-shadow:0 16px 36px rgba(0,0,0,.16);}
.work-card:hover{transform:translateY(-4px);border-color:rgba(255,255,255,.22);box-shadow:0 22px 42px rgba(0,0,0,.24);}
.work-thumb{aspect-ratio:16/10;overflow:hidden;background:#2a2d30;}
.work-thumb img{width:100%;height:100%;object-fit:cover;transition:.4s ease;}
.work-card:hover .work-thumb img{transform:scale(1.05);}
.work-body{padding:16px 18px 18px;}
.work-cat{margin:0 0 6px;color:#d2a8ae;font-size:11px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;}
.work-body h3{margin:0 0 8px;font-size:20px;line-height:1.45;color:#fff;font-family:var(--serif);letter-spacing:.05em;}
.work-body p:last-child{margin:0;color:rgba(255,255,255,.75);font-size:13px;line-height:1.8;}
.works-action{text-align:center;margin:28px 0 0;}
.works-action .btn{border-color:rgba(255,255,255,.42);color:#fff;background:transparent;}
.works-action .btn:hover{background:#fff;color:var(--wine);border-color:#fff;box-shadow:0 12px 28px rgba(0,0,0,.2);}
@media (max-width:900px){
  .works-grid.refined{grid-template-columns:1fr 1fr;gap:16px;}
  .work-body{padding:14px 14px 16px;}
  .work-body h3{font-size:17px;}
}
@media (max-width:520px){
  .works-grid.refined{grid-template-columns:1fr;}
}

/* v4 cases page copy/font correction */
.case-lead-heading{
  font-family: var(--sans) !important;
  font-size: clamp(34px, 4.2vw, 56px) !important;
  font-weight: 800 !important;
  letter-spacing: .08em !important;
  line-height: 1.45 !important;
  color: var(--wine) !important;
}
.case-lead-text{
  font-family: var(--sans) !important;
  font-size: clamp(15px, 1.35vw, 18px) !important;
  line-height: 2.05 !important;
  letter-spacing: .05em !important;
}


/* v5 typography direction: serif only for brand/hero emotion, gothic for explanatory pages */
body{
  font-family: var(--sans);
}
.hero h1,
.center-lead h2,
.name-story h2{
  font-family: var(--serif) !important;
}
.page-copy h1,
.lead-block h2,
.section-title h2,
.service-card h3,
.reason h3,
.works-head h2,
.work-body h3,
.flow-step h3,
.detail-card h3,
.small-box h3,
.case-body h3,
.wide-card h3,
.contact-box h3,
.privacy h2,
.cta h2{
  font-family: var(--sans) !important;
  font-weight: 800;
  letter-spacing: .08em;
}
.page-copy h1{
  font-size: clamp(42px, 5vw, 64px);
}
.lead-block h2{
  color: var(--wine);
  line-height: 1.55;
}
.section-title h2{
  color:#2a2424;
}
.case-lead-heading{
  font-family: var(--sans) !important;
}
.hero .lead{
  font-family: var(--serif) !important;
}
.faq-q,
.nav,
.btn,
.work-cat,
.eyebrow{
  font-family: var(--sans) !important;
}


/* ===== v6: navigation, Google Fonts, stronger typography, expanded service page ===== */
:root{
  --serif:'Noto Serif JP',"Yu Mincho","Hiragino Mincho ProN",serif;
  --sans:'Noto Sans JP',"Yu Gothic","Hiragino Kaku Gothic ProN",system-ui,sans-serif;
}
html{scroll-padding-top:104px;}
body{
  font-family:var(--sans);
  font-size:16px;
  line-height:1.9;
  letter-spacing:.035em;
  color:#2f2f2f;
}
p,li,td{
  font-size:16px;
  line-height:1.95;
}
.nav{
  gap:24px;
  font-size:13px;
  font-weight:800;
  letter-spacing:.04em;
}
.nav a{white-space:nowrap;}
.nav-cta{padding:0 28px;}
.hero h1{
  font-family:var(--serif)!important;
  font-weight:900!important;
}
.hero .lead{
  font-family:var(--sans)!important;
  font-size:clamp(24px,2.2vw,36px);
  font-weight:900;
}
.hero p{font-size:17px;}
.name-story h2{
  font-family:var(--sans)!important;
  font-weight:900;
  font-size:clamp(30px,3.2vw,44px);
}
.page-copy h1{
  font-family:var(--sans)!important;
  font-weight:900!important;
  font-size:clamp(52px,6vw,76px)!important;
  letter-spacing:.08em;
}
.page-copy p{
  font-size:clamp(18px,1.5vw,22px)!important;
  font-weight:800;
  line-height:1.8;
}
.lead-block h2{
  font-family:var(--sans)!important;
  font-size:clamp(36px,4.2vw,56px)!important;
  font-weight:900!important;
  letter-spacing:.06em!important;
  line-height:1.45!important;
}
.lead-block p{
  font-size:17px;
  line-height:2.05;
}
.section-title{margin-bottom:38px;}
.section-title h2{
  font-family:var(--sans)!important;
  font-size:clamp(34px,3.8vw,48px)!important;
  font-weight:900!important;
  letter-spacing:.08em!important;
}
.section-title h2:after{
  width:64px;
  height:3px;
  margin-top:16px;
}
.service-card h3,
.reason h3,
.work-body h3,
.flow-step h3,
.detail-card h3,
.small-box h3,
.case-body h3,
.wide-card h3,
.contact-box h3,
.contact-box h2,
.privacy h2,
.cta h2{
  font-family:var(--sans)!important;
  font-weight:900!important;
  letter-spacing:.04em;
}
.service-card h3{font-size:24px;}
.service-card p{font-size:15px;line-height:1.9;}
.reason p,.flow-step p{font-size:14px;}
.work-body p:last-child,.case-body p,.small-box p,.detail-card p{font-size:15px;line-height:1.9;}
.cta h2{font-size:clamp(32px,3.2vw,46px)!important;}
.cta p{font-size:16px;line-height:2;color:#f6e7ea;}

.service-detail-section{padding-top:34px;}
.service-detail{
  display:grid;
  grid-template-columns:42% 1fr;
  gap:42px;
  align-items:stretch;
  padding:38px;
  margin:0 0 34px;
  background:#fff;
  border:1px solid var(--line);
  box-shadow:0 18px 42px rgba(45,20,20,.06);
  scroll-margin-top:110px;
}
.service-detail.reverse{
  grid-template-columns:1fr 42%;
}
.service-detail.reverse .service-detail-image{order:2;}
.service-detail.reverse .service-detail-body{order:1;}
.service-detail-image{
  min-height:360px;
  overflow:hidden;
  background:#eee;
}
.service-detail-image img{
  width:100%;
  height:100%;
  object-fit:cover;
}
.service-detail-body{
  display:flex;
  flex-direction:column;
  justify-content:center;
}
.service-number{
  margin:0 0 8px;
  color:var(--wine);
  font-size:13px;
  font-weight:900;
  letter-spacing:.12em;
  text-transform:uppercase;
}
.service-detail h3{
  margin:0 0 18px;
  color:#2a2020;
  font-size:clamp(30px,3.2vw,44px);
  line-height:1.3;
}
.service-lead{
  margin:0 0 24px;
  font-size:17px;
  line-height:2.05;
}
.service-detail-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:20px;
}
.service-detail-grid div{
  background:#fbf8f7;
  border:1px solid #eee2df;
  padding:18px 20px;
}
.service-detail-grid h4{
  margin:0 0 10px;
  color:var(--wine);
  font-size:16px;
  font-weight:900;
}
.service-detail-grid ul{
  margin:0;
  padding-left:1.1em;
}
.service-detail-grid li{
  font-size:15px;
  line-height:1.85;
  margin:.25em 0;
}
.contact-form-section{
  padding:58px 0 72px;
  background:#fff;
}
.contact-form-wrap{
  background:#fff;
  border:1px solid var(--line);
  box-shadow:0 18px 44px rgba(45,20,20,.06);
  padding:38px;
}
.contact-panel{
  align-items:stretch;
}
.contact-box h2{
  font-size:26px;
  color:#3a2424;
  margin:0 0 14px;
}
.form-button-area{display:none!important;}
@media(max-width:1180px){
  .nav{gap:16px;font-size:12px;}
  .nav-cta{padding:0 22px;}
}
@media(max-width:900px){
  body{font-size:16px;}
  p,li,td{font-size:15.5px;}
  .page-copy h1{font-size:44px!important;}
  .lead-block h2{font-size:31px!important;}
  .section-title h2{font-size:31px!important;}
  .service-detail,
  .service-detail.reverse{
    grid-template-columns:1fr;
    padding:22px;
    gap:22px;
  }
  .service-detail.reverse .service-detail-image,
  .service-detail.reverse .service-detail-body{order:initial;}
  .service-detail-image{min-height:240px;}
  .service-detail-grid{grid-template-columns:1fr;}
  .contact-form-wrap{padding:22px;}
}
@media(max-width:520px){
  .hero p{font-size:15.5px;}
  .service-detail h3{font-size:28px;}
  .service-lead{font-size:15.5px;}
}



/* ===== v7: quieter headings + intentional line breaks ===== */
.hero .lead,
.page-copy h1,
.lead-block h2,
.section-title h2,
.name-story h2,
.service-detail h3,
.service-card h3,
.reason h3,
.work-body h3,
.case-body h3,
.small-box h3,
.detail-card h3,
.contact-box h2,
.contact-box h3,
.privacy h2,
.cta h2{
  font-weight:800!important;
}

.hero h1{
  font-weight:800!important;
}

/* 見出しが変な位置で割れにくいようにする */
.page-copy h1,
.lead-block h2,
.section-title h2,
.name-story h2,
.service-detail h3,
.cta h2{
  word-break:keep-all;
  overflow-wrap:normal;
  line-break:strict;
  text-wrap:balance;
}

/* A to Z セクションは意味単位で改行 */
.name-story h2{
  font-family:var(--sans)!important;
  font-size:clamp(30px,2.8vw,40px)!important;
  line-height:1.55!important;
  letter-spacing:.055em!important;
  font-weight:800!important;
  color:#4a2024;
}

.name-story h2 .heading-line{
  display:block;
  white-space:nowrap;
}

.name-story p:last-child{
  font-size:16px;
  line-height:2.05;
}

/* 下層ページやセクション見出しも少し落ち着かせる */
.page-copy h1{
  font-size:clamp(48px,5vw,68px)!important;
  line-height:1.25!important;
}

.lead-block h2{
  font-size:clamp(32px,3.5vw,48px)!important;
  line-height:1.5!important;
}

.section-title h2{
  font-size:clamp(31px,3.2vw,42px)!important;
  line-height:1.45!important;
}

.service-detail h3{
  font-size:clamp(29px,2.7vw,38px)!important;
  line-height:1.35!important;
}

.cta h2{
  font-size:clamp(30px,2.8vw,40px)!important;
  line-height:1.45!important;
}

/* カード見出しは太すぎず、読みやすさ優先 */
.service-card h3,
.work-body h3,
.case-body h3,
.small-box h3,
.detail-card h3,
.contact-box h2,
.contact-box h3{
  font-weight:700!important;
}

/* スマホでは見出しを少し締めて、強制改行した行が暴れないようにする */
@media(max-width:900px){
  .name-story h2{
    font-size:clamp(28px,7.2vw,38px)!important;
    line-height:1.55!important;
  }
  .page-copy h1{
    font-size:clamp(40px,10vw,52px)!important;
  }
  .lead-block h2{
    font-size:clamp(28px,7.6vw,38px)!important;
  }
  .section-title h2{
    font-size:clamp(28px,7vw,36px)!important;
  }
}

@media(max-width:520px){
  .name-story h2 .heading-line{
    white-space:normal;
  }
  .name-story h2{
    letter-spacing:.035em!important;
  }
}



/* ===== v8: rich flow page ===== */
.flow-lead{
  background:#fff;
  padding:64px 0;
}
.flow-lead-inner{
  display:grid;
  grid-template-columns:1.05fr .85fr;
  gap:46px;
  align-items:center;
}
.flow-lead .lead-block h2{}
.flow-lead-copy h2{
  font-family:var(--sans)!important;
  font-size:clamp(34px,3.6vw,50px)!important;
  font-weight:800!important;
  line-height:1.45!important;
  letter-spacing:.055em!important;
  color:var(--wine);
  margin:8px 0 20px;
  word-break:keep-all;
  text-wrap:balance;
}
.flow-lead-copy p:not(.eyebrow){
  font-size:17px;
  line-height:2.1;
  margin:0;
}
.flow-lead-visual{
  height:360px;
  overflow:hidden;
  border:1px solid var(--line);
  box-shadow:0 18px 44px rgba(45,20,20,.08);
}
.flow-lead-visual img{
  width:100%;
  height:100%;
  object-fit:cover;
}
.flow-phase-section{
  background:#fbf8f7;
}
.flow-phases{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:24px;
}
.flow-phase{
  position:relative;
  background:#fff;
  border:1px solid var(--line);
  padding:30px 28px;
  box-shadow:0 14px 34px rgba(45,20,20,.05);
}
.flow-phase:after{
  content:"";
  position:absolute;
  right:-18px;
  top:50%;
  width:36px;
  height:1px;
  background:#d7c8c5;
}
.flow-phase:last-child:after{display:none;}
.flow-phase-icon{
  width:56px;
  height:56px;
  display:grid;
  place-items:center;
  background:#f7eeee;
  border-radius:50%;
  margin-bottom:18px;
}
.flow-phase-icon img{
  width:28px;
  height:28px;
}
.flow-phase-num{
  margin:0 0 4px;
  color:var(--wine);
  font-size:13px;
  font-weight:800;
  letter-spacing:.12em;
  text-transform:uppercase;
}
.flow-phase h3{
  margin:0 0 10px;
  font-size:26px;
  font-weight:800!important;
  color:#2a2020;
}
.flow-phase p:last-child{
  margin:0;
  font-size:15.5px;
  line-height:1.95;
}

.flow-steps-section{
  background:#fff;
}
.flow-timeline{
  position:relative;
  max-width:980px;
  margin:0 auto;
}
.flow-timeline:before{
  content:"";
  position:absolute;
  left:55px;
  top:10px;
  bottom:10px;
  width:1px;
  background:#e3d7d4;
}
.flow-item{
  position:relative;
  display:grid;
  grid-template-columns:110px 72px 1fr;
  gap:20px;
  align-items:start;
  margin-bottom:22px;
}
.flow-item:last-child{margin-bottom:0;}
.flow-item-num{
  color:var(--wine);
  font-family:Georgia,serif;
  font-weight:700;
  font-size:28px;
  line-height:72px;
  text-align:center;
  background:#fff;
  position:relative;
  z-index:1;
}
.flow-item-icon{
  width:72px;
  height:72px;
  border-radius:50%;
  background:var(--wine);
  display:grid;
  place-items:center;
  box-shadow:0 14px 30px rgba(122,15,34,.18);
  position:relative;
  z-index:2;
}
.flow-item-icon img{
  width:34px;
  height:34px;
  filter:brightness(0) invert(1);
}
.flow-item-body{
  background:#fff;
  border:1px solid var(--line);
  padding:24px 28px;
  box-shadow:0 12px 30px rgba(45,20,20,.045);
}
.flow-item-body h3{
  margin:0 0 8px;
  font-size:25px;
  font-weight:800!important;
  color:#2a2020;
}
.flow-item-body p{
  margin:0;
  font-size:16px;
}
.flow-note{
  margin-top:12px!important;
  padding-top:12px;
  border-top:1px solid #eee2df;
  color:#7b0715;
  font-size:14.5px!important;
  font-weight:700;
}

.flow-type-section{
  background:#181a1c;
  color:#fff;
}
.flow-type-section .section-title h2{
  color:#fff!important;
}
.flow-type-section .eyebrow{
  color:#d8adb4;
}
.flow-type-grid{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:18px;
}
.flow-type-card{
  background:#232629;
  border:1px solid rgba(255,255,255,.11);
  overflow:hidden;
  box-shadow:0 16px 36px rgba(0,0,0,.18);
}
.flow-type-card img{
  height:150px;
  width:100%;
  object-fit:cover;
}
.flow-type-card div{
  padding:20px 18px 22px;
}
.flow-type-card h3{
  margin:0 0 10px;
  color:#fff;
  font-size:20px;
  font-weight:800!important;
}
.flow-type-card p{
  margin:0;
  color:rgba(255,255,255,.78);
  font-size:15px;
  line-height:1.9;
}

.flow-prep-section{
  background:#fbf8f7;
}
.prep-layout{
  display:grid;
  grid-template-columns:1.1fr .9fr;
  gap:26px;
  align-items:stretch;
}
.prep-main{
  background:#fff;
  border:1px solid var(--line);
  padding:32px;
  box-shadow:0 12px 32px rgba(45,20,20,.05);
}
.prep-main h3{
  margin:0 0 12px;
  font-size:26px;
  font-weight:800!important;
  color:#3a2424;
}
.prep-main p{
  margin:0;
  font-size:16px;
  line-height:2.05;
}
.prep-checks{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:12px;
}
.prep-checks span{
  display:flex;
  align-items:center;
  gap:10px;
  background:#fff;
  border:1px solid var(--line);
  padding:16px 18px;
  font-weight:800;
  color:#3a2424;
}
.prep-checks span:before{
  content:"";
  width:18px;
  height:18px;
  border-radius:50%;
  background:var(--wine);
  box-shadow:inset 0 0 0 5px #fff;
  border:1px solid var(--wine);
  flex:0 0 auto;
}

@media(max-width:900px){
  .flow-lead-inner,
  .prep-layout{
    grid-template-columns:1fr;
  }
  .flow-lead-visual{
    height:260px;
  }
  .flow-phases,
  .flow-type-grid{
    grid-template-columns:1fr;
  }
  .flow-phase:after{
    display:none;
  }
  .flow-timeline:before{
    left:35px;
  }
  .flow-item{
    grid-template-columns:70px 1fr;
    gap:14px;
  }
  .flow-item-num{
    grid-column:1;
    grid-row:1;
    width:70px;
    font-size:22px;
    line-height:64px;
  }
  .flow-item-icon{
    display:none;
  }
  .flow-item-body{
    grid-column:2;
    padding:20px;
  }
  .flow-item-body h3{
    font-size:21px;
  }
  .prep-checks{
    grid-template-columns:1fr 1fr;
  }
}
@media(max-width:520px){
  .flow-lead{
    padding:48px 0;
  }
  .flow-lead-copy h2{
    font-size:30px!important;
  }
  .flow-item{
    grid-template-columns:1fr;
  }
  .flow-timeline:before{
    display:none;
  }
  .flow-item-num{
    width:auto;
    line-height:1;
    text-align:left;
    margin-bottom:4px;
  }
  .flow-item-body{
    grid-column:1;
  }
  .prep-checks{
    grid-template-columns:1fr;
  }
}



/* ===== v9: fixed rich flow page with photos ===== */
.flow-intro-section{
  padding:72px 0;
  background:#fff;
}
.flow-intro{
  display:grid;
  grid-template-columns:.95fr 1.05fr;
  gap:52px;
  align-items:center;
}
.flow-intro-copy h2{
  margin:10px 0 22px;
  color:var(--wine);
  font-size:clamp(34px,3.6vw,50px);
  font-weight:800;
  line-height:1.45;
  letter-spacing:.055em;
  word-break:keep-all;
  text-wrap:balance;
}
.flow-intro-copy h2 span{
  display:block;
}
.flow-intro-copy p:not(.eyebrow){
  font-size:17px;
  line-height:2.1;
  margin:0;
}
.flow-intro-photo{
  height:420px;
  overflow:hidden;
  border:1px solid var(--line);
  box-shadow:0 20px 50px rgba(45,20,20,.10);
}
.flow-intro-photo img{
  width:100%;
  height:100%;
  object-fit:cover;
}
.flow-overview-section{
  background:#fbf8f7;
}
.flow-overview-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:24px;
}
.flow-overview-card{
  background:#fff;
  border:1px solid var(--line);
  padding:32px 30px;
  position:relative;
  box-shadow:0 14px 34px rgba(45,20,20,.055);
}
.flow-overview-card:after{
  content:"";
  position:absolute;
  right:-20px;
  top:50%;
  width:40px;
  height:1px;
  background:#d8c9c7;
}
.flow-overview-card:last-child:after{display:none;}
.flow-overview-icon{
  width:58px;
  height:58px;
  display:grid;
  place-items:center;
  border-radius:50%;
  background:#f6ecee;
  margin-bottom:18px;
}
.flow-overview-icon img{
  width:30px;
  height:30px;
}
.flow-overview-num{
  margin:0 0 4px;
  color:var(--wine);
  font-size:13px;
  font-weight:800;
  letter-spacing:.14em;
}
.flow-overview-card h3{
  margin:0 0 10px;
  font-size:28px;
  font-weight:800!important;
  color:#2a2020;
}
.flow-overview-card p:last-child{
  margin:0;
  font-size:15.5px;
  line-height:1.95;
}

.flow-main-steps-section{
  background:#fff;
}
.flow-step-feature{
  display:grid;
  grid-template-columns:.9fr 1.1fr;
  gap:34px;
  align-items:center;
  margin-bottom:42px;
  padding:28px;
  background:#fff;
  border:1px solid var(--line);
  box-shadow:0 14px 38px rgba(45,20,20,.045);
}
.flow-step-feature-copy h3{
  margin:0 0 12px;
  font-size:30px;
  font-weight:800!important;
  color:#3a2424;
  line-height:1.45;
}
.flow-step-feature-copy p{
  margin:0;
  font-size:16px;
  line-height:2;
}
.flow-step-feature-photos{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:14px;
}
.flow-step-feature-photos img{
  width:100%;
  height:260px;
  object-fit:cover;
}
.flow-timeline-v9{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:18px;
}
.flow-step-v9{
  background:#fff;
  border:1px solid var(--line);
  padding:24px 22px;
  box-shadow:0 12px 30px rgba(45,20,20,.04);
  min-height:300px;
}
.flow-step-number{
  color:var(--wine);
  font-family:Georgia,serif;
  font-size:34px;
  font-weight:700;
  line-height:1;
  margin-bottom:18px;
}
.flow-step-content h3{
  margin:0 0 10px;
  font-size:22px;
  font-weight:800!important;
  color:#2a2020;
  line-height:1.45;
}
.flow-step-content p{
  margin:0 0 16px;
  font-size:15.5px;
  line-height:1.9;
}
.flow-step-content ul{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  list-style:none;
  padding:0;
  margin:0;
}
.flow-step-content li{
  font-size:13px;
  line-height:1.4;
  color:var(--wine);
  background:#fbf1f3;
  border:1px solid #efd9de;
  padding:6px 9px;
  font-weight:700;
}

.flow-type-section-v9{
  background:#181a1c;
  color:#fff;
}
.flow-type-section-v9 .section-title h2{
  color:#fff!important;
}
.flow-type-section-v9 .eyebrow{
  color:#d8adb4;
}
.flow-type-grid-v9{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:18px;
}
.flow-type-card-v9{
  background:#232629;
  border:1px solid rgba(255,255,255,.11);
  overflow:hidden;
  box-shadow:0 18px 38px rgba(0,0,0,.2);
}
.flow-type-card-v9 img{
  height:170px;
  width:100%;
  object-fit:cover;
}
.flow-type-card-v9 div{
  padding:22px 20px 24px;
}
.flow-type-card-v9 h3{
  margin:0 0 10px;
  font-size:21px;
  font-weight:800!important;
  color:#fff;
}
.flow-type-card-v9 p{
  margin:0;
  font-size:15px;
  line-height:1.9;
  color:rgba(255,255,255,.78);
}

.flow-prep-section-v9{
  background:#fbf8f7;
}
.prep-v9{
  display:grid;
  grid-template-columns:.9fr 1.1fr;
  gap:36px;
  align-items:center;
}
.prep-photo{
  height:420px;
  overflow:hidden;
  border:1px solid var(--line);
  box-shadow:0 18px 44px rgba(45,20,20,.08);
}
.prep-photo img{
  width:100%;
  height:100%;
  object-fit:cover;
}
.prep-copy{
  background:#fff;
  border:1px solid var(--line);
  padding:36px;
  box-shadow:0 14px 34px rgba(45,20,20,.05);
}
.prep-copy h2{
  margin:8px 0 14px;
  color:#3a2424;
  font-size:32px;
  font-weight:800!important;
  line-height:1.45;
}
.prep-copy p:not(.eyebrow){
  margin:0 0 22px;
  font-size:16px;
  line-height:2.05;
}
.prep-checks-v9{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:10px;
}
.prep-checks-v9 span{
  display:flex;
  align-items:center;
  gap:10px;
  border:1px solid var(--line);
  background:#fbf8f7;
  padding:12px 14px;
  font-size:14px;
  font-weight:800;
  color:#3a2424;
}
.prep-checks-v9 span:before{
  content:"";
  width:14px;
  height:14px;
  border-radius:50%;
  background:var(--wine);
  flex:0 0 auto;
}

@media(max-width:1100px){
  .flow-timeline-v9{
    grid-template-columns:repeat(2,1fr);
  }
  .flow-type-grid-v9{
    grid-template-columns:repeat(2,1fr);
  }
}
@media(max-width:900px){
  .flow-intro,
  .flow-step-feature,
  .prep-v9{
    grid-template-columns:1fr;
  }
  .flow-intro-photo,
  .prep-photo{
    height:280px;
  }
  .flow-overview-grid{
    grid-template-columns:1fr;
  }
  .flow-overview-card:after{
    display:none;
  }
  .flow-step-feature-photos img{
    height:210px;
  }
}
@media(max-width:620px){
  .flow-timeline-v9,
  .flow-type-grid-v9{
    grid-template-columns:1fr;
  }
  .flow-step-feature-photos{
    grid-template-columns:1fr;
  }
  .flow-intro-copy h2{
    font-size:30px;
  }
  .prep-checks-v9{
    grid-template-columns:1fr;
  }
}



/* ===== v10: flow page breathing room / less cramped ===== */
.page-hero{
  border-bottom:1px solid #eee;
}
.page-hero-inner{
  min-height:380px;
}
.page-copy{
  padding-top:70px;
  padding-bottom:70px;
}
.page-copy h1{
  font-size:clamp(46px,4.8vw,66px)!important;
  line-height:1.22!important;
}
.page-copy p{
  max-width:620px;
  line-height:1.85!important;
}

.flow-intro-section{
  padding:96px 0 104px!important;
  background:
    linear-gradient(180deg,#fff 0%,#fff 58%,#fbf8f7 100%);
}
.flow-intro{
  grid-template-columns:.88fr 1.12fr!important;
  gap:76px!important;
  align-items:center!important;
}
.flow-intro-copy{
  padding:24px 0;
}
.flow-intro-copy .eyebrow{
  margin-bottom:16px;
}
.flow-intro-copy h2{
  font-size:clamp(34px,3.15vw,44px)!important;
  line-height:1.58!important;
  letter-spacing:.045em!important;
  margin:0 0 28px!important;
  font-weight:800!important;
}
.flow-intro-copy p:not(.eyebrow){
  max-width:560px;
  font-size:16.5px!important;
  line-height:2.15!important;
}
.flow-intro-photo{
  height:390px!important;
  max-width:640px;
  justify-self:end;
  position:relative;
  box-shadow:0 24px 58px rgba(45,20,20,.09)!important;
}
.flow-intro-photo:before{
  content:"";
  position:absolute;
  left:-26px;
  top:26px;
  width:100%;
  height:100%;
  border:1px solid #e8dcda;
  z-index:0;
}
.flow-intro-photo img{
  position:relative;
  z-index:1;
}

.flow-mini-route{
  display:flex;
  align-items:center;
  gap:12px;
  flex-wrap:wrap;
  margin-top:34px;
}
.flow-mini-route span{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:58px;
  height:34px;
  padding:0 12px;
  border:1px solid #e5d4d2;
  background:#fff;
  color:var(--wine);
  font-size:13px;
  font-weight:800;
  letter-spacing:.08em;
}
.flow-mini-route i{
  display:block;
  width:24px;
  height:1px;
  background:#d8c4c1;
}

.flow-overview-section,
.flow-main-steps-section,
.flow-type-section-v9,
.flow-prep-section-v9{
  padding-top:86px!important;
  padding-bottom:96px!important;
}
.flow-overview-grid{
  gap:28px!important;
}
.flow-overview-card{
  padding:34px 32px!important;
}
.flow-step-feature{
  margin-bottom:54px!important;
  padding:36px!important;
  grid-template-columns:1fr 1fr!important;
  gap:44px!important;
}
.flow-step-feature-copy h3{
  font-size:clamp(26px,2.4vw,34px)!important;
}
.flow-step-feature-photos img{
  height:230px!important;
}
.flow-timeline-v9{
  gap:22px!important;
}
.flow-step-v9{
  padding:28px 26px!important;
  min-height:285px!important;
}
.flow-step-number{
  font-size:30px!important;
  margin-bottom:20px!important;
}
.flow-step-content h3{
  font-size:21px!important;
}
.flow-type-grid-v9{
  gap:22px!important;
}
.flow-type-card-v9 img{
  height:185px!important;
}
.prep-v9{
  gap:52px!important;
}
.prep-copy{
  padding:42px!important;
}
.prep-copy h2{
  font-size:clamp(28px,2.7vw,38px)!important;
}
@media(max-width:900px){
  .page-hero-inner{
    min-height:auto;
  }
  .page-copy{
    padding-top:52px;
    padding-bottom:52px;
  }
  .flow-intro-section{
    padding:70px 0 78px!important;
  }
  .flow-intro{
    gap:36px!important;
  }
  .flow-intro-copy{
    padding:0;
  }
  .flow-intro-photo{
    height:280px!important;
    max-width:none;
    justify-self:stretch;
  }
  .flow-intro-photo:before{
    display:none;
  }
  .flow-overview-section,
  .flow-main-steps-section,
  .flow-type-section-v9,
  .flow-prep-section-v9{
    padding-top:68px!important;
    padding-bottom:74px!important;
  }
  .flow-step-feature{
    grid-template-columns:1fr!important;
    padding:24px!important;
    gap:26px!important;
  }
}
@media(max-width:620px){
  .flow-intro-copy h2{
    font-size:30px!important;
  }
  .flow-mini-route{
    gap:8px;
  }
  .flow-mini-route span{
    min-width:52px;
    font-size:12px;
  }
  .flow-mini-route i{
    width:14px;
  }
}



/* ===== v11: modern editorial direction / fewer borders, larger photos, more whitespace ===== */
:root{
  --shadow-soft:0 22px 58px rgba(45,20,20,.07);
  --shadow-card:0 16px 42px rgba(45,20,20,.055);
  --hairline:rgba(122,15,34,.12);
}

/* Overall: rely less on borders, more on air and contrast */
.section{
  padding-top:82px;
  padding-bottom:88px;
}
.center-lead,
.name-story{
  border-top:0!important;
  border-bottom:0!important;
}
.name-story{
  padding:76px 0!important;
  background:linear-gradient(180deg,#fff 0%,#fbf8f7 100%)!important;
}
.name-story-inner{
  gap:clamp(28px,5vw,72px)!important;
}

/* Cards: soften the old framed feeling */
.service-card,
.reason,
.detail-card,
.small-box,
.case-card,
.wide-card,
.contact-box,
.faq-row{
  border-color:rgba(122,15,34,.08)!important;
}
.service-card,
.detail-card,
.small-box,
.case-card,
.contact-box{
  box-shadow:var(--shadow-card)!important;
}
.service-card{
  border:0!important;
  background:#fff!important;
}
.service-card .thumb{
  height:156px!important;
}
.service-card .body{
  padding:36px 26px 24px!important;
}
.service-card .icon{
  box-shadow:0 12px 30px rgba(122,15,34,.18);
}

/* TOP reasons: no heavy grid lines */
.reasons{
  border:0!important;
  gap:18px!important;
}
.reason{
  border:0!important;
  background:#fff!important;
  box-shadow:var(--shadow-card);
  padding:30px 26px!important;
}

/* Service page: turn boxed blocks into editorial sections */
.service-detail-section{
  padding-top:36px!important;
}
.service-detail-section .wrap{
  width:min(100% - 72px,1280px)!important;
}
.service-detail{
  border:0!important;
  box-shadow:none!important;
  background:transparent!important;
  padding:96px 0!important;
  margin:0!important;
  grid-template-columns:minmax(430px,50%) minmax(0,1fr)!important;
  gap:clamp(48px,7vw,96px)!important;
  align-items:center!important;
}
.service-detail:not(:last-child){
  border-bottom:1px solid rgba(122,15,34,.08)!important;
}
.service-detail.reverse{
  grid-template-columns:minmax(0,1fr) minmax(430px,50%)!important;
}
.service-detail-image{
  min-height:520px!important;
  border:0!important;
  box-shadow:0 26px 72px rgba(45,20,20,.10)!important;
}
.service-detail-image img{
  transform:scale(1.02);
  filter:saturate(.92) contrast(1.04) brightness(1.02);
}
.service-detail-body{
  max-width:640px;
}
.service-detail h3{
  margin-bottom:24px!important;
}
.service-lead{
  margin-bottom:34px!important;
  color:#303030;
}
.service-detail-grid{
  gap:34px!important;
}
.service-detail-grid div{
  background:transparent!important;
  border:0!important;
  border-top:1px solid var(--hairline)!important;
  padding:20px 0 0!important;
}
.service-detail-grid h4{
  font-size:15px!important;
  letter-spacing:.08em;
}
.service-detail-grid ul{
  padding-left:1.1em!important;
}

/* Generic small boxes: more modern, lighter */
.six-grid{
  gap:26px!important;
}
.small-box,
.detail-card,
.wide-card{
  border:0!important;
  background:#fff!important;
  box-shadow:var(--shadow-card)!important;
  padding:32px 30px!important;
}

/* Cases: less frame, bigger visual */
.case-grid{
  gap:34px!important;
}
.case-card{
  border:0!important;
  background:transparent!important;
  box-shadow:none!important;
}
.case-card img{
  height:245px!important;
  box-shadow:var(--shadow-card);
}
.case-body{
  padding:22px 2px 0!important;
}
.case-body .cat{
  letter-spacing:.12em;
}
.case-body h3{
  margin-top:8px!important;
}

/* Dark case section: clean premium cards */
.works-grid.refined{
  gap:26px!important;
}
.work-card{
  border:0!important;
  background:rgba(255,255,255,.055)!important;
  box-shadow:0 20px 52px rgba(0,0,0,.18)!important;
}
.work-thumb{
  aspect-ratio:16/11!important;
}
.work-body{
  padding:20px 20px 22px!important;
}

/* Flow page: remove excessive framed feeling */
.flow-overview-card,
.flow-step-feature,
.flow-step-v9,
.flow-type-card-v9,
.prep-copy{
  border:0!important;
}
.flow-overview-card,
.flow-step-v9,
.prep-copy{
  box-shadow:var(--shadow-card)!important;
}
.flow-step-feature{
  box-shadow:0 20px 56px rgba(45,20,20,.055)!important;
}
.flow-step-v9{
  background:linear-gradient(180deg,#fff 0%,#fffdfc 100%)!important;
}
.flow-type-card-v9{
  box-shadow:0 20px 46px rgba(0,0,0,.22)!important;
}
.flow-intro-photo,
.prep-photo{
  border:0!important;
}

/* About page visual block */
.about-visual-section{
  padding:28px 0 96px;
  background:#fff;
}
.about-visual{
  display:grid;
  grid-template-columns:1.05fr .95fr;
  gap:clamp(44px,6vw,84px);
  align-items:center;
}
.about-visual-photo{
  height:460px;
  overflow:hidden;
  box-shadow:0 26px 72px rgba(45,20,20,.10);
}
.about-visual-photo img{
  width:100%;
  height:100%;
  object-fit:cover;
  filter:saturate(.92) contrast(1.05) brightness(1.02);
}
.about-visual-copy h2{
  margin:10px 0 20px;
  color:var(--wine);
  font-size:clamp(32px,3.25vw,46px);
  line-height:1.5;
  font-weight:800;
  letter-spacing:.055em;
  word-break:keep-all;
  text-wrap:balance;
}
.about-visual-copy p:not(.eyebrow){
  margin:0;
  font-size:17px;
  line-height:2.1;
}

/* Contact / FAQ / Privacy: keep functional but cleaner */
.contact-panel{
  gap:34px!important;
}
.contact-box{
  border:0!important;
}
.faq-row{
  border-left:0!important;
  border-right:0!important;
  background:transparent!important;
}
.faq-q{
  padding:18px 6px!important;
}
.faq-a{
  padding-left:6px!important;
  padding-right:6px!important;
}
.privacy .wide-card,
.privacy section,
.table{
  border-color:rgba(122,15,34,.08)!important;
}

/* Page hero: softer separation */
.page-hero{
  border-bottom:0!important;
  box-shadow:inset 0 -1px 0 rgba(122,15,34,.08);
}
.page-photo:before{
  width:58%!important;
}

/* CTA: keep strong but less boxed */
.cta{
  padding:74px 0!important;
}
.cta .btn{
  box-shadow:0 18px 42px rgba(0,0,0,.16);
}

@media(max-width:1100px){
  .service-detail,
  .service-detail.reverse{
    grid-template-columns:1fr!important;
    gap:38px!important;
    padding:76px 0!important;
  }
  .service-detail.reverse .service-detail-image,
  .service-detail.reverse .service-detail-body{
    order:initial!important;
  }
  .service-detail-image{
    min-height:360px!important;
  }
}
@media(max-width:900px){
  .section{
    padding-top:66px;
    padding-bottom:72px;
  }
  .service-detail-section .wrap{
    width:min(100% - 36px,680px)!important;
  }
  .service-detail{
    padding:62px 0!important;
  }
  .service-detail-image{
    min-height:280px!important;
  }
  .about-visual{
    grid-template-columns:1fr;
  }
  .about-visual-photo{
    height:300px;
  }
  .case-card img{
    height:220px!important;
  }
}
@media(max-width:520px){
  .service-detail-grid{
    gap:22px!important;
  }
  .service-card .thumb{
    height:190px!important;
  }
  .about-visual-section{
    padding-bottom:72px;
  }
}



/* ===== v12: fix broken flow icons / cleaner phase cards ===== */
.flow-overview-icon{
  width:64px!important;
  height:64px!important;
  border-radius:50%!important;
  background:linear-gradient(135deg,#7a0f22,#9b1b2d)!important;
  color:#fff!important;
  display:grid!important;
  place-items:center!important;
  margin-bottom:24px!important;
  box-shadow:0 16px 32px rgba(122,15,34,.18);
}
.flow-overview-icon img{
  display:none!important;
}
.flow-overview-icon span{
  font-size:14px;
  font-weight:900;
  letter-spacing:.08em;
}
.flow-overview-card{
  border-radius:0;
  background:linear-gradient(180deg,#fff 0%,#fffdfc 100%)!important;
  position:relative;
  overflow:hidden;
}
.flow-overview-card:before{
  content:"";
  position:absolute;
  left:0;
  top:0;
  width:100%;
  height:4px;
  background:linear-gradient(90deg,var(--wine),rgba(122,15,34,0));
  opacity:.85;
}
.flow-overview-card h3{
  font-size:26px!important;
}



/* ===== v13: modern web-production-site polish ===== */
:root{
  --wine:#781122;
  --wine2:#9b1b2f;
  --ink:#252122;
  --text:#373232;
  --muted:#6e6666;
  --paper:#fffaf7;
  --soft:#f7f1ee;
  --soft2:#f1e8e4;
  --line:rgba(120,17,34,.10);
  --radius-lg:28px;
  --radius-md:20px;
  --radius-sm:14px;
  --shadow-modern:0 28px 80px rgba(50,28,28,.10);
  --shadow-light:0 18px 54px rgba(50,28,28,.07);
  --latin:'Outfit',var(--sans);
  --sans:'Noto Sans JP',"Yu Gothic","Hiragino Kaku Gothic ProN",system-ui,sans-serif;
  --serif:'Noto Serif JP',"Yu Mincho","Hiragino Mincho ProN",serif;
}
html{
  background:#fff;
}
body{
  background:
    radial-gradient(circle at 8% 12%,rgba(120,17,34,.035),transparent 28%),
    linear-gradient(180deg,#fff 0%,#fffaf8 100%);
  color:var(--text);
  font-feature-settings:"palt";
}

/* Header: old solid block -> light glass / modern pill CTA */
.site-header{
  height:76px!important;
  background:rgba(255,255,255,.86)!important;
  backdrop-filter:saturate(150%) blur(18px)!important;
  border-bottom:1px solid rgba(120,17,34,.08)!important;
}
.head-inner{
  height:76px!important;
  width:min(100% - 56px,1320px)!important;
}
.brand-mark{
  font-family:var(--latin)!important;
  font-size:31px!important;
  font-weight:700!important;
  letter-spacing:-.08em!important;
}
.brand-word{
  font-family:var(--latin)!important;
  font-size:31px!important;
  font-weight:700!important;
  letter-spacing:.16em!important;
}
.brand-word small{
  font-family:var(--latin)!important;
  font-size:9px!important;
  letter-spacing:.12em!important;
}
.nav{
  gap:26px!important;
  font-family:var(--sans)!important;
  font-size:13px!important;
  font-weight:800!important;
}
.nav a{
  height:76px!important;
}
.nav a.active:after{
  height:2px!important;
  border-radius:999px!important;
}
.nav-cta{
  height:46px!important;
  padding:0 24px!important;
  border-radius:999px!important;
  background:linear-gradient(135deg,var(--wine),var(--wine2))!important;
  box-shadow:0 16px 34px rgba(120,17,34,.18)!important;
}

/* Buttons: modern pill */
.btn{
  border-radius:999px!important;
  height:58px!important;
  min-width:210px!important;
  border:1px solid rgba(120,17,34,.24)!important;
  box-shadow:none!important;
}
.btn.primary,
.hero .btn.primary{
  background:linear-gradient(135deg,var(--wine),var(--wine2))!important;
  border-color:transparent!important;
  box-shadow:0 18px 42px rgba(120,17,34,.20)!important;
}
.btn:not(.primary){
  background:rgba(255,255,255,.78)!important;
  backdrop-filter:blur(8px);
}
.btn:hover{
  transform:translateY(-3px)!important;
}

/* Typography: reduce template-like heavy Japanese blocks */
.page-copy h1,
.lead-block h2,
.section-title h2,
.flow-intro-copy h2,
.about-visual-copy h2,
.prep-copy h2,
.service-detail h3{
  letter-spacing:.035em!important;
  font-weight:800!important;
}
.section-title .eyebrow,
.eyebrow,
.service-number,
.flow-overview-num,
.work-cat,
.case-body .cat{
  font-family:var(--latin)!important;
  letter-spacing:.16em!important;
  text-transform:uppercase;
}
.section-title h2:after{
  width:48px!important;
  height:2px!important;
  border-radius:999px!important;
  background:linear-gradient(90deg,var(--wine),rgba(120,17,34,.18))!important;
}

/* Page hero: more editorial, less legacy block */
.page-hero{
  background:linear-gradient(180deg,#fff 0%,#fffaf7 100%)!important;
}
.page-hero-inner{
  min-height:420px!important;
}
.page-copy{
  padding-top:78px!important;
  padding-bottom:78px!important;
}
.page-copy h1{
  font-size:clamp(46px,5.2vw,72px)!important;
}
.page-copy .en{
  font-family:var(--latin)!important;
  letter-spacing:.16em!important;
}
.page-photo{
  border-bottom-left-radius:42px;
  overflow:hidden;
}
.page-photo:before{
  background:linear-gradient(90deg,#fff 0%,rgba(255,255,255,.92) 30%,rgba(255,255,255,.16) 82%,rgba(255,255,255,0) 100%)!important;
}

/* Top hero: modernize while preserving current image */
.hero{
  background:
    linear-gradient(90deg,rgba(255,255,255,.98) 0%,rgba(255,255,255,.93) 30%,rgba(255,255,255,.55) 50%,rgba(255,255,255,.08) 72%,rgba(255,255,255,0) 100%),
    url('assets/hero-final.jpg') center right/cover no-repeat!important;
}
.hero h1{
  letter-spacing:.035em!important;
}
.hero .lead{
  font-weight:800!important;
}
.hero p{
  font-size:16.5px!important;
}

/* Image treatment: current, polished */
img{
  image-rendering:auto;
}
.service-detail-image,
.flow-intro-photo,
.prep-photo,
.about-visual-photo,
.flow-lead-visual,
.case-card img,
.flow-step-feature-photos img,
.flow-type-card-v9 img,
.service-card .thumb,
.work-thumb{
  border-radius:var(--radius-lg)!important;
  overflow:hidden!important;
}
.service-card,
.reason,
.small-box,
.detail-card,
.contact-box,
.flow-overview-card,
.flow-step-v9,
.prep-copy,
.flow-type-card-v9,
.work-card{
  border-radius:var(--radius-md)!important;
}

/* Cards: fewer borders, more modern depth */
.service-card,
.reason,
.small-box,
.detail-card,
.contact-box,
.flow-overview-card,
.flow-step-v9,
.prep-copy,
.case-card,
.work-card{
  border:0!important;
}
.service-card,
.reason,
.small-box,
.detail-card,
.contact-box,
.flow-overview-card,
.flow-step-v9,
.prep-copy{
  box-shadow:var(--shadow-light)!important;
}
.service-card{
  transition:transform .28s ease, box-shadow .28s ease!important;
}
.service-card:hover{
  transform:translateY(-6px)!important;
  box-shadow:var(--shadow-modern)!important;
}
.service-card .icon{
  border:0!important;
  background:linear-gradient(135deg,var(--wine),var(--wine2))!important;
}

/* Service detail: editorial staggered composition */
.service-detail{
  position:relative;
}
.service-detail:before{
  content:"";
  position:absolute;
  inset:54px -34px 54px auto;
  width:38%;
  background:linear-gradient(180deg,rgba(120,17,34,.045),rgba(120,17,34,0));
  border-radius:42px;
  z-index:-1;
}
.service-detail.reverse:before{
  left:-34px;
  right:auto;
}
.service-detail-image{
  box-shadow:0 30px 90px rgba(45,20,20,.12)!important;
}
.service-detail-grid div{
  border-top:0!important;
  background:rgba(255,250,247,.72)!important;
  border-radius:18px!important;
  padding:22px 24px!important;
  box-shadow:inset 0 0 0 1px rgba(120,17,34,.07);
}

/* Flow phase cards: make more contemporary */
.flow-overview-grid{
  gap:30px!important;
}
.flow-overview-card{
  min-height:330px;
  padding:36px 34px!important;
  background:rgba(255,255,255,.82)!important;
  backdrop-filter:blur(8px);
}
.flow-overview-card:before{
  height:0!important;
}
.flow-overview-card:after{
  display:none!important;
}
.flow-overview-icon{
  width:58px!important;
  height:58px!important;
  margin-bottom:26px!important;
}
.flow-overview-num{
  font-size:12px!important;
}
.flow-overview-card h3{
  font-size:30px!important;
}

/* Timeline: less old card grid, more airy */
.flow-timeline-v9{
  gap:26px!important;
}
.flow-step-v9{
  min-height:0!important;
  padding:30px!important;
  background:rgba(255,255,255,.86)!important;
}
.flow-step-number{
  font-family:var(--latin)!important;
  font-size:34px!important;
  color:rgba(120,17,34,.72)!important;
}
.flow-step-content li{
  border:0!important;
  border-radius:999px!important;
  background:#f5e9ec!important;
}

/* Dark sections: richer, less flat */
.works-dark,
.flow-type-section-v9,
.dark-band{
  background:
    radial-gradient(circle at 90% 8%,rgba(255,255,255,.08),transparent 28%),
    linear-gradient(135deg,#141517 0%,#24262a 58%,#171719 100%)!important;
}
.work-card,
.flow-type-card-v9{
  border-radius:24px!important;
  background:rgba(255,255,255,.075)!important;
  backdrop-filter:blur(8px);
}
.work-thumb,
.flow-type-card-v9 img{
  border-radius:24px 24px 0 0!important;
}

/* Case cards: more portfolio-like */
.case-card img{
  border-radius:26px!important;
  height:270px!important;
  transition:transform .3s ease, box-shadow .3s ease;
}
.case-card:hover img{
  transform:translateY(-4px);
  box-shadow:var(--shadow-modern);
}

/* FAQ: modern accordion-like lines */
.faq-list{
  max-width:980px!important;
}
.faq-row{
  border-top:1px solid rgba(120,17,34,.12)!important;
  border-bottom:0!important;
}
.faq-row:last-child{
  border-bottom:1px solid rgba(120,17,34,.12)!important;
}
.faq-q{
  font-size:16px!important;
}
.faq-q span:first-child{
  font-weight:800!important;
}

/* CTA: more polished */
.cta{
  background:
    radial-gradient(circle at 82% 18%,rgba(255,255,255,.17),transparent 28%),
    linear-gradient(135deg,#761021 0%,#9d2634 100%)!important;
  border-radius:0!important;
}
.cta .wrap{
  width:min(100% - 72px,1180px)!important;
}
.cta .btn{
  background:#fff!important;
  color:var(--wine)!important;
}

/* Footer */
.site-footer{
  background:#fffaf7!important;
  border-top:1px solid rgba(120,17,34,.08);
}

/* About visual more premium */
.about-visual-photo{
  border-radius:36px!important;
}
.about-visual-copy{
  max-width:620px;
}

/* Contact form frame */
.contact-form-wrap{
  border:0!important;
  border-radius:28px!important;
  box-shadow:var(--shadow-modern)!important;
}

/* Mobile refinements */
@media(max-width:1100px){
  .nav{
    gap:17px!important;
    font-size:12px!important;
  }
}
@media(max-width:900px){
  .site-header,
  .head-inner{
    height:68px!important;
  }
  .head-inner{
    width:min(100% - 36px,680px)!important;
  }
  .page-photo{
    border-bottom-left-radius:0;
  }
  .service-detail:before{
    display:none;
  }
  .service-detail-grid div{
    padding:20px!important;
  }
  .flow-overview-card{
    min-height:auto;
  }
  .cta .wrap{
    width:min(100% - 36px,680px)!important;
  }
}
@media(max-width:520px){
  .page-copy h1{
    font-size:40px!important;
  }
  .btn{
    height:56px!important;
  }
  .case-card img{
    height:220px!important;
  }
}



/* ===== v14: editorial minimal reset / remove template feeling ===== */
/*
  方針:
  - 角丸・影・太いフチをやめる
  - カードUI感を減らす
  - 余白、写真、文字、細い罫線で見せる
  - 中央揃えテンプレ感を減らして左揃え中心へ
*/

:root{
  --wine:#741120;
  --wine2:#8e1a2a;
  --ink:#221f20;
  --text:#343030;
  --muted:#706a6a;
  --paper:#fffaf7;
  --soft:#f7f2ef;
  --line:rgba(116,17,32,.14);
}

/* 装飾リセット：丸み・影・箱感を削る */
.service-card,
.reason,
.detail-card,
.small-box,
.case-card,
.work-card,
.flow-overview-card,
.flow-step-v9,
.flow-type-card-v9,
.contact-box,
.prep-copy,
.contact-form-wrap,
.wide-card,
.faq-row,
.service-detail-grid div,
.flow-intro-photo,
.prep-photo,
.about-visual-photo,
.service-detail-image,
.case-card img,
.flow-step-feature,
.flow-step-feature-photos img,
.flow-type-card-v9 img,
.work-thumb,
.service-card .thumb,
.btn,
.nav-cta{
  border-radius:0!important;
  box-shadow:none!important;
}

.service-card,
.reason,
.detail-card,
.small-box,
.case-card,
.work-card,
.flow-overview-card,
.flow-step-v9,
.flow-type-card-v9,
.contact-box,
.prep-copy,
.contact-form-wrap,
.wide-card,
.service-detail-grid div{
  border:0!important;
}

/* サイト全体の空気 */
body{
  background:#fff!important;
  color:var(--text);
}

.section{
  padding-top:104px!important;
  padding-bottom:110px!important;
}

.wrap{
  width:min(100% - 88px,1240px)!important;
}

/* ヘッダーも装飾を減らす */
.site-header{
  background:rgba(255,255,255,.94)!important;
  border-bottom:1px solid rgba(0,0,0,.06)!important;
  backdrop-filter:blur(14px)!important;
}

.nav-cta{
  background:var(--wine)!important;
  height:52px!important;
  padding:0 30px!important;
}

/* 見出し：中央テンプレ感を減らす */
.section-title{
  text-align:left!important;
  margin-bottom:54px!important;
}

.section-title h2{
  font-size:clamp(38px,4.1vw,58px)!important;
  line-height:1.28!important;
  letter-spacing:.025em!important;
  color:var(--ink)!important;
}

.section-title h2:after{
  margin:20px 0 0!important;
  width:72px!important;
  height:1px!important;
  background:var(--wine)!important;
}

.section-title .eyebrow,
.eyebrow{
  color:var(--wine)!important;
  font-size:12px!important;
  font-weight:800!important;
  letter-spacing:.18em!important;
}

/* ページヒーロー：余白と写真で見せる */
.page-hero{
  background:#fff!important;
}

.page-hero-inner{
  min-height:460px!important;
  grid-template-columns:43% 57%!important;
}

.page-copy{
  padding-top:90px!important;
  padding-bottom:90px!important;
}

.page-copy h1{
  color:var(--wine)!important;
  font-size:clamp(54px,6vw,86px)!important;
  line-height:1.12!important;
  letter-spacing:.025em!important;
}

.page-copy .en{
  color:var(--wine)!important;
  font-weight:700!important;
}

.page-copy p{
  font-size:18px!important;
  line-height:1.95!important;
  font-weight:700!important;
}

.page-photo{
  border-radius:0!important;
}

.page-photo:before{
  background:linear-gradient(90deg,#fff 0%,rgba(255,255,255,.86) 30%,rgba(255,255,255,.12) 75%,rgba(255,255,255,0) 100%)!important;
}

/* TOPのカード臭を減らす */
.services{
  gap:42px!important;
}

.service-card{
  background:transparent!important;
  display:block!important;
}

.service-card .thumb{
  height:230px!important;
  margin-bottom:24px!important;
  overflow:hidden!important;
}

.service-card .thumb img{
  transform:none!important;
}

.service-card .icon{
  display:none!important;
}

.service-card .body{
  padding:0!important;
}

.service-card h3{
  font-size:24px!important;
  margin-bottom:12px!important;
}

.service-card p{
  font-size:15.5px!important;
  line-height:1.95!important;
}

.arrow{
  text-align:left!important;
  margin-top:18px!important;
}

/* 選ばれる理由：箱ではなく横並び情報に */
.reasons{
  display:grid!important;
  grid-template-columns:repeat(4,1fr)!important;
  gap:0!important;
  border-top:1px solid var(--line)!important;
  border-bottom:1px solid var(--line)!important;
}

.reason{
  background:transparent!important;
  padding:34px 30px!important;
  border-left:1px solid var(--line)!important;
}

.reason:first-child{
  border-left:0!important;
}

.reason .bigicon{
  display:none!important;
}

.reason h3{
  font-size:20px!important;
}

.reason p{
  font-size:14.5px!important;
}

/* 事業内容ページ：編集ページ風 */
.service-detail-section{
  padding-top:20px!important;
}

.service-detail{
  display:grid!important;
  grid-template-columns:minmax(480px,52%) minmax(0,1fr)!important;
  gap:clamp(58px,7vw,110px)!important;
  align-items:center!important;
  padding:118px 0!important;
  border-bottom:1px solid var(--line)!important;
  background:transparent!important;
}

.service-detail.reverse{
  grid-template-columns:minmax(0,1fr) minmax(480px,52%)!important;
}

.service-detail:before,
.service-detail.reverse:before{
  display:none!important;
}

.service-detail-image{
  min-height:620px!important;
  overflow:hidden!important;
}

.service-detail-image img{
  width:100%!important;
  height:100%!important;
  object-fit:cover!important;
  filter:saturate(.88) contrast(1.04) brightness(1.03)!important;
}

.service-detail-body{
  max-width:600px!important;
}

.service-number{
  color:var(--wine)!important;
  margin-bottom:18px!important;
  font-size:12px!important;
}

.service-detail h3{
  color:var(--ink)!important;
  font-size:clamp(42px,4.5vw,68px)!important;
  line-height:1.15!important;
  letter-spacing:.015em!important;
  margin-bottom:28px!important;
}

.service-lead{
  font-size:17px!important;
  line-height:2.1!important;
  margin-bottom:42px!important;
}

.service-detail-grid{
  display:grid!important;
  grid-template-columns:1fr 1fr!important;
  gap:44px!important;
}

.service-detail-grid div{
  background:transparent!important;
  padding:0!important;
  border-top:1px solid var(--line)!important;
}

.service-detail-grid h4{
  margin-top:18px!important;
  margin-bottom:16px!important;
  color:var(--wine)!important;
}

.service-detail-grid li{
  font-size:15px!important;
  line-height:1.95!important;
}

/* 汎用小カード：箱からリスト風へ */
.six-grid{
  gap:0!important;
  border-top:1px solid var(--line)!important;
}

.small-box,
.detail-card{
  background:transparent!important;
  padding:28px 32px 30px 0!important;
  border-bottom:1px solid var(--line)!important;
}

.small-box h3,
.detail-card h3{
  font-size:22px!important;
}

/* 制作事例：ポートフォリオ風 */
.case-grid{
  display:grid!important;
  grid-template-columns:repeat(2,1fr)!important;
  gap:72px 56px!important;
}

.case-card{
  background:transparent!important;
}

.case-card img{
  height:360px!important;
  width:100%!important;
  object-fit:cover!important;
  margin-bottom:24px!important;
}

.case-body{
  padding:0!important;
}

.case-body h3{
  font-size:25px!important;
  margin:10px 0 12px!important;
}

.case-body p{
  font-size:15.5px!important;
  line-height:1.95!important;
}

/* 黒背景セクションも角丸カードをやめる */
.works-grid.refined{
  gap:34px!important;
}

.work-card{
  background:transparent!important;
}

.work-thumb{
  border-radius:0!important;
  aspect-ratio:16/10!important;
}

.work-body{
  padding:20px 0 0!important;
}

/* 制作の流れ：アイコンカード感を削る */
.flow-overview-section{
  background:#fff!important;
}

.flow-overview-grid{
  display:grid!important;
  grid-template-columns:repeat(3,1fr)!important;
  gap:0!important;
  border-top:1px solid var(--line)!important;
  border-bottom:1px solid var(--line)!important;
}

.flow-overview-card{
  background:transparent!important;
  padding:44px 42px!important;
  border-left:1px solid var(--line)!important;
}

.flow-overview-card:first-child{
  border-left:0!important;
}

.flow-overview-icon{
  display:none!important;
}

.flow-overview-num{
  font-family:var(--latin)!important;
  color:var(--wine)!important;
  font-size:15px!important;
  margin-bottom:22px!important;
}

.flow-overview-card h3{
  font-size:36px!important;
  margin-bottom:18px!important;
}

.flow-overview-card p:last-child{
  font-size:16px!important;
  line-height:2!important;
}

.flow-step-feature{
  background:transparent!important;
  padding:0!important;
  margin-bottom:76px!important;
}

.flow-step-feature-photos img{
  height:300px!important;
}

.flow-timeline-v9{
  display:block!important;
  border-top:1px solid var(--line)!important;
}

.flow-step-v9{
  display:grid!important;
  grid-template-columns:120px 1fr!important;
  gap:48px!important;
  background:transparent!important;
  padding:34px 0!important;
  border-bottom:1px solid var(--line)!important;
}

.flow-step-number{
  font-size:42px!important;
  color:var(--wine)!important;
}

.flow-step-content h3{
  font-size:26px!important;
}

.flow-step-content p{
  max-width:760px!important;
}

.flow-type-card-v9{
  background:transparent!important;
}

.flow-type-card-v9 img{
  height:250px!important;
  border-radius:0!important;
  margin-bottom:18px!important;
}

.flow-type-card-v9 div{
  padding:0!important;
}

/* 会社案内：写真と余白で見せる */
.about-visual-section{
  padding-top:20px!important;
}

.about-visual-photo{
  height:560px!important;
}

.about-visual-copy h2{
  font-size:clamp(38px,4vw,58px)!important;
  line-height:1.35!important;
}

/* FAQ/Contactは実用性優先 */
.faq-row{
  background:transparent!important;
}

.contact-box{
  background:transparent!important;
  border-top:1px solid var(--line)!important;
  padding:30px 0!important;
}

.contact-form-wrap{
  background:transparent!important;
  padding:0!important;
}

/* 角丸を最後にもう一度潰す */
*{
  border-radius:0!important;
}

/* ただしロゴ等には影響なし。ボタンは四角気味に戻す */
.btn,
.nav-cta{
  border-radius:0!important;
}

/* CTAは強く、でもシンプル */
.cta{
  background:var(--wine)!important;
}

.cta .btn{
  background:#fff!important;
  color:var(--wine)!important;
}

/* レスポンシブ */
@media(max-width:1100px){
  .service-detail,
  .service-detail.reverse{
    grid-template-columns:1fr!important;
    gap:44px!important;
    padding:86px 0!important;
  }

  .service-detail.reverse .service-detail-image,
  .service-detail.reverse .service-detail-body{
    order:initial!important;
  }

  .service-detail-image{
    min-height:420px!important;
  }

  .case-grid{
    grid-template-columns:1fr 1fr!important;
  }
}

@media(max-width:900px){
  .wrap{
    width:min(100% - 38px,680px)!important;
  }

  .section{
    padding-top:72px!important;
    padding-bottom:78px!important;
  }

  .page-hero-inner{
    grid-template-columns:1fr!important;
  }

  .page-photo{
    height:260px!important;
  }

  .services,
  .reasons,
  .flow-overview-grid,
  .case-grid{
    grid-template-columns:1fr!important;
  }

  .reason,
  .flow-overview-card{
    border-left:0!important;
    border-top:1px solid var(--line)!important;
  }

  .reason:first-child,
  .flow-overview-card:first-child{
    border-top:0!important;
  }

  .service-detail-grid{
    grid-template-columns:1fr!important;
    gap:28px!important;
  }

  .service-detail-image,
  .about-visual-photo{
    min-height:300px!important;
    height:320px!important;
  }

  .flow-step-v9{
    grid-template-columns:1fr!important;
    gap:10px!important;
  }

  .flow-step-feature-photos{
    grid-template-columns:1fr!important;
  }
}

@media(max-width:520px){
  .section-title h2{
    font-size:32px!important;
  }

  .page-copy h1{
    font-size:44px!important;
  }

  .service-detail h3{
    font-size:38px!important;
  }

  .case-card img{
    height:260px!important;
  }
}



/* ===== v15: bright photo refresh + diagonal process accents ===== */
:root{
  --wine:#73101f;
  --soft:#fff8f4;
}
body{
  background:#fff!important;
}
.hero,
.page-hero{
  background-color:#fff!important;
}
.hero{
  background:
    linear-gradient(90deg,rgba(255,255,255,.98) 0%,rgba(255,255,255,.9) 32%,rgba(255,255,255,.50) 54%,rgba(255,255,255,.08) 78%,rgba(255,255,255,0) 100%),
    url('assets/hero-final.jpg') center right/cover no-repeat!important;
}
.page-photo{
  background-image:url('assets/hero-final.jpg')!important;
  filter:saturate(1.04) brightness(1.04);
}
.service-card .thumb img,
.service-detail-image img,
.case-card img,
.work-thumb img,
.flow-intro-photo img,
.flow-step-feature-photos img,
.flow-type-card-v9 img,
.prep-photo img,
.about-visual-photo img{
  filter:saturate(1.04) brightness(1.04) contrast(1.01)!important;
}

/* Process section: diagonal line accents like the reference */
.flow-overview-grid{
  border:0!important;
  gap:0!important;
}
.flow-overview-card{
  position:relative!important;
  padding-left:42px!important;
  padding-right:42px!important;
  border:0!important;
}
.flow-overview-card + .flow-overview-card:before{
  content:""!important;
  position:absolute!important;
  left:0!important;
  top:24px!important;
  bottom:24px!important;
  width:1px!important;
  background:rgba(115,16,31,.28)!important;
  transform:skewX(-18deg)!important;
  transform-origin:center!important;
}
.flow-overview-card h3{
  color:#241f20!important;
}
.flow-overview-num{
  color:rgba(115,16,31,.28)!important;
  font-size:58px!important;
  line-height:.9!important;
  margin-bottom:14px!important;
  letter-spacing:.02em!important;
}
.flow-overview-card p:last-child{
  max-width:320px;
}

/* Brighter editorial surfaces */
.center-lead,
.flow-overview-section,
.flow-prep-section-v9,
.name-story{
  background:#fffaf7!important;
}
.works-dark,
.flow-type-section-v9{
  background:
    radial-gradient(circle at 86% 18%,rgba(255,255,255,.10),transparent 28%),
    linear-gradient(135deg,#18191b 0%,#2a2525 58%,#171719 100%)!important;
}

/* Large photos should feel intentional, not stocky */
.service-detail-image,
.case-card img,
.flow-intro-photo,
.prep-photo,
.about-visual-photo{
  outline:1px solid rgba(115,16,31,.06);
  outline-offset:-1px;
}
@media(max-width:900px){
  .flow-overview-card + .flow-overview-card:before{
    top:0!important;
    bottom:auto!important;
    width:100%!important;
    height:1px!important;
    transform:none!important;
  }
  .flow-overview-num{
    font-size:44px!important;
  }
}



/* ===== v16: bright Japanese-modern direction + font polish ===== */
/*
  明るく、現代の日本っぽく。
  フォントはゴシック中心。明朝はキャッチコピーだけ控えめに使用。
  古い会社案内感を避け、読みやすさと軽さを優先。
*/
:root{
  --wine:#8a1628;
  --wine2:#aa2537;
  --ink:#202326;
  --text:#3c3f42;
  --muted:#697075;
  --line:rgba(138,22,40,.16);
  --soft:#fff7f4;
  --soft-blue:#eef7fb;
  --sans:'Noto Sans JP',"Yu Gothic","Hiragino Kaku Gothic ProN",system-ui,sans-serif;
  --serif:'Noto Serif JP',"Yu Mincho","Hiragino Mincho ProN",serif;
  --latin:'Outfit',var(--sans);
}
html{
  scroll-padding-top:92px;
}
body{
  font-family:var(--sans)!important;
  background:#fff!important;
  color:var(--text)!important;
  font-size:16px!important;
  line-height:1.9!important;
  letter-spacing:.025em!important;
  font-feature-settings:"palt";
}
p,li{
  font-size:16px!important;
  line-height:1.95!important;
}
a{
  text-decoration:none;
}

/* Header: light, clear, current */
.site-header{
  height:76px!important;
  background:rgba(255,255,255,.94)!important;
  border-bottom:1px solid rgba(0,0,0,.06)!important;
  backdrop-filter:blur(12px)!important;
}
.head-inner{
  height:76px!important;
  width:min(100% - 64px,1360px)!important;
}
.brand-mark,
.brand-word{
  font-family:var(--latin)!important;
  font-weight:700!important;
  color:var(--wine)!important;
}
.brand-word small{
  font-family:var(--latin)!important;
  color:#777!important;
}
.nav{
  font-family:var(--sans)!important;
  font-size:13px!important;
  font-weight:700!important;
  gap:28px!important;
}
.nav a{
  height:76px!important;
  color:#242424!important;
}
.nav a.active:after{
  height:2px!important;
  background:var(--wine)!important;
}
.nav-cta{
  height:48px!important;
  padding:0 28px!important;
  color:#fff!important;
  background:var(--wine)!important;
  border-radius:0!important;
}

/* Hero: bright, open, less heavy */
.hero{
  min-height:720px!important;
  background:
    linear-gradient(90deg,rgba(255,255,255,.98) 0%,rgba(255,255,255,.92) 30%,rgba(255,255,255,.56) 52%,rgba(255,255,255,.06) 78%,rgba(255,255,255,0) 100%),
    url('assets/hero-final.jpg') center right/cover no-repeat!important;
}
.hero-content{
  width:min(100% - 88px,1320px)!important;
  padding-top:170px!important;
}
.hero h1{
  font-family:var(--serif)!important;
  font-weight:600!important;
  font-size:clamp(48px,5.5vw,78px)!important;
  line-height:1.35!important;
  letter-spacing:.045em!important;
  color:#161616!important;
}
.hero .lead{
  font-family:var(--sans)!important;
  font-weight:700!important;
  font-size:clamp(22px,2vw,30px)!important;
  line-height:1.75!important;
  letter-spacing:.035em!important;
  color:#303030!important;
}
.hero p{
  max-width:570px!important;
  font-size:16px!important;
  line-height:2!important;
  color:#404448!important;
}

/* Buttons: sharp but not harsh */
.btn{
  height:58px!important;
  min-width:210px!important;
  border-radius:0!important;
  font-family:var(--sans)!important;
  font-size:14px!important;
  font-weight:700!important;
  letter-spacing:.08em!important;
  box-shadow:none!important;
}
.btn.primary{
  background:var(--wine)!important;
  border-color:var(--wine)!important;
  color:#fff!important;
}
.btn:not(.primary){
  background:#fff!important;
  color:var(--wine)!important;
  border:1px solid rgba(138,22,40,.35)!important;
}

/* Section heading: avoid too much Mincho; clean sans for structure */
.section{
  padding-top:96px!important;
  padding-bottom:104px!important;
}
.wrap{
  width:min(100% - 88px,1280px)!important;
}
.section-title{
  text-align:left!important;
  margin-bottom:46px!important;
}
.section-title h2{
  font-family:var(--sans)!important;
  font-size:clamp(34px,3.2vw,48px)!important;
  line-height:1.35!important;
  font-weight:700!important;
  letter-spacing:.035em!important;
  color:var(--ink)!important;
}
.section-title h2:after{
  margin:18px 0 0!important;
  width:56px!important;
  height:2px!important;
  background:var(--wine)!important;
}
.eyebrow,
.section-title .eyebrow,
.service-number,
.case-body .cat,
.work-cat,
.flow-overview-num{
  font-family:var(--latin)!important;
  font-size:12px!important;
  font-weight:700!important;
  letter-spacing:.16em!important;
  color:var(--wine)!important;
}

/* Top service: light horizontal visual tiles */
.services{
  display:grid!important;
  grid-template-columns:repeat(4,1fr)!important;
  gap:34px!important;
}
.service-card{
  background:transparent!important;
  border:0!important;
  box-shadow:none!important;
  border-radius:0!important;
}
.service-card .thumb{
  height:220px!important;
  border-radius:0!important;
  margin-bottom:22px!important;
  overflow:hidden!important;
}
.service-card .thumb img{
  width:100%!important;
  height:100%!important;
  object-fit:cover!important;
  filter:saturate(1.08) brightness(1.06) contrast(1.02)!important;
}
.service-card .icon{
  display:none!important;
}
.service-card .body{
  padding:0!important;
}
.service-card h3{
  font-family:var(--sans)!important;
  font-size:22px!important;
  font-weight:700!important;
  color:#202326!important;
  margin:0 0 10px!important;
}
.service-card p{
  color:#555!important;
  font-size:15px!important;
  line-height:1.9!important;
}
.arrow{
  color:var(--wine)!important;
  text-align:left!important;
  font-weight:700!important;
}

/* Reasons: clean line layout, not old cards */
.reasons{
  display:grid!important;
  grid-template-columns:repeat(4,1fr)!important;
  border-top:1px solid var(--line)!important;
  border-bottom:1px solid var(--line)!important;
  gap:0!important;
}
.reason{
  border:0!important;
  border-left:1px solid var(--line)!important;
  box-shadow:none!important;
  background:transparent!important;
  padding:34px 28px!important;
}
.reason:first-child{
  border-left:0!important;
}
.reason .bigicon{
  display:none!important;
}
.reason h3{
  font-size:20px!important;
  font-weight:700!important;
}
.reason p{
  color:#555!important;
  font-size:14.5px!important;
}

/* Page hero */
.page-hero{
  background:#fff!important;
  border-bottom:1px solid rgba(0,0,0,.05)!important;
}
.page-hero-inner{
  min-height:430px!important;
}
.page-copy h1{
  font-family:var(--sans)!important;
  font-weight:800!important;
  font-size:clamp(48px,5.4vw,78px)!important;
  color:var(--wine)!important;
  letter-spacing:.025em!important;
}
.page-copy p{
  font-size:18px!important;
  font-weight:700!important;
  line-height:1.9!important;
}
.page-photo{
  background-image:url('assets/hero-final.jpg')!important;
  border-radius:0!important;
  filter:saturate(1.08) brightness(1.05) contrast(1.02);
}

/* Service detail: bright editorial */
.service-detail{
  border-bottom:1px solid var(--line)!important;
  box-shadow:none!important;
  background:transparent!important;
}
.service-detail-image{
  border-radius:0!important;
  box-shadow:none!important;
  min-height:560px!important;
}
.service-detail-image img{
  filter:saturate(1.08) brightness(1.06) contrast(1.02)!important;
}
.service-detail h3{
  font-family:var(--sans)!important;
  font-weight:800!important;
  font-size:clamp(40px,4.2vw,64px)!important;
  letter-spacing:.02em!important;
  color:#202326!important;
}
.service-lead{
  font-size:17px!important;
  line-height:2.05!important;
  color:#404448!important;
}
.service-detail-grid div{
  border:0!important;
  border-top:1px solid var(--line)!important;
  background:transparent!important;
  box-shadow:none!important;
  border-radius:0!important;
  padding:20px 0 0!important;
}
.service-detail-grid h4{
  font-weight:700!important;
}

/* Dark works: keep as accent only */
.works-dark,
.flow-type-section-v9{
  background:#1c2025!important;
}
.work-card,
.flow-type-card-v9{
  background:transparent!important;
  border:0!important;
  box-shadow:none!important;
  border-radius:0!important;
}
.work-thumb,
.flow-type-card-v9 img{
  border-radius:0!important;
}
.work-thumb img,
.flow-type-card-v9 img{
  filter:saturate(1.05) brightness(1.05) contrast(1.02)!important;
}

/* Process diagonal: clear and bright */
.flow-overview-section{
  background:#fff!important;
}
.flow-overview-grid{
  border:0!important;
  gap:0!important;
}
.flow-overview-card{
  border:0!important;
  background:transparent!important;
  box-shadow:none!important;
  border-radius:0!important;
  position:relative!important;
}
.flow-overview-card + .flow-overview-card:before{
  content:""!important;
  position:absolute!important;
  left:0!important;
  top:16px!important;
  bottom:16px!important;
  width:1px!important;
  background:rgba(138,22,40,.38)!important;
  transform:skewX(-18deg)!important;
}
.flow-overview-icon{
  display:none!important;
}
.flow-overview-num{
  font-size:56px!important;
  line-height:.9!important;
  color:rgba(138,22,40,.25)!important;
}
.flow-overview-card h3{
  font-size:30px!important;
  font-weight:700!important;
}

/* FAQ / Contact */
.faq-row{
  background:#fff!important;
  border-top:1px solid rgba(0,0,0,.10)!important;
  border-bottom:0!important;
}
.contact-box,
.contact-form-wrap{
  box-shadow:none!important;
  border:0!important;
  border-top:1px solid var(--line)!important;
  border-radius:0!important;
  background:transparent!important;
}

/* CTA brighter wine */
.cta{
  background:linear-gradient(90deg,#8a1628,#aa2537)!important;
}
.cta h2{
  font-family:var(--sans)!important;
  font-weight:700!important;
}
.cta .btn{
  background:#fff!important;
  color:var(--wine)!important;
  border-color:#fff!important;
}

/* Images global */
.case-card img,
.flow-intro-photo img,
.flow-step-feature-photos img,
.prep-photo img,
.about-visual-photo img{
  filter:saturate(1.08) brightness(1.06) contrast(1.02)!important;
  border-radius:0!important;
}

/* Responsive */
@media(max-width:1100px){
  .services,
  .reasons{
    grid-template-columns:repeat(2,1fr)!important;
  }
}
@media(max-width:900px){
  .head-inner,
  .wrap,
  .hero-content{
    width:min(100% - 36px,680px)!important;
  }
  .hero{
    min-height:640px!important;
  }
  .hero-content{
    padding-top:130px!important;
  }
  .services,
  .reasons,
  .flow-overview-grid{
    grid-template-columns:1fr!important;
  }
  .reason,
  .flow-overview-card{
    border-left:0!important;
    border-top:1px solid var(--line)!important;
  }
  .reason:first-child,
  .flow-overview-card:first-child{
    border-top:0!important;
  }
  .flow-overview-card + .flow-overview-card:before{
    display:none!important;
  }
  .service-detail-image{
    min-height:320px!important;
  }
}
@media(max-width:520px){
  .hero h1{
    font-size:42px!important;
  }
  .page-copy h1{
    font-size:42px!important;
  }
  .section-title h2{
    font-size:30px!important;
  }
}


/* ===== v17: image-gap fix + finalized logo feel ===== */
:root{
  --logo-serif:'Cormorant Garamond','Noto Serif JP','Times New Roman',serif;
}

/* Final logo closer to selected concept */
.brand{
  display:inline-flex!important;
  align-items:center!important;
  gap:16px!important;
  text-decoration:none!important;
}
.brand-mark{
  display:block!important;
  font-family:var(--logo-serif)!important;
  font-size:58px!important;
  line-height:.78!important;
  font-weight:600!important;
  letter-spacing:-.04em!important;
  color:var(--wine)!important;
}
.brand-divider{
  display:block!important;
  width:1px!important;
  height:38px!important;
  background:rgba(0,0,0,.16)!important;
}
.brand-word{
  display:block!important;
  font-family:var(--logo-serif)!important;
  font-size:30px!important;
  line-height:.86!important;
  font-weight:500!important;
  letter-spacing:.10em!important;
  color:#202124!important;
  text-transform:none!important;
}
.brand-word small{
  display:block!important;
  margin-top:7px!important;
  font-family:var(--sans)!important;
  font-size:9px!important;
  line-height:1!important;
  font-weight:500!important;
  letter-spacing:.08em!important;
  color:#70757a!important;
  text-transform:none!important;
}
.site-footer .brand-mark{font-size:50px!important;}
.site-footer .brand-word{font-size:28px!important;}

/* Remove mysterious empty space under photos by forcing full cover */
.service-detail-image,
.flow-intro-photo,
.prep-photo,
.about-visual-photo,
.work-thumb,
.service-card .thumb,
.case-card,
.flow-step-feature-photos,
.page-photo{
  overflow:hidden!important;
}
.service-detail-image img,
.flow-intro-photo img,
.prep-photo img,
.about-visual-photo img,
.work-thumb img,
.service-card .thumb img,
.case-card img,
.flow-step-feature-photos img{
  width:100%!important;
  height:100%!important;
  object-fit:cover!important;
  display:block!important;
}
.case-card img{
  min-height:220px!important;
}
.service-detail-image{
  min-height:560px!important;
  background:transparent!important;
}
.page-photo{
  min-height:430px!important;
}

@media(max-width:900px){
  .brand{gap:12px!important;}
  .brand-mark{font-size:42px!important;}
  .brand-divider{height:28px!important;}
  .brand-word{font-size:24px!important;}
  .brand-word small{font-size:8px!important;margin-top:5px!important;}
}
@media(max-width:520px){
  .brand-mark,.brand-divider{display:none!important;}
  .brand-word{font-size:24px!important;letter-spacing:.08em!important;}
  .brand-word small{font-size:7px!important;}
}



/* ===== v18: anonymous cases + deeper AI service ===== */
.case-intro.lead-block{
  text-align:left!important;
  padding:78px 0 64px!important;
  background:#fff!important;
}
.case-intro h2{
  font-family:var(--sans)!important;
  font-size:clamp(34px,3.6vw,52px)!important;
  line-height:1.45!important;
  letter-spacing:.03em!important;
  color:#202326!important;
  margin:8px 0 18px!important;
}
.case-intro p{
  max-width:920px!important;
  margin:0 0 14px!important;
  font-size:17px!important;
  line-height:2!important;
}
.case-intro strong{
  color:var(--wine);
}

.case-study-section{
  padding-top:70px!important;
}
.case-study-list{
  display:grid;
  gap:0;
  border-top:1px solid var(--line);
}
.case-study-item{
  display:grid;
  grid-template-columns:46% 1fr;
  gap:clamp(44px,6vw,86px);
  align-items:center;
  padding:76px 0;
  border-bottom:1px solid var(--line);
}
.case-study-item.reverse{
  grid-template-columns:1fr 46%;
}
.case-study-item.reverse .case-study-image{
  order:2;
}
.case-study-image{
  height:390px;
  overflow:hidden;
}
.case-study-image img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
  filter:saturate(1.08) brightness(1.05) contrast(1.02);
}
.case-label{
  font-family:var(--latin);
  font-size:12px!important;
  font-weight:700;
  letter-spacing:.16em;
  text-transform:uppercase;
  color:var(--wine);
  margin:0 0 14px!important;
}
.case-study-body h3{
  font-size:clamp(28px,3vw,42px);
  line-height:1.38;
  font-weight:800;
  letter-spacing:.025em;
  margin:0 0 18px;
  color:#202326;
}
.case-study-body>p:not(.case-label){
  font-size:16.5px!important;
  line-height:2.05!important;
  margin:0 0 24px!important;
}
.case-study-body dl{
  display:grid;
  gap:16px;
  margin:0;
}
.case-study-body dl div{
  border-top:1px solid rgba(138,22,40,.18);
  padding-top:14px;
}
.case-study-body dt{
  font-weight:800;
  color:var(--wine);
  margin-bottom:6px;
}
.case-study-body dd{
  margin:0;
  line-height:1.9;
  color:#4c5053;
}
.case-note-section{
  background:#fff7f4!important;
  padding-top:74px!important;
  padding-bottom:80px!important;
}
.case-note-box{
  max-width:980px;
  border-left:4px solid var(--wine);
  padding:8px 0 8px 34px;
}
.case-note-box h2{
  font-size:28px;
  margin:0 0 16px;
  color:#202326;
}
.case-note-box p{
  margin:0 0 12px;
  line-height:2;
}

/* AI expanded page */
.ai-expanded-section{
  background:#fff!important;
}
.ai-expanded-lead{
  display:grid;
  grid-template-columns:.9fr 1.1fr;
  gap:clamp(36px,6vw,84px);
  align-items:start;
  margin-bottom:52px;
}
.ai-expanded-lead h3{
  font-size:clamp(30px,3.4vw,48px);
  line-height:1.42;
  margin:0;
  color:#202326;
}
.ai-expanded-lead p{
  margin:0;
  font-size:17px!important;
  line-height:2.08!important;
}
.ai-support-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:0;
  border-top:1px solid var(--line);
  border-left:1px solid var(--line);
}
.ai-support-grid article{
  padding:34px 30px 38px;
  border-right:1px solid var(--line);
  border-bottom:1px solid var(--line);
  background:#fff;
}
.ai-support-grid span{
  display:block;
  font-family:var(--latin);
  color:rgba(138,22,40,.34);
  font-size:42px;
  font-weight:700;
  line-height:1;
  margin-bottom:18px;
}
.ai-support-grid h3{
  margin:0 0 12px;
  font-size:22px;
  line-height:1.5;
  color:#202326;
}
.ai-support-grid p{
  margin:0;
  font-size:15.5px!important;
  line-height:1.95!important;
  color:#4d5154;
}

.ai-flow-section{
  background:#fff7f4!important;
}
.ai-flow{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:0;
}
.ai-flow div{
  position:relative;
  padding:26px 28px 30px;
  border-left:1px solid var(--line);
}
.ai-flow div:first-child{
  border-left:0;
}
.ai-flow div+div:before{
  content:"";
  position:absolute;
  left:0;
  top:18px;
  bottom:18px;
  width:1px;
  background:rgba(138,22,40,.34);
  transform:skewX(-18deg);
}
.ai-flow strong{
  display:block;
  font-family:var(--latin);
  font-size:46px;
  line-height:1;
  color:rgba(138,22,40,.28);
  margin-bottom:18px;
}
.ai-flow h3{
  font-size:22px;
  margin:0 0 10px;
}
.ai-flow p{
  margin:0;
  font-size:15.5px!important;
}

.axelight-note-section{
  padding-top:72px!important;
  padding-bottom:84px!important;
  background:#fff!important;
}
.axelight-note{
  max-width:960px;
  margin-left:auto;
  border-top:1px solid var(--line);
  padding-top:28px;
}
.axelight-note h2{
  font-size:30px;
  margin:8px 0 14px;
  color:#202326;
}
.axelight-note p:not(.eyebrow){
  margin:0;
  font-size:16.5px!important;
  line-height:2.05!important;
}

/* Make service AI block visibly richer */
.ai-rich-list li{
  margin-bottom:.25em;
}

@media(max-width:1000px){
  .case-study-item,
  .case-study-item.reverse,
  .ai-expanded-lead,
  .ai-flow{
    grid-template-columns:1fr;
  }
  .case-study-item.reverse .case-study-image{
    order:0;
  }
  .case-study-image{
    height:300px;
  }
  .ai-support-grid{
    grid-template-columns:1fr 1fr;
  }
  .ai-flow div,
  .ai-flow div:first-child{
    border-left:0;
    border-top:1px solid var(--line);
  }
  .ai-flow div:first-child{
    border-top:0;
  }
  .ai-flow div+div:before{
    display:none;
  }
}
@media(max-width:620px){
  .case-study-image{
    height:240px;
  }
  .ai-support-grid{
    grid-template-columns:1fr;
  }
  .ai-support-grid article{
    padding:28px 22px;
  }
}



/* ===== v19: case intro wording/tone polish ===== */
.case-intro.lead-block{
  padding:86px 0 76px!important;
}
.case-intro .eyebrow{
  font-size:12px!important;
  letter-spacing:.18em!important;
  margin-bottom:18px!important;
}
.case-intro h2{
  max-width:980px!important;
  font-size:clamp(34px,3.8vw,54px)!important;
  line-height:1.48!important;
  font-weight:700!important;
  letter-spacing:.025em!important;
}
.case-intro p{
  max-width:960px!important;
  font-size:16.5px!important;
  line-height:2.05!important;
}
.case-intro p strong{
  font-weight:800!important;
  color:var(--wine)!important;
}
.case-note-box h2{
  font-size:26px!important;
}



/* ===== v20: prevent hero/title/logo clipping on wide screens ===== */
/* Header logo: keep selected direction, but prevent vertical clipping */
.site-header,
.head-inner{
  overflow:visible!important;
}
.brand{
  height:76px!important;
  align-items:center!important;
}
.brand-mark{
  font-size:46px!important;
  line-height:1!important;
}
.brand-divider{
  height:32px!important;
}
.brand-word{
  font-size:26px!important;
  line-height:1!important;
}
.brand-word small{
  margin-top:5px!important;
}

/* Page hero: prevent large Japanese titles from being clipped */
.page-hero{
  overflow:hidden!important;
}
.page-hero-inner{
  grid-template-columns:minmax(460px,48%) minmax(0,52%)!important;
}
.page-copy{
  min-width:0!important;
  overflow:visible!important;
  padding-right:56px!important;
}
.page-copy h1{
  max-width:100%!important;
  white-space:normal!important;
  overflow:visible!important;
  word-break:keep-all!important;
  overflow-wrap:normal!important;
  line-break:strict!important;
  text-wrap:balance;
  font-size:clamp(42px,4.6vw,68px)!important;
  line-height:1.22!important;
}

/* Very long page titles such as privacy policy can wrap safely */
.privacy .page-copy h1,
body:has(.privacy) .page-copy h1{
  overflow-wrap:anywhere!important;
}

/* FAQ title specifically: avoid losing the final character */
body:has(.faq-list) .page-copy h1{
  font-size:clamp(42px,4.2vw,64px)!important;
}

/* Inline FAQ section headings should not use old large serif inline styles too loudly */
.faq-list h2{
  font-family:var(--sans)!important;
  font-size:clamp(24px,2.3vw,32px)!important;
  font-weight:800!important;
  line-height:1.5!important;
}

/* Mobile/tablet fallback */
@media(max-width:1000px){
  .page-hero-inner{
    grid-template-columns:1fr!important;
  }
  .page-copy{
    padding-right:max(32px,calc((100vw - 680px)/2))!important;
  }
  .page-copy h1{
    font-size:clamp(38px,8vw,54px)!important;
  }
  .page-photo{
    min-height:260px!important;
  }
}
@media(max-width:520px){
  .brand{
    height:68px!important;
  }
  .brand-mark,
  .brand-divider{
    display:none!important;
  }
  .brand-word{
    font-size:24px!important;
  }
}



/* ===== v21: final pre-release polish ===== */

/* Safer rhythm */
main{
  overflow-x:hidden;
}
.hero .lead{
  max-width:720px!important;
}
.hero-actions{
  margin-top:30px!important;
}

/* AI pickup on TOP */
.ai-pickup{
  background:#fff7f4;
  border-top:1px solid rgba(138,22,40,.10);
  border-bottom:1px solid rgba(138,22,40,.10);
  padding:34px 0;
}
.ai-pickup-inner{
  display:grid;
  grid-template-columns:.85fr 1.25fr auto;
  gap:34px;
  align-items:center;
}
.ai-pickup h2{
  margin:8px 0 0;
  font-size:clamp(24px,2.2vw,34px);
  line-height:1.45;
  color:#202326;
}
.ai-pickup p{
  margin:0;
  font-size:15.5px!important;
  line-height:1.9!important;
}
.ai-pickup a{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:190px;
  height:52px;
  border:1px solid var(--wine);
  color:var(--wine);
  font-size:14px;
  font-weight:800;
  letter-spacing:.04em;
}
.ai-pickup a:after{
  content:"→";
  margin-left:14px;
}

/* Case consultation section */
.case-consult-section{
  background:#fff!important;
  padding-top:74px!important;
}
.consult-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:0;
  border-top:1px solid var(--line);
  border-left:1px solid var(--line);
}
.consult-grid>div{
  padding:30px 28px 34px;
  border-right:1px solid var(--line);
  border-bottom:1px solid var(--line);
}
.consult-grid h3{
  margin:0 0 12px;
  font-size:22px;
  line-height:1.5;
  color:#202326;
}
.consult-grid p{
  margin:0;
  font-size:15.5px!important;
  line-height:1.95!important;
}

/* AI usecase section */
.ai-usecase-section{
  background:#fff!important;
}
.ai-usecase-list{
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:0;
  border-top:1px solid var(--line);
}
.ai-usecase-list>div{
  padding:34px 34px 36px 0;
  border-bottom:1px solid var(--line);
}
.ai-usecase-list>div:nth-child(even){
  padding-left:34px;
}
.ai-usecase-list h3{
  margin:0 0 12px;
  font-size:24px;
  color:#202326;
}
.ai-usecase-list p{
  margin:0;
  line-height:2!important;
}

/* Case intro: no defensive headline */
.case-intro h2{
  max-width:1080px!important;
}

/* Better link visibility in dark works */
.works-action .btn,
.works-dark .btn{
  background:transparent!important;
  color:#fff!important;
  border-color:rgba(255,255,255,.65)!important;
}

/* Header CTA contrast */
.nav-cta{
  color:#fff!important;
}
.nav-cta:hover{
  color:#fff!important;
  background:#721020!important;
}

/* Privacy date etc. */
.privacy .note{
  margin-top:34px;
  color:#777;
}

/* Image safety: no accidental blank area */
.service-detail-image,
.case-study-image,
.case-card img,
.work-thumb,
.service-card .thumb,
.flow-intro-photo,
.prep-photo,
.about-visual-photo{
  background:#f4f4f4!important;
}

/* Better focus visibility */
a:focus-visible,
button:focus-visible{
  outline:3px solid rgba(138,22,40,.35);
  outline-offset:4px;
}

@media(max-width:1000px){
  .ai-pickup-inner{
    grid-template-columns:1fr;
    gap:18px;
  }
  .ai-pickup a{
    width:100%;
  }
  .consult-grid{
    grid-template-columns:1fr;
  }
}
@media(max-width:760px){
  .ai-usecase-list{
    grid-template-columns:1fr;
  }
  .ai-usecase-list>div:nth-child(even){
    padding-left:0;
  }
}



/* ===== v23: deeper AI content + hard image gap fix ===== */

/* Hard fix for image gap: parent must have fixed visual height, not only min-height */
.service-detail-image{
  height:clamp(360px,42vw,600px)!important;
  min-height:0!important;
  background:transparent!important;
}
.service-detail-image img{
  width:100%!important;
  height:100%!important;
  object-fit:cover!important;
  display:block!important;
}
.case-study-image,
.flow-intro-photo,
.prep-photo,
.about-visual-photo{
  background:transparent!important;
}
.case-study-image img,
.flow-intro-photo img,
.prep-photo img,
.about-visual-photo img{
  width:100%!important;
  height:100%!important;
  object-fit:cover!important;
  display:block!important;
}

/* AI main concept */
.ai-main-message{
  display:grid;
  grid-template-columns:.9fr 1.1fr;
  gap:clamp(36px,6vw,80px);
  align-items:start;
  margin:0 0 58px;
  padding:34px 0 42px;
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
}
.ai-main-message h3{
  margin:8px 0 0;
  font-size:clamp(30px,3.4vw,48px);
  line-height:1.45;
  color:#202326;
}
.ai-main-message p:not(.eyebrow){
  margin:0;
  font-size:17px!important;
  line-height:2.1!important;
}

/* AI menu */
.ai-service-menu-section{
  background:#fff!important;
}
.ai-menu-list{
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:0;
  border-top:1px solid var(--line);
  border-left:1px solid var(--line);
}
.ai-menu-list article{
  padding:36px 36px 40px;
  border-right:1px solid var(--line);
  border-bottom:1px solid var(--line);
}
.ai-menu-label{
  font-family:var(--latin);
  color:var(--wine);
  font-weight:800;
  font-size:12px!important;
  letter-spacing:.16em;
  text-transform:uppercase;
  margin:0 0 10px!important;
}
.ai-menu-list h3{
  font-size:26px;
  line-height:1.45;
  margin:0 0 14px;
  color:#202326;
}
.ai-menu-list p:not(.ai-menu-label){
  margin:0 0 18px;
  line-height:2!important;
}
.ai-menu-list ul{
  margin:0;
  padding-left:1.1em;
}
.ai-menu-list li{
  margin:.25em 0;
  font-size:15.5px!important;
}

/* Before After */
.ai-before-after-section{
  background:#fff7f4!important;
}
.ai-before-after{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:0;
  border-top:1px solid var(--line);
}
.ai-before-after>div{
  padding:36px 40px 40px 0;
  border-bottom:1px solid var(--line);
}
.ai-before-after>div+div{
  padding-left:40px;
  border-left:1px solid var(--line);
}
.ai-before-after h3{
  margin:0 0 18px;
  font-family:var(--latin);
  font-size:30px;
  color:var(--wine);
}
.ai-before-after ul{
  margin:0;
  padding-left:1.2em;
}
.ai-before-after li{
  margin:.45em 0;
}

/* AI direct CTA */
.ai-direct-cta{
  background:#1c2025;
  color:#fff;
  padding:66px 0;
}
.ai-direct-cta-inner{
  display:grid;
  grid-template-columns:1.4fr .75fr;
  gap:48px;
  align-items:center;
}
.ai-direct-cta h2{
  margin:8px 0 16px;
  font-size:clamp(30px,3vw,44px);
  line-height:1.45;
}
.ai-direct-cta p:not(.eyebrow){
  margin:0;
  color:rgba(255,255,255,.82);
  line-height:2!important;
}
.ai-direct-cta .eyebrow{
  color:#f0cdd2!important;
}
.ai-direct-cta .btn{
  width:100%;
  background:#fff!important;
  color:var(--wine)!important;
  border-color:#fff!important;
}

/* AI pickup on top stronger */
.ai-pickup{
  background:linear-gradient(90deg,#fff7f4,#fff)!important;
}
.ai-pickup h2{
  color:var(--wine)!important;
}
.ai-pickup a{
  background:var(--wine);
  color:#fff!important;
}

@media(max-width:1000px){
  .ai-main-message,
  .ai-menu-list,
  .ai-before-after,
  .ai-direct-cta-inner{
    grid-template-columns:1fr;
  }
  .ai-before-after>div+div{
    padding-left:0;
    border-left:0;
  }
  .ai-menu-list article{
    border-left:0;
  }
}
@media(max-width:620px){
  .service-detail-image{
    height:300px!important;
  }
  .ai-menu-list article,
  .ai-before-after>div{
    padding:28px 22px 32px 0;
  }
}



/* ===== v24: service page section flow cleanup ===== */
/* Generic sections before AI should feel connected, not interrupted */
.service-detail-section + .section{
  padding-top:86px!important;
}
.service-detail-section + .section + .section{
  padding-top:82px!important;
  padding-bottom:96px!important;
}

/* AI area starts as a clear next chapter, not a random inserted CTA */
.ai-expanded-section{
  position:relative;
  padding-top:104px!important;
  background:linear-gradient(180deg,#fff 0%,#fff7f4 100%)!important;
  border-top:1px solid rgba(138,22,40,.12);
}
.ai-expanded-section .section-title{
  margin-bottom:44px!important;
}
.ai-expanded-section .section-title h2{
  color:var(--wine)!important;
}
.ai-main-message{
  margin-bottom:48px!important;
  background:#fff!important;
  padding:34px 0 40px!important;
}

/* AI sub sections connect as one story */
.ai-service-menu-section,
.ai-flow-section,
.ai-usecase-section,
.ai-before-after-section{
  padding-top:88px!important;
  padding-bottom:96px!important;
}
.ai-service-menu-section{
  background:#fff!important;
}
.ai-flow-section{
  background:#fff7f4!important;
}
.ai-usecase-section{
  background:#fff!important;
}
.ai-before-after-section{
  background:#fff7f4!important;
}

/* Move AI CTA to the end of the AI block and make it feel like closing action */
.ai-direct-cta{
  margin-top:0!important;
  border-top:0!important;
  background:#1c2025!important;
}
.ai-direct-cta + .cta{
  border-top:8px solid var(--wine);
}

/* Remove old note-area spacing if any remained */
.axelight-note-section,
.axelight-note{
  display:none!important;
}

/* Better spacing around generic issue section */
.six-grid .small-box{
  min-height:150px;
}
@media(max-width:900px){
  .ai-expanded-section{
    padding-top:76px!important;
  }
  .ai-service-menu-section,
  .ai-flow-section,
  .ai-usecase-section,
  .ai-before-after-section{
    padding-top:70px!important;
    padding-bottom:76px!important;
  }
}



/* ===== v26: clarify service-page section ownership ===== */
.section-lead-text{
  max-width:820px;
  margin:18px 0 0!important;
  font-size:16px!important;
  line-height:2!important;
  color:#4d5154;
}

/* Generic overview sections now appear before individual services */
.lead-block + .section{
  padding-top:84px!important;
}
.lead-block + .section + .section{
  padding-top:78px!important;
}
.lead-block + .section + .section + .service-detail-section{
  padding-top:92px!important;
  border-top:1px solid rgba(138,22,40,.12);
}

/* Make it visually clear AI is a separate later chapter */
.service-detail-section + .ai-expanded-section{
  margin-top:0!important;
  border-top:1px solid rgba(138,22,40,.16)!important;
}
.ai-expanded-section .section-title:before{
  content:"";
  display:block;
  width:88px;
  height:3px;
  background:var(--wine);
  margin:0 0 28px;
}
@media(max-width:900px){
  .section-lead-text{
    font-size:15.5px!important;
  }
}



/* ===== v27: mobile menu fix ===== */
.menu{
  border:0;
  background:transparent;
  padding:0;
  margin:0;
  font:inherit;
  line-height:1;
  cursor:pointer;
  color:var(--wine);
  position:relative;
  z-index:1002;
  -webkit-tap-highlight-color:transparent;
}

@media(max-width:900px){
  body.is-menu-open{
    overflow:hidden;
  }

  body.is-menu-open::before{
    content:"";
    position:fixed;
    inset:0;
    background:rgba(26, 16, 18, .28);
    z-index:998;
  }

  .site-header{
    z-index:1001;
  }

  .site-header .nav{
    display:none;
  }

  .site-header .nav.is-open{
    display:flex!important;
    position:fixed;
    left:18px;
    right:18px;
    top:74px;
    z-index:1001;
    flex-direction:column;
    align-items:stretch;
    gap:0;
    padding:14px 18px 18px;
    background:rgba(255,255,255,.98);
    border:1px solid rgba(138,22,40,.16);
    box-shadow:0 20px 50px rgba(34,20,24,.18);
  }

  .site-header .nav.is-open a{
    height:auto!important;
    min-height:48px;
    padding:12px 4px;
    display:flex;
    align-items:center;
    border-bottom:1px solid rgba(138,22,40,.10);
    font-size:15px;
  }

  .site-header .nav.is-open a.active::after{
    display:none;
  }

  .site-header .nav.is-open a:last-child{
    border-bottom:0;
  }

  .site-header .nav.is-open .nav-cta{
    height:52px!important;
    justify-content:center;
    padding:0 22px!important;
    margin:14px 0 0!important;
    color:#fff!important;
    border-bottom:0;
  }
}

@media(min-width:901px){
  .site-header .nav{
    display:flex!important;
  }
  .menu{
    display:none!important;
  }
}



/* ===== v28: larger mobile menu icon ===== */
.menu{
  width:46px!important;
  height:46px!important;
  display:none;
  align-items:center;
  justify-content:center;
  border:1px solid rgba(138,22,40,.16)!important;
  border-radius:999px!important;
  background:rgba(255,255,255,.86)!important;
  color:var(--wine)!important;
  box-shadow:0 8px 22px rgba(34,20,24,.08);
}

.menu-icon{
  width:24px;
  height:18px;
  display:flex;
  flex-direction:column;
  justify-content:space-between;
  position:relative;
}

.menu-icon span{
  display:block;
  width:100%;
  height:2px;
  border-radius:999px;
  background:var(--wine);
  transition:transform .22s ease, opacity .18s ease;
  transform-origin:center;
}

.menu.is-active .menu-icon span:nth-child(1){
  transform:translateY(8px) rotate(45deg);
}

.menu.is-active .menu-icon span:nth-child(2){
  opacity:0;
}

.menu.is-active .menu-icon span:nth-child(3){
  transform:translateY(-8px) rotate(-45deg);
}

@media(max-width:900px){
  .menu{
    display:flex!important;
    flex:0 0 46px;
  }

  .site-header .inner{
    min-height:66px;
  }
}

@media(min-width:901px){
  .menu{
    display:none!important;
  }
}



/* ===== v29: full mobile overflow / heading / footer audit fix ===== */

/* Global safety: do not allow small accidental horizontal clipping */
html,
body{
  max-width:100%;
  overflow-x:hidden;
}

/* Mobile: reset accumulated desktop-ish overrides that were breaking narrow screens */
@media(max-width:900px){

  html,
  body{
    width:100%;
    overflow-x:hidden!important;
  }

  /* Consistent left/right spacing on all pages */
  .wrap,
  .head-inner,
  .hero-grid,
  .service-detail-section .wrap,
  .cta .wrap,
  .site-footer .wrap,
  .contact-form-wrap{
    width:calc(100% - 36px)!important;
    max-width:none!important;
    margin-left:auto!important;
    margin-right:auto!important;
  }

  .section{
    padding-top:64px!important;
    padding-bottom:72px!important;
  }

  /* All large headings: allow safe Japanese wrapping */
  h1,
  h2,
  h3,
  .page-copy h1,
  .hero h1,
  .hero .lead,
  .lead-block h2,
  .center-lead h2,
  .section-title h2,
  .name-story h2,
  .service-detail h3,
  .service-card h3,
  .reason h3,
  .work-body h3,
  .case-body h3,
  .small-box h3,
  .detail-card h3,
  .wide-card h3,
  .contact-box h2,
  .contact-box h3,
  .privacy h2,
  .cta h2,
  .flow-intro-copy h2,
  .flow-overview-card h3,
  .flow-step-feature-copy h3,
  .flow-step-content h3,
  .flow-type-card-v9 h3,
  .prep-copy h2,
  .about-visual-copy h2,
  .ai-expanded-lead h3,
  .ai-main-message h3,
  .ai-support-grid h3,
  .ai-flow h3,
  .ai-usecase-list h3,
  .ai-menu-list h3,
  .ai-before-after h3,
  .ai-direct-cta h2{
    max-width:100%!important;
    min-width:0!important;
    white-space:normal!important;
    word-break:normal!important;
    overflow-wrap:anywhere!important;
    line-break:loose!important;
    text-wrap:auto!important;
  }

  /* Page hero headings */
  .page-copy{
    width:calc(100% - 36px)!important;
    max-width:none!important;
    padding:46px 0 40px!important;
    margin-left:auto!important;
    margin-right:auto!important;
  }

  .page-copy h1{
    font-size:clamp(34px,10vw,42px)!important;
    line-height:1.22!important;
    letter-spacing:.035em!important;
  }

  .page-copy p{
    font-size:15.5px!important;
    line-height:1.9!important;
  }

  .hero-copy{
    padding-left:0!important;
    padding-right:0!important;
  }

  .hero h1{
    font-size:clamp(36px,10vw,44px)!important;
    line-height:1.25!important;
  }

  .hero .lead{
    font-size:17px!important;
    line-height:1.8!important;
  }

  /* Section H2: stop large desktop sizes from surviving on mobile */
  .lead-block h2,
  .center-lead h2,
  .section-title h2{
    font-size:clamp(25px,7.1vw,31px)!important;
    line-height:1.45!important;
    letter-spacing:.025em!important;
  }

  .lead-block{
    padding-top:54px!important;
    padding-bottom:56px!important;
  }

  .section-title{
    margin-bottom:32px!important;
  }

  .section-title .eyebrow,
  .eyebrow{
    letter-spacing:.12em!important;
  }

  /* Image-under-title / service large headings */
  .service-detail{
    padding:48px 0!important;
    gap:28px!important;
  }

  .service-detail h3{
    font-size:clamp(25px,7.2vw,30px)!important;
    line-height:1.42!important;
    letter-spacing:.02em!important;
    margin-bottom:18px!important;
  }

  .service-lead{
    font-size:15.5px!important;
    line-height:1.95!important;
  }

  .service-detail-image,
  .about-visual-photo,
  .case-study-image,
  .flow-intro-photo,
  .flow-step-feature-photo,
  .flow-type-photo-v9,
  .prep-photo{
    width:100%!important;
    max-width:100%!important;
    min-width:0!important;
    height:clamp(240px,70vw,320px)!important;
    min-height:0!important;
  }

  .service-detail-image img,
  .about-visual-photo img,
  .case-study-image img,
  .flow-intro-photo img,
  .flow-step-feature-photo img,
  .flow-type-photo-v9 img,
  .prep-photo img{
    width:100%!important;
    height:100%!important;
    object-fit:cover!important;
  }

  /* Cards / grids must not keep desktop min widths */
  .services,
  .reasons,
  .works-grid,
  .flow-mini,
  .cards-4,
  .six-grid,
  .case-grid,
  .contact-panel,
  .service-detail-grid,
  .ai-support-grid,
  .ai-flow,
  .ai-menu-list,
  .ai-before-after,
  .ai-direct-cta-inner,
  .ai-expanded-lead,
  .ai-main-message,
  .ai-usecase-list{
    grid-template-columns:1fr!important;
    width:100%!important;
    max-width:100%!important;
    min-width:0!important;
  }

  .service-card,
  .reason,
  .work-card,
  .case-card,
  .small-box,
  .detail-card,
  .wide-card,
  .contact-box,
  .ai-support-grid article,
  .ai-flow div,
  .ai-menu-list article,
  .ai-before-after>div,
  .ai-usecase-list>div{
    width:100%!important;
    max-width:100%!important;
    min-width:0!important;
  }

  /* CTA: detected as overflowing on almost every page */
  .cta{
    overflow:hidden!important;
    padding-top:52px!important;
    padding-bottom:58px!important;
  }

  .cta .wrap{
    display:block!important;
  }

  .cta .wrap > *{
    width:100%!important;
    max-width:100%!important;
    min-width:0!important;
  }

  .cta h2{
    font-size:clamp(25px,7vw,31px)!important;
    line-height:1.45!important;
    letter-spacing:.025em!important;
  }

  .cta p{
    font-size:14.5px!important;
    line-height:1.95!important;
  }

  .cta .btn{
    width:100%!important;
    max-width:100%!important;
    min-width:0!important;
    margin-top:26px!important;
  }

  /* AI expanded sections */
  .ai-expanded-lead,
  .ai-main-message{
    gap:24px!important;
    padding-top:28px!important;
    padding-bottom:32px!important;
  }

  .ai-expanded-lead h3,
  .ai-main-message h3,
  .ai-direct-cta h2{
    font-size:clamp(25px,7vw,31px)!important;
    line-height:1.5!important;
  }

  .ai-expanded-lead p,
  .ai-main-message p:not(.eyebrow),
  .ai-direct-cta p:not(.eyebrow){
    font-size:15.5px!important;
    line-height:2!important;
  }

  .ai-support-grid,
  .ai-menu-list{
    border-left:0!important;
  }

  .ai-support-grid article,
  .ai-menu-list article{
    padding:26px 22px 30px!important;
    border-left:0!important;
    border-right:0!important;
  }

  .ai-flow div{
    padding:24px 0 28px!important;
    border-left:0!important;
    border-top:1px solid var(--line)!important;
  }

  .ai-flow div:first-child{
    border-top:0!important;
  }

  .ai-before-after>div{
    padding:28px 0 30px!important;
    border-left:0!important;
  }

  .ai-before-after>div+div{
    padding-left:0!important;
    border-left:0!important;
  }

  .ai-menu-list h3,
  .ai-flow h3,
  .ai-support-grid h3,
  .ai-usecase-list h3{
    font-size:clamp(21px,6.2vw,25px)!important;
    line-height:1.55!important;
  }

  .ai-direct-cta{
    padding-top:54px!important;
    padding-bottom:58px!important;
  }

  .ai-direct-cta .btn{
    width:100%!important;
    max-width:100%!important;
    min-width:0!important;
  }

  /* About visual: detected near right edge on 360px */
  .about-visual,
  .about-visual-copy,
  .about-visual-photo{
    width:100%!important;
    max-width:100%!important;
    min-width:0!important;
  }

  .about-visual-copy h2{
    font-size:clamp(25px,7vw,31px)!important;
    line-height:1.45!important;
  }

  /* Contact */
  .contact-form-section{
    overflow:hidden!important;
  }

  .contact-form-wrap{
    padding:22px 0!important;
    box-shadow:none!important;
    border-radius:0!important;
  }

  .contact-box h2,
  .contact-box h3{
    font-size:clamp(22px,6.4vw,28px)!important;
    line-height:1.5!important;
  }

  /* Footer: rebuild mobile footer instead of forcing desktop logo/nav */
  .site-footer{
    padding:42px 0 36px!important;
    overflow:hidden!important;
  }

  .foot-inner{
    display:block!important;
    width:100%!important;
    max-width:100%!important;
    min-width:0!important;
  }

  .site-footer .brand{
    display:inline-flex!important;
    max-width:100%!important;
    min-width:0!important;
    gap:10px!important;
    align-items:center!important;
  }

  .site-footer .brand-mark{
    font-size:38px!important;
    line-height:1!important;
  }

  .site-footer .brand-divider{
    height:38px!important;
  }

  .site-footer .brand-word{
    font-size:22px!important;
    line-height:1!important;
  }

  .site-footer .brand-word small{
    font-size:8px!important;
    letter-spacing:.12em!important;
  }

  .foot-nav{
    display:grid!important;
    grid-template-columns:1fr 1fr!important;
    gap:10px 16px!important;
    margin-top:28px!important;
    width:100%!important;
    max-width:100%!important;
    font-size:13px!important;
    line-height:1.5!important;
  }

  .foot-nav a{
    display:block!important;
    min-width:0!important;
    padding:6px 0!important;
    overflow-wrap:anywhere!important;
  }

  .copyright{
    margin-top:26px!important;
    font-size:11px!important;
    line-height:1.7!important;
  }
}

@media(max-width:520px){
  .wrap,
  .head-inner,
  .hero-grid,
  .service-detail-section .wrap,
  .cta .wrap,
  .site-footer .wrap{
    width:calc(100% - 32px)!important;
  }

  .section{
    padding-top:56px!important;
    padding-bottom:64px!important;
  }

  .lead-block h2,
  .center-lead h2,
  .section-title h2{
    font-size:clamp(24px,7vw,29px)!important;
  }

  .service-detail h3,
  .ai-expanded-lead h3,
  .ai-main-message h3,
  .ai-direct-cta h2,
  .cta h2,
  .about-visual-copy h2{
    font-size:clamp(24px,7.3vw,29px)!important;
  }

  .page-copy h1{
    font-size:clamp(34px,10.5vw,40px)!important;
  }

  .service-detail-image,
  .about-visual-photo,
  .case-study-image,
  .flow-intro-photo,
  .flow-step-feature-photo,
  .flow-type-photo-v9,
  .prep-photo{
    height:260px!important;
  }

  .foot-nav{
    grid-template-columns:1fr!important;
  }
}



/* ===== v30: mobile body text readability tuning ===== */
@media(max-width:900px){

  body{
    font-size:16.5px!important;
  }

  p,
  li,
  dd,
  .lead-block p,
  .center-lead p,
  .section-lead-text,
  .service-lead,
  .service-card p,
  .reason p,
  .work-body p,
  .case-body p,
  .small-box p,
  .detail-card p,
  .wide-card p,
  .contact-box p,
  .privacy p,
  .privacy li,
  .faq-a,
  .flow-step-content p,
  .flow-intro-copy p,
  .prep-copy p,
  .about-visual-copy p,
  .ai-expanded-lead p,
  .ai-main-message p:not(.eyebrow),
  .ai-support-grid p,
  .ai-flow p,
  .ai-usecase-list p,
  .ai-menu-list p,
  .ai-before-after p,
  .ai-direct-cta p:not(.eyebrow),
  .cta p{
    font-size:16.5px!important;
    line-height:2!important;
  }

  /* Main catch / lead text can be a little more readable */
  .hero .lead,
  .page-copy p{
    font-size:17px!important;
    line-height:1.95!important;
  }

  /* Keep small labels small */
  .eyebrow,
  .section-title .eyebrow{
    font-size:11px!important;
  }

  .copyright{
    font-size:11px!important;
  }

  /* Buttons: readable without becoming huge */
  .btn,
  .nav-cta{
    font-size:15px!important;
  }
}

@media(max-width:520px){

  p,
  li,
  dd,
  .lead-block p,
  .center-lead p,
  .section-lead-text,
  .service-lead,
  .service-card p,
  .reason p,
  .work-body p,
  .case-body p,
  .small-box p,
  .detail-card p,
  .wide-card p,
  .contact-box p,
  .privacy p,
  .privacy li,
  .faq-a,
  .flow-step-content p,
  .flow-intro-copy p,
  .prep-copy p,
  .about-visual-copy p,
  .ai-expanded-lead p,
  .ai-main-message p:not(.eyebrow),
  .ai-support-grid p,
  .ai-flow p,
  .ai-usecase-list p,
  .ai-menu-list p,
  .ai-before-after p,
  .ai-direct-cta p:not(.eyebrow),
  .cta p{
    font-size:16.5px!important;
    line-height:2!important;
  }

  .hero .lead,
  .page-copy p{
    font-size:16.8px!important;
  }
}



/* ===== v31: mobile back-to-top button ===== */
.back-to-top{
  position:fixed;
  right:18px;
  bottom:18px;
  z-index:997;
  width:58px;
  height:58px;
  border:1px solid rgba(138,22,40,.18);
  border-radius:999px;
  background:rgba(255,255,255,.94);
  color:var(--wine);
  box-shadow:0 14px 36px rgba(34,20,24,.18);
  display:none;
  align-items:center;
  justify-content:center;
  flex-direction:column;
  gap:1px;
  opacity:0;
  transform:translateY(12px);
  pointer-events:none;
  cursor:pointer;
  transition:opacity .22s ease, transform .22s ease, background .22s ease;
  -webkit-tap-highlight-color:transparent;
}

.back-to-top-arrow{
  font-size:20px;
  line-height:1;
  font-weight:600;
}

.back-to-top-label{
  font-size:10px;
  line-height:1;
  letter-spacing:.12em;
  font-weight:600;
}

.back-to-top.is-visible{
  opacity:1;
  transform:translateY(0);
  pointer-events:auto;
}

.back-to-top:active{
  transform:translateY(1px);
}

body.is-menu-open .back-to-top{
  opacity:0!important;
  pointer-events:none!important;
}

@media(max-width:900px){
  .back-to-top{
    display:flex;
  }

  .site-header{
    z-index:1001!important;
  }
}

@media(max-width:520px){
  .back-to-top{
    right:14px;
    bottom:14px;
    width:56px;
    height:56px;
  }
}
