/* 株式会社世界はもっと美しい v12 */
:root{
  --bg:#f7f9fc;
  --paper:#ffffff;
  --soft:#fbfcff;
  --ink:#0d285f;
  --deep:#071a3d;
  --muted:#65728f;
  --line:#e4ebf4;
  --pink:#ef3b86;
  --teal:#15a0a4;
  --navy:#0e2d68;
  --shadow:0 18px 54px rgba(13,40,95,.09);
  --shadow-soft:0 10px 30px rgba(13,40,95,.06);
  --radius:28px;
  --jp:'Shippori Mincho','Yu Mincho','Hiragino Mincho ProN',serif;
  --sans:'Inter','Hiragino Sans','Yu Gothic',system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;text-size-adjust:100%}
body{
  margin:0;
  font-family:var(--sans);
  color:var(--ink);
  line-height:1.8;
  background:
    radial-gradient(circle at 10% 0%,rgba(239,59,134,.08),transparent 26%),
    radial-gradient(circle at 88% 0%,rgba(21,160,164,.07),transparent 25%),
    linear-gradient(180deg,#fff 0%,var(--bg) 100%);
  -webkit-font-smoothing:antialiased;
}
a{color:inherit;text-decoration:none}
img,picture{display:block;max-width:100%}
img{height:auto}
button,input,select,textarea{font:inherit}
button{cursor:pointer}
.wrap{width:min(1180px,calc(100% - 44px));margin-inline:auto}
.skip{position:absolute;left:16px;top:-90px;background:var(--deep);color:#fff;padding:10px 14px;border-radius:12px;z-index:999}
.skip:focus{top:16px}
.site-header{position:sticky;top:0;z-index:50;background:rgba(255,255,255,.9);backdrop-filter:blur(18px);border-bottom:1px solid rgba(228,235,244,.9)}
.header-inner{min-height:78px;display:flex;align-items:center;justify-content:space-between;gap:22px}
.logo img{width:214px;height:auto}
.nav{display:flex;align-items:center;gap:20px;font-size:.9rem;font-weight:700;color:var(--muted)}
.nav a:not(.btn){position:relative;white-space:nowrap}
.nav a:not(.btn)::after{content:"";position:absolute;left:0;bottom:-7px;width:100%;height:2px;background:var(--pink);transform:scaleX(0);transform-origin:left;transition:.22s}
.nav a:hover::after{transform:scaleX(1)}
.btn{display:inline-flex;align-items:center;justify-content:center;min-height:50px;padding:0 22px;border-radius:999px;border:1px solid transparent;font-weight:800;letter-spacing:.02em;transition:.2s}
.btn:hover{transform:translateY(-2px)}
.btn.primary{background:var(--navy);color:#fff;box-shadow:var(--shadow-soft)}
.btn.secondary{background:#fff;color:var(--navy);border-color:var(--line)}
.nav-toggle{display:none;border:0;background:transparent;padding:8px}
.nav-toggle span{display:block;width:26px;height:2px;background:var(--navy);border-radius:999px;margin:6px 0}
.mobile-nav{display:none;position:absolute;top:calc(100% + 10px);left:22px;right:22px;background:#fff;border:1px solid var(--line);border-radius:22px;box-shadow:var(--shadow);padding:10px}
.mobile-nav a{display:block;padding:13px 10px;border-bottom:1px solid var(--line);font-weight:800}
.mobile-nav a:last-child{border-bottom:0}


.nav .btn{min-height:44px;padding:0 18px;white-space:nowrap}
.assurance-mini{display:flex;flex-wrap:wrap;gap:9px;margin:16px 0 0;padding:0;list-style:none}
.assurance-mini li{display:flex;align-items:center;gap:8px;padding:9px 12px;border:1px solid var(--line);border-radius:999px;background:rgba(255,255,255,.92);box-shadow:0 8px 22px rgba(13,40,95,.045);color:var(--navy);font-size:.84rem;font-weight:800;line-height:1.4}
.assurance-icon{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;flex:0 0 18px;border-radius:50%;background:rgba(239,59,134,.10);color:var(--pink);font-size:.78rem;font-weight:900}
.step-cta-card{margin-top:24px;padding:24px;display:flex;align-items:center;justify-content:space-between;gap:22px;background:linear-gradient(135deg,rgba(255,255,255,.98),rgba(247,249,252,.96));border-color:rgba(228,235,244,.95)}
.step-cta-copy{min-width:0}
.cta-kicker{margin:0 0 6px;color:var(--pink);font-size:.76rem;font-weight:900;letter-spacing:.12em;text-transform:uppercase;line-height:1.4}
.step-cta-card h3{font-family:var(--sans);font-size:1.18rem;line-height:1.6;letter-spacing:.01em;font-weight:900;margin:0;color:var(--deep)}
.assurance-block{margin-top:12px}
.hero{padding:56px 0 80px;overflow:hidden}
.hero-grid{display:grid;grid-template-columns:minmax(0,.82fr) minmax(560px,1.18fr);gap:38px;align-items:center}
.eyebrow{display:inline-flex;align-items:center;gap:12px;color:var(--navy);font-size:.82rem;font-weight:900;letter-spacing:.14em;text-transform:uppercase}
.eyebrow::before,.eyebrow::after{content:"";width:24px;height:2px;border-radius:999px;background:var(--pink)}
.hero h1{font-family:var(--jp);font-size:clamp(2.35rem,4.8vw,4.65rem);line-height:1.26;letter-spacing:.05em;font-weight:600;color:var(--deep);margin:18px 0}
.hero h1 span{color:var(--pink)}
.lead{color:var(--muted);font-size:1.02rem;line-height:2.05;margin:0 0 14px}
.tags{display:flex;flex-wrap:wrap;gap:9px;margin:24px 0 30px;padding:0;list-style:none}
.tags li{padding:9px 13px;border:1px solid var(--line);border-radius:999px;background:rgba(255,255,255,.92);font-size:.86rem;font-weight:800;color:var(--navy)}
.actions{display:flex;gap:14px;flex-wrap:wrap}
.visual-shell{background:#fff;border:1px solid var(--line);border-radius:32px;padding:14px;box-shadow:var(--shadow);overflow:hidden}
.visual-shell img{width:100%;border-radius:22px;aspect-ratio:1672/941;object-fit:cover}

.section{padding:90px 0}
.section.alt{background:linear-gradient(180deg,rgba(255,255,255,.74),rgba(255,255,255,.3))}
.section-head{text-align:center;max-width:770px;margin:0 auto 34px}
.section-head h2{font-family:var(--jp);font-size:clamp(1.95rem,3.7vw,3.15rem);line-height:1.45;letter-spacing:.06em;font-weight:600;color:var(--deep);margin:14px 0 12px}
.section-head p{margin:0;color:var(--muted);line-height:2}
.two{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:26px;align-items:start}
.card{background:rgba(255,255,255,.96);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-soft);overflow:hidden}
.text-card{padding:26px}
.image-card{padding:12px}
.image-card img{width:100%;border-radius:20px;aspect-ratio:1672/941;object-fit:cover}
h3{font-family:var(--jp);font-size:1.62rem;line-height:1.58;letter-spacing:.04em;color:var(--deep);font-weight:600;margin:0 0 12px}
.text-card p{margin:0;color:var(--muted);line-height:2}
.list{display:grid;gap:11px;list-style:none;padding:0;margin:18px 0 0}
.list li{display:flex;gap:12px;align-items:flex-start;padding:14px 16px;border:1px solid #edf1f7;border-radius:16px;background:var(--soft);color:var(--navy);line-height:1.75}
.list li::before{content:"";width:9px;height:9px;flex:0 0 9px;border-radius:999px;background:var(--pink);margin-top:.66em}
.service-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-top:20px}
.service{padding:18px;border-radius:18px;border:1px solid var(--line);background:#fff;box-shadow:var(--shadow-soft)}
.service strong{display:block;color:var(--navy);margin-bottom:6px;font-size:1.02rem}
.service span{display:block;color:var(--muted);font-size:.9rem;line-height:1.75}

.section-practical{padding-top:72px}
.practical-layout{display:grid;grid-template-columns:minmax(0,1.06fr) minmax(0,.94fr);gap:24px;align-items:start}
.support-figure{padding:14px;background:linear-gradient(180deg,#fff,rgba(247,249,252,.95))}
.support-figure img{width:100%;height:auto;aspect-ratio:1200/680;object-fit:contain;border-radius:20px}
.practical-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.support-item{padding:20px 18px}
.support-label{margin:0 0 8px;color:var(--pink);font-size:.76rem;font-weight:900;letter-spacing:.08em;text-transform:uppercase;line-height:1.5}
.support-title{font-family:var(--sans);font-size:1.08rem;line-height:1.65;letter-spacing:.01em;font-weight:800;margin:0 0 10px;color:var(--navy)}
.support-item p:last-child{margin:0;color:var(--muted);font-size:.92rem;line-height:1.85}
.profile-grid,.company-grid,.contact-grid{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:26px;align-items:start}
.profile-photo{padding:22px}
.profile-photo img{border-radius:24px;aspect-ratio:4/5;object-fit:cover;object-position:center 18%;margin-bottom:18px}
.kv{display:grid;grid-template-columns:150px 1fr;gap:12px 18px;margin:0}
.kv dt{font-weight:900;color:var(--navy)}
.kv dd{margin:0;color:var(--muted);line-height:1.85}
.form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:18px}
.field{display:grid;gap:7px}
.field.full{grid-column:1/-1}
label{font-weight:900;color:var(--navy);font-size:.9rem}
input:not([type="checkbox"]),select,textarea{width:100%;border:1px solid var(--line);background:#fff;color:var(--ink);border-radius:15px;padding:14px 15px;outline:0}
textarea{min-height:150px;resize:vertical}
input:not([type="checkbox"]):focus,select:focus,textarea:focus{border-color:rgba(239,59,134,.55);box-shadow:0 0 0 4px rgba(239,59,134,.08)}
.checkbox{display:flex;gap:12px;align-items:flex-start;padding:14px 15px;border:1px solid var(--line);border-radius:16px;background:var(--soft)}
.checkbox input[type="checkbox"]{appearance:auto;-webkit-appearance:checkbox;width:20px;height:20px;flex:0 0 20px;margin:3px 0 0;accent-color:var(--pink);cursor:pointer}
.checkbox span{color:var(--muted);font-size:.9rem;line-height:1.75}
.checkbox a{text-decoration:underline;text-underline-offset:3px;color:var(--navy);font-weight:900}
.form-actions{grid-column:1/-1;display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap}
.note{font-size:.86rem;color:var(--muted);margin:0}
.footer{padding:32px 0 48px;color:var(--muted)}
.footer-inner{border-top:1px solid var(--line);padding-top:24px;display:flex;justify-content:space-between;gap:22px;flex-wrap:wrap}
.footer-nav{display:flex;gap:14px;flex-wrap:wrap;font-weight:800;color:var(--navy)}
.reveal{opacity:0;transform:translateY(18px);transition:opacity .65s ease,transform .65s ease}
.reveal.on{opacity:1;transform:none}
@media(max-width:1100px){
  .faq-layout{grid-template-columns:1fr}
  .case-study-grid{grid-template-columns:1fr}
  .experience-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .nav{display:none}.nav-toggle{display:block}.site-header.open .mobile-nav{display:block}
  .hero-grid,.two,.profile-grid,.company-grid,.contact-grid{grid-template-columns:1fr}
  .visual-shell{max-width:880px;margin:0 auto}
  .service-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .practical-layout{grid-template-columns:1fr}
}

@media(max-width:760px){
  .faq-item summary{padding:16px}
  .faq-item p{padding:0 16px 16px}
  .faq-note{padding:20px}
  .profile-axis{gap:8px}
  .profile-axis span{width:calc(50% - 4px)}
  .case-study-card{padding:20px}
  .case-study-card h3{font-size:1.22rem}
  .case-note{text-align:left}
  .experience-grid{grid-template-columns:1fr}
  .experience-card{padding:20px}
  .experience-note{text-align:left}
  .form-privacy-note{text-align:left}
  .form-card{padding:18px}
  .form-group-heading{align-items:flex-start;flex-direction:column;gap:4px}
  .contact-flow li{padding:11px 12px}
  .step-cta-card{flex-direction:column;align-items:stretch;padding:20px}
  .assurance-mini{gap:8px}
  .assurance-mini li{width:100%;border-radius:16px;justify-content:flex-start}
  .wrap{width:min(100% - 28px,1180px)}
  .header-inner{min-height:72px}.logo img{width:184px}
  .hero{padding:36px 0 66px}.hero h1{font-size:clamp(2.05rem,10vw,3.1rem)}
  .actions,.form-actions{flex-direction:column;align-items:stretch}.btn{width:100%}
  .section{padding:74px 0}.text-card{padding:20px}.image-card{padding:10px}
  .service-grid,.form,.practical-grid{grid-template-columns:1fr}.kv{grid-template-columns:1fr}
  .support-item{padding:18px}
}

@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}.reveal{opacity:1;transform:none}}

.hp-field {
  position: absolute !important;
  left: -9999px !important;
  width: 1px !important;
  height: 1px !important;
  opacity: 0 !important;
  pointer-events: none !important;
}


.form-card{padding:24px}
.form-intro{margin-bottom:18px;padding:16px 18px;border:1px solid var(--line);border-radius:18px;background:linear-gradient(135deg,rgba(255,255,255,.98),rgba(247,249,252,.95))}
.form-intro-title{margin:0 0 4px;color:var(--navy);font-weight:900;line-height:1.5}
.form-intro p:last-child{margin:0;color:var(--muted);font-size:.92rem;line-height:1.8}
.form-group-heading{grid-column:1/-1;display:flex;align-items:flex-end;justify-content:space-between;gap:14px;margin-top:4px;padding:12px 0 2px;border-bottom:1px solid var(--line)}
.form-group-heading strong{color:var(--deep);font-size:1rem;letter-spacing:.04em}
.form-group-heading span{color:var(--muted);font-size:.86rem;line-height:1.6}
.form-group-heading.optional{margin-top:10px}
.badge{display:inline-flex;align-items:center;justify-content:center;margin-left:6px;padding:3px 8px;border-radius:999px;font-size:.72rem;font-weight:900;line-height:1.2;vertical-align:middle;font-style:normal}
.badge.req{background:rgba(239,59,134,.10);color:var(--pink)}
.badge.opt{background:#eef3fb;color:var(--muted)}
.contact-flow{margin-top:18px;padding:18px;border:1px solid var(--line);border-radius:20px;background:rgba(255,255,255,.92);box-shadow:var(--shadow-soft)}
.flow-title{margin:0 0 12px!important;color:var(--navy)!important;font-weight:900;line-height:1.5!important}
.contact-flow ol{display:grid;gap:9px;margin:0;padding:0;list-style:none}
.contact-flow li{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:14px;background:var(--soft);color:var(--navy);font-weight:800;line-height:1.5}
.contact-flow li span{display:inline-flex;align-items:center;justify-content:center;width:34px;height:24px;border-radius:999px;background:#fff;border:1px solid var(--line);color:var(--pink);font-size:.76rem;font-weight:900;flex:0 0 34px}


.form-privacy-note{grid-column:1/-1;margin:2px 0 0;color:var(--muted);font-size:.84rem;line-height:1.7;text-align:right}


.section-experience{background:linear-gradient(180deg,rgba(255,255,255,.72),rgba(247,249,252,.78))}
.experience-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}
.experience-card{padding:22px;position:relative;overflow:hidden}
.experience-card::after{content:"";position:absolute;right:-24px;top:-24px;width:92px;height:92px;border-radius:50%;background:rgba(239,59,134,.07);pointer-events:none}
.experience-icon{display:inline-flex;align-items:center;justify-content:center;width:50px;height:50px;border-radius:18px;background:#fff;border:1px solid var(--line);color:var(--navy);box-shadow:var(--shadow-soft);margin-bottom:14px;position:relative;z-index:1}
.experience-icon svg{width:27px;height:27px}
.experience-kicker{margin:0 0 6px;color:var(--pink);font-size:.72rem;font-weight:900;letter-spacing:.10em;text-transform:uppercase;line-height:1.5}
.experience-card h3{font-family:var(--sans);font-size:1.18rem;line-height:1.55;letter-spacing:.01em;font-weight:900;margin:0;color:var(--deep)}
.experience-card strong{display:block;margin:4px 0 10px;color:var(--navy);font-size:.94rem;line-height:1.55}
.experience-card p:last-child{margin:0;color:var(--muted);font-size:.9rem;line-height:1.85}
.experience-note{margin:18px 0 0;color:var(--muted);font-size:.86rem;line-height:1.8;text-align:right}


.section-case-studies{background:linear-gradient(180deg,rgba(255,255,255,.94),rgba(247,249,252,.72))}
.case-study-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.case-study-card{padding:24px;background:linear-gradient(180deg,rgba(255,255,255,.98),rgba(251,252,255,.98))}
.case-study-head{padding-bottom:16px;border-bottom:1px solid var(--line);margin-bottom:16px}
.case-no{display:inline-flex;margin:0 0 10px;padding:5px 10px;border-radius:999px;background:rgba(239,59,134,.10);color:var(--pink);font-size:.72rem;font-weight:900;letter-spacing:.10em;text-transform:uppercase;line-height:1.4}
.case-study-card h3{font-family:var(--jp);font-size:1.34rem;line-height:1.55;letter-spacing:.04em;margin:0;color:var(--deep)}
.case-steps{display:grid;gap:16px}
.case-steps section{position:relative;padding:16px;border:1px solid #edf1f7;border-radius:18px;background:#fff}
.case-steps section:not(:last-child)::after{content:"";position:absolute;left:28px;bottom:-14px;width:2px;height:12px;background:linear-gradient(180deg,var(--pink),var(--teal));border-radius:999px}
.case-step-label{display:inline-flex;margin:0 0 8px;padding:4px 9px;border-radius:999px;background:#eef3fb;color:var(--navy);font-size:.78rem;font-weight:900;line-height:1.4}
.case-steps p{margin:0;color:var(--muted);font-size:.91rem;line-height:1.85}
.case-note{margin:18px 0 0;color:var(--muted);font-size:.86rem;line-height:1.8;text-align:right}


.profile-grid-refined{align-items:stretch}
.profile-body{position:relative}
.profile-alias{margin:8px 0 0;color:var(--muted);font-size:.84rem;line-height:1.7}
.profile-axis{display:flex;flex-wrap:wrap;gap:10px;margin:18px 0 4px}
.profile-axis span{display:inline-flex;align-items:center;justify-content:center;min-width:68px;padding:9px 13px;border:1px solid var(--line);border-radius:999px;background:linear-gradient(180deg,#fff,var(--soft));color:var(--navy);font-size:.9rem;font-weight:900;box-shadow:var(--shadow-soft)}
.company-contact-note{margin-top:18px!important}
.company-contact-note a{display:inline-flex;align-items:center;justify-content:center;min-height:42px;padding:0 16px;border:1px solid var(--line);border-radius:999px;background:#fff;color:var(--navy);font-weight:900;box-shadow:var(--shadow-soft)}
.company-kv dt{color:var(--deep)}


.section-faq{background:linear-gradient(180deg,rgba(247,249,252,.72),rgba(255,255,255,.94))}
.faq-layout{display:grid;grid-template-columns:minmax(0,1.18fr) minmax(320px,.82fr);gap:24px;align-items:start}
.faq-list{display:grid;gap:12px}
.faq-item{border:1px solid var(--line);border-radius:20px;background:#fff;box-shadow:var(--shadow-soft);overflow:hidden}
.faq-item summary{position:relative;display:flex;align-items:center;justify-content:space-between;gap:18px;padding:18px 20px;color:var(--navy);font-weight:900;line-height:1.65;cursor:pointer;list-style:none}
.faq-item summary::-webkit-details-marker{display:none}
.faq-item summary::after{content:"+";display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;flex:0 0 30px;border-radius:999px;background:rgba(239,59,134,.10);color:var(--pink);font-size:1.25rem;font-weight:900;line-height:1}
.faq-item[open] summary::after{content:"−"}
.faq-item p{margin:0;padding:0 20px 20px;color:var(--muted);font-size:.94rem;line-height:1.95}
.faq-note{padding:24px;background:linear-gradient(180deg,#fff,var(--soft))}
.faq-note-kicker{margin:0 0 8px;color:var(--pink);font-size:.76rem;font-weight:900;letter-spacing:.12em;text-transform:uppercase;line-height:1.4}
.faq-note h3{font-family:var(--jp);font-size:1.34rem;line-height:1.55;margin:0 0 12px;color:var(--deep)}
.faq-note p{margin:0 0 12px;color:var(--muted);line-height:1.9}
.faq-note p:last-child{margin-bottom:0}


/* Step 9 final quality adjustments */
body{overflow-x:hidden}
a:focus-visible,button:focus-visible,summary:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid rgba(239,59,134,.38);outline-offset:3px}
.nav{gap:14px;font-size:.84rem}
.logo img{width:200px}
.btn{touch-action:manipulation}
.card{contain:layout paint style}
.image-card img,.visual-shell img{background:var(--soft)}
@media(max-width:1220px){
  .nav{display:none}
  .nav-toggle{display:block}
  .site-header.open .mobile-nav{display:block}
}
@media(max-width:760px){
  .section-head p{font-size:.95rem}
  .mobile-nav{left:14px;right:14px}
  input:not([type="checkbox"]),select,textarea{font-size:16px}
  .btn{min-height:52px}
}


/* Card layout fix: Practical Support section */
.section-practical .wrap{max-width:1120px}
.section-practical{padding-block:80px 74px}
.practical-layout{
  max-width:1120px;
  margin-inline:auto;
  grid-template-columns:minmax(340px,.86fr) minmax(0,1fr);
  gap:clamp(24px,3.2vw,40px);
  align-items:stretch;
}
.support-figure{
  align-self:stretch;
  padding:clamp(16px,2vw,22px);
  border-radius:28px;
}
.support-figure img{
  height:100%;
  min-height:420px;
  object-fit:contain;
  object-position:center;
  border-radius:22px;
}
.practical-grid{
  width:100%;
  max-width:650px;
  justify-self:center;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:clamp(16px,1.8vw,20px);
}
.support-item{
  display:flex;
  flex-direction:column;
  justify-content:flex-start;
  min-height:212px;
  padding:clamp(24px,2.2vw,30px);
  border-radius:24px;
  background:linear-gradient(180deg,rgba(255,255,255,.98),rgba(250,252,255,.96));
  border-color:rgba(228,235,244,.95);
}
.support-label{
  margin:0 0 10px;
  max-width:100%;
  line-height:1.45;
  letter-spacing:.075em;
}
.support-title{
  max-width:19em;
  margin:0 0 12px;
  font-size:clamp(1.06rem,1.12vw,1.18rem);
  line-height:1.62;
  letter-spacing:.02em;
  font-weight:900;
  text-wrap:balance;
  word-break:normal;
  overflow-wrap:normal;
  line-break:strict;
}
.support-item p:last-child{
  max-width:30em;
  font-size:.93rem;
  line-height:1.9;
}
@media(max-width:1120px){
  .practical-layout{
    grid-template-columns:1fr;
    max-width:860px;
  }
  .support-figure{
    max-width:760px;
    margin-inline:auto;
    width:100%;
  }
  .support-figure img{
    min-height:auto;
    aspect-ratio:1200/680;
  }
  .practical-grid{
    max-width:760px;
  }
}
@media(max-width:760px){
  .section-practical{
    padding-block:62px 56px;
  }
  .section-practical .wrap{
    width:min(100% - 32px,1120px);
  }
  .practical-layout{
    gap:20px;
  }
  .support-figure{
    padding:12px;
    border-radius:22px;
  }
  .support-figure img{
    border-radius:16px;
  }
  .practical-grid{
    grid-template-columns:1fr;
    gap:14px;
  }
  .support-item{
    min-height:auto;
    padding:22px 20px;
    border-radius:22px;
  }
  .support-title{
    max-width:none;
    font-size:1.06rem;
    line-height:1.68;
  }
  .support-item p:last-child{
    font-size:.92rem;
    line-height:1.9;
  }
}
@media(max-width:380px){
  .support-item{
    padding:20px 18px;
  }
}


/* Experience card icon / spacing fix */
.section-experience .wrap{max-width:1120px}
.section-experience{padding-block:78px}
.experience-grid{
  max-width:1120px;
  margin-inline:auto;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:clamp(18px,2vw,22px);
  align-items:stretch;
}
.experience-card{
  display:flex;
  flex-direction:column;
  min-height:auto;
  padding:clamp(24px,2.2vw,30px);
  border-radius:24px;
  background:linear-gradient(180deg,rgba(255,255,255,.98),rgba(250,252,255,.96));
}
.experience-card::after{
  width:72px;
  height:72px;
  right:-18px;
  top:-18px;
  opacity:.85;
}
.experience-icon{
  width:58px!important;
  height:58px!important;
  min-width:58px!important;
  max-width:58px!important;
  flex:0 0 58px!important;
  padding:0!important;
  margin:0 0 16px!important;
  border-radius:18px;
  overflow:hidden;
}
.experience-icon svg,
.experience-card .experience-icon svg{
  display:block!important;
  width:28px!important;
  height:28px!important;
  min-width:28px!important;
  max-width:28px!important;
  min-height:28px!important;
  max-height:28px!important;
  flex:0 0 28px!important;
  object-fit:contain!important;
}
.experience-kicker{
  margin:0 0 7px;
  line-height:1.45;
}
.experience-card h3{
  margin:0;
  font-size:clamp(1.08rem,1.12vw,1.22rem);
  line-height:1.5;
  letter-spacing:.02em;
  text-wrap:balance;
  word-break:normal;
  overflow-wrap:normal;
  line-break:strict;
}
.experience-card strong{
  margin:7px 0 12px;
  line-height:1.55;
}
.experience-card p:last-child{
  max-width:28em;
  font-size:.91rem;
  line-height:1.85;
}
.experience-note{
  max-width:1120px;
  margin-inline:auto;
}
@media(max-width:1180px){
  .experience-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
    max-width:760px;
  }
}
@media(max-width:760px){
  .section-experience{
    padding-block:60px;
  }
  .section-experience .wrap{
    width:min(100% - 32px,1120px);
  }
  .experience-grid{
    grid-template-columns:1fr;
    max-width:560px;
    gap:14px;
  }
  .experience-card{
    padding:22px 20px;
    border-radius:22px;
  }
  .experience-icon{
    width:52px!important;
    height:52px!important;
    min-width:52px!important;
    max-width:52px!important;
    flex-basis:52px!important;
    margin-bottom:14px!important;
  }
  .experience-icon svg,
  .experience-card .experience-icon svg{
    width:25px!important;
    height:25px!important;
    min-width:25px!important;
    max-width:25px!important;
    min-height:25px!important;
    max-height:25px!important;
    flex-basis:25px!important;
  }
  .experience-card h3{
    font-size:1.08rem;
    line-height:1.58;
  }
  .experience-card p:last-child{
    font-size:.92rem;
    line-height:1.9;
  }
}


/* Final card visual fix: experience + anonymous case cards */
.section-experience .wrap,
.section-case-studies .wrap{
  max-width:1120px;
}

.section-experience,
.section-case-studies{
  overflow-x:hidden;
}

.experience-grid{
  width:100%;
  max-width:1120px;
  margin-inline:auto;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:clamp(18px,2vw,22px);
  align-items:stretch;
}

.experience-card{
  display:flex;
  flex-direction:column;
  min-height:0;
  height:auto;
  padding:clamp(24px,2.3vw,30px);
  border-radius:24px;
}

.experience-icon{
  width:58px!important;
  height:58px!important;
  min-width:58px!important;
  max-width:58px!important;
  flex:0 0 58px!important;
  padding:0!important;
  margin:0 0 16px!important;
  border-radius:18px;
  overflow:hidden;
}

.experience-icon svg,
.experience-card .experience-icon svg{
  display:block!important;
  width:28px!important;
  height:28px!important;
  min-width:28px!important;
  max-width:28px!important;
  min-height:28px!important;
  max-height:28px!important;
  flex:0 0 28px!important;
  object-fit:contain!important;
}

.experience-kicker{
  margin:0 0 7px;
  line-height:1.45;
}

.experience-card h3{
  margin:0;
  font-size:clamp(1.08rem,1.12vw,1.22rem);
  line-height:1.5;
  letter-spacing:.02em;
  text-wrap:balance;
  word-break:normal;
  overflow-wrap:normal;
  line-break:strict;
}

.experience-card strong{
  margin:7px 0 12px;
  line-height:1.55;
}

.experience-card p:last-child{
  max-width:28em;
  font-size:.91rem;
  line-height:1.85;
}

.case-study-grid{
  width:100%;
  max-width:1120px;
  margin-inline:auto;
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:clamp(18px,2vw,24px);
  align-items:stretch;
}

.case-study-card{
  display:flex;
  flex-direction:column;
  min-height:0;
  height:auto;
  padding:clamp(26px,2.45vw,34px);
  border-radius:26px;
  text-align:left;
}

.case-study-card .case-no{
  margin:0 0 14px;
  color:var(--pink);
  font-size:.78rem;
  font-weight:900;
  letter-spacing:.10em;
  line-height:1.35;
}

.case-study-card h3{
  max-width:15em;
  margin:0 0 18px;
  font-size:clamp(1.24rem,1.5vw,1.48rem);
  line-height:1.55;
  letter-spacing:.02em;
  text-wrap:balance;
  word-break:normal;
  overflow-wrap:normal;
  line-break:strict;
}

.case-flow{
  display:grid;
  gap:12px;
  margin-top:auto;
}

.case-step{
  padding:16px 18px;
  border-radius:18px;
  background:rgba(247,249,252,.78);
  border:1px solid rgba(228,235,244,.85);
}

.case-step b{
  display:block;
  margin:0 0 6px;
  color:var(--navy);
  font-size:.83rem;
  line-height:1.4;
  letter-spacing:.04em;
}

.case-step p{
  max-width:32em;
  margin:0;
  color:var(--muted);
  font-size:.91rem;
  line-height:1.85;
}

@media(max-width:1180px){
  .experience-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
    max-width:760px;
  }
  .case-study-grid{
    grid-template-columns:1fr;
    max-width:780px;
  }
  .case-study-card{
    padding:28px;
  }
  .case-study-card h3{
    max-width:none;
  }
}

@media(max-width:760px){
  .section-experience .wrap,
  .section-case-studies .wrap{
    width:min(100% - 32px,1120px);
  }
  .experience-grid{
    grid-template-columns:1fr;
    max-width:560px;
    gap:14px;
  }
  .experience-card{
    padding:22px 20px;
    border-radius:22px;
  }
  .experience-icon{
    width:52px!important;
    height:52px!important;
    min-width:52px!important;
    max-width:52px!important;
    flex-basis:52px!important;
    margin-bottom:14px!important;
  }
  .experience-icon svg,
  .experience-card .experience-icon svg{
    width:25px!important;
    height:25px!important;
    min-width:25px!important;
    max-width:25px!important;
    min-height:25px!important;
    max-height:25px!important;
    flex-basis:25px!important;
  }
  .experience-card h3{
    font-size:1.08rem;
    line-height:1.58;
  }
  .case-study-grid{
    grid-template-columns:1fr;
    max-width:560px;
    gap:14px;
  }
  .case-study-card{
    padding:22px 20px;
    border-radius:22px;
  }
  .case-study-card .case-no{
    margin-bottom:10px;
  }
  .case-study-card h3{
    margin-bottom:14px;
    font-size:1.18rem;
    line-height:1.62;
  }
  .case-flow{
    gap:10px;
  }
  .case-step{
    padding:14px 15px;
    border-radius:16px;
  }
  .case-step p{
    font-size:.9rem;
    line-height:1.82;
  }
}


/* Final spacing / readability fix for card and text blocks */
html{box-sizing:border-box}
*,*::before,*::after{box-sizing:inherit}
body{overflow-x:hidden}

.wrap,
.container{
  max-width:1120px;
  margin-inline:auto;
  padding-inline:clamp(20px,4vw,40px);
}

.section{
  overflow-x:hidden;
}

.section-head{
  max-width:760px;
  margin-inline:auto;
  text-align:center;
}

.section-head p,
.lead,
.expertise-note p,
.contact-lead,
.contact-intro p{
  max-width:740px;
  line-height:1.85;
}

.service-grid,
.practical-grid,
.experience-grid,
.case-study-grid,
.case-grid,
.faq-grid,
.output-grid{
  width:100%;
  margin-inline:auto;
}

.card,
.service-card,
.support-item,
.experience-card,
.case-study-card,
.case-card,
.case-item,
.expertise-note,
.contact-card,
.contact-panel,
.form-card,
.faq-note{
  text-align:left;
  padding:clamp(28px,2.8vw,40px);
  border-radius:26px;
}

.service-card,
.support-item{
  display:flex;
  flex-direction:column;
  min-height:auto;
}

.service-card .eyebrow,
.service-card .label,
.support-label,
.experience-kicker,
.case-no{
  display:block;
  margin:0 0 10px;
  line-height:1.45;
  letter-spacing:.08em;
}

.service-card h3,
.support-title,
.experience-card h3,
.case-study-card h3,
.case-card h3,
.case-item h3{
  margin:0 0 14px;
  max-width:18em;
  line-height:1.55;
  letter-spacing:.02em;
  text-wrap:balance;
  word-break:normal;
  overflow-wrap:normal;
  line-break:strict;
}

.service-card p,
.support-item p,
.experience-card p,
.case-study-card p,
.case-card p,
.case-item p,
.expertise-note p,
.contact-card p,
.contact-panel p{
  max-width:36em;
  line-height:1.85;
  margin-top:0;
}

.practical-layout{
  max-width:1120px;
  margin-inline:auto;
  gap:clamp(28px,4vw,44px);
  align-items:start;
}

.practical-grid{
  max-width:680px;
  justify-self:center;
  gap:clamp(18px,2vw,22px);
}

.support-item{
  padding:clamp(28px,2.8vw,36px);
}

.experience-grid{
  max-width:1120px;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:clamp(18px,2vw,24px);
  align-items:stretch;
}

.experience-card{
  padding:clamp(28px,2.6vw,36px);
  min-height:0;
  height:auto;
}

.experience-icon{
  margin-bottom:16px!important;
}

.case-study-grid,
.case-grid{
  max-width:1120px;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:clamp(20px,2vw,26px);
  align-items:stretch;
}

.case-study-card,
.case-card,
.case-item{
  min-height:0;
  height:auto;
  padding:clamp(30px,3vw,42px);
}

.case-study-card .case-no,
.case-card .case-no,
.case-item .case-no{
  margin-bottom:14px;
}

.case-flow{
  display:grid;
  gap:12px;
  margin-top:16px;
}

.case-step{
  padding:16px 18px;
  border-radius:18px;
  background:rgba(247,249,252,.82);
  border:1px solid rgba(226,234,244,.9);
}

.case-step b{
  display:block;
  margin:0 0 6px;
  color:var(--navy);
  font-size:.84rem;
  line-height:1.45;
  letter-spacing:.04em;
}

.case-step p{
  max-width:34em;
  margin:0;
  line-height:1.85;
}

.contact-grid,
.contact-layout{
  max-width:1120px;
  margin-inline:auto;
  gap:clamp(24px,3vw,40px);
  align-items:start;
}

.contact-card,
.contact-panel,
.form-card{
  padding:clamp(28px,3vw,42px);
}

.contact-lead,
.contact-intro,
.contact-copy{
  max-width:720px;
}

.expertise-note{
  max-width:780px;
  margin-inline:auto;
  padding:clamp(28px,3vw,40px);
}

.expertise-note h3,
.expertise-note h2{
  margin-top:0;
  margin-bottom:12px;
  line-height:1.55;
  text-wrap:balance;
}

.faq-grid{
  max-width:980px;
  gap:clamp(14px,2vw,20px);
}

.faq-item,
details.faq-item{
  padding:clamp(20px,2.4vw,28px);
  border-radius:22px;
}

.faq-item summary{
  line-height:1.65;
}

.faq-item p{
  max-width:760px;
  line-height:1.85;
}

@media(max-width:1180px){
  .wrap,
  .container{
    max-width:960px;
  }

  .practical-layout{
    grid-template-columns:1fr;
    max-width:860px;
  }

  .practical-grid,
  .experience-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
    max-width:780px;
  }

  .case-study-grid,
  .case-grid{
    grid-template-columns:1fr;
    max-width:820px;
  }

  .case-study-card h3,
  .case-card h3,
  .case-item h3{
    max-width:none;
  }
}

@media(max-width:760px){
  .wrap,
  .container{
    width:100%;
    max-width:none;
    padding-inline:20px;
  }

  .section{
    padding-block:56px;
  }

  .section-head{
    text-align:left;
    max-width:560px;
  }

  .section-head p{
    line-height:1.85;
  }

  .service-grid,
  .practical-grid,
  .experience-grid,
  .case-study-grid,
  .case-grid,
  .output-grid,
  .faq-grid{
    grid-template-columns:1fr;
    max-width:560px;
    gap:14px;
  }

  .card,
  .service-card,
  .support-item,
  .experience-card,
  .case-study-card,
  .case-card,
  .case-item,
  .expertise-note,
  .contact-card,
  .contact-panel,
  .form-card,
  .faq-note{
    padding:22px 20px;
    border-radius:22px;
  }

  .service-card h3,
  .support-title,
  .experience-card h3,
  .case-study-card h3,
  .case-card h3,
  .case-item h3{
    max-width:none;
    font-size:1.08rem;
    line-height:1.62;
    margin-bottom:12px;
  }

  .case-flow{
    gap:10px;
    margin-top:14px;
  }

  .case-step{
    padding:14px 15px;
    border-radius:16px;
  }

  .service-card p,
  .support-item p,
  .experience-card p,
  .case-study-card p,
  .case-card p,
  .case-item p,
  .expertise-note p,
  .contact-card p,
  .contact-panel p,
  .faq-item p{
    max-width:none;
    font-size:.92rem;
    line-height:1.88;
  }

  .contact-grid,
  .contact-layout{
    grid-template-columns:1fr;
    gap:18px;
  }

  .expertise-note{
    max-width:560px;
  }
}

@media(max-width:380px){
  .wrap,
  .container{
    padding-inline:16px;
  }

  .card,
  .service-card,
  .support-item,
  .experience-card,
  .case-study-card,
  .case-card,
  .case-item,
  .expertise-note,
  .contact-card,
  .contact-panel,
  .form-card,
  .faq-note{
    padding:20px 18px;
  }
}


/* Step 2: information flow / section rhythm */
.section{
  padding-block:clamp(64px,7vw,96px);
}
.section.alt{
  background:linear-gradient(180deg,rgba(247,249,252,.86),rgba(255,255,255,.96));
}
.section + .section{
  border-top:1px solid rgba(226,234,244,.58);
}
.section-head{
  margin-bottom:clamp(30px,4vw,46px);
}
.section-head .eyebrow,
.text-card .eyebrow{
  margin-bottom:12px;
  color:var(--pink);
  font-size:.74rem;
  font-weight:900;
  letter-spacing:.18em;
  text-transform:uppercase;
}
.section-head h2,
.text-card h3{
  margin-top:0;
  margin-bottom:14px;
  line-height:1.45;
  text-wrap:balance;
}
.section-head p,
.text-card > p{
  margin-inline:auto;
  color:var(--muted);
  line-height:1.88;
}
#service .two{
  align-items:center;
}
#service .text-card{
  position:relative;
}
#service .text-card::after{
  content:"全体像";
  position:absolute;
  right:28px;
  top:28px;
  color:rgba(226,42,117,.14);
  font-size:.78rem;
  font-weight:900;
  letter-spacing:.18em;
}
#practical-support{
  background:linear-gradient(180deg,#fff,rgba(247,249,252,.72));
}
#practical-support .section-head h2::after,
#experience .section-head h2::after,
#case-studies .section-head h2::after,
#faq .section-head h2::after{
  content:"";
  display:block;
  width:42px;
  height:2px;
  margin:16px auto 0;
  background:linear-gradient(90deg,var(--pink),rgba(226,42,117,.16));
}
#experience{
  background:linear-gradient(180deg,rgba(255,255,255,.98),rgba(247,249,252,.82));
}
#case-studies{
  background:linear-gradient(180deg,rgba(247,249,252,.82),#fff);
}
.case-study-card{
  border-left:3px solid rgba(226,42,117,.36);
}
.case-study-head{
  padding-bottom:16px;
  margin-bottom:16px;
  border-bottom:1px solid rgba(226,234,244,.85);
}
.case-steps,
.case-flow{
  display:grid;
  gap:12px;
}
.case-steps section,
.case-step{
  padding:15px 16px;
  border-radius:18px;
  background:rgba(247,249,252,.82);
  border:1px solid rgba(226,234,244,.88);
}
.case-step-label,
.case-step b{
  display:inline-flex;
  align-items:center;
  gap:6px;
  margin-bottom:6px;
  color:var(--pink);
  font-size:.78rem;
  font-weight:900;
  letter-spacing:.08em;
}
.case-steps p,
.case-step p{
  margin:0;
  line-height:1.86;
}
.experience-note{
  margin-top:22px;
  padding:14px 18px;
  border-radius:18px;
  background:rgba(255,255,255,.72);
  border:1px solid rgba(226,234,244,.78);
  color:var(--muted);
  font-size:.88rem;
  line-height:1.75;
}
.section-faq{
  background:linear-gradient(180deg,rgba(247,249,252,.72),#fff);
}
.faq-contact-bridge{
  margin-top:18px!important;
  padding-top:16px;
  border-top:1px solid rgba(226,234,244,.85);
  color:var(--navy)!important;
  font-weight:700;
}
#contact{
  background:linear-gradient(180deg,#fff,rgba(247,249,252,.72));
}
#contact .text-card:first-child{
  border-left:3px solid rgba(226,42,117,.34);
}
.step-cta-card{
  margin-top:clamp(30px,4vw,44px);
}

@media(max-width:760px){
  .section{
    padding-block:56px;
  }
  .section-head{
    margin-bottom:24px;
  }
  .section-head h2,
  .text-card h3{
    line-height:1.55;
  }
  #practical-support .section-head h2::after,
  #experience .section-head h2::after,
  #case-studies .section-head h2::after,
  #faq .section-head h2::after{
    margin-left:0;
    margin-right:0;
  }
  #service .text-card::after{
    display:none;
  }
  .case-study-head{
    padding-bottom:12px;
    margin-bottom:12px;
  }
  .case-steps section,
  .case-step{
    padding:14px 15px;
  }
  .experience-note{
    margin-top:16px;
    font-size:.86rem;
  }
}


/* Step 3: pre-launch UI/UX + CV final polish */
:root{
  --tap-size:44px;
}

html{
  scroll-behavior:smooth;
  scroll-padding-top:92px;
}

body.prelaunch-final{
  overflow-x:hidden;
}

a:focus-visible,
button:focus-visible,
summary:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible{
  outline:3px solid rgba(226,42,117,.38);
  outline-offset:3px;
  border-radius:12px;
}

a,
button,
summary{
  -webkit-tap-highlight-color:rgba(226,42,117,.14);
}

img,
svg{
  max-width:100%;
}

.wrap,
.container{
  width:100%;
}

.section{
  position:relative;
}

.section-head{
  max-width:760px;
}

.section-head p{
  max-width:720px;
}

.hero .cta-row,
.cta-row,
.hero-actions,
.form-actions{
  gap:12px;
}

.btn,
.button,
.cta,
.cta-button,
.primary-cta,
.secondary-cta,
button[type="submit"]{
  min-height:var(--tap-size);
  display:inline-flex;
  align-items:center;
  justify-content:center;
  text-align:center;
  line-height:1.35;
}

.btn-primary,
.primary-cta,
button[type="submit"]{
  box-shadow:0 16px 34px rgba(7,24,58,.16);
}

.btn-secondary,
.secondary-cta{
  background:rgba(255,255,255,.88);
}

.btn[href="#contact"],
.cta[href="#contact"],
.primary-cta[href="#contact"]{
  white-space:normal;
}

.service-card,
.support-item,
.experience-card,
.case-study-card,
.case-card,
.case-item,
.profile-card,
.company-card,
.output-card,
.process-card,
.faq-item,
.expertise-note{
  overflow:hidden;
  overflow-wrap:anywhere;
}

.service-card p,
.support-item p,
.experience-card p,
.case-study-card p,
.case-card p,
.case-item p,
.output-card p,
.process-card p,
.profile-card p,
.company-card p{
  color:var(--muted);
}

.case-step,
.case-steps section{
  overflow-wrap:anywhere;
}

.case-step b,
.case-step-label{
  color:var(--pink);
}

.faq-item summary{
  cursor:pointer;
  min-height:var(--tap-size);
  display:flex;
  align-items:center;
  gap:10px;
  list-style:none;
}

.faq-item summary::-webkit-details-marker{
  display:none;
}

.faq-item summary::after{
  content:"+";
  margin-left:auto;
  color:var(--pink);
  font-weight:900;
  font-size:1.1rem;
}

.faq-item[open] summary::after{
  content:"−";
}

input,
select,
textarea{
  min-height:var(--tap-size);
  font-size:16px;
  line-height:1.5;
}

textarea{
  min-height:150px;
  resize:vertical;
}

label{
  line-height:1.55;
}

.form-note,
.privacy-note,
.contact-note,
.fineprint{
  line-height:1.75;
}

.contact-grid,
.contact-layout{
  scroll-margin-top:96px;
}

#contact{
  scroll-margin-top:96px;
}

.contact-card,
.contact-panel,
.form-card{
  box-shadow:0 24px 60px rgba(7,24,58,.08);
}

.contact-card p,
.contact-panel p{
  max-width:680px;
}

.expertise-note{
  box-shadow:0 18px 46px rgba(7,24,58,.06);
}

@media(max-width:1180px){
  .hero,
  .two,
  .contact-grid,
  .contact-layout{
    gap:clamp(24px,4vw,44px);
  }

  .hero-visual,
  .support-figure{
    max-width:820px;
    margin-inline:auto;
  }
}

@media(max-width:900px){
  html{
    scroll-padding-top:76px;
  }

  .nav,
  .site-nav{
    max-width:100%;
  }

  .hero .cta-row,
  .cta-row,
  .hero-actions{
    align-items:stretch;
  }

  .hero .cta-row .btn,
  .cta-row .btn,
  .hero-actions .btn{
    width:100%;
    max-width:420px;
  }
}

@media(max-width:760px){
  :root{
    --tap-size:46px;
  }

  html{
    scroll-padding-top:72px;
  }

  body.prelaunch-final{
    font-size:15.5px;
  }

  .section{
    padding-block:54px;
  }

  .section-head{
    text-align:left;
    margin-bottom:24px;
  }

  .section-head .eyebrow,
  .text-card .eyebrow{
    margin-bottom:10px;
  }

  .section-head h2,
  .text-card h3{
    margin-bottom:12px;
    letter-spacing:.01em;
  }

  .section-head p,
  .text-card > p{
    max-width:none;
  }

  .hero{
    padding-top:92px;
    padding-bottom:58px;
  }

  .hero h1{
    text-wrap:balance;
  }

  .hero p{
    line-height:1.85;
  }

  .hero .cta-row,
  .cta-row,
  .hero-actions,
  .form-actions{
    flex-direction:column;
    align-items:stretch;
    width:100%;
  }

  .btn,
  .button,
  .cta,
  .cta-button,
  .primary-cta,
  .secondary-cta,
  button[type="submit"]{
    width:100%;
    min-height:48px;
    padding-inline:18px;
  }

  .service-card,
  .support-item,
  .experience-card,
  .case-study-card,
  .case-card,
  .case-item,
  .profile-card,
  .company-card,
  .output-card,
  .process-card,
  .faq-item,
  .expertise-note,
  .contact-card,
  .contact-panel,
  .form-card{
    border-radius:22px;
  }

  .support-figure img,
  .hero-visual img{
    max-height:none;
  }

  .case-step,
  .case-steps section{
    padding:14px 15px;
  }

  .faq-item summary{
    align-items:flex-start;
    padding-right:2px;
  }

  .faq-item summary::after{
    padding-top:1px;
  }

  input,
  select,
  textarea{
    width:100%;
  }

  .contact-grid,
  .contact-layout,
  #contact{
    scroll-margin-top:78px;
  }
}

@media(max-width:420px){
  .wrap,
  .container{
    padding-inline:16px;
  }

  .section{
    padding-block:48px;
  }

  .service-card,
  .support-item,
  .experience-card,
  .case-study-card,
  .case-card,
  .case-item,
  .profile-card,
  .company-card,
  .output-card,
  .process-card,
  .faq-item,
  .expertise-note,
  .contact-card,
  .contact-panel,
  .form-card{
    padding:20px 18px;
  }

  .hero{
    padding-top:84px;
  }
}


/* PC-only enlargement for explanation JPG/PNG images */
.explanation-image,
.pc-enlarge-image{
  display:block;
  width:100%;
  max-width:100%;
  height:auto;
  object-fit:contain;
  margin-inline:auto;
}

figure:has(.pc-enlarge-image),
.section-visual:has(.pc-enlarge-image),
.hero-visual:has(.pc-enlarge-image),
.support-figure:has(.pc-enlarge-image),
.visual:has(.pc-enlarge-image),
.diagram:has(.pc-enlarge-image){
  width:100%;
  max-width:100%;
  margin-inline:auto;
  overflow:hidden;
}

@media(min-width:761px) and (max-width:1023px){
  .pc-enlarge-image{max-width:min(100%,860px)}
  figure:has(.pc-enlarge-image),
  .section-visual:has(.pc-enlarge-image),
  .hero-visual:has(.pc-enlarge-image),
  .support-figure:has(.pc-enlarge-image),
  .visual:has(.pc-enlarge-image),
  .diagram:has(.pc-enlarge-image){max-width:900px}
}

@media(min-width:1024px){
  .pc-enlarge-image{max-width:min(100%,1180px)}
  figure:has(.pc-enlarge-image),
  .section-visual:has(.pc-enlarge-image),
  .hero-visual:has(.pc-enlarge-image),
  .support-figure:has(.pc-enlarge-image),
  .visual:has(.pc-enlarge-image),
  .diagram:has(.pc-enlarge-image){max-width:min(100%,1220px)}
  .two:has(.pc-enlarge-image),
  .practical-layout:has(.pc-enlarge-image){
    grid-template-columns:minmax(0,.76fr) minmax(560px,1.24fr);
    align-items:center;
  }
  .practical-layout .support-figure:has(.pc-enlarge-image){max-width:820px}
  .practical-layout .support-figure .pc-enlarge-image{max-width:820px}
}

@media(min-width:1280px){
  .hero-visual .pc-enlarge-image,
  .section-visual .pc-enlarge-image,
  .visual .pc-enlarge-image,
  .diagram .pc-enlarge-image{max-width:1200px}
  .support-figure .pc-enlarge-image{max-width:880px}
}

@media(max-width:760px){
  .pc-enlarge-image{max-width:100%}
  figure:has(.pc-enlarge-image),
  .section-visual:has(.pc-enlarge-image),
  .hero-visual:has(.pc-enlarge-image),
  .support-figure:has(.pc-enlarge-image),
  .visual:has(.pc-enlarge-image),
  .diagram:has(.pc-enlarge-image){max-width:100%}
}


/* Step 1 visual balance fix: cards, spacing, icons, and PC explanation images */
html{box-sizing:border-box;overflow-x:hidden}
*,*::before,*::after{box-sizing:inherit}
body{overflow-x:hidden}

.wrap,
.container{
  width:100%;
  max-width:1120px;
  margin-inline:auto;
  padding-inline:clamp(20px,4vw,40px);
}

.section{
  overflow-x:hidden;
}

.section-head{
  max-width:760px;
  margin-inline:auto;
}

.section-head p,
.text-card > p,
.lead,
.faq-note p,
.expertise-note p,
.contact-card p,
.contact-panel p,
.form-card p{
  max-width:740px;
  line-height:1.85;
}

.card,
.text-card,
.image-card,
.service-card,
.support-item,
.experience-card,
.case-study-card,
.case-card,
.case-item,
.faq-note,
.expertise-note,
.contact-card,
.contact-panel,
.form-card{
  padding:clamp(32px,3vw,40px);
  border-radius:26px;
  text-align:left;
  overflow:hidden;
}

.service-card h3,
.support-title,
.experience-card h3,
.case-study-card h3,
.case-card h3,
.case-item h3,
.faq-note h3,
.expertise-note h3,
.contact-card h3,
.contact-panel h3{
  max-width:18em;
  margin-top:0;
  margin-bottom:14px;
  line-height:1.55;
  letter-spacing:.02em;
  text-wrap:balance;
  word-break:normal;
  overflow-wrap:normal;
  line-break:strict;
}

.service-card p,
.support-item p,
.experience-card p,
.case-study-card p,
.case-card p,
.case-item p,
.faq-note p,
.expertise-note p,
.contact-card p,
.contact-panel p{
  max-width:36em;
  margin-top:0;
  line-height:1.85;
}

.service-grid,
.practical-grid,
.experience-grid,
.case-study-grid,
.case-grid,
.output-grid,
.faq-grid,
.contact-grid,
.contact-layout{
  width:100%;
  margin-inline:auto;
  gap:clamp(20px,2.5vw,32px);
}

.practical-layout{
  max-width:1120px;
  margin-inline:auto;
  gap:clamp(28px,4vw,44px);
  align-items:start;
}

.practical-grid{
  max-width:680px;
  justify-self:center;
  grid-template-columns:repeat(2,minmax(0,1fr));
}

.support-item{
  min-height:auto;
}

.experience-grid{
  max-width:1120px;
  grid-template-columns:repeat(4,minmax(0,1fr));
  align-items:stretch;
}

.experience-card{
  display:flex;
  flex-direction:column;
  min-height:0;
  height:auto;
}

.experience-icon{
  width:58px!important;
  height:58px!important;
  min-width:58px!important;
  max-width:58px!important;
  flex:0 0 58px!important;
  padding:0!important;
  margin:0 0 16px!important;
  border-radius:18px;
  overflow:hidden;
}

.experience-icon svg,
.experience-card .experience-icon svg{
  display:block!important;
  width:28px!important;
  height:28px!important;
  min-width:28px!important;
  max-width:28px!important;
  min-height:28px!important;
  max-height:28px!important;
  flex:0 0 28px!important;
  object-fit:contain!important;
}

.experience-kicker,
.support-label,
.case-no{
  display:block;
  margin:0 0 10px;
  line-height:1.45;
  letter-spacing:.08em;
}

.case-study-grid,
.case-grid{
  max-width:1120px;
  grid-template-columns:repeat(3,minmax(0,1fr));
  align-items:stretch;
}

.case-study-card,
.case-card,
.case-item{
  display:flex;
  flex-direction:column;
  min-height:0;
  height:auto;
}

.case-study-head{
  padding-bottom:16px;
  margin-bottom:16px;
  border-bottom:1px solid rgba(226,234,244,.85);
}

.case-steps,
.case-flow{
  display:grid;
  gap:12px;
  margin-top:16px;
}

.case-steps section,
.case-step{
  padding:16px 18px;
  border-radius:18px;
  background:rgba(247,249,252,.84);
  border:1px solid rgba(226,234,244,.9);
}

.case-step-label,
.case-step b{
  display:inline-flex;
  align-items:center;
  gap:6px;
  margin-bottom:6px;
  color:var(--pink);
  font-size:.8rem;
  font-weight:900;
  letter-spacing:.06em;
  line-height:1.45;
}

.case-steps p,
.case-step p{
  max-width:34em;
  margin:0;
  line-height:1.85;
}

.faq-note,
.expertise-note{
  max-width:780px;
  margin-inline:auto;
}

.contact-grid,
.contact-layout{
  max-width:1120px;
  align-items:start;
}

input,
select,
textarea{
  max-width:100%;
  min-height:44px;
  font-size:16px;
}

textarea{
  min-height:150px;
  resize:vertical;
}

img,
svg{
  max-width:100%;
}

/* PC-only enlargement for explanation JPG/PNG images */
.explanation-image,
.pc-enlarge-image{
  display:block;
  width:100%;
  max-width:100%;
  height:auto;
  object-fit:contain;
  margin-inline:auto;
}

figure:has(.pc-enlarge-image),
.section-visual:has(.pc-enlarge-image),
.hero-visual:has(.pc-enlarge-image),
.support-figure:has(.pc-enlarge-image),
.visual:has(.pc-enlarge-image),
.diagram:has(.pc-enlarge-image),
.image-card:has(.pc-enlarge-image){
  width:100%;
  max-width:100%;
  margin-inline:auto;
  overflow:hidden;
}

@media(min-width:761px) and (max-width:1023px){
  .pc-enlarge-image{max-width:min(100%,860px)}
  figure:has(.pc-enlarge-image),
  .section-visual:has(.pc-enlarge-image),
  .hero-visual:has(.pc-enlarge-image),
  .support-figure:has(.pc-enlarge-image),
  .visual:has(.pc-enlarge-image),
  .diagram:has(.pc-enlarge-image),
  .image-card:has(.pc-enlarge-image){max-width:900px}
}

@media(min-width:1024px){
  .pc-enlarge-image{max-width:min(100%,1180px)}
  figure:has(.pc-enlarge-image),
  .section-visual:has(.pc-enlarge-image),
  .hero-visual:has(.pc-enlarge-image),
  .support-figure:has(.pc-enlarge-image),
  .visual:has(.pc-enlarge-image),
  .diagram:has(.pc-enlarge-image),
  .image-card:has(.pc-enlarge-image){max-width:min(100%,1220px)}

  .two:has(.pc-enlarge-image),
  .practical-layout:has(.pc-enlarge-image){
    grid-template-columns:minmax(0,.76fr) minmax(560px,1.24fr);
    align-items:center;
  }

  .practical-layout .support-figure:has(.pc-enlarge-image){max-width:880px}
  .practical-layout .support-figure .pc-enlarge-image{max-width:880px}
}

@media(min-width:1280px){
  .hero-visual .pc-enlarge-image,
  .section-visual .pc-enlarge-image,
  .visual .pc-enlarge-image,
  .diagram .pc-enlarge-image,
  .image-card .pc-enlarge-image{max-width:1200px}

  .support-figure .pc-enlarge-image{max-width:920px}
}

@media(max-width:1180px){
  .wrap,
  .container{max-width:960px}

  .practical-layout{
    grid-template-columns:1fr;
    max-width:860px;
  }

  .practical-grid,
  .experience-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
    max-width:780px;
  }

  .case-study-grid,
  .case-grid{
    grid-template-columns:1fr;
    max-width:820px;
  }

  .case-study-card h3,
  .case-card h3,
  .case-item h3{max-width:none}
}

@media(max-width:760px){
  .wrap,
  .container{
    width:100%;
    max-width:none;
    padding-inline:20px;
  }

  .section{padding-block:56px}

  .section-head{
    text-align:left;
    max-width:560px;
  }

  .service-grid,
  .practical-grid,
  .experience-grid,
  .case-study-grid,
  .case-grid,
  .output-grid,
  .faq-grid{
    grid-template-columns:1fr;
    max-width:560px;
    gap:14px;
  }

  .card,
  .text-card,
  .image-card,
  .service-card,
  .support-item,
  .experience-card,
  .case-study-card,
  .case-card,
  .case-item,
  .faq-note,
  .expertise-note,
  .contact-card,
  .contact-panel,
  .form-card{
    padding:22px 20px;
    border-radius:22px;
  }

  .service-card h3,
  .support-title,
  .experience-card h3,
  .case-study-card h3,
  .case-card h3,
  .case-item h3,
  .faq-note h3,
  .expertise-note h3,
  .contact-card h3,
  .contact-panel h3{
    max-width:none;
    font-size:1.08rem;
    line-height:1.62;
    margin-bottom:12px;
  }

  .service-card p,
  .support-item p,
  .experience-card p,
  .case-study-card p,
  .case-card p,
  .case-item p,
  .faq-note p,
  .expertise-note p,
  .contact-card p,
  .contact-panel p{
    max-width:none;
    font-size:.92rem;
    line-height:1.88;
  }

  .experience-icon{
    width:52px!important;
    height:52px!important;
    min-width:52px!important;
    max-width:52px!important;
    flex-basis:52px!important;
    margin-bottom:14px!important;
  }

  .experience-icon svg,
  .experience-card .experience-icon svg{
    width:25px!important;
    height:25px!important;
    min-width:25px!important;
    max-width:25px!important;
    min-height:25px!important;
    max-height:25px!important;
    flex-basis:25px!important;
  }

  .case-steps,
  .case-flow{gap:10px;margin-top:14px}

  .case-steps section,
  .case-step{
    padding:14px 15px;
    border-radius:16px;
  }

  .contact-grid,
  .contact-layout{
    grid-template-columns:1fr;
    gap:18px;
  }

  .pc-enlarge-image{max-width:100%}

  figure:has(.pc-enlarge-image),
  .section-visual:has(.pc-enlarge-image),
  .hero-visual:has(.pc-enlarge-image),
  .support-figure:has(.pc-enlarge-image),
  .visual:has(.pc-enlarge-image),
  .diagram:has(.pc-enlarge-image),
  .image-card:has(.pc-enlarge-image){max-width:100%}
}

@media(max-width:380px){
  .wrap,
  .container{padding-inline:16px}

  .card,
  .text-card,
  .image-card,
  .service-card,
  .support-item,
  .experience-card,
  .case-study-card,
  .case-card,
  .case-item,
  .faq-note,
  .expertise-note,
  .contact-card,
  .contact-panel,
  .form-card{
    padding:20px 18px;
  }
}


/* Step 2 information density / section flow refinement */
.section{
  padding-block:clamp(60px,6.2vw,88px);
}

.section + .section{
  border-top:1px solid rgba(226,234,244,.54);
}

.section.alt,
#experience,
#faq{
  background:linear-gradient(180deg,rgba(247,249,252,.82),rgba(255,255,255,.96));
}

#practical-support,
#case-studies,
#contact{
  background:linear-gradient(180deg,#fff,rgba(247,249,252,.62));
}

.section-head{
  margin-bottom:clamp(26px,3.2vw,40px);
}

.section-head .eyebrow,
.text-card .eyebrow{
  margin-bottom:10px;
  font-size:.72rem;
  letter-spacing:.18em;
}

.section-head h2{
  margin-bottom:12px;
  line-height:1.45;
  text-wrap:balance;
}

.section-head p{
  max-width:680px;
  font-size:.96rem;
  line-height:1.82;
}

#service .text-card > p,
#practical-support .section-head p,
#experience .section-head p,
#case-studies .section-head p,
#process .section-head p,
#faq .section-head p{
  max-width:640px;
}

