/*
Theme Name: Yamamoto Patent Office
Theme URI: https://yamamotopat.com/
Author: Yamamoto Patent Office
Description: 山本特許事務所専用レスポンシブWordPressテーマ
Version: 3.5.46
Text Domain: yamamotopat
*/
:root{
 --navy:#063c79;--blue:#0b66a7;--pale:#eef7fb;--text:#173c61;--muted:#59728a;
 --line:#d6e4ed;--white:#fff;
}
*{box-sizing:border-box}html{scroll-behavior:smooth}
body{margin:0;font-family:"Noto Sans JP","Yu Gothic","Hiragino Kaku Gothic ProN",sans-serif;color:var(--text);line-height:1.85;background:#fff}
a{color:inherit;text-decoration:none}img{max-width:100%;height:auto;display:block}
.wrap{width:min(1180px,calc(100% - 48px));margin:auto}

/* Header */
.site-header{background:#fff;border-bottom:1px solid #e9eff3;position:sticky;top:0;z-index:100}
.header-inner{height:92px;display:flex;align-items:center;justify-content:space-between;gap:26px}
.site-logo{flex:0 0 305px}.site-logo img{width:305px;height:64px;object-fit:contain;object-position:left center}
.main-nav{font-size:13px;font-weight:700;color:#183e62}.main-nav ul{display:flex;align-items:center;gap:27px;list-style:none;margin:0;padding:0}
.main-nav a{display:block;padding:34px 0;white-space:nowrap}.main-nav a:hover{color:var(--blue)}
.main-nav li{position:relative}.main-nav .sub-menu{display:none;position:absolute;top:78px;left:-18px;background:#fff;min-width:220px;padding:10px 18px;box-shadow:0 15px 34px rgba(0,40,75,.12);border-top:2px solid var(--blue)}
.main-nav li:hover>.sub-menu{display:block}.main-nav .sub-menu li{width:100%}.main-nav .sub-menu a{padding:10px 0}
.header-contact{background:var(--navy);color:#fff;padding:15px 22px;font-size:13px;font-weight:700}
.menu-toggle{display:none;border:0;background:none;font-size:28px;color:var(--navy)}

/* Home hero */
.home-hero{position:relative;min-height:470px;background-image:linear-gradient(90deg,rgba(245,251,254,.96) 0%,rgba(245,251,254,.84) 35%,rgba(245,251,254,.14) 63%,rgba(4,64,105,.05) 100%),url('assets/images/home-hero.jpg');background-size:cover;background-position:center}
.home-hero-inner{min-height:470px;display:flex;align-items:center;position:relative}
.home-hero-copy{width:58%;padding:55px 0}
.eyebrow{font:700 11px/1.4 Georgia,serif;letter-spacing:.22em;color:#1d5d8d;text-transform:uppercase}
.home-hero h1{font-family:"Yu Mincho","Hiragino Mincho ProN",serif;font-size:clamp(43px,5vw,65px);line-height:1.35;margin:13px 0 24px;color:#073d75;font-weight:600}
.home-hero p{font-family:"Yu Mincho","Hiragino Mincho ProN",serif;font-size:17px;line-height:1.95;color:#355e7d;max-width:620px}
.hero-en{font:12px Georgia,serif;letter-spacing:.18em;color:#174f7d;margin-top:28px}

/* stats */
.home-stats{padding:34px 0 38px;border-bottom:1px solid #e7eef3}
.stat-grid{display:grid;grid-template-columns:repeat(3,1fr)}
.stat-item{display:grid;grid-template-columns:68px 1fr;gap:15px;align-items:center;padding:8px 44px;border-right:1px solid var(--line)}
.stat-item:last-child{border-right:0}.stat-icon{font-size:48px;color:#0a4d87}.stat-item small{display:block;font-size:12px}.stat-item strong{display:block;font:500 31px Georgia,serif;color:#073d75}.stat-item span{font-size:11px;color:var(--muted)}

/* General */
.section{padding:82px 0}.soft{background:linear-gradient(#f8fcfe,#edf7fb)}
.section-en{text-align:center;font:11px Georgia,serif;letter-spacing:.24em;color:#397aa5;margin-bottom:10px}
.section-title{text-align:center;font-family:"Yu Mincho","Hiragino Mincho ProN",serif;font-size:33px;line-height:1.4;margin:0;color:#073d75}
.section-lead{text-align:center;color:#5b758a;margin:10px auto 0;max-width:820px;font-size:14px}

/* services */
.service-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin-top:34px}
.service-card{background:#fff}
.service-card img{width:100%;height:170px;object-fit:cover}
.service-card-body{padding:15px 0}.service-card h3{font-family:"Yu Mincho",serif;font-size:22px;margin:0 0 6px;color:#073d75}.service-card p{font-size:13px;color:#536d82;margin:0 0 20px;min-height:50px}.service-card .more{font-size:12px;font-weight:700;color:#145a8e}

/* strengths */
.strengths{background:#eef7fb;padding:62px 0}
.feature-grid{display:grid;grid-template-columns:repeat(4,1fr);margin-top:33px}
.feature{padding:10px 28px 5px;text-align:center;border-right:1px solid #cfe0ea}.feature:last-child{border-right:0}
.feature-icon{font-size:44px;color:#064c88;margin-bottom:12px}.feature h3{font-size:16px;color:#073d75;margin:0 0 8px}.feature p{font-size:12px;line-height:1.75;color:#577187;margin:0}

/* About */
.about-home{padding:0}
.about-grid{display:grid;grid-template-columns:35% 45% 20%;min-height:320px}
.about-photo{background:url('assets/images/about-office.jpg') center/cover no-repeat}
.about-copy{padding:48px 48px}.about-copy .section-en{text-align:left}.about-copy .section-title{text-align:left}.about-copy p{font-size:13px;color:#536e83}.about-words{border-left:1px solid var(--line);display:flex;flex-direction:column;justify-content:center;padding:35px;font:28px/1.45 Georgia,serif;color:#d0dce5}.about-words small{font:13px/1.7 "Yu Gothic",sans-serif;color:#365f7e;margin-top:24px}
.btn{display:inline-flex;align-items:center;justify-content:center;padding:13px 25px;border:1px solid #2c6d99;color:#07467d;font-size:12px;font-weight:700}.btn.primary{background:#063c79;color:#fff;border-color:#063c79}

/* news */
.news-home{padding:28px 0 42px}.news-home-grid{display:grid;grid-template-columns:155px 1fr;gap:25px}.news-home-title{border-right:1px solid var(--line)}.news-home-title h2{font-family:"Yu Mincho",serif;font-size:25px;margin:0;color:#073d75}.news-home-title span{font:11px Georgia,serif;letter-spacing:.18em}.news-list{border-top:1px solid var(--line)}
.news-row{display:grid;grid-template-columns:115px 100px 1fr 25px;gap:15px;align-items:center;padding:11px 0;border-bottom:1px solid var(--line);font-size:12px}.news-tag{background:#e4f1f8;text-align:center;padding:2px 6px}.news-title{font-weight:600}

/* CTA */
.cta{background:#fff;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.cta-grid{display:grid;grid-template-columns:35% 45% 20%;min-height:115px}.cta-photo{background:url('assets/images/contact-desk.jpg') center/cover no-repeat}.cta-copy{padding:25px 38px}.cta-copy h2{font-family:"Yu Mincho",serif;font-size:24px;color:#073d75;margin:0}.cta-copy p{font-size:12px;color:#587287;margin:6px 0 0}.cta-action{display:flex;align-items:center;justify-content:center}

/* footer */
.footer-main{padding:42px 0;display:grid;grid-template-columns:1.25fr 1.1fr .65fr;gap:45px}.footer-logo img{width:270px}.footer-logo p{font-size:11px;color:#567085}.footer-links{display:grid;grid-template-columns:repeat(2,1fr);gap:6px 25px;font-size:12px}.footer-box{border:1px solid #9fc0d6;padding:17px;color:#07467d;font-size:12px}
.footer-bottom{background:linear-gradient(90deg,#063c79,#062e58);color:#dcecf6;padding:17px 0;font-size:10px}.footer-bottom .wrap{display:flex;justify-content:space-between}

/* Subpage hero */
.hero{background:#edf7fb}.hero-grid{display:grid;grid-template-columns:52% 48%;min-height:330px;align-items:stretch}.hero-copy{padding:54px 0}.hero h1{font-family:"Yu Mincho",serif;color:#073d75;font-size:48px;margin:8px 0 18px}.hero .lead{font-family:"Yu Mincho",serif;font-size:18px;color:#38627f;max-width:540px}.hero-visual{background-size:cover;background-position:center;min-height:330px}
.breadcrumb{padding:11px 0;font-size:11px;color:#426f91}

/* Subpage body inherited layouts */
.split{display:grid;grid-template-columns:220px 1fr;gap:50px}.side-title{border-right:1px solid var(--line)}.side-title h2{font-family:"Yu Mincho",serif;color:#073d75;font-size:27px;margin:0}.side-title span{font:11px Georgia,serif;letter-spacing:.14em;color:#4f8ab2}.intro-heading{font-family:"Yu Mincho",serif;font-size:28px;line-height:1.55;color:#073d75;margin:0 0 15px}
.features{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin-top:35px}.features .feature{padding:25px 18px}
.flow{display:grid;grid-template-columns:repeat(5,1fr);gap:8px;margin-top:22px}.flow-card{background:linear-gradient(135deg,#f2f9fd,#e5f2f9);padding:22px 18px;min-height:150px}.flow-card .num{font:27px Georgia,serif;color:#438fc2}.flow-card h4{margin:8px 0 5px;color:#073d75}.flow-card p{font-size:11px;color:#557087;margin:0}
.service-list{display:grid;grid-template-columns:1fr 1fr;gap:8px 40px;list-style:none;padding:0}.service-list li:before{content:"✓";display:inline-grid;place-items:center;width:18px;height:18px;border-radius:50%;background:#06467f;color:white;font-size:10px;margin-right:8px}
.fees{background:#eef7fb;padding:25px;margin-top:28px}.fees h3{font-family:"Yu Mincho",serif;color:#073d75;font-size:22px}.fee-table{border-collapse:collapse;width:100%;background:#fff}.fee-table th,.fee-table td{border:1px solid #c9ddea;padding:10px 12px;font-size:12px}.fee-table th{background:#dceef7}.fee-note{font-size:11px;color:#5c7385;margin-top:8px}
.faq-layout{display:grid;grid-template-columns:220px 1fr;gap:35px}.faq-cats{background:#f0f8fc}.faq-cats a{display:block;padding:13px 16px;border-bottom:1px solid #d4e6f0;font-size:13px}.faq-cats a:first-child{background:#06467f;color:#fff}.faq-item{border:1px solid #d3e5ef;margin-bottom:9px}.faq-q{background:#f2f9fd;padding:13px 17px;font-weight:700;color:#06467f;cursor:pointer}.faq-a{display:none;padding:15px 19px;color:#5c7488;font-size:13px}.faq-item.open .faq-a{display:block}
.contact-layout{display:grid;grid-template-columns:1.25fr .75fr;gap:25px}.contact-form,.contact-side .panel{background:#eef7fb;padding:28px}.field{display:grid;grid-template-columns:155px 1fr;gap:14px;margin-bottom:16px}.field input,.field textarea,.field select{width:100%;padding:11px;border:1px solid #b9d3e2;background:#fff}.field textarea{min-height:150px}.phone{font:31px Georgia,serif;color:#073d75}
.office-table{width:100%;border-collapse:collapse}.office-table th,.office-table td{padding:13px;border-bottom:1px solid var(--line)}.office-table th{width:170px;background:#eef7fb;text-align:left}
.map-frame{width:100%;height:410px;border:0}.recruit-box,.notice{background:#eef7fb;padding:20px}.checklist{list-style:none;padding:0}.checklist li:before{content:"✓";color:#0872b4;font-weight:bold;margin-right:8px}
.page-content h2{font-family:"Yu Mincho",serif;color:#073d75}

@media(max-width:960px){
 .header-inner{height:74px}.site-logo{flex-basis:245px}.site-logo img{width:245px;height:52px}.main-nav,.header-contact{display:none}.menu-toggle{display:block}.main-nav.open{display:block;position:absolute;top:74px;left:0;right:0;background:#fff;padding:10px 24px}.main-nav.open ul{display:block}.main-nav.open a{padding:9px 0}.main-nav .sub-menu{display:block;position:static;box-shadow:none;border:0;padding-left:18px}
 .service-grid,.feature-grid,.features{grid-template-columns:1fr 1fr}.about-grid,.cta-grid,.footer-main,.split,.faq-layout,.contact-layout{grid-template-columns:1fr}.about-photo{height:280px}.about-words{display:none}.cta-photo{height:180px}.cta-action{padding:20px}.flow{grid-template-columns:1fr 1fr}
 .hero-grid{grid-template-columns:1fr}.hero-copy{padding-bottom:25px}.hero-visual{min-height:260px}
}
@media(max-width:620px){
 .wrap{width:min(100% - 30px,1180px)}.home-hero{min-height:560px;background-position:62% center}.home-hero-inner{min-height:560px;align-items:flex-start}.home-hero-copy{width:100%;padding-top:45px}.home-hero h1{font-size:40px}.home-hero p{font-size:15px;max-width:88%}
 .stat-grid,.service-grid,.feature-grid,.features,.flow,.service-list{grid-template-columns:1fr}.stat-item{border-right:0;border-bottom:1px solid var(--line);padding:18px 20px}.feature{border-right:0;border-bottom:1px solid var(--line)}.service-card img{height:210px}
 .news-home-grid{grid-template-columns:1fr}.news-home-title{border-right:0;border-bottom:1px solid var(--line);padding-bottom:10px}.news-row{grid-template-columns:90px 1fr}.news-tag,.news-row .arrow{display:none}
 .field{grid-template-columns:1fr}.fee-table{display:block;overflow-x:auto;white-space:nowrap}.office-table th,.office-table td{display:block;width:100%}.footer-links{grid-template-columns:1fr}
}

/* ===== v2.1 image-fit fixes ===== */
.home-hero{
  min-height:0;
  background:linear-gradient(90deg,#f7fbfe 0%,#edf7fb 100%) !important;
  background-image:none !important;
}
.home-hero-grid{
  min-height:470px;
  display:grid;
  grid-template-columns:48% 52%;
  align-items:stretch;
}
.home-hero-copy{
  width:auto;
  padding:58px 45px 58px 0;
  display:flex;
  flex-direction:column;
  justify-content:center;
}
.home-hero-photo{
  min-width:0;
  display:flex;
  align-items:center;
  justify-content:center;
  overflow:hidden;
}
.home-hero-photo img{
  width:100%;
  height:auto;
  max-height:470px;
  object-fit:contain;
  object-position:center;
}
.about-home{
  padding:0;
  background:#fff;
}
.about-home-grid{
  display:grid;
  grid-template-columns:35% 45% 20%;
  min-height:320px;
  align-items:stretch;
}
.about-photo-img{
  overflow:hidden;
  background:#eef5f8;
  display:flex;
  align-items:center;
  justify-content:center;
}
.about-photo-img img{
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center;
}
.cta{
  background:#fff;
}
.cta-home-grid{
  display:grid;
  grid-template-columns:35% 45% 20%;
  min-height:118px;
  align-items:stretch;
}
.cta-photo-img{
  overflow:hidden;
  background:#eef5f8;
  display:flex;
  align-items:center;
  justify-content:center;
}
.cta-photo-img img{
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center;
}
@media(max-width:960px){
  .home-hero-grid{grid-template-columns:1fr;min-height:0}
  .home-hero-copy{padding:45px 0 28px}
  .home-hero-photo{padding-bottom:25px}
  .home-hero-photo img{max-height:none;width:100%}
  .about-home-grid,.cta-home-grid{grid-template-columns:1fr}
  .about-photo-img{height:280px}
  .cta-photo-img{height:180px}
}
@media(max-width:620px){
  .home-hero-inner{min-height:0}
  .home-hero-copy{padding-top:34px}
  .home-hero h1{font-size:38px}
  .home-hero-photo img{width:100%;height:auto;object-fit:contain}
  .about-photo-img{height:230px}
  .cta-photo-img{height:150px}
}

/* ===== v2.2 hero image correction ===== */
.home-hero-grid{
  grid-template-columns:50% 50%;
}
.home-hero-photo{
  padding:36px 0 36px 28px;
  overflow:visible;
}
.home-hero-photo img{
  display:block;
  width:100%;
  height:auto;
  max-height:none;
  object-fit:contain;
  object-position:center;
  border:0;
}
@media(max-width:960px){
  .home-hero-grid{grid-template-columns:1fr}
  .home-hero-photo{padding:0 0 28px}
  .home-hero-photo img{width:100%;height:auto}
}

/* ===== v2.3 image display correction ===== */
.home-hero-grid{
  grid-template-columns:48% 52%;
  min-height:440px;
}
.home-hero-photo{
  padding:38px 0 38px 32px;
  display:flex;
  align-items:center;
  justify-content:center;
  overflow:visible;
}
.home-hero-photo img{
  width:100%;
  height:auto;
  max-height:360px;
  object-fit:contain !important;
  object-position:center !important;
}
.about-photo-img{
  background:#f2f7fa;
}
.about-photo-img img{
  width:100%;
  height:100%;
  object-fit:contain !important;
  object-position:center !important;
  padding:0;
}
.cta-photo-img img{
  width:100%;
  height:100%;
  object-fit:contain !important;
  object-position:center !important;
}
@media(max-width:960px){
  .home-hero-grid{grid-template-columns:1fr;min-height:0}
  .home-hero-photo{padding:0 0 30px}
  .home-hero-photo img{max-height:none;width:100%}
  .about-photo-img img,.cta-photo-img img{object-fit:contain !important}
}

/* ===== v2.4 final photo asset fix ===== */
.home-hero{
  background:#f3f9fc !important;
}
.home-hero-grid{
  grid-template-columns:48% 52% !important;
  min-height:440px !important;
}
.home-hero-photo{
  padding:30px 0 30px 30px !important;
  overflow:hidden !important;
  background:transparent !important;
}
.home-hero-photo img{
  display:block !important;
  width:100% !important;
  height:auto !important;
  max-height:380px !important;
  object-fit:contain !important;
  object-position:center center !important;
}
.about-photo-img{
  padding:0 !important;
  overflow:hidden !important;
}
.about-photo-img img{
  display:block !important;
  width:100% !important;
  height:auto !important;
  min-height:0 !important;
  max-height:none !important;
  object-fit:contain !important;
  object-position:center center !important;
}
.cta-photo-img{
  overflow:hidden !important;
}
.cta-photo-img img{
  display:block !important;
  width:100% !important;
  height:auto !important;
  min-height:0 !important;
  max-height:none !important;
  object-fit:contain !important;
  object-position:center center !important;
}
@media(max-width:960px){
  .home-hero-grid{grid-template-columns:1fr !important;min-height:0 !important}
  .home-hero-photo{padding:0 0 26px !important}
  .home-hero-photo img{width:100% !important;max-height:none !important}
  .about-photo-img img,.cta-photo-img img{width:100% !important;height:auto !important}
}

/* ===== v2.5 FINAL IMAGE DISPLAY RULES ===== */
/* Important: homepage images are never used as CSS backgrounds and never cropped. */
.home-hero{
  background:#f3f9fc !important;
  background-image:none !important;
}
.home-hero-grid{
  display:grid !important;
  grid-template-columns:minmax(0,48%) minmax(0,52%) !important;
  align-items:center !important;
  min-height:0 !important;
}
.home-hero-photo{
  padding:28px 0 28px 30px !important;
  overflow:visible !important;
  height:auto !important;
  min-height:0 !important;
  background:none !important;
}
.home-hero-photo img{
  display:block !important;
  width:100% !important;
  height:auto !important;
  max-width:100% !important;
  max-height:none !important;
  object-fit:fill !important;
  object-position:initial !important;
}

/* ABOUT image */
.about-photo-img{
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  height:auto !important;
  min-height:0 !important;
  overflow:visible !important;
  background:#f5f9fb !important;
}
.about-photo-img img{
  display:block !important;
  width:100% !important;
  height:auto !important;
  max-width:100% !important;
  max-height:none !important;
  object-fit:fill !important;
}

/* Contact band image */
.cta-photo-img{
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  height:auto !important;
  min-height:0 !important;
  overflow:visible !important;
  background:#f5f9fb !important;
}
.cta-photo-img img{
  display:block !important;
  width:100% !important;
  height:auto !important;
  max-width:100% !important;
  max-height:none !important;
  object-fit:fill !important;
}

@media(max-width:960px){
  .home-hero-grid{
    grid-template-columns:1fr !important;
  }
  .home-hero-photo{
    padding:0 0 28px !important;
  }
  .home-hero-photo img,
  .about-photo-img img,
  .cta-photo-img img{
    width:100% !important;
    height:auto !important;
  }
}

/* ===== v2.6 hero structural correction ===== */
.home-hero-full{
  position:relative !important;
  min-height:460px !important;
  overflow:hidden !important;
  background:#f4fafd !important;
}
.home-hero-bg{
  position:absolute !important;
  inset:0 !important;
  z-index:0 !important;
}
.home-hero-bg img{
  display:block !important;
  width:100% !important;
  height:100% !important;
  object-fit:cover !important;
  object-position:center center !important;
}
.home-hero-overlay{
  position:relative !important;
  z-index:1 !important;
  min-height:460px !important;
  display:flex !important;
  align-items:center !important;
}
.home-hero-full .home-hero-copy{
  width:56% !important;
  padding:52px 0 !important;
}
.home-hero-full .home-hero-copy h1{
  font-size:clamp(42px,4.7vw,65px) !important;
  line-height:1.35 !important;
  margin:12px 0 22px !important;
}
.home-hero-full .home-hero-copy p{
  font-size:16px !important;
  line-height:1.9 !important;
}
@media(max-width:960px){
  .home-hero-full{min-height:520px !important}
  .home-hero-overlay{min-height:520px !important;align-items:flex-start !important}
  .home-hero-full .home-hero-copy{width:78% !important;padding-top:42px !important}
  .home-hero-bg img{object-position:62% center !important}
}
@media(max-width:620px){
  .home-hero-full{min-height:540px !important}
  .home-hero-overlay{min-height:540px !important}
  .home-hero-full .home-hero-copy{width:100% !important;padding:34px 0 !important}
  .home-hero-full .home-hero-copy h1{font-size:38px !important}
  .home-hero-full .home-hero-copy p{font-size:14px !important;max-width:88%}
  .home-hero-bg img{object-position:68% center !important}
}

/* ===== v2.7 all subpages hero structural correction ===== */
.sub-hero{
  position:relative !important;
  min-height:360px !important;
  overflow:hidden !important;
  background:#f4fafd !important;
}
.sub-hero-bg{
  position:absolute !important;
  inset:0 !important;
  z-index:0 !important;
}
.sub-hero-bg img{
  display:block !important;
  width:100% !important;
  height:100% !important;
  object-fit:cover !important;
  object-position:center center !important;
}
.sub-hero-overlay{
  position:relative !important;
  z-index:1 !important;
  min-height:360px !important;
  display:flex !important;
  align-items:center !important;
}
.sub-hero-copy{
  width:56% !important;
  padding:48px 0 !important;
}
.sub-hero h1{
  font-family:"Yu Mincho","Hiragino Mincho ProN",serif !important;
  color:#073d75 !important;
  font-size:clamp(42px,4.2vw,58px) !important;
  line-height:1.3 !important;
  margin:10px 0 18px !important;
}
.sub-hero .lead{
  font-family:"Yu Mincho","Hiragino Mincho ProN",serif !important;
  font-size:17px !important;
  line-height:1.85 !important;
  color:#38627f !important;
  max-width:620px !important;
}
@media(max-width:960px){
  .sub-hero{min-height:430px !important}
  .sub-hero-overlay{min-height:430px !important;align-items:flex-start !important}
  .sub-hero-copy{width:78% !important;padding-top:40px !important}
  .sub-hero-bg img{object-position:62% center !important}
}
@media(max-width:620px){
  .sub-hero{min-height:470px !important}
  .sub-hero-overlay{min-height:470px !important}
  .sub-hero-copy{width:100% !important;padding:32px 0 !important}
  .sub-hero h1{font-size:38px !important}
  .sub-hero .lead{font-size:14px !important;max-width:88% !important}
  .sub-hero-bg img{object-position:68% center !important}
}

/* ===== v2.8 subpage hero image-size correction ===== */
/* 下層ページ：画像全体を必ず表示し、過度な拡大・トリミングをしない */
.sub-hero{
  min-height:320px !important;
  background:linear-gradient(90deg,#f7fbfe 0%,#edf7fb 100%) !important;
}
.sub-hero-bg{
  display:flex !important;
  justify-content:flex-end !important;
  align-items:center !important;
  overflow:hidden !important;
  padding-left:38% !important;
}
.sub-hero-bg img{
  width:100% !important;
  height:100% !important;
  max-width:1080px !important;
  object-fit:contain !important;
  object-position:right center !important;
}
.sub-hero-overlay{
  min-height:320px !important;
}
.sub-hero-copy{
  width:52% !important;
  padding:38px 0 !important;
}
.sub-hero h1{
  font-size:clamp(38px,3.8vw,52px) !important;
}
.sub-hero .lead{
  font-size:16px !important;
}

@media(max-width:960px){
  .sub-hero{
    min-height:0 !important;
    padding-bottom:20px !important;
  }
  .sub-hero-bg{
    position:relative !important;
    inset:auto !important;
    height:auto !important;
    padding:0 18px 0 18px !important;
    justify-content:center !important;
  }
  .sub-hero-bg img{
    width:100% !important;
    height:auto !important;
    max-width:820px !important;
    object-fit:contain !important;
    object-position:center !important;
  }
  .sub-hero-overlay{
    min-height:0 !important;
    align-items:flex-start !important;
  }
  .sub-hero-copy{
    width:100% !important;
    padding:30px 0 20px !important;
  }
}
@media(max-width:620px){
  .sub-hero-bg{
    padding:0 15px !important;
  }
  .sub-hero-bg img{
    max-width:100% !important;
  }
  .sub-hero h1{
    font-size:36px !important;
  }
}

/* ===== v2.9 subpage hero: sharp, compact, no enlargement ===== */
.sub-hero-compact{
  background:linear-gradient(90deg,#f7fbfe,#eef7fb);
  border-bottom:1px solid #e5eef4;
}
.sub-hero-compact-grid{
  display:grid;
  grid-template-columns:minmax(0,54%) minmax(0,46%);
  align-items:center;
  min-height:285px;
  gap:34px;
}
.sub-hero-compact-copy{
  padding:38px 0;
}
.sub-hero-compact h1{
  font-family:"Yu Mincho","Hiragino Mincho ProN",serif;
  color:#073d75;
  font-size:clamp(36px,3.4vw,49px);
  line-height:1.3;
  margin:8px 0 15px;
}
.sub-hero-compact .lead{
  font-family:"Yu Mincho","Hiragino Mincho ProN",serif;
  font-size:15px;
  line-height:1.8;
  color:#416784;
}
.sub-hero-compact-photo{
  display:flex;
  align-items:center;
  justify-content:center;
  padding:26px 0;
  overflow:hidden;
}
.sub-hero-compact-photo img{
  display:block;
  width:auto;
  height:auto;
  max-width:100%;
  max-height:225px;
  object-fit:contain;
  object-position:center;
  image-rendering:auto;
}
@media(max-width:960px){
  .sub-hero-compact-grid{
    grid-template-columns:1fr;
    gap:0;
    min-height:0;
  }
  .sub-hero-compact-copy{
    padding:32px 0 18px;
  }
  .sub-hero-compact-photo{
    padding:0 0 25px;
  }
  .sub-hero-compact-photo img{
    max-height:none;
    width:100%;
    height:auto;
  }
}
@media(max-width:620px){
  .sub-hero-compact h1{
    font-size:34px;
  }
  .sub-hero-compact .lead{
    font-size:14px;
  }
}

/* ===== v3.0 layout + subpage hero rebalance ===== */

/* 全体の最大幅を少し絞り、横方向の間延びを防ぐ */
.wrap{
  width:min(1060px, calc(100% - 48px)) !important;
}

/* 下層ページのトップ領域 */
.sub-hero-compact{
  background:linear-gradient(90deg,#f8fcfe 0%,#eef7fb 100%) !important;
  border-bottom:1px solid #e2ebf1 !important;
}
.sub-hero-compact-grid{
  display:grid !important;
  grid-template-columns:minmax(0,46%) minmax(0,54%) !important;
  align-items:center !important;
  gap:38px !important;
  min-height:340px !important;
}
.sub-hero-compact-copy{
  padding:40px 0 !important;
}
.sub-hero-compact h1{
  font-size:clamp(38px,3.5vw,50px) !important;
  line-height:1.28 !important;
  margin:8px 0 16px !important;
}
.sub-hero-compact .lead{
  font-size:15px !important;
  line-height:1.8 !important;
  max-width:470px !important;
}

/* 右側画像を十分大きく、ただし自然比率で表示 */
.sub-hero-compact-photo{
  display:flex !important;
  align-items:center !important;
  justify-content:flex-end !important;
  padding:18px 0 !important;
  overflow:visible !important;
}
.sub-hero-compact-photo img{
  display:block !important;
  width:100% !important;
  height:auto !important;
  max-width:560px !important;
  max-height:none !important;
  object-fit:contain !important;
  object-position:center !important;
}

/* 本文も横に広がりすぎない */
.section{
  padding:68px 0 !important;
}
.split{
  grid-template-columns:180px 1fr !important;
  gap:38px !important;
}
.features{
  margin-top:28px !important;
}
.flow{
  gap:10px !important;
}
.flow-card{
  min-height:145px !important;
  padding:20px 16px !important;
}
.fees{
  margin-top:24px !important;
}
.footer-main{
  gap:34px !important;
}

@media(max-width:960px){
  .wrap{
    width:min(100% - 36px,1060px) !important;
  }
  .sub-hero-compact-grid{
    grid-template-columns:1fr !important;
    gap:0 !important;
    min-height:0 !important;
  }
  .sub-hero-compact-copy{
    padding:30px 0 16px !important;
  }
  .sub-hero-compact-photo{
    justify-content:center !important;
    padding:0 0 24px !important;
  }
  .sub-hero-compact-photo img{
    width:min(100%,720px) !important;
    max-width:720px !important;
    height:auto !important;
  }
  .split{
    grid-template-columns:1fr !important;
  }
}
@media(max-width:620px){
  .wrap{
    width:calc(100% - 30px) !important;
  }
  .section{
    padding:52px 0 !important;
  }
  .sub-hero-compact h1{
    font-size:34px !important;
  }
  .sub-hero-compact-photo img{
    width:100% !important;
    max-width:100% !important;
  }
}

/* ===== v3.1 subpage hero and CTA fix ===== */

/* 下層ページヒーロー：横長画像を全幅でそのまま表示 */
.sub-hero-wide{
  position:relative;
  background:#f4fafd;
  overflow:hidden;
  border-bottom:1px solid #e4edf3;
}
.sub-hero-wide-image{
  position:absolute;
  inset:0;
  display:flex;
  align-items:center;
  justify-content:center;
}
.sub-hero-wide-image img{
  display:block;
  width:100%;
  height:auto;
  max-width:none;
  object-fit:contain;
  object-position:center;
}
.sub-hero-wide-overlay{
  position:relative;
  z-index:1;
  min-height:300px;
  display:flex;
  align-items:center;
}
.sub-hero-wide-copy{
  width:52%;
  padding:38px 0;
}
.sub-hero-wide h1{
  font-family:"Yu Mincho","Hiragino Mincho ProN",serif;
  color:#073d75;
  font-size:clamp(38px,3.5vw,50px);
  line-height:1.3;
  margin:8px 0 14px;
}
.sub-hero-wide .lead{
  font-family:"Yu Mincho","Hiragino Mincho ProN",serif;
  font-size:15px;
  line-height:1.8;
  color:#416784;
  max-width:480px;
}

/* CTA：都市景観を小さく、全体が見える状態で */
.cta-grid{
  width:min(1060px, calc(100% - 48px)) !important;
  margin:0 auto !important;
  grid-template-columns:28% 52% 20% !important;
  min-height:105px !important;
}
.cta-photo{
  background-image:url('assets/images/contact-v24.jpg') !important;
  background-repeat:no-repeat !important;
  background-size:contain !important;
  background-position:left center !important;
  background-color:#fff !important;
  min-height:90px !important;
}
.cta-copy{
  padding:22px 28px !important;
}
.cta-copy h2{
  font-size:22px !important;
}
.cta-action{
  padding:18px 0 !important;
}

@media(max-width:960px){
  .sub-hero-wide-image{
    position:relative;
    inset:auto;
    padding:0 18px 18px;
  }
  .sub-hero-wide-image img{
    width:100%;
    height:auto;
  }
  .sub-hero-wide-overlay{
    min-height:0;
    align-items:flex-start;
  }
  .sub-hero-wide-copy{
    width:100%;
    padding:30px 0 18px;
  }
  .cta-grid{
    width:min(100% - 36px,1060px) !important;
    grid-template-columns:1fr !important;
  }
  .cta-photo{
    min-height:120px !important;
    background-position:center !important;
  }
  .cta-copy{
    padding:18px 0 !important;
    text-align:center;
  }
}
@media(max-width:620px){
  .sub-hero-wide h1{
    font-size:34px;
  }
  .sub-hero-wide .lead{
    font-size:14px;
  }
  .cta-grid{
    width:calc(100% - 30px) !important;
  }
}

/* ===== v3.2 subpage hero: show complete image, no cropping ===== */
.sub-hero-wide{
  position:relative !important;
  overflow:visible !important;
  background:#f4fafd !important;
  border-bottom:1px solid #e4edf3 !important;
  min-height:0 !important;
}

/* 画像を通常フローに置き、画像の縦横比でヒーロー高さを決定 */
.sub-hero-wide-image{
  position:relative !important;
  inset:auto !important;
  z-index:0 !important;
  display:block !important;
  width:100% !important;
  height:auto !important;
}

.sub-hero-wide-image img{
  display:block !important;
  width:100% !important;
  height:auto !important;
  max-width:100% !important;
  max-height:none !important;
  object-fit:contain !important;
  object-position:center center !important;
}

/* 文字は画像の上に重ねる */
.sub-hero-wide-overlay{
  position:absolute !important;
  inset:0 !important;
  z-index:1 !important;
  min-height:0 !important;
  height:100% !important;
  display:flex !important;
  align-items:center !important;
}

.sub-hero-wide-copy{
  width:50% !important;
  padding:0 !important;
}

.sub-hero-wide h1{
  font-size:clamp(36px,3.3vw,48px) !important;
  line-height:1.28 !important;
}

.sub-hero-wide .lead{
  font-size:15px !important;
  line-height:1.8 !important;
  max-width:460px !important;
}

/* タブレット以下では文字と画像を分けて表示 */
@media(max-width:960px){
  .sub-hero-wide-overlay{
    position:relative !important;
    inset:auto !important;
    height:auto !important;
    padding:26px 0 16px !important;
  }
  .sub-hero-wide-copy{
    width:100% !important;
  }
  .sub-hero-wide-image{
    order:2 !important;
  }
}

@media(max-width:620px){
  .sub-hero-wide h1{
    font-size:34px !important;
  }
  .sub-hero-wide .lead{
    font-size:14px !important;
  }
}

/* ===== v3.2a fine adjustment from v3.2 ===== */

/* HOME: 少しだけ高さを抑える */
.home-hero-full{
  min-height:410px !important;
}
.home-hero-overlay{
  min-height:410px !important;
}
.home-hero-full .home-hero-copy{
  width:62% !important;
  padding:42px 0 !important;
}
.home-hero-full .home-hero-copy h1{
  font-size:clamp(40px,4.2vw,58px) !important;
  line-height:1.28 !important;
  letter-spacing:-0.015em !important;
  white-space:normal !important;
}
.home-hero-full .home-hero-copy p{
  font-size:15px !important;
  line-height:1.8 !important;
}
.home-hero-full .hero-en{
  margin-top:20px !important;
}

/* 下層ページ: v3.2の全体表示を維持しつつ、上下幅だけ少し抑える */
.sub-hero-wide{
  max-height:360px !important;
  overflow:hidden !important;
}
.sub-hero-wide-image{
  max-height:360px !important;
  overflow:hidden !important;
}
.sub-hero-wide-image img{
  width:100% !important;
  height:auto !important;
  max-height:360px !important;
  object-fit:contain !important;
  object-position:center center !important;
}
.sub-hero-wide-overlay{
  max-height:360px !important;
}
.sub-hero-wide-copy{
  width:52% !important;
}
.sub-hero-wide h1{
  font-size:clamp(36px,3.2vw,46px) !important;
}
.sub-hero-wide .lead{
  font-size:14px !important;
  line-height:1.7 !important;
}
.sub-hero-wide .hero-en{
  margin-top:16px !important;
}

/* パンくずの余白も少し縮める */
.breadcrumb{
  padding:8px 0 !important;
}

@media(max-width:960px){
  .home-hero-full{
    min-height:460px !important;
  }
  .home-hero-overlay{
    min-height:460px !important;
  }
  .home-hero-full .home-hero-copy{
    width:76% !important;
    padding-top:36px !important;
  }
  .sub-hero-wide{
    max-height:none !important;
    overflow:visible !important;
  }
  .sub-hero-wide-image,
  .sub-hero-wide-overlay{
    max-height:none !important;
  }
  .sub-hero-wide-image img{
    max-height:none !important;
    width:100% !important;
    height:auto !important;
  }
}

@media(max-width:620px){
  .home-hero-full .home-hero-copy{
    width:100% !important;
  }
  .home-hero-full .home-hero-copy h1{
    font-size:36px !important;
  }
}

/* ===== v3.2.2 narrow content layout for subpages ===== */

/* 下層ページ本文の実質幅を絞る */
body:not(.home) .section > .wrap{
  max-width:980px !important;
}

/* 導入部 */
body:not(.home) .split{
  grid-template-columns:160px minmax(0,1fr) !important;
  gap:34px !important;
}

/* 4つの強み */
body:not(.home) .features{
  width:100% !important;
  max-width:980px !important;
  margin:28px auto 0 !important;
}
body:not(.home) .features .feature{
  padding:22px 18px !important;
}
body:not(.home) .features .feature h3{
  font-size:15px !important;
}
body:not(.home) .features .feature p{
  font-size:11.5px !important;
  line-height:1.65 !important;
}

/* 手続きの流れ */
body:not(.home) .flow{
  width:100% !important;
  max-width:980px !important;
  margin:22px auto 0 !important;
  gap:8px !important;
}
body:not(.home) .flow-card{
  padding:18px 14px !important;
  min-height:135px !important;
}
body:not(.home) .flow-card h4{
  font-size:14px !important;
}
body:not(.home) .flow-card p{
  font-size:10.5px !important;
  line-height:1.55 !important;
}

/* 主な業務内容 */
body:not(.home) .service-list{
  max-width:900px !important;
  margin-left:auto !important;
  margin-right:auto !important;
  column-gap:48px !important;
}

/* 料金表 */
body:not(.home) .fees{
  max-width:900px !important;
  margin:24px auto 0 !important;
  padding:22px !important;
}
body:not(.home) .fee-table th,
body:not(.home) .fee-table td{
  padding:9px 11px !important;
}

/* セクションタイトルも少し詰める */
body:not(.home) .section-title{
  font-size:30px !important;
}

/* PCで横長に見えすぎないように */
@media(min-width:961px){
  body:not(.home) .section > .wrap{
    width:min(980px, calc(100% - 64px)) !important;
  }
}

/* タブレット以下は従来どおり */
@media(max-width:960px){
  body:not(.home) .section > .wrap{
    width:min(100% - 36px,980px) !important;
  }
  body:not(.home) .split{
    grid-template-columns:1fr !important;
  }
  body:not(.home) .features{
    grid-template-columns:1fr 1fr !important;
  }
  body:not(.home) .flow{
    grid-template-columns:1fr 1fr !important;
  }
}
@media(max-width:620px){
  body:not(.home) .section > .wrap{
    width:calc(100% - 30px) !important;
  }
  body:not(.home) .features,
  body:not(.home) .flow,
  body:not(.home) .service-list{
    grid-template-columns:1fr !important;
  }
}

/* ===== v3.2.8 HOME hero width alignment ===== */

/* 背景色は画面幅いっぱい、写真だけ下のコンテンツ幅に揃える */
.home-hero-full{
  position:relative !important;
  background:#f3f9fc !important;
  overflow:hidden !important;
}

.home-hero-full .home-hero-bg{
  position:absolute !important;
  top:0 !important;
  bottom:0 !important;
  left:50% !important;
  right:auto !important;
  transform:translateX(-50%) !important;
  width:min(1180px, calc(100% - 48px)) !important;
  max-width:1180px !important;
  overflow:hidden !important;
}

.home-hero-full .home-hero-bg img{
  width:100% !important;
  height:100% !important;
  object-fit:cover !important;
  object-position:center center !important;
}

/* テキストも同じ左右幅に揃える */
.home-hero-full .home-hero-overlay{
  width:min(1180px, calc(100% - 48px)) !important;
  max-width:1180px !important;
  margin-left:auto !important;
  margin-right:auto !important;
}

/* タブレット */
@media(max-width:960px){
  .home-hero-full .home-hero-bg,
  .home-hero-full .home-hero-overlay{
    width:calc(100% - 36px) !important;
  }
}

/* スマートフォン */
@media(max-width:620px){
  .home-hero-full .home-hero-bg,
  .home-hero-full .home-hero-overlay{
    width:calc(100% - 30px) !important;
  }
}

/* ===== v3.2.9 HOME hero centering fine tune ===== */
/* v3.2.8から写真だけ少し右へ移動 */
.home-hero-full .home-hero-bg img{
  object-position:52% center !important;
}

/* ===== v3.3.0 header white background ===== */
.site-header,
.header-inner,
.site-logo,
.site-logo img{
  background:#ffffff !important;
}
.site-header{
  backdrop-filter:none !important;
}

.recruit-table th{
  width:180px !important;
  vertical-align:top !important;
}
.recruit-table td{
  background:#fff !important;
}
.recruit-table .checklist{
  margin:0 !important;
}
@media(max-width:620px){
  .recruit-table th,
  .recruit-table td{
    width:100% !important;
  }
}

/* ===== v3.3.1 HOME hero position fine tune ===== */
/* 写真部分をv3.3.0より少し右へ寄せる */
.home-hero-full .home-hero-bg img{
  object-position:55% center !important;
}

/* ===== v3.3.2 HOME hero position +5mm approx ===== */
.home-hero-full .home-hero-bg img{
  object-position:57% center !important;
}

/* ===== v3.3.3 logo white-background fix ===== */
.site-header,
.header-inner,
.site-logo{
  background:#ffffff !important;
}
.site-logo img{
  background:#ffffff !important;
  opacity:1 !important;
  filter:none !important;
  mix-blend-mode:normal !important;
}

/* ===== v3.3.4 user supplied logo + hero +5mm ===== */
.site-header,
.header-inner,
.site-logo{
  background:#ffffff !important;
}
.site-logo img{
  background:#ffffff !important;
  opacity:1 !important;
  filter:none !important;
  mix-blend-mode:normal !important;
}

/* v3.3.3からトップ写真をさらに約5mm右へ */
.home-hero-full .home-hero-bg img{
  object-position:59% center !important;
}

/* ===== v3.3.5 logo size + HOME hero frame shift ===== */

/* ロゴ画像の余白を除去した画像を、従来より見やすい大きさで表示 */
.site-logo img{
  width:310px !important;
  max-width:310px !important;
  height:auto !important;
  object-fit:contain !important;
}

/* v3.3.4の画像内位置は維持 */
.home-hero-full .home-hero-bg img{
  object-position:59% center !important;
}

/* ヒーロー画像枠そのものを約50px右へ移動 */
.home-hero-full .home-hero-bg{
  left:calc(50% + 50px) !important;
  transform:translateX(-50%) !important;
}

/* ヒーロー上の文字は動かさない */
.home-hero-full .home-hero-overlay{
  transform:none !important;
}

@media(max-width:1200px){
  .site-logo img{
    width:270px !important;
    max-width:270px !important;
  }
}

@media(max-width:960px){
  .home-hero-full .home-hero-bg{
    left:50% !important;
  }
  .site-logo img{
    width:235px !important;
    max-width:235px !important;
  }
}

/* ===== v3.3.6 logo background pure white ===== */
.site-header,
.header-inner,
.site-logo,
.site-logo img{
  background:#ffffff !important;
}

/* ===== v3.4.0 CTA line-break fix ===== */
.cta-copy{
  min-width:0 !important;
}

.cta-copy h2{
  white-space:nowrap !important;
  word-break:keep-all !important;
  overflow-wrap:normal !important;
  line-break:strict !important;
  font-size:clamp(22px, 2.1vw, 34px) !important;
  letter-spacing:.01em !important;
}

.cta-copy p{
  word-break:keep-all !important;
  overflow-wrap:normal !important;
}

.cta-action{
  flex-shrink:0 !important;
}

.cta-action .btn{
  white-space:nowrap !important;
}

/* Tablet/mobile: allow natural wrapping at phrase boundaries only */
@media(max-width:960px){
  .cta-copy h2{
    white-space:normal !important;
    word-break:keep-all !important;
    overflow-wrap:normal !important;
    font-size:clamp(21px, 4.2vw, 30px) !important;
  }
}

@media(max-width:620px){
  .cta-copy h2{
    font-size:24px !important;
    line-height:1.45 !important;
  }
}

/* ===== v3.4.2 header contact + patent side title fix ===== */

/* ヘッダーのお問い合わせを1行表示 */
.header-contact,
.header-contact a,
.site-header .btn,
.site-header .contact-btn,
.site-header nav a[href*="/contact/"]{
  white-space:nowrap !important;
  word-break:keep-all !important;
  overflow-wrap:normal !important;
}

/* メニュー全体の高さを不自然にしない */
.site-header nav li,
.site-header nav a{
  line-height:1.2 !important;
}

/* 特許ページ左見出しは「特許」「実用新案」の2行に固定 */
.patent-side-title{
  white-space:nowrap !important;
  word-break:keep-all !important;
  line-height:1.55 !important;
}

/* ===== v3.4.5 CTA overlap + footer cleanup ===== */

/* CTA: heading and button should never overlap */
.cta-grid{
  grid-template-columns:34% 48% 18% !important;
}

.cta-copy{
  min-width:0 !important;
  padding:24px 28px !important;
}

.cta-copy h2{
  white-space:normal !important;
  word-break:keep-all !important;
  overflow-wrap:normal !important;
  font-size:clamp(20px, 1.75vw, 28px) !important;
  line-height:1.4 !important;
  margin:0 !important;
}

.cta-action{
  min-width:0 !important;
  padding:0 12px !important;
}

.cta-action .btn{
  white-space:nowrap !important;
  font-size:13px !important;
  padding:13px 18px !important;
}

/* Footer: right-side consultation box removed, use two balanced columns */
.footer-main{
  grid-template-columns:1.25fr 1.1fr !important;
  gap:70px !important;
}

.footer-box{
  display:none !important;
}

@media(max-width:960px){
  .cta-grid{
    grid-template-columns:32% 48% 20% !important;
  }
  .cta-copy{
    padding:20px 22px !important;
  }
  .cta-copy h2{
    font-size:22px !important;
  }
  .footer-main{
    grid-template-columns:1fr 1fr !important;
    gap:40px !important;
  }
}

@media(max-width:720px){
  .cta-grid{
    grid-template-columns:1fr !important;
  }
  .cta-photo{
    min-height:150px !important;
  }
  .cta-copy,
  .cta-action{
    padding:20px 24px !important;
  }
  .cta-action{
    justify-content:flex-start !important;
  }
  .footer-main{
    grid-template-columns:1fr !important;
    gap:28px !important;
  }
}

/* ===== v3.4.9 contact required fields ===== */
.required-note{
  margin:24px 0 0;
  font-size:13px;
  color:#b42318;
}
.required{
  color:#b42318;
  font-weight:700;
}
.contact-form input:required,
.contact-form textarea:required{
  box-shadow:none;
}


/* ===== v3.5.0 privacy page ===== */
.privacy-wrap{max-width:980px !important;}
.privacy-wrap>p{font-size:14px;line-height:2;color:#405f75;margin-bottom:34px;}
.privacy-block{padding:25px 0;border-top:1px solid var(--line);}
.privacy-block h3{font-family:"Yu Mincho",serif;color:#073d75;font-size:20px;margin:0 0 12px;}
.privacy-block p,.privacy-block li{font-size:14px;line-height:1.9;color:#405f75;}
.privacy-block ul{margin:8px 0 0;padding-left:1.4em;}
.privacy-contact{background:#f4f9fc;padding:20px 24px;line-height:1.9;color:#345a73;margin-top:15px;}
.privacy-contact a{color:#07538e;text-decoration:underline;}
.contact-form label a{color:#07538e;text-decoration:underline;}

/* ===== v3.5.2 editable fixed-page content ===== */
.page-editor-content > :first-child{margin-top:0}
.page-editor-content > :last-child{margin-bottom:0}
.page-editor-content h2,
.page-editor-content h3{color:#073d75}
.page-editor-content table{width:100%}

/* ===== v3.5.4 FAQ category anchor navigation ===== */
html{scroll-behavior:smooth}
.faq-anchor,.faq-category-title{scroll-margin-top:110px}
.faq-category-title{
  margin:38px 0 14px;
  padding-bottom:10px;
  border-bottom:1px solid #d8e6ef;
  color:#073d75;
  font-size:22px;
}
.faq-cats a{display:block}


/* ===== v3.5.5 MOBILE home hero readability fix ===== */
@media(max-width:720px){

  /* Hero becomes a vertical layout: text first, image second */
  .home-hero-full{
    display:flex !important;
    flex-direction:column !important;
    background:#ffffff !important;
    overflow:visible !important;
    min-height:0 !important;
  }

  /* Text area */
  .home-hero-full .home-hero-overlay{
    position:relative !important;
    order:1 !important;
    width:100% !important;
    max-width:none !important;
    margin:0 !important;
    padding:34px 24px 28px !important;
    transform:none !important;
    background:#f6fbfe !important;
    z-index:2 !important;
  }

  .home-hero-full .home-hero-copy{
    width:100% !important;
    max-width:none !important;
  }

  .home-hero-full .home-hero-copy .eyebrow{
    font-size:12px !important;
    line-height:1.5 !important;
    letter-spacing:.12em !important;
    margin-bottom:16px !important;
    color:#0a4a7f !important;
  }

  .home-hero-full .home-hero-copy h1{
    font-size:38px !important;
    line-height:1.45 !important;
    margin:0 0 22px !important;
    color:#073d75 !important;
    word-break:keep-all !important;
    overflow-wrap:normal !important;
  }

  .home-hero-full .home-hero-copy p{
    font-size:15px !important;
    line-height:1.9 !important;
    margin:0 0 18px !important;
    color:#3f6078 !important;
  }

  .home-hero-full .home-hero-copy .hero-en{
    font-size:12px !important;
    line-height:1.5 !important;
    letter-spacing:.12em !important;
    color:#0a4a7f !important;
  }

  /* Image area */
  .home-hero-full .home-hero-bg{
    position:relative !important;
    order:2 !important;
    top:auto !important;
    bottom:auto !important;
    left:auto !important;
    right:auto !important;
    transform:none !important;
    width:100% !important;
    max-width:none !important;
    height:auto !important;
    min-height:0 !important;
    overflow:hidden !important;
  }

  .home-hero-full .home-hero-bg img{
    display:block !important;
    width:100% !important;
    height:auto !important;
    max-height:none !important;
    object-fit:contain !important;
    object-position:center center !important;
  }

  /* Remove any desktop fade/overlay effect on mobile */
  .home-hero-full::before,
  .home-hero-full::after,
  .home-hero-full .home-hero-bg::before,
  .home-hero-full .home-hero-bg::after{
    display:none !important;
    content:none !important;
  }
}

@media(max-width:430px){
  .home-hero-full .home-hero-overlay{
    padding:28px 20px 24px !important;
  }

  .home-hero-full .home-hero-copy h1{
    font-size:34px !important;
    line-height:1.5 !important;
  }

  .home-hero-full .home-hero-copy p{
    font-size:14px !important;
  }
}


/* ===== v3.5.6 MOBILE home hero order: image first, text second ===== */
@media(max-width:720px){
  .home-hero-full{
    display:flex !important;
    flex-direction:column !important;
  }

  /* Image first */
  .home-hero-full .home-hero-bg{
    order:1 !important;
    position:relative !important;
    top:auto !important;
    bottom:auto !important;
    left:auto !important;
    right:auto !important;
    transform:none !important;
    width:100% !important;
    max-width:none !important;
    height:auto !important;
    overflow:hidden !important;
  }

  .home-hero-full .home-hero-bg img{
    display:block !important;
    width:100% !important;
    height:auto !important;
    object-fit:contain !important;
    object-position:center center !important;
  }

  /* Text second */
  .home-hero-full .home-hero-overlay{
    order:2 !important;
    position:relative !important;
    width:100% !important;
    max-width:none !important;
    margin:0 !important;
    padding:30px 24px 28px !important;
    transform:none !important;
    background:#f6fbfe !important;
  }
}


/* ===== v3.5.7 MOBILE home hero show full image ===== */
@media(max-width:720px){

  .home-hero-full{
    width:100% !important;
    max-width:100% !important;
    overflow:hidden !important;
  }

  .home-hero-full .home-hero-bg{
    position:relative !important;
    inset:auto !important;
    left:0 !important;
    right:0 !important;
    top:auto !important;
    bottom:auto !important;
    transform:none !important;
    width:100% !important;
    max-width:100% !important;
    margin:0 !important;
    padding:0 !important;
    height:auto !important;
    min-height:0 !important;
    overflow:hidden !important;
  }

  .home-hero-full .home-hero-bg img{
    position:relative !important;
    left:auto !important;
    right:auto !important;
    top:auto !important;
    bottom:auto !important;
    transform:none !important;
    display:block !important;
    width:100% !important;
    max-width:100% !important;
    height:auto !important;
    min-width:0 !important;
    min-height:0 !important;
    margin:0 auto !important;
    object-fit:contain !important;
    object-position:center center !important;
  }
}


/* ===== v3.5.8 mobile uses dedicated clean hero photo ===== */
@media(max-width:720px){
  .home-hero-full .home-hero-bg picture{
    display:block !important;
    width:100% !important;
    max-width:100% !important;
    margin:0 !important;
    padding:0 !important;
  }

  .home-hero-full .home-hero-bg picture img{
    display:block !important;
    position:static !important;
    width:100% !important;
    max-width:100% !important;
    height:auto !important;
    margin:0 !important;
    transform:none !important;
    object-fit:contain !important;
    object-position:center center !important;
  }
}


/* ===== v3.5.10 HOME HERO: desktop text ON / mobile text OFF ===== */

/* Desktop / tablet landscape: always keep the original hero text visible */
@media (min-width: 721px) {
  .home-hero-full .home-hero-overlay {
    display: flex !important;
    position: relative !important;
    z-index: 1 !important;
    visibility: visible !important;
    opacity: 1 !important;
  }

  .home-hero-full .home-hero-copy {
    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;
  }

  .home-hero-full .home-hero-copy .eyebrow,
  .home-hero-full .home-hero-copy h1,
  .home-hero-full .home-hero-copy p,
  .home-hero-full .home-hero-copy .hero-en {
    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;
  }
}

/* Smartphone: use the dedicated full photo and remove overlaid text */
@media (max-width: 720px) {
  .home-hero-full .home-hero-overlay,
  .home-hero-full .home-hero-copy {
    display: none !important;
    visibility: hidden !important;
    opacity: 0 !important;
  }

  .home-hero-full {
    position: relative !important;
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    min-height: 0 !important;
    height: auto !important;
    background: none !important;
    overflow: hidden !important;
  }

  .home-hero-full .home-hero-bg {
    position: relative !important;
    inset: auto !important;
    left: auto !important;
    right: auto !important;
    top: auto !important;
    bottom: auto !important;
    transform: none !important;
    width: 100% !important;
    max-width: 100% !important;
    height: auto !important;
    min-height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: hidden !important;
  }

  .home-hero-full .home-hero-bg picture {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
  }

  .home-hero-full .home-hero-bg picture img,
  .home-hero-full .home-hero-bg img {
    display: block !important;
    position: static !important;
    width: 100% !important;
    max-width: 100% !important;
    height: auto !important;
    min-height: 0 !important;
    margin: 0 !important;
    transform: none !important;
    object-fit: contain !important;
    object-position: center center !important;
  }

  /* Do not apply the desktop fade to the smartphone photo */
  .home-hero-full::before,
  .home-hero-full::after,
  .home-hero-full .home-hero-bg::before,
  .home-hero-full .home-hero-bg::after {
    display: none !important;
    content: none !important;
    background: none !important;
  }
}






/* ===== v3.5.18 SERVICES page card refinement ===== */

/* 業務内容ページの4業務カード */
.page-editor-content .cards4{
  width:min(1100px, calc(100% - 48px));
  margin:46px auto 64px;
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:20px;
}

.page-editor-content .cards4 .service-card{
  position:relative;
  display:flex;
  flex-direction:column;
  min-height:250px;
  padding:26px 24px 24px;
  background:#fff;
  border:1px solid #d7e4ed;
  border-radius:10px;
  box-shadow:0 8px 24px rgba(22,65,96,.07);
  transition:transform .22s ease, box-shadow .22s ease, border-color .22s ease;
  overflow:hidden;
}

/* 上部の細いアクセント */
.page-editor-content .cards4 .service-card::before{
  content:"";
  position:absolute;
  left:0;
  top:0;
  width:100%;
  height:4px;
  background:linear-gradient(90deg,#0b4f86,#4f8fb5);
}

.page-editor-content .cards4 .service-card:hover{
  transform:translateY(-5px);
  border-color:#a9c7da;
  box-shadow:0 14px 32px rgba(18,64,96,.13);
}

.page-editor-content .cards4 .service-card .no{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:44px;
  height:30px;
  margin-bottom:18px;
  border:1px solid #b9d1e1;
  border-radius:999px;
  color:#0a4d87;
  background:#f5fafc;
  font:600 12px/1 Georgia,serif;
  letter-spacing:.08em;
}

.page-editor-content .cards4 .service-card h3{
  margin:0 0 12px;
  padding-bottom:12px;
  border-bottom:1px solid #e3ecf2;
  color:#073d75;
  font-family:"Yu Mincho","Hiragino Mincho ProN",serif;
  font-size:23px;
  line-height:1.45;
}

.page-editor-content .cards4 .service-card p{
  margin:0 0 22px;
  color:#526f84;
  font-size:13px;
  line-height:1.85;
  flex:1;
}

.page-editor-content .cards4 .service-card .more{
  display:flex;
  align-items:center;
  justify-content:space-between;
  margin-top:auto;
  padding-top:15px;
  border-top:1px solid #edf2f5;
  color:#0a4d87;
  font-size:12px;
  font-weight:700;
  letter-spacing:.02em;
}

.page-editor-content .cards4 .service-card .more::after{
  content:"→";
  font-size:16px;
  transition:transform .2s ease;
}

.page-editor-content .cards4 .service-card:hover .more::after{
  transform:translateX(4px);
}

@media(max-width:960px){
  .page-editor-content .cards4{
    grid-template-columns:repeat(2,1fr);
    gap:18px;
  }
}

@media(max-width:620px){
  .page-editor-content .cards4{
    width:min(100% - 32px,1100px);
    grid-template-columns:1fr;
    gap:14px;
    margin:30px auto 46px;
  }

  .page-editor-content .cards4 .service-card{
    min-height:0;
    padding:22px 20px 20px;
  }

  .page-editor-content .cards4 .service-card h3{
    font-size:21px;
  }
}


/* ===== v3.5.19 All subpage mobile hero images ===== */
@media(max-width:720px){
  .sub-hero-wide{
    overflow:visible !important;
    background:#f7fbfe !important;
  }

  .sub-hero-wide-image{
    position:relative !important;
    inset:auto !important;
    width:100% !important;
    padding:0 !important;
    margin:0 !important;
    overflow:hidden !important;
  }

  .sub-hero-wide-image picture{
    display:block !important;
    width:100% !important;
  }

  .sub-hero-wide-image img{
    display:block !important;
    width:100% !important;
    height:auto !important;
    max-width:100% !important;
    object-fit:contain !important;
    object-position:center center !important;
  }

  /* Keep page text readable and separate from the image on smartphones */
  .sub-hero-wide-overlay{
    position:relative !important;
    min-height:0 !important;
    background:#fff !important;
  }

  .sub-hero-wide-copy{
    width:100% !important;
    padding:24px 20px 20px !important;
  }

  .sub-hero-wide h1{
    font-size:34px !important;
    line-height:1.4 !important;
  }

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


/* ===== v3.5.20 SERVICES mobile layout correction ===== */
@media(max-width:720px){

  /* 業務内容ページだけ、タイトル→画像→本文の順に安定表示 */
  .services-page-hero .sub-hero-wide{
    display:flex !important;
    flex-direction:column !important;
    width:100% !important;
    overflow:hidden !important;
    background:#fff !important;
  }

  .services-page-hero .sub-hero-wide-overlay{
    order:1 !important;
    display:block !important;
    width:100% !important;
    max-width:none !important;
    margin:0 !important;
    padding:0 !important;
    background:#fff !important;
  }

  .services-page-hero .sub-hero-wide-overlay.wrap{
    width:100% !important;
    max-width:none !important;
  }

  .services-page-hero .sub-hero-wide-copy{
    width:min(100% - 40px, 680px) !important;
    margin:0 auto !important;
    padding:24px 0 22px !important;
    box-sizing:border-box !important;
  }

  .services-page-hero .sub-hero-wide-copy .eyebrow{
    margin-bottom:8px !important;
  }

  .services-page-hero .sub-hero-wide h1{
    margin:4px 0 12px !important;
    font-size:34px !important;
    line-height:1.35 !important;
  }

  .services-page-hero .sub-hero-wide .lead{
    margin:0 !important;
    max-width:none !important;
    font-size:14px !important;
    line-height:1.8 !important;
  }

  .services-page-hero .sub-hero-wide .hero-en{
    margin-top:14px !important;
  }

  .services-page-hero .sub-hero-wide-image{
    order:2 !important;
    position:relative !important;
    inset:auto !important;
    width:100% !important;
    max-width:none !important;
    margin:0 !important;
    padding:0 !important;
    overflow:hidden !important;
    background:#f5f9fb !important;
  }

  .services-page-hero .sub-hero-wide-image picture,
  .services-page-hero .sub-hero-wide-image img{
    display:block !important;
    width:100% !important;
    max-width:100% !important;
    height:auto !important;
    margin:0 !important;
    padding:0 !important;
    object-fit:contain !important;
    object-position:center center !important;
  }

  /* パンくず・本文がヒーローに食い込まないようにする */
  .services-page-hero + .breadcrumb{
    margin-top:14px !important;
    margin-bottom:0 !important;
  }

  .page-editor-content{
    clear:both !important;
  }

  .page-editor-content > .section{
    padding-top:34px !important;
  }

  /* 4業務カードをスマホで安定した1列表示に */
  .page-editor-content .cards4{
    display:grid !important;
    grid-template-columns:1fr !important;
    width:min(100% - 32px, 680px) !important;
    margin:24px auto 46px !important;
    gap:14px !important;
  }

  .page-editor-content .cards4 .service-card{
    width:100% !important;
    min-height:0 !important;
    box-sizing:border-box !important;
  }
}


/* ===== v3.5.21 SERVICES stable card layout ===== */
.services-overview-section{
  padding:54px 0 72px;
  background:#fff;
}
.services-overview-grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:22px;
}
.services-overview-card{
  display:flex;
  flex-direction:column;
  min-width:0;
  background:#fff;
  border:1px solid #d9e5ed;
  border-radius:10px;
  overflow:hidden;
  box-shadow:0 7px 22px rgba(20,61,91,.07);
  transition:transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}
.services-overview-card:hover{
  transform:translateY(-4px);
  border-color:#aac8da;
  box-shadow:0 13px 30px rgba(20,61,91,.13);
}
.services-overview-card > img{
  display:block;
  width:100%;
  height:165px;
  object-fit:cover;
  object-position:center;
}
.services-overview-card-body{
  display:flex;
  flex-direction:column;
  flex:1;
  padding:22px 21px 20px;
  border-top:4px solid #0b578c;
}
.services-no{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  align-self:flex-start;
  min-width:42px;
  height:28px;
  padding:0 12px;
  border:1px solid #c1d6e3;
  border-radius:20px;
  background:#f7fbfd;
  color:#0a4d87;
  font:600 12px Georgia,serif;
  margin-bottom:14px;
}
.services-overview-card h2{
  margin:0 0 12px;
  padding-bottom:12px;
  border-bottom:1px solid #e4edf2;
  color:#073d75;
  font-family:"Yu Mincho","Hiragino Mincho ProN",serif;
  font-size:22px;
  line-height:1.45;
}
.services-overview-card p{
  margin:0 0 20px;
  color:#536f83;
  font-size:13px;
  line-height:1.85;
  flex:1;
}
.services-more{
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding-top:14px;
  border-top:1px solid #edf2f5;
  color:#0a4d87;
  font-size:12px;
  font-weight:700;
}
.services-more b{
  font-size:17px;
  font-weight:400;
}

@media(max-width:960px){
  .services-overview-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}
@media(max-width:620px){
  .services-overview-section{
    padding:30px 0 48px;
  }
  .services-overview-grid{
    grid-template-columns:1fr;
    gap:16px;
  }
  .services-overview-card > img{
    height:200px;
  }
  .services-overview-card-body{
    padding:20px;
  }
}


/* ===== v3.5.27 dedicated mobile subpage images ===== */

/* Desktop remains exactly as before */
.sub-hero-mobile-dedicated{
  display:none;
}

@media(max-width:720px){

  /* Hide the desktop hero image only on phones */
  .sub-hero-wide .sub-hero-wide-image{
    display:none !important;
  }

  /* Use a completely separate original mobile-friendly image */
  .sub-hero-mobile-dedicated{
    display:block !important;
    position:relative !important;
    width:100% !important;
    height:auto !important;
    margin:0 !important;
    padding:0 !important;
    background:#fff !important;
    overflow:hidden !important;
  }

  .sub-hero-mobile-dedicated img{
    display:block !important;
    position:static !important;
    width:100% !important;
    max-width:100% !important;
    height:auto !important;
    margin:0 auto !important;
    padding:0 !important;
    transform:none !important;
    object-fit:contain !important;
    object-position:center center !important;
  }

  .sub-hero-wide{
    display:flex !important;
    flex-direction:column !important;
    min-height:0 !important;
    height:auto !important;
    overflow:hidden !important;
    background:#fff !important;
  }

  .sub-hero-mobile-dedicated{
    order:1 !important;
  }

  .sub-hero-wide-overlay,
  .services-page-hero .sub-hero-wide-overlay{
    order:2 !important;
    position:relative !important;
    width:100% !important;
    max-width:none !important;
    min-height:0 !important;
    margin:0 !important;
    padding:0 !important;
    background:#fff !important;
  }

  .sub-hero-wide-copy,
  .services-page-hero .sub-hero-wide-copy{
    width:min(100% - 40px,680px) !important;
    max-width:none !important;
    margin:0 auto !important;
    padding:20px 0 !important;
  }
}


/* ===== v3.5.33 DESIGN PC hero: use approved preview image as-is ===== */
@media(min-width:721px){
  /* The approved PC image already contains the DESIGN heading/copy.
     Hide only the live WordPress overlay to prevent duplicated text. */
  .design-page-hero .sub-hero-wide-overlay{
    display:none !important;
  }

  .design-page-hero .sub-hero-wide{
    min-height:0 !important;
    height:auto !important;
    background:#fff !important;
    overflow:hidden !important;
  }

  .design-page-hero .sub-hero-wide-image{
    position:relative !important;
    inset:auto !important;
    display:block !important;
    width:100% !important;
    height:auto !important;
  }

  .design-page-hero .sub-hero-wide-image img{
    display:block !important;
    width:100% !important;
    height:auto !important;
    max-width:100% !important;
    object-fit:contain !important;
    object-position:center center !important;
  }
}

/* Smartphone keeps the existing dedicated mobile layout/text */
@media(max-width:720px){
  .design-page-hero .sub-hero-wide-overlay{
    display:block !important;
  }
}


/* ===== v3.5.39 FOREIGN / PRIVACY clean hero reset ===== */

/* PC: restore a compact 300px hero; use only the text-free desktop image. */
@media(min-width:721px){
  .foreign-page-hero .sub-hero-wide,
  .privacy-page-hero .sub-hero-wide{
    position:relative !important;
    display:block !important;
    width:100% !important;
    height:300px !important;
    min-height:300px !important;
    max-height:300px !important;
    overflow:hidden !important;
    background:#f9fbfd !important;
  }

  .foreign-page-hero .sub-hero-wide-image,
  .privacy-page-hero .sub-hero-wide-image{
    display:block !important;
    position:absolute !important;
    inset:0 !important;
    width:100% !important;
    height:300px !important;
    max-height:300px !important;
    overflow:hidden !important;
  }

  .foreign-page-hero .sub-hero-wide-image img,
  .privacy-page-hero .sub-hero-wide-image img{
    display:block !important;
    width:100% !important;
    height:300px !important;
    max-height:300px !important;
    object-fit:cover !important;
    object-position:center center !important;
    transform:none !important;
  }

  .foreign-page-hero .sub-hero-mobile-dedicated,
  .privacy-page-hero .sub-hero-mobile-dedicated{
    display:none !important;
  }

  .foreign-page-hero .sub-hero-wide-overlay,
  .privacy-page-hero .sub-hero-wide-overlay{
    display:flex !important;
    position:relative !important;
    z-index:2 !important;
    align-items:center !important;
    width:min(1180px, calc(100% - 48px)) !important;
    max-width:1180px !important;
    height:300px !important;
    min-height:300px !important;
    margin:0 auto !important;
    padding:0 !important;
    background:transparent !important;
  }

  .foreign-page-hero .sub-hero-wide-copy,
  .privacy-page-hero .sub-hero-wide-copy{
    width:42% !important;
    max-width:500px !important;
    margin:0 !important;
    padding:0 !important;
  }
}

/* Mobile: compact text-free photo first, live WP text below it. */
@media(max-width:720px){
  .foreign-page-hero .sub-hero-wide,
  .privacy-page-hero .sub-hero-wide{
    display:flex !important;
    flex-direction:column !important;
    width:100% !important;
    height:auto !important;
    min-height:0 !important;
    max-height:none !important;
    overflow:hidden !important;
    background:#fff !important;
  }

  .foreign-page-hero .sub-hero-wide-image,
  .privacy-page-hero .sub-hero-wide-image{
    display:none !important;
  }

  .foreign-page-hero .sub-hero-mobile-dedicated,
  .privacy-page-hero .sub-hero-mobile-dedicated{
    order:1 !important;
    display:block !important;
    position:relative !important;
    width:100% !important;
    height:190px !important;
    min-height:190px !important;
    max-height:190px !important;
    margin:0 !important;
    padding:0 !important;
    overflow:hidden !important;
    background:#f5f8fa !important;
  }

  .foreign-page-hero .sub-hero-mobile-dedicated img,
  .privacy-page-hero .sub-hero-mobile-dedicated img{
    display:block !important;
    position:static !important;
    width:100% !important;
    height:190px !important;
    min-height:190px !important;
    max-height:190px !important;
    margin:0 !important;
    padding:0 !important;
    object-fit:cover !important;
    object-position:center center !important;
    transform:none !important;
  }

  .foreign-page-hero .sub-hero-wide-overlay,
  .privacy-page-hero .sub-hero-wide-overlay{
    order:2 !important;
    display:block !important;
    position:relative !important;
    width:100% !important;
    max-width:none !important;
    height:auto !important;
    min-height:0 !important;
    margin:0 !important;
    padding:0 !important;
    background:#fff !important;
  }

  .foreign-page-hero .sub-hero-wide-copy,
  .privacy-page-hero .sub-hero-wide-copy{
    width:calc(100% - 40px) !important;
    max-width:none !important;
    margin:0 auto !important;
    padding:18px 0 20px !important;
    box-sizing:border-box !important;
  }

  .foreign-page-hero .sub-hero-wide h1,
  .privacy-page-hero .sub-hero-wide h1{
    font-size:30px !important;
    line-height:1.35 !important;
    margin-bottom:10px !important;
  }

  .foreign-page-hero .sub-hero-wide .lead,
  .privacy-page-hero .sub-hero-wide .lead{
    font-size:14px !important;
    line-height:1.7 !important;
  }
}


/* ===== v3.5.40 FOREIGN / PRIVACY PC image alignment ===== */
@media(min-width:721px){
  /* Shift the photographic area slightly left to match other subpage heroes */
  .foreign-page-hero .sub-hero-wide-image img,
  .privacy-page-hero .sub-hero-wide-image img{
    object-position:46% center !important;
  }

  /* Keep the live text block comfortably aligned with the rest of the site */
  .foreign-page-hero .sub-hero-wide-copy,
  .privacy-page-hero .sub-hero-wide-copy{
    width:40% !important;
    max-width:470px !important;
  }
}


/* ===== v3.5.41 FOREIGN / PRIVACY actual image rebuilt leftward ===== */
@media(min-width:721px){
  .foreign-page-hero .sub-hero-wide-image img,
  .privacy-page-hero .sub-hero-wide-image img{
    object-position:center center !important;
  }

  .foreign-page-hero .sub-hero-wide-copy,
  .privacy-page-hero .sub-hero-wide-copy{
    width:36% !important;
    max-width:430px !important;
  }
}


/* ===== v3.5.42 PC hero right-edge alignment + sharp recruit ===== */
@media(min-width:721px){

  /* Match the user's requested right edge:
     slightly beyond the header contact button. */
  .foreign-page-hero,
  .privacy-page-hero,
  .faq-page-hero,
  .recruit-page-hero{
    width:min(1080px, 100%) !important;
    max-width:1080px !important;
    margin-left:0 !important;
    margin-right:auto !important;
    overflow:hidden !important;
  }

  .foreign-page-hero .sub-hero-wide,
  .privacy-page-hero .sub-hero-wide,
  .faq-page-hero .sub-hero-wide,
  .recruit-page-hero .sub-hero-wide{
    width:100% !important;
    max-width:1080px !important;
    margin:0 !important;
    overflow:hidden !important;
  }

  /* Foreign / Privacy retain the compact height already approved. */
  .foreign-page-hero .sub-hero-wide,
  .privacy-page-hero .sub-hero-wide{
    height:300px !important;
    min-height:300px !important;
    max-height:300px !important;
  }

  /* FAQ and Recruit use the same 300px visual rhythm. */
  .faq-page-hero .sub-hero-wide,
  .recruit-page-hero .sub-hero-wide{
    position:relative !important;
    display:block !important;
    height:300px !important;
    min-height:300px !important;
    max-height:300px !important;
    background:#f9fbfd !important;
  }

  .faq-page-hero .sub-hero-wide-image,
  .recruit-page-hero .sub-hero-wide-image{
    display:block !important;
    position:absolute !important;
    inset:0 !important;
    width:100% !important;
    height:300px !important;
    max-height:300px !important;
    overflow:hidden !important;
  }

  .faq-page-hero .sub-hero-wide-image img,
  .recruit-page-hero .sub-hero-wide-image img{
    display:block !important;
    width:100% !important;
    height:300px !important;
    max-height:300px !important;
    object-fit:cover !important;
    object-position:center center !important;
    transform:none !important;
  }

  .faq-page-hero .sub-hero-mobile-dedicated,
  .recruit-page-hero .sub-hero-mobile-dedicated{
    display:none !important;
  }

  .faq-page-hero .sub-hero-wide-overlay,
  .recruit-page-hero .sub-hero-wide-overlay{
    display:flex !important;
    position:relative !important;
    z-index:2 !important;
    align-items:center !important;
    width:min(980px, calc(100% - 48px)) !important;
    max-width:980px !important;
    height:300px !important;
    min-height:300px !important;
    margin:0 auto !important;
    padding:0 !important;
    background:transparent !important;
  }

  .faq-page-hero .sub-hero-wide-copy,
  .recruit-page-hero .sub-hero-wide-copy{
    width:42% !important;
    max-width:430px !important;
    margin:0 !important;
    padding:0 !important;
  }
}

/* Smartphone layouts remain exactly as v3.5.41. */


/* ===== v3.5.43 FAQ mobile clean image ===== */
@media(max-width:720px){
  .faq-page-hero .sub-hero-mobile-dedicated{
    display:block !important;
    width:100% !important;
    height:180px !important;
    min-height:180px !important;
    max-height:180px !important;
    margin:0 !important;
    padding:0 !important;
    overflow:hidden !important;
    background:#fff !important;
  }

  .faq-page-hero .sub-hero-mobile-dedicated img{
    display:block !important;
    width:100% !important;
    height:180px !important;
    min-height:180px !important;
    max-height:180px !important;
    margin:0 !important;
    padding:0 !important;
    object-fit:cover !important;
    object-position:center center !important;
    transform:none !important;
  }
}


/* ===== v3.5.44 Center four PC hero blocks ===== */
@media(min-width:721px){
  .foreign-page-hero,
  .privacy-page-hero,
  .faq-page-hero,
  .recruit-page-hero{
    width:min(1080px, 100%) !important;
    max-width:1080px !important;
    margin-left:auto !important;
    margin-right:auto !important;
  }

  .foreign-page-hero .sub-hero-wide,
  .privacy-page-hero .sub-hero-wide,
  .faq-page-hero .sub-hero-wide,
  .recruit-page-hero .sub-hero-wide{
    margin-left:auto !important;
    margin-right:auto !important;
  }
}


/* ===== v3.5.46 contact attachment ===== */
.contact-form input[type="file"]{
  width:100%;
  box-sizing:border-box;
  padding:11px 12px;
  border:1px solid #cbd8e1;
  border-radius:4px;
  background:#fff;
  font:inherit;
  color:#314f68;
}
.contact-form .file-note{
  margin:7px 0 0;
  font-size:12px;
  line-height:1.6;
  color:#6b7c8c;
}