#service .service-grid{
  margin-top:20px;
}

#service .service{
  padding-block:14px;
}

#practical-support .support-item p,
#experience .experience-card p,
#case-studies .case-steps p{
  font-size:.9rem;
  line-height:1.78;
}

#experience .experience-card strong{
  margin:6px 0 10px;
}

#experience .experience-note,
#case-studies .case-note{
  max-width:820px;
  margin:18px auto 0;
  font-size:.84rem;
  line-height:1.72;
}

.case-study-card{
  border-left:3px solid rgba(226,42,117,.34);
}

.case-study-head{
  padding-bottom:14px;
  margin-bottom:14px;
}

.case-steps{
  gap:10px;
  margin-top:12px;
}

.case-steps section{
  padding:14px 15px;
}

.case-step-label{
  margin-bottom:5px;
}

#process .image-card,
#output .image-card{
  margin-top:0;
}

#faq .faq-layout{
  gap:clamp(20px,3vw,34px);
}

.faq-contact-bridge{
  margin-top:16px!important;
  padding-top:14px;
  border-top:1px solid rgba(226,234,244,.86);
  color:var(--navy)!important;
  font-weight:700;
}

#contact .text-card:first-child{
  border-left:3px solid rgba(226,42,117,.34);
}

.step-cta-card{
  margin-top:clamp(24px,3vw,36px);
}

.step-cta-card h3{
  margin-bottom:12px;
}

.assurance-mini{
  margin-top:12px;
}

@media(max-width:1180px){
  .section{
    padding-block:58px;
  }

  .nav{
    gap:14px;
  }
}

@media(max-width:760px){
  .section{
    padding-block:50px;
  }

  .section-head{
    margin-bottom:22px;
  }

  .section-head h2{
    line-height:1.52;
  }

  .section-head p{
    max-width:none;
    font-size:.93rem;
    line-height:1.78;
  }

  #service .service-grid{
    margin-top:16px;
  }

  #service .service{
    padding-block:12px;
  }

  #practical-support .support-item p,
  #experience .experience-card p,
  #case-studies .case-steps p{
    font-size:.9rem;
    line-height:1.78;
  }

  .case-steps section{
    padding:13px 14px;
  }

  .step-cta-card{
    margin-top:20px;
  }
}


/* Step 3 mobile-first CV / form final adjustment */
:root{
  --touch-target:46px;
}

html{
  scroll-behavior:smooth;
  scroll-padding-top:88px;
  overflow-x:hidden;
}

body{
  overflow-x:hidden;
}

a:focus-visible,
button:focus-visible,
summary:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible{
  outline:3px solid rgba(226,42,117,.38);
  outline-offset:3px;
  border-radius:12px;
}

a,
button,
summary,
label{
  -webkit-tap-highlight-color:rgba(226,42,117,.14);
}

img,
svg,
video,
canvas{
  max-width:100%;
}

.hero{
  overflow-x:hidden;
}

.hero-grid,
.hero-inner,
.hero-content,
.hero-visual{
  min-width:0;
}

.actions,
.cta-row,
.hero-actions,
.form-actions{
  gap:12px;
}

.btn,
.button,
.cta,
.cta-button,
.primary-cta,
.secondary-cta,
button[type="submit"],
input[type="submit"]{
  min-height:var(--touch-target);
  display:inline-flex;
  align-items:center;
  justify-content:center;
  text-align:center;
  line-height:1.35;
  white-space:normal;
  touch-action:manipulation;
}

.btn[href="#contact"],
.mobile-nav a[href="#contact"]{
  font-weight:800;
}

.mobile-nav{
  max-height:min(72vh,520px);
  overflow:auto;
  overscroll-behavior:contain;
}

.mobile-nav a{
  min-height:44px;
  display:flex;
  align-items:center;
}

.mobile-nav a[href="#contact"]{
  margin-top:6px;
  border-radius:999px;
  background:linear-gradient(135deg,var(--navy),#123a76);
  color:#fff!important;
  justify-content:center;
}

.assurance-mini{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  align-items:center;
}

.assurance-mini span,
.assurance-mini li{
  line-height:1.45;
}

.step-cta-card{
  scroll-margin-top:96px;
}

.step-cta-card .btn,
.step-cta-card a[href="#contact"]{
  width:auto;
}

.faq-contact-bridge{
  border-top:1px solid rgba(226,234,244,.86);
  padding-top:14px;
  margin-top:16px!important;
  color:var(--navy)!important;
  font-weight:700;
}

#contact{
  scroll-margin-top:96px;
}

.contact-grid,
.contact-layout{
  align-items:start;
}

.contact-card,
.contact-panel,
.form-card{
  min-width:0;
}

.form,
form{
  min-width:0;
}

.form-row,
.form-grid,
.form-fields{
  gap:16px;
}

.field,
.form-field{
  min-width:0;
}

label,
.form-label{
  display:block;
  margin-bottom:7px;
  color:var(--navy);
  font-weight:700;
  line-height:1.5;
}

input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]),
select,
textarea{
  width:100%;
  max-width:100%;
  min-height:46px;
  font-size:16px;
  line-height:1.5;
  border-radius:14px;
}

textarea{
  min-height:150px;
  resize:vertical;
}

input::placeholder,
textarea::placeholder{
  color:rgba(83,99,123,.62);
}

.checkbox,
.check,
.privacy-check,
.consent,
.form-consent,
.agree-row{
  display:flex;
  align-items:flex-start;
  gap:10px;
  line-height:1.7;
}

.checkbox input[type="checkbox"],
.check input[type="checkbox"],
.privacy-check input[type="checkbox"],
.consent input[type="checkbox"],
.form-consent input[type="checkbox"],
.agree-row input[type="checkbox"],
input[type="checkbox"]{
  width:18px;
  height:18px;
  min-width:18px;
  flex:0 0 18px;
  margin-top:.25em;
}

.form-note,
.privacy-note,
.contact-note,
.fineprint,
.form-help,
.field-help{
  line-height:1.72;
  color:var(--muted);
}

button[type="submit"],
.form-actions .btn,
.form-actions button{
  min-height:50px;
  padding-inline:22px;
}

.faq-item summary{
  min-height:46px;
  cursor:pointer;
  line-height:1.58;
}

.faq-item p{
  line-height:1.84;
}

@media(max-width:900px){
  html{
    scroll-padding-top:78px;
  }

  .hero-grid,
  .hero-inner{
    gap:clamp(22px,5vw,34px);
  }

  .actions,
  .cta-row,
  .hero-actions{
    align-items:stretch;
  }

  .actions .btn,
  .cta-row .btn,
  .hero-actions .btn{
    width:100%;
    max-width:430px;
  }
}

@media(max-width:760px){
  :root{
    --touch-target:48px;
  }

  html{
    scroll-padding-top:72px;
  }

  .hero{
    padding-top:86px;
    padding-bottom:50px;
  }

  .hero h1{
    line-height:1.42;
    text-wrap:balance;
  }

  .hero p{
    line-height:1.78;
  }

  .hero .tags,
  .hero-tags,
  .tag-list{
    gap:7px;
  }

  .hero .tags span,
  .hero-tags span,
  .tag-list span,
  .tag{
    font-size:.78rem;
    line-height:1.35;
  }

  .hero-visual,
  .visual-shell{
    max-width:100%;
  }

  .hero-visual img,
  .visual-shell img{
    max-height:360px;
    object-fit:contain;
  }

  .pc-enlarge-image{
    max-width:100%;
  }

  .actions,
  .cta-row,
  .hero-actions,
  .form-actions{
    flex-direction:column;
    align-items:stretch;
    width:100%;
  }

  .btn,
  .button,
  .cta,
  .cta-button,
  .primary-cta,
  .secondary-cta,
  button[type="submit"],
  input[type="submit"]{
    width:100%;
    min-height:50px;
    padding:14px 18px;
    font-size:.96rem;
  }

  .assurance-mini{
    margin-top:12px;
    gap:7px;
  }

  .assurance-mini span,
  .assurance-mini li{
    font-size:.82rem;
  }

  .section{
    padding-block:48px;
  }

  .section-head{
    margin-bottom:22px;
  }

  .section-head h2{
    line-height:1.5;
  }

  .section-head p{
    line-height:1.76;
  }

  .step-cta-card{
    margin-top:20px;
  }

  .step-cta-card .btn,
  .step-cta-card a[href="#contact"]{
    width:100%;
  }

  .faq-item summary{
    padding-right:2px;
    align-items:flex-start;
  }

  .faq-contact-bridge{
    font-size:.92rem;
    line-height:1.75;
  }

  .contact-grid,
  .contact-layout{
    grid-template-columns:1fr;
    gap:18px;
  }

  .contact-card,
  .contact-panel,
  .form-card{
    padding:22px 20px;
  }

  .contact-card p,
  .contact-panel p,
  .form-card p{
    line-height:1.78;
  }

  .form-row,
  .form-grid,
  .form-fields{
    grid-template-columns:1fr;
    gap:14px;
  }

  label,
  .form-label{
    font-size:.93rem;
  }

  input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]),
  select,
  textarea{
    min-height:48px;
    border-radius:14px;
    padding-top:13px;
    padding-bottom:13px;
  }

  textarea{
    min-height:138px;
  }

  .checkbox,
  .check,
  .privacy-check,
  .consent,
  .form-consent,
  .agree-row{
    padding:12px 13px;
    border:1px solid rgba(226,234,244,.9);
    border-radius:16px;
    background:rgba(247,249,252,.72);
  }

  button[type="submit"],
  .form-actions .btn,
  .form-actions button{
    width:100%;
    min-height:52px;
  }

  #contact{
    scroll-margin-top:78px;
  }
}

@media(max-width:420px){
  .hero{
    padding-top:80px;
  }

  .hero-visual img,
  .visual-shell img{
    max-height:320px;
  }

  .section{
    padding-block:44px;
  }

  .contact-card,
  .contact-panel,
  .form-card{
    padding:20px 18px;
  }
}


/* Fix: Service Overview mobile card grid collapse */
#service .service-grid{
  min-width:0;
}

#service .service{
  min-width:0;
}

#service .service strong,
#service .service span{
  writing-mode:horizontal-tb!important;
  word-break:keep-all!important;
  overflow-wrap:normal!important;
  line-break:strict!important;
  text-wrap:balance;
  white-space:normal;
}

/* Tablet: keep enough width per card */
@media(max-width:900px){
  #service .wrap.two{
    grid-template-columns:1fr!important;
  }

  #service .service-grid{
    grid-template-columns:repeat(2,minmax(160px,1fr))!important;
    gap:14px!important;
    max-width:620px;
    margin-inline:auto;
  }

  #service .service{
    padding:18px 16px!important;
    min-height:auto!important;
  }

  #service .service strong{
    font-size:1rem!important;
    line-height:1.55!important;
    letter-spacing:.01em!important;
    margin-bottom:6px!important;
  }

  #service .service span{
    font-size:.88rem!important;
    line-height:1.7!important;
    letter-spacing:0!important;
  }
}

/* Smartphone: one column to prevent 1-2 character vertical wrapping */
@media(max-width:640px){
  #service .text-card{
    padding:22px 20px!important;
  }

  #service .service-grid{
    display:grid!important;
    grid-template-columns:minmax(0,1fr)!important;
    gap:12px!important;
    width:100%!important;
    max-width:100%!important;
    margin-top:18px!important;
    margin-inline:0!important;
  }

  #service .service{
    width:100%!important;
    min-width:0!important;
    max-width:100%!important;
    padding:16px 16px!important;
    border-radius:16px!important;
    min-height:auto!important;
  }

  #service .service strong{
    display:block!important;
    font-size:1rem!important;
    line-height:1.55!important;
    letter-spacing:0!important;
    margin:0 0 5px!important;
  }

  #service .service span{
    display:block!important;
    font-size:.9rem!important;
    line-height:1.68!important;
    letter-spacing:0!important;
  }
}

@media(max-width:380px){
  #service .text-card{
    padding:20px 18px!important;
  }

  #service .service{
    padding:15px 14px!important;
  }
}


/* Step 2: Service Overview / Practical Support UI refinement */
#service.service-overview-focus{
  background:linear-gradient(180deg,rgba(255,255,255,.98),rgba(247,249,252,.76));
}

#service.service-overview-focus .wrap.two{
  align-items:center;
  gap:clamp(28px,4vw,48px);
}

#service.service-overview-focus .text-card{
  position:relative;
  border:1px solid rgba(226,234,244,.9);
  background:rgba(255,255,255,.86);
  box-shadow:0 20px 54px rgba(7,24,58,.07);
}

#service.service-overview-focus .text-card::before{
  content:"Overview";
  position:absolute;
  right:clamp(20px,2.5vw,30px);
  top:clamp(20px,2.5vw,30px);
  color:rgba(226,42,117,.14);
  font-size:.78rem;
  font-weight:900;
  letter-spacing:.18em;
  pointer-events:none;
}

#service.service-overview-focus .service-grid{
  margin-top:clamp(18px,2.6vw,28px);
  gap:clamp(12px,1.8vw,18px);
}

#service.service-overview-focus .service{
  border-radius:18px;
  background:linear-gradient(180deg,rgba(255,255,255,.96),rgba(250,252,255,.96));
  border:1px solid rgba(226,234,244,.92);
  box-shadow:0 10px 26px rgba(7,24,58,.045);
}

#service.service-overview-focus .service strong{
  color:var(--navy);
  line-height:1.48;
}

#service.service-overview-focus .service span{
  color:var(--muted);
  line-height:1.7;
}

#service.service-overview-focus .image-card{
  background:rgba(255,255,255,.78);
  border:1px solid rgba(226,234,244,.86);
  box-shadow:0 20px 54px rgba(7,24,58,.06);
}

#service.service-overview-focus .service-overview-image,
#service.service-overview-focus .pc-enlarge-image{
  width:100%;
  height:auto;
  object-fit:contain;
  margin-inline:auto;
}

#practical-support.practical-support-focus{
  background:linear-gradient(180deg,#fff,rgba(247,249,252,.86));
}

#practical-support.practical-support-focus .section-head{
  max-width:720px;
  margin-bottom:clamp(28px,4vw,44px);
}

#practical-support.practical-support-focus .section-head .eyebrow{
  color:var(--pink);
  opacity:.86;
}

#practical-support.practical-support-focus .practical-layout{
  align-items:start;
  gap:clamp(26px,4vw,46px);
}

#practical-support.practical-support-focus .support-figure{
  background:rgba(255,255,255,.78);
  border:1px solid rgba(226,234,244,.86);
  box-shadow:0 18px 48px rgba(7,24,58,.06);
}

#practical-support.practical-support-focus .support-figure img,
#practical-support.practical-support-focus .service-flow-image{
  width:100%;
  height:auto;
  object-fit:contain;
}

#practical-support.practical-support-focus .practical-grid{
  gap:clamp(16px,2vw,22px);
}

#practical-support.practical-support-focus .support-item{
  position:relative;
  background:linear-gradient(180deg,rgba(255,255,255,.98),rgba(250,252,255,.96));
  border:1px solid rgba(226,234,244,.92);
  box-shadow:0 14px 36px rgba(7,24,58,.055);
}

#practical-support.practical-support-focus .support-item::before{
  content:"";
  position:absolute;
  left:0;
  top:22px;
  bottom:22px;
  width:3px;
  border-radius:999px;
  background:linear-gradient(180deg,var(--pink),rgba(226,42,117,.18));
}

#practical-support.practical-support-focus .support-label{
  color:var(--pink);
  opacity:.78;
  font-size:.72rem;
  letter-spacing:.14em;
}

#practical-support.practical-support-focus .support-title{
  color:var(--navy);
  line-height:1.56;
}

#practical-support.practical-support-focus .support-item p:last-child{
  color:var(--muted);
  line-height:1.84;
}

#practical-support.practical-support-focus .step-cta-card{
  max-width:860px;
  margin-inline:auto;
  margin-top:clamp(26px,3.6vw,42px);
  border:1px solid rgba(226,234,244,.92);
  background:linear-gradient(135deg,rgba(255,255,255,.96),rgba(247,249,252,.92));
}

#practical-support.practical-support-focus .step-cta-card h3{
  line-height:1.55;
  text-wrap:balance;
}

@media(min-width:1024px){
  #service.service-overview-focus .image-card{
    max-width:640px;
    justify-self:center;
  }

  #service.service-overview-focus .service-overview-image,
  #service.service-overview-focus .pc-enlarge-image{
    max-width:620px;
  }

  #practical-support.practical-support-focus .practical-layout{
    grid-template-columns:minmax(360px,.82fr) minmax(0,1.18fr);
  }

  #practical-support.practical-support-focus .support-figure{
    max-width:520px;
    position:sticky;
    top:96px;
  }

  #practical-support.practical-support-focus .support-figure img,
  #practical-support.practical-support-focus .service-flow-image{
    max-width:500px;
  }

  #practical-support.practical-support-focus .practical-grid{
    max-width:720px;
  }
}

@media(max-width:900px){
  #service.service-overview-focus .wrap.two{
    grid-template-columns:1fr!important;
  }

  #service.service-overview-focus .image-card{
    max-width:680px;
    margin-inline:auto;
  }

  #service.service-overview-focus .service-overview-image,
  #service.service-overview-focus .pc-enlarge-image{
    max-width:640px;
  }

  #practical-support.practical-support-focus .practical-layout{
    grid-template-columns:1fr!important;
    max-width:760px;
  }

  #practical-support.practical-support-focus .support-figure{
    max-width:640px;
    margin-inline:auto;
  }

  #practical-support.practical-support-focus .practical-grid{
    max-width:680px;
  }
}

@media(max-width:640px){
  #service.service-overview-focus{
    padding-block:46px;
  }

  #service.service-overview-focus .text-card{
    padding:22px 20px!important;
  }

  #service.service-overview-focus .text-card::before{
    display:none;
  }

  #service.service-overview-focus .text-card .eyebrow{
    margin-bottom:8px;
    font-size:.7rem;
    letter-spacing:.14em;
  }

  #service.service-overview-focus .text-card h3{
    margin-bottom:10px;
    line-height:1.55;
  }

  #service.service-overview-focus .text-card > p{
    font-size:.92rem;
    line-height:1.76;
  }

  #service.service-overview-focus .service-grid{
    grid-template-columns:minmax(0,1fr)!important;
    gap:10px!important;
    margin-top:16px!important;
  }

  #service.service-overview-focus .service{
    padding:15px 15px!important;
    border-radius:16px;
  }

  #service.service-overview-focus .service strong{
    font-size:.98rem!important;
    line-height:1.48!important;
    margin-bottom:4px!important;
  }

  #service.service-overview-focus .service span{
    font-size:.88rem!important;
    line-height:1.62!important;
  }

  #service.service-overview-focus .image-card{
    padding:14px!important;
    border-radius:20px;
  }

  #service.service-overview-focus .service-overview-image,
  #service.service-overview-focus .pc-enlarge-image{
    max-height:300px;
    object-fit:contain;
  }

  #practical-support.practical-support-focus{
    padding-block:48px;
  }

  #practical-support.practical-support-focus .section-head{
    margin-bottom:22px;
  }

  #practical-support.practical-support-focus .section-head p{
    font-size:.92rem;
    line-height:1.76;
  }

  #practical-support.practical-support-focus .support-figure{
    padding:12px!important;
    border-radius:20px;
  }

  #practical-support.practical-support-focus .support-figure img,
  #practical-support.practical-support-focus .service-flow-image{
    max-height:300px;
    object-fit:contain;
  }

  #practical-support.practical-support-focus .practical-grid{
    grid-template-columns:minmax(0,1fr)!important;
    gap:12px;
  }

  #practical-support.practical-support-focus .support-item{
    padding:20px 18px 20px 20px!important;
    border-radius:20px;
  }

  #practical-support.practical-support-focus .support-item::before{
    top:18px;
    bottom:18px;
  }

  #practical-support.practical-support-focus .support-label{
    font-size:.68rem;
    letter-spacing:.12em;
    margin-bottom:7px;
  }

  #practical-support.practical-support-focus .support-title{
    font-size:1.04rem;
    line-height:1.58;
    margin-bottom:8px;
  }

  #practical-support.practical-support-focus .support-item p:last-child{
    font-size:.9rem;
    line-height:1.74;
  }

  #practical-support.practical-support-focus .step-cta-card{
    padding:22px 20px!important;
    margin-top:22px;
  }
}

@media(max-width:380px){
  #service.service-overview-focus .text-card,
  #practical-support.practical-support-focus .support-item,
  #practical-support.practical-support-focus .step-cta-card{
    padding-left:18px!important;
    padding-right:18px!important;
  }
}


/* Step 3: mobile-first CV path and Contact form final tuning */
:root{--cv-touch-target:48px}

html{scroll-behavior:smooth;scroll-padding-top:88px;overflow-x:hidden}
body{overflow-x:hidden}

a:focus-visible,button:focus-visible,summary:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{
  outline:3px solid rgba(226,42,117,.38);
  outline-offset:3px;
  border-radius:12px;
}
a,button,summary,label{-webkit-tap-highlight-color:rgba(226,42,117,.14)}

.hero,.section,.wrap,.container,.contact-grid,.contact-layout,.form-card,.contact-card,.contact-panel{min-width:0}
.actions,.cta-row,.hero-actions,.form-actions{gap:12px}

.btn,.button,.cta,.cta-button,.primary-cta,.secondary-cta,button[type="submit"],input[type="submit"]{
  min-height:var(--cv-touch-target);
  display:inline-flex;
  align-items:center;
  justify-content:center;
  text-align:center;
  line-height:1.35;
  white-space:normal;
  touch-action:manipulation;
}
.btn[href="#contact"],.cta[href="#contact"],.primary-cta[href="#contact"]{font-weight:800}

.mobile-nav{
  max-height:min(72vh,520px);
  overflow:auto;
  overscroll-behavior:contain;
  padding-bottom:10px;
}
.mobile-nav a{min-height:44px;display:flex;align-items:center}
.mobile-nav a[href="#contact"]{
  margin-top:6px;
  border-radius:999px;
  background:linear-gradient(135deg,var(--navy),#123a76);
  color:#fff!important;
  justify-content:center;
  font-weight:800;
}

.assurance-mini{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.assurance-mini span,.assurance-mini li{line-height:1.45}
.step-cta-card{scroll-margin-top:96px}
.step-cta-card .btn,.step-cta-card a[href="#contact"]{min-height:var(--cv-touch-target)}

.faq-contact-bridge{
  margin-top:16px!important;
  padding-top:14px;
  border-top:1px solid rgba(226,234,244,.86);
  color:var(--navy)!important;
  font-weight:700;
  line-height:1.75;
}

#contact{scroll-margin-top:96px}
#contact .section-head,#contact .contact-intro,#contact .form-intro{max-width:720px}
.contact-grid,.contact-layout{align-items:start;gap:clamp(22px,3vw,38px)}
.contact-card,.contact-panel,.form-card{box-shadow:0 22px 56px rgba(7,24,58,.08)}
.form,form{min-width:0}
.form-row,.form-grid,.form-fields{gap:16px}
.field,.form-field{min-width:0}

.form-group-heading{
  margin:22px 0 12px;
  padding-top:18px;
  border-top:1px solid rgba(226,234,244,.86);
  color:var(--navy);
  font-size:.94rem;
  font-weight:900;
  letter-spacing:.04em;
}
.form-group-heading:first-child{margin-top:0;padding-top:0;border-top:0}

label,.form-label{
  display:block;
  margin-bottom:7px;
  color:var(--navy);
  font-weight:700;
  line-height:1.5;
}

input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]),select,textarea{
  width:100%;
  max-width:100%;
  min-height:46px;
  font-size:16px;
  line-height:1.5;
  border-radius:14px;
}
textarea{min-height:150px;resize:vertical}
input::placeholder,textarea::placeholder{color:rgba(83,99,123,.60)}

.checkbox,.check,.privacy-check,.consent,.form-consent,.agree-row{
  display:flex;
  align-items:flex-start;
  gap:10px;
  line-height:1.72;
}
.checkbox input[type="checkbox"],.check input[type="checkbox"],.privacy-check input[type="checkbox"],.consent input[type="checkbox"],.form-consent input[type="checkbox"],.agree-row input[type="checkbox"],input[type="checkbox"]{
  width:18px;
  height:18px;
  min-width:18px;
  flex:0 0 18px;
  margin-top:.25em;
}

.form-note,.form-privacy-note,.privacy-note,.contact-note,.fineprint,.form-help,.field-help{line-height:1.72;color:var(--muted)}
button[type="submit"],.form-actions .btn,.form-actions button,input[type="submit"]{min-height:52px;padding-inline:22px;font-weight:800}
.faq-item summary{min-height:46px;cursor:pointer;line-height:1.58}
.faq-item p{line-height:1.84}

@media(max-width:900px){
  html{scroll-padding-top:78px}
  .actions,.cta-row,.hero-actions{align-items:stretch}
  .actions .btn,.cta-row .btn,.hero-actions .btn{width:100%;max-width:430px}
  .contact-grid,.contact-layout{grid-template-columns:1fr}
}

@media(max-width:760px){
  :root{--cv-touch-target:50px}
  html{scroll-padding-top:72px}
  .hero{padding-top:84px;padding-bottom:48px}
  .hero h1{line-height:1.42;text-wrap:balance}
  .hero p{line-height:1.78}
  .hero .tags,.hero-tags,.tag-list{gap:7px}
  .hero .tags span,.hero-tags span,.tag-list span,.tag{font-size:.78rem;line-height:1.35}
  .hero-visual,.visual-shell{max-width:100%}
  .hero-visual img,.visual-shell img{max-height:340px;object-fit:contain}

  .actions,.cta-row,.hero-actions,.form-actions{flex-direction:column;align-items:stretch;width:100%}
  .btn,.button,.cta,.cta-button,.primary-cta,.secondary-cta,button[type="submit"],input[type="submit"]{
    width:100%;
    min-height:50px;
    padding:14px 18px;
    font-size:.96rem;
  }

  .assurance-mini{margin-top:12px;gap:7px}
  .assurance-mini span,.assurance-mini li{font-size:.82rem}
  .section{padding-block:46px}
  .step-cta-card{margin-top:20px}
  .step-cta-card .btn,.step-cta-card a[href="#contact"]{width:100%}
  .faq-item summary{padding-right:2px;align-items:flex-start}
  .faq-contact-bridge{font-size:.92rem}

  #contact{scroll-margin-top:78px}
  #contact .section-head p,#contact .contact-intro p,#contact .form-intro p{line-height:1.76}
  .contact-grid,.contact-layout{gap:18px}
  .contact-card,.contact-panel,.form-card{padding:22px 20px;border-radius:22px}
  .contact-card p,.contact-panel p,.form-card p{line-height:1.78}

  .form-row,.form-grid,.form-fields{grid-template-columns:1fr;gap:14px}
  .form-group-heading{margin:18px 0 10px;padding-top:16px;font-size:.9rem}
  label,.form-label{font-size:.93rem}

  input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]),select,textarea{
    min-height:48px;
    border-radius:14px;
    padding-top:13px;
    padding-bottom:13px;
  }
  textarea{min-height:138px}

  .checkbox,.check,.privacy-check,.consent,.form-consent,.agree-row{
    padding:12px 13px;
    border:1px solid rgba(226,234,244,.9);
    border-radius:16px;
    background:rgba(247,249,252,.72);
    font-size:.9rem;
  }

  .form-privacy-note,.privacy-note,.form-note{font-size:.84rem}
  button[type="submit"],.form-actions .btn,.form-actions button,input[type="submit"]{width:100%;min-height:52px}
}

@media(max-width:420px){
  .hero{padding-top:80px}
  .hero-visual img,.visual-shell img{max-height:310px}
  .section{padding-block:42px}
  .contact-card,.contact-panel,.form-card{padding:20px 18px}
}

/* Step 1: Service Overview mobile readability fix
   Purpose: prevent narrow 3-column cards and 1-2 character Japanese wrapping on smartphones. */
#service.service-overview-focus,
#service.service-overview-focus *{
  box-sizing:border-box;
}

#service.service-overview-focus{
  overflow-x:hidden;
}

#service.service-overview-focus .wrap,
#service.service-overview-focus .wrap.two,
#service.service-overview-focus .text-card,
#service.service-overview-focus .service-grid,
#service.service-overview-focus .service{
  min-width:0;
}

#service.service-overview-focus .service-grid{
  width:100%;
  max-width:100%;
}

#service.service-overview-focus .service{
  max-width:100%;
  min-height:auto;
}

#service.service-overview-focus .service strong,
#service.service-overview-focus .service span{
  writing-mode:horizontal-tb!important;
  white-space:normal!important;
  overflow-wrap:normal!important;
  word-break:keep-all!important;
  line-break:strict!important;
  text-orientation:mixed!important;
}

#service.service-overview-focus .service strong{
  display:block;
  text-wrap:balance;
}

#service.service-overview-focus .service span{
  display:block;
}

/* Tablet: never force 3 columns around Service Overview */
@media(max-width:900px){
  #service.service-overview-focus .wrap.two{
    grid-template-columns:minmax(0,1fr)!important;
  }

  #service.service-overview-focus .service-grid{
    display:grid!important;
    grid-template-columns:repeat(2,minmax(160px,1fr))!important;
    gap:14px!important;
    width:100%!important;
    max-width:620px!important;
    margin-inline:auto!important;
  }

  #service.service-overview-focus .service{
    width:100%!important;
    min-width:160px!important;
    padding:18px 16px!important;
    border-radius:18px!important;
  }

  #service.service-overview-focus .service strong{
    font-size:1rem!important;
    line-height:1.55!important;
    letter-spacing:.01em!important;
    margin:0 0 6px!important;
  }

  #service.service-overview-focus .service span{
    font-size:.88rem!important;
    line-height:1.68!important;
    letter-spacing:0!important;
  }
}

/* Smartphone: one column for reliable readability */
@media(max-width:640px){
  #service.service-overview-focus .text-card{
    padding:22px 20px!important;
  }

  #service.service-overview-focus .service-grid{
    grid-template-columns:minmax(0,1fr)!important;
    gap:12px!important;
    max-width:100%!important;
    margin-top:18px!important;
    margin-inline:0!important;
  }

  #service.service-overview-focus .service{
    min-width:0!important;
    width:100%!important;
    padding:17px 18px!important;
    border-radius:17px!important;
  }

  #service.service-overview-focus .service strong{
    font-size:1rem!important;
    line-height:1.55!important;
    letter-spacing:0!important;
    margin-bottom:5px!important;
  }

  #service.service-overview-focus .service span{
    font-size:.9rem!important;
    line-height:1.68!important;
    letter-spacing:0!important;
  }
}

@media(max-width:380px){
  #service.service-overview-focus .text-card{
    padding:20px 18px!important;
  }

  #service.service-overview-focus .service{
    padding:16px 16px!important;
  }
}

/* Step 2: Service Overview light / Practical Support emphasis
   Scope: #service and #practical-support only. */
#service{
  background:linear-gradient(180deg,rgba(255,255,255,.98),rgba(247,249,252,.72));
}

#service .wrap.two{
  align-items:center;
  gap:clamp(26px,4vw,46px);
}

#service .text-card{
  position:relative;
  background:rgba(255,255,255,.82);
  border:1px solid rgba(226,234,244,.86);
  box-shadow:0 18px 46px rgba(7,24,58,.055);
}

#service .text-card::before{
  content:"OVERVIEW";
  position:absolute;
  top:clamp(18px,2.4vw,28px);
  right:clamp(20px,2.8vw,34px);
  color:rgba(226,42,117,.13);
  font-size:.72rem;
  font-weight:900;
  letter-spacing:.16em;
  pointer-events:none;
}

#service .text-card > p{
  max-width:620px;
}

#service .service-grid{
  margin-top:clamp(18px,2.6vw,26px);
  gap:clamp(10px,1.6vw,16px);
}

#service .service{
  background:linear-gradient(180deg,rgba(255,255,255,.95),rgba(250,252,255,.9));
  border:1px solid rgba(226,234,244,.86);
  box-shadow:0 8px 22px rgba(7,24,58,.035);
}

#service .service strong{
  color:var(--navy);
  line-height:1.5;
}

#service .service span{
  color:var(--muted);
  line-height:1.68;
}

#service .image-card{
  background:rgba(255,255,255,.72);
  border:1px solid rgba(226,234,244,.82);
  box-shadow:0 16px 44px rgba(7,24,58,.052);
}

#service img[src*="service-areas.png"]{
  width:100%;
  height:auto;
  object-fit:contain;
  margin-inline:auto;
}

#practical-support{
  background:linear-gradient(180deg,#fff,rgba(247,249,252,.88));
}

#practical-support .section-head{
  max-width:720px;
  margin-bottom:clamp(28px,4vw,44px);
}

#practical-support .section-head .eyebrow{
  color:var(--pink);
  opacity:.82;
  font-size:.72rem;
  letter-spacing:.16em;
}

#practical-support .practical-layout{
  align-items:start;
  gap:clamp(26px,4vw,46px);
}

#practical-support .support-figure{
  background:rgba(255,255,255,.78);
  border:1px solid rgba(226,234,244,.86);
  box-shadow:0 18px 48px rgba(7,24,58,.06);
}

#practical-support .support-figure img,
#practical-support img[src*="service-clarification-flow.svg"]{
  width:100%;
  height:auto;
  object-fit:contain;
  margin-inline:auto;
}

#practical-support .practical-grid{
  gap:clamp(16px,2vw,22px);
}

#practical-support .support-item{
  position:relative;
  background:linear-gradient(180deg,rgba(255,255,255,.98),rgba(250,252,255,.96));
  border:1px solid rgba(226,234,244,.92);
  box-shadow:0 14px 36px rgba(7,24,58,.055);
}

#practical-support .support-item::before{
  content:"";
  position:absolute;
  left:0;
  top:22px;
  bottom:22px;
  width:3px;
  border-radius:999px;
  background:linear-gradient(180deg,var(--pink),rgba(226,42,117,.2));
}

#practical-support .support-label{
  color:var(--pink);
  opacity:.72;
  font-size:.7rem;
  letter-spacing:.13em;
  line-height:1.45;
  margin-bottom:8px;
}

#practical-support .support-title{
  color:var(--navy);
  line-height:1.56;
  letter-spacing:.02em;
}

#practical-support .support-item p:last-child{
  color:var(--muted);
  line-height:1.82;
}

#practical-support .step-cta-card{
  max-width:860px;
  margin-inline:auto;
  margin-top:clamp(26px,3.6vw,42px);
  border:1px solid rgba(226,234,244,.92);
  background:linear-gradient(135deg,rgba(255,255,255,.96),rgba(247,249,252,.92));
  box-shadow:0 18px 48px rgba(7,24,58,.065);
}

#practical-support .step-cta-card h3{
  line-height:1.55;
  text-wrap:balance;
}

/* PC: keep explanatory images readable without enlarging logos/icons/photos */
@media(min-width:1024px){
  #service .image-card{
    max-width:640px;
    justify-self:center;
  }

  #service img[src*="service-areas.png"]{
    max-width:620px;
  }

  #practical-support .practical-layout{
    grid-template-columns:minmax(360px,.82fr) minmax(0,1.18fr);
  }

  #practical-support .support-figure{
    max-width:520px;
    position:sticky;
    top:96px;
  }

  #practical-support .support-figure img,
  #practical-support img[src*="service-clarification-flow.svg"]{
    max-width:500px;
  }

  #practical-support .practical-grid{
    max-width:720px;
  }
}

/* Tablet */
@media(max-width:900px){
  #service .wrap.two,
  #practical-support .practical-layout{
    grid-template-columns:minmax(0,1fr)!important;
  }

  #service .image-card,
  #practical-support .support-figure{
    max-width:640px;
    margin-inline:auto;
  }

  #service img[src*="service-areas.png"]{
    max-width:620px;
  }

  #practical-support .practical-grid{
    max-width:680px;
    margin-inline:auto;
  }
}

/* Smartphone */
@media(max-width:640px){
  #service{
    padding-block:46px;
  }

  #service .text-card{
    padding:22px 20px!important;
  }

  #service .text-card::before{
    display:none;
  }

  #service .text-card .eyebrow{
    margin-bottom:8px;
    font-size:.7rem;
    letter-spacing:.14em;
  }

  #service .text-card h3{
    margin-bottom:10px;
    line-height:1.55;
  }

  #service .text-card > p{
    font-size:.92rem;
    line-height:1.76;
  }

  #service .service-grid{
    grid-template-columns:minmax(0,1fr)!important;
    gap:10px!important;
    margin-top:16px!important;
  }

  #service .service{
    padding:15px 15px!important;
    border-radius:16px;
  }

  #service .service strong{
    font-size:.98rem!important;
    line-height:1.48!important;
    letter-spacing:0!important;
    margin-bottom:4px!important;
  }

  #service .service span{
    font-size:.88rem!important;
    line-height:1.62!important;
    letter-spacing:0!important;
  }

  #service .image-card{
    padding:14px!important;
    border-radius:20px;
  }

  #service img[src*="service-areas.png"]{
    max-height:300px;
    object-fit:contain;
  }

  #practical-support{
    padding-block:48px;
  }

  #practical-support .section-head{
    margin-bottom:22px;
  }

  #practical-support .section-head p{
    font-size:.92rem;
    line-height:1.76;
  }

  #practical-support .support-figure{
    padding:12px!important;
    border-radius:20px;
  }

  #practical-support .support-figure img,
  #practical-support img[src*="service-clarification-flow.svg"]{
    max-height:300px;
    object-fit:contain;
  }

  #practical-support .practical-grid{
    grid-template-columns:minmax(0,1fr)!important;
    gap:12px;
  }

  #practical-support .support-item{
    padding:20px 18px 20px 20px!important;
    border-radius:20px;
  }

  #practical-support .support-item::before{
    top:18px;
    bottom:18px;
  }

  #practical-support .support-label{
    font-size:.68rem;
    letter-spacing:.11em;
    margin-bottom:7px;
  }

  #practical-support .support-title{
    font-size:1.04rem;
    line-height:1.58;
    margin-bottom:8px;
  }

  #practical-support .support-item p:last-child{
    font-size:.9rem;
    line-height:1.74;
  }

  #practical-support .step-cta-card{
    padding:22px 20px!important;
    margin-top:22px;
  }
}

@media(max-width:380px){
  #service .text-card,
  #practical-support .support-item,
  #practical-support .step-cta-card{
    padding-left:18px!important;
    padding-right:18px!important;
  }
}

/* Step 3: Mobile CV path and Contact form final tuning
   Scope: Hero CTA / mobile nav / FAQ-to-Contact / Contact form only.
   Do not change form action, method, names, honeypot or contact.php. */
:root{
  --cv-touch-size:48px;
}

html{
  scroll-behavior:smooth;
  scroll-padding-top:88px;
  overflow-x:hidden;
}

body{
  overflow-x:hidden;
}

.hero,
.section,
.wrap,
.container,
.contact-grid,
.contact-layout,
.form-card,
.contact-card,
.contact-panel,
.form{
  min-width:0;
}

a:focus-visible,
button:focus-visible,
summary:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible{
  outline:3px solid rgba(226,42,117,.38);
  outline-offset:3px;
  border-radius:12px;
}

a,
button,
summary,
label{
  -webkit-tap-highlight-color:rgba(226,42,117,.14);
}

/* CTA */
.actions,
.cta-row,
.hero-actions,
.form-actions{
  gap:12px;
}

.btn,
.button,
.cta,
.cta-button,
.primary-cta,
.secondary-cta,
button[type="submit"],
input[type="submit"]{
  min-height:var(--cv-touch-size);
  display:inline-flex;
  align-items:center;
  justify-content:center;
  text-align:center;
  line-height:1.35;
  white-space:normal;
  touch-action:manipulation;
}

.btn[href="#contact"],
.cta[href="#contact"],
.primary-cta[href="#contact"],
a[href="#contact"].btn{
  font-weight:800;
}

/* Mobile navigation: make Contact easy to find */
.mobile-nav{
  max-height:min(72vh,520px);
  overflow:auto;
  overscroll-behavior:contain;
  padding-bottom:10px;
}

.mobile-nav a{
  min-height:44px;
  display:flex;
  align-items:center;
}

.mobile-nav a[href="#contact"]{
  margin-top:6px;
  border-radius:999px;
  background:linear-gradient(135deg,var(--navy),#123a76);
  color:#fff!important;
  justify-content:center;
  font-weight:800;
}

/* Assurance copy near CTAs */
.assurance-mini{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  align-items:center;
}

.assurance-mini span,
.assurance-mini li{
  line-height:1.45;
}

/* Practical Support CTA */
.step-cta-card{
  scroll-margin-top:96px;
}

.step-cta-card .btn,
.step-cta-card a[href="#contact"]{
  min-height:var(--cv-touch-size);
}

/* FAQ to Contact bridge */
.faq-contact-bridge{
  margin-top:16px!important;
  padding-top:14px;
  border-top:1px solid rgba(226,234,244,.86);
  color:var(--navy)!important;
  font-weight:700;
  line-height:1.75;
}

/* Contact */
#contact{
  scroll-margin-top:96px;
}

#contact .section-head,
#contact .contact-intro,
#contact .form-intro{
  max-width:720px;
}

#contact .section-head p,
#contact .contact-intro p,
#contact .form-intro p{
  line-height:1.76;
}

.contact-grid,
.contact-layout{
  align-items:start;
  gap:clamp(22px,3vw,38px);
}

.contact-card,
.contact-panel,
.form-card{
  box-shadow:0 22px 56px rgba(7,24,58,.08);
}

.contact-card p,
.contact-panel p,
.form-card p{
  line-height:1.78;
}

/* Form visual tuning only */
.form,
form{
  min-width:0;
}

.form-row,
.form-grid,
.form-fields{
  gap:16px;
}

.field,
.form-field{
  min-width:0;
}

.form-group-heading{
  margin:22px 0 12px;
  padding-top:18px;
  border-top:1px solid rgba(226,234,244,.86);
  color:var(--navy);
  font-size:.94rem;
  font-weight:900;
  letter-spacing:.04em;
}

.form-group-heading:first-child{
  margin-top:0;
  padding-top:0;
  border-top:0;
}

label,
.form-label{
  display:block;
  margin-bottom:7px;
  color:var(--navy);
  font-weight:700;
  line-height:1.5;
}

input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]),
select,
textarea{
  width:100%;
  max-width:100%;
  min-height:46px;
  font-size:16px;
  line-height:1.5;
  border-radius:14px;
}

textarea{
  min-height:150px;
  resize:vertical;
}

input::placeholder,
textarea::placeholder{
  color:rgba(83,99,123,.60);
}

.checkbox,
.check,
.privacy-check,
.consent,
.form-consent,
.agree-row{
  display:flex;
  align-items:flex-start;
  gap:10px;
  line-height:1.72;
}

.checkbox input[type="checkbox"],
.check input[type="checkbox"],
.privacy-check input[type="checkbox"],
.consent input[type="checkbox"],
.form-consent input[type="checkbox"],
.agree-row input[type="checkbox"],
input[type="checkbox"]{
  width:18px;
  height:18px;
  min-width:18px;
  flex:0 0 18px;
  margin-top:.25em;
}

.form-note,
.form-privacy-note,
.privacy-note,
.contact-note,
.fineprint,
.form-help,
.field-help{
  line-height:1.72;
  color:var(--muted);
}

button[type="submit"],
.form-actions .btn,
.form-actions button,
input[type="submit"]{
  min-height:52px;
  padding-inline:22px;
  font-weight:800;
}

/* FAQ touch target */
.faq-item summary{
  min-height:46px;
  cursor:pointer;
  line-height:1.58;
}

.faq-item p{
  line-height:1.84;
}

@media(max-width:900px){
  html{
    scroll-padding-top:78px;
  }

  .actions,
  .cta-row,
  .hero-actions{
    align-items:stretch;
  }

  .actions .btn,
  .cta-row .btn,
  .hero-actions .btn{
    width:100%;
    max-width:430px;
  }

  .contact-grid,
  .contact-layout{
    grid-template-columns:minmax(0,1fr);
  }
}

@media(max-width:760px){
  :root{
    --cv-touch-size:50px;
  }

  html{
    scroll-padding-top:72px;
  }

  .hero{
    padding-top:84px;
    padding-bottom:48px;
  }

  .hero h1{
    line-height:1.42;
    text-wrap:balance;
  }

  .hero p{
    line-height:1.78;
  }

  .hero .tags,
  .hero-tags,
  .tag-list{
    gap:7px;
  }

  .hero .tags span,
  .hero-tags span,
  .tag-list span,
  .tag{
    font-size:.78rem;
    line-height:1.35;
  }

  .hero-visual,
  .visual-shell{
    max-width:100%;
  }

  .hero-visual img,
  .visual-shell img{
    max-height:340px;
    object-fit:contain;
  }

  .actions,
  .cta-row,
  .hero-actions,
  .form-actions{
    flex-direction:column;
    align-items:stretch;
    width:100%;
  }

  .btn,
  .button,
  .cta,
  .cta-button,
  .primary-cta,
  .secondary-cta,
  button[type="submit"],
  input[type="submit"]{
    width:100%;
    min-height:50px;
    padding:14px 18px;
    font-size:.96rem;
  }

  .assurance-mini{
    margin-top:12px;
    gap:7px;
  }

  .assurance-mini span,
  .assurance-mini li{
    font-size:.82rem;
  }

  .section{
    padding-block:46px;
  }

  .step-cta-card{
    margin-top:20px;
  }

  .step-cta-card .btn,
  .step-cta-card a[href="#contact"]{
    width:100%;
  }

  .faq-item summary{
    padding-right:2px;
    align-items:flex-start;
  }

  .faq-contact-bridge{
    font-size:.92rem;
  }

  #contact{
    scroll-margin-top:78px;
  }

  #contact .section-head p,
  #contact .contact-intro p,
  #contact .form-intro p{
    font-size:.92rem;
    line-height:1.76;
  }

  .contact-grid,
  .contact-layout{
    gap:18px;
  }

  .contact-card,
  .contact-panel,
  .form-card{
    padding:22px 20px;
    border-radius:22px;
  }

  .form-row,
  .form-grid,
  .form-fields{
    grid-template-columns:minmax(0,1fr);
    gap:14px;
  }

  .form-group-heading{
    margin:18px 0 10px;
    padding-top:16px;
    font-size:.9rem;
  }

  label,
  .form-label{
    font-size:.93rem;
  }

  input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]),
  select,
  textarea{
    min-height:48px;
    border-radius:14px;
    padding-top:13px;
    padding-bottom:13px;
  }

  textarea{
    min-height:138px;
  }

  .checkbox,
  .check,
  .privacy-check,
  .consent,
  .form-consent,
  .agree-row{
    padding:12px 13px;
    border:1px solid rgba(226,234,244,.9);
    border-radius:16px;
    background:rgba(247,249,252,.72);
    font-size:.9rem;
  }

  .form-privacy-note,
  .privacy-note,
  .form-note{
    font-size:.84rem;
  }

  button[type="submit"],
  .form-actions .btn,
  .form-actions button,
  input[type="submit"]{
    width:100%;
    min-height:52px;
  }
}

@media(max-width:420px){
  .hero{
    padding-top:80px;
  }

  .hero-visual img,
  .visual-shell img{
    max-height:310px;
  }

  .section{
    padding-block:42px;
  }

  .contact-card,
  .contact-panel,
  .form-card{
    padding:20px 18px;
  }
}

/* Image size final adjustment
   Scope: explanation diagrams only.
   Non-destructive: index.html, contact.php, forms, SEO, schema, logo, favicon, OGP, and representative photo are untouched. */

/* Shared safety for diagram blocks only */
.pc-image-wide {
  min-width: 0;
  max-width: 100%;
  overflow: hidden;
}

.pc-image-wide picture {
  display: block;
  width: 100%;
  max-width: 100%;
}

.pc-image-wide .pc-enlarge-image {
  display: block;
  width: 100%;
  max-width: 100% !important;
  height: auto !important;
  min-width: 0;
  object-fit: contain;
  object-position: center center;
}

/* Tablet: avoid cramped two-column layouts and keep diagrams readable. */
@media (min-width: 768px) and (max-width: 1099px) {
  .hero-grid,
  #mission .wrap.two,
  #service .wrap.two,
  #output .wrap.two,
  #practical-support .practical-layout {
    grid-template-columns: minmax(0, 1fr) !important;
    width: min(100% - 40px, 980px) !important;
    max-width: 980px !important;
    margin-inline: auto !important;
    gap: 28px !important;
  }

  .visual-shell.pc-image-wide,
  .image-card.pc-image-wide,
  #practical-support .support-figure.pc-image-wide {
    width: 100% !important;
    max-width: 940px !important;
    margin-inline: auto !important;
    padding: 12px !important;
    border-radius: 24px;
  }

  .pc-image-wide .pc-enlarge-image {
    max-height: none !important;
    aspect-ratio: auto !important;
    border-radius: 18px;
  }
}

/* PC: enlarge explanation images while preserving clean corporate spacing. */
@media (min-width: 1100px) {
  html,
  body {
    overflow-x: clip;
  }

  .pc-image-wide {
    width: 100% !important;
  }

  .visual-shell.pc-image-wide,
  .image-card.pc-image-wide,
  #practical-support .support-figure.pc-image-wide {
    padding: clamp(10px, 1vw, 16px) !important;
    border-radius: 26px;
  }

  .pc-image-wide .pc-enlarge-image {
    max-height: none !important;
    aspect-ratio: auto !important;
    border-radius: 20px;
  }

  /* Hero visual */
  .hero-grid {
    width: min(100% - 56px, 1500px) !important;
    max-width: 1500px !important;
    margin-inline: auto !important;
    grid-template-columns: minmax(340px, .66fr) minmax(720px, 1.34fr) !important;
    gap: clamp(36px, 4.5vw, 68px) !important;
    align-items: center !important;
  }

  .hero .visual-shell.pc-image-wide {
    justify-self: stretch;
    max-width: min(100%, 1040px) !important;
  }

  /* Mission / Service / Output two-column diagram sections */
  #mission .wrap.two,
  #service .wrap.two,
  #output .wrap.two {
    width: min(100% - 56px, 1520px) !important;
    max-width: 1520px !important;
    margin-inline: auto !important;
    grid-template-columns: minmax(330px, .58fr) minmax(740px, 1.42fr) !important;
    gap: clamp(34px, 4.2vw, 64px) !important;
    align-items: center !important;
  }

  #mission .text-card,
  #service .text-card,
  #output .text-card {
    max-width: 640px !important;
  }

  #mission .image-card.pc-image-wide,
  #service .image-card.pc-image-wide,
  #output .image-card.pc-image-wide {
    justify-self: stretch;
    max-width: none !important;
  }

  #mission .image-card.pc-image-wide .pc-enlarge-image,
  #service .image-card.pc-image-wide .pc-enlarge-image,
  #output .image-card.pc-image-wide .pc-enlarge-image {
    max-width: none !important;
  }

  /* Practical Support: show the explanation diagram at a readable PC scale. */
  #practical-support .wrap {
    width: min(100% - 56px, 1480px) !important;
    max-width: 1480px !important;
  }

  #practical-support .practical-layout {
    grid-template-columns: minmax(0, 1fr) !important;
    gap: 28px !important;
    align-items: stretch !important;
  }

  #practical-support .support-figure.pc-image-wide {
    width: 100% !important;
    max-width: min(100%, 1280px) !important;
    margin-inline: auto !important;
    min-height: 0 !important;
    height: auto !important;
  }

  #practical-support .support-figure.pc-image-wide .pc-enlarge-image,
  #practical-support .support-figure.pc-image-wide .service-flow-image {
    width: 100% !important;
    max-width: 100% !important;
    height: auto !important;
    max-height: none !important;
    aspect-ratio: auto !important;
    object-fit: contain !important;
  }

  #practical-support .practical-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    gap: 16px !important;
    width: 100%;
    max-width: 1280px;
    margin-inline: auto;
  }

  /* Process / Deliverables-like full-width diagrams */
  #process .wrap {
    width: min(100% - 56px, 1500px) !important;
    max-width: 1500px !important;
  }

  #process .image-card.pc-image-wide {
    width: 100% !important;
    max-width: min(100%, 1380px) !important;
    margin-inline: auto !important;
  }
}

/* Large PC: give diagrams a little more presence without stretching edge-to-edge. */
@media (min-width: 1440px) {
  .hero-grid,
  #mission .wrap.two,
  #service .wrap.two,
  #output .wrap.two,
  #process .wrap,
  #practical-support .wrap {
    width: min(100% - 72px, 1640px) !important;
    max-width: 1640px !important;
  }

  .hero .visual-shell.pc-image-wide {
    max-width: min(100%, 1180px) !important;
  }

  #mission .wrap.two,
  #service .wrap.two,
  #output .wrap.two {
    grid-template-columns: minmax(380px, .55fr) minmax(900px, 1.45fr) !important;
  }

  #practical-support .support-figure.pc-image-wide {
    max-width: min(100%, 1360px) !important;
  }

  #practical-support .practical-grid {
    max-width: 1360px;
  }

  #process .image-card.pc-image-wide {
    max-width: min(100%, 1480px) !important;
  }
}

/* Smartphone: keep mobile images within the viewport and do not affect logo/profile/form images. */
@media (max-width: 767px) {
  .pc-image-wide {
    width: 100% !important;
    max-width: 100% !important;
    margin-inline: auto;
  }

  .pc-image-wide .pc-enlarge-image {
    width: 100% !important;
    max-width: 100% !important;
    height: auto !important;
    max-height: none !important;
    aspect-ratio: auto !important;
    object-fit: contain !important;
  }

  #practical-support .practical-grid {
    grid-template-columns: minmax(0, 1fr) !important;
  }
}

/* FAQ mobile final adjustment: keep smartphone FAQ cards full-width and readable */
@media (max-width: 760px) {
  #faq,
  #faq * {
    box-sizing: border-box;
  }

  #faq .wrap {
    width: min(100% - 28px, 1180px) !important;
    max-width: none !important;
    margin-inline: auto !important;
  }

  #faq .faq-layout {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    width: 100% !important;
    max-width: none !important;
    gap: 18px !important;
    align-items: stretch !important;
  }

  #faq .faq-list {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    width: 100% !important;
    max-width: none !important;
    gap: 12px !important;
    margin-inline: auto !important;
  }

  #faq details.faq-item,
  #faq .faq-item {
    width: 100% !important;
    max-width: none !important;
    min-width: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    border-radius: 18px !important;
    overflow: hidden !important;
  }

  #faq .faq-item summary {
    position: relative !important;
    display: block !important;
    width: 100% !important;
    min-width: 0 !important;
    min-height: 56px !important;
    padding: 16px 54px 16px 17px !important;
    color: var(--navy) !important;
    font-size: .96rem !important;
    font-weight: 900 !important;
    line-height: 1.68 !important;
    letter-spacing: .01em !important;
    text-align: left !important;
    overflow-wrap: break-word !important;
    word-break: normal !important;
    cursor: pointer !important;
  }

  #faq .faq-item summary::after {
    position: absolute !important;
    top: 50% !important;
    right: 16px !important;
    transform: translateY(-50%) !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 30px !important;
    height: 30px !important;
    min-width: 30px !important;
    margin: 0 !important;
    padding: 0 !important;
    border-radius: 999px !important;
    background: rgba(239,59,134,.10) !important;
    color: var(--pink) !important;
    font-size: 1.15rem !important;
    font-weight: 900 !important;
    line-height: 1 !important;
  }

  #faq .faq-item p {
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 0 17px 18px !important;
    color: var(--muted) !important;
    font-size: .93rem !important;
    line-height: 1.9 !important;
    letter-spacing: .01em !important;
    text-align: left !important;
    overflow-wrap: break-word !important;
    word-break: normal !important;
  }

  #faq .faq-note {
    width: 100% !important;
    max-width: none !important;
    margin: 2px 0 0 !important;
    padding: 20px 18px !important;
    border-radius: 20px !important;
  }

  #faq .faq-note h3 {
    line-height: 1.6 !important;
  }

  #faq .faq-note p {
    line-height: 1.86 !important;
  }
}

@media (max-width: 430px) {
  #faq .wrap {
    width: min(100% - 24px, 1180px) !important;
  }

  #faq .faq-item summary {
    padding-right: 50px !important;
    font-size: .95rem !important;
  }

  #faq .faq-item summary::after {
    right: 14px !important;
    width: 28px !important;
    height: 28px !important;
    min-width: 28px !important;
  }
}
