/*
  Japan Selections / 日本企業様へ
  FINAL v5 — Concept C applied
  Content unchanged; visual presentation only.
*/

.jsl-contact{
  --js-ink:#2f3033;
  --js-text:#55585d;
  --js-muted:#767a80;
  --js-gold:#ad7a32;
  --js-gold-soft:#d8c19c;
  --js-line:#e8e8e5;
  --js-paper:#f8f6f1;
  --js-blue:#eef6f9;
  --js-green:#edf4ee;
  --js-white:#ffffff;
  color:var(--js-ink);
  font-family:inherit;
  font-size:14px;
  line-height:1.8;
}
.jsl-contact *, .jsl-contact *::before, .jsl-contact *::after{ box-sizing:border-box; }
.jsl-contact a{ color:inherit; }
.jsl-contact .wrap_background_aside{ float:none !important; width:100% !important; }
.jsl-contact .wrap_background_aside::after{ content:""; display:block; clear:both; }
.jsl-contact section, .jsl-contact .jsl-form-wrap{ float:none !important; clear:both !important; width:100% !important; }

/* HERO */
.jsl-contact .jsl-page-head{
  position:relative; overflow:hidden; max-width:none; margin:0; padding:58px 54px 62px;
  background:radial-gradient(circle at 88% 20%,rgba(141,169,145,.20),transparent 28%),radial-gradient(circle at 78% 78%,rgba(146,188,205,.20),transparent 34%),linear-gradient(105deg,#f9fbfc 0%,#f7faf9 52%,#eef5f6 100%);
}
.jsl-contact .jsl-page-head::after{
  content:""; position:absolute; top:-90px; right:-55px; width:320px; height:320px; border-radius:50%;
  border:1px solid rgba(173,122,50,.14); box-shadow:-75px 90px 0 -30px rgba(255,255,255,.35),-120px 155px 0 -58px rgba(173,122,50,.05); pointer-events:none;
}
.jsl-contact .jsl-title{ position:relative; z-index:1; margin:0 0 12px; color:var(--js-gold); font-size:12px; line-height:1.4; font-weight:600; letter-spacing:.08em; }
.jsl-contact .jsl-hero-title{ position:relative; z-index:1; max-width:720px; margin:0; color:var(--js-ink); font-size:36px; line-height:1.5; font-weight:600; letter-spacing:.01em; }
.jsl-contact .jsl-hero-line{ width:36px; height:1px; margin:20px 0 18px; background:var(--js-gold); }
.jsl-contact .jsl-hero-copy{ position:relative; z-index:1; max-width:690px; margin:0; color:var(--js-text); font-size:14px; line-height:2; }

/* SHARED TITLES */
.jsl-contact .jsl-section{ padding:62px 0; }
.jsl-contact .jsl-section-label{ position:relative; display:inline-block; margin:0 0 15px; color:#25354a; font-size:15px; line-height:1.4; font-weight:600; letter-spacing:.04em; }
.jsl-contact .jsl-section-label::after{ content:""; display:block; width:26px; height:1px; margin-top:9px; background:var(--js-gold); }
.jsl-contact .jsl-section-title{ max-width:800px; margin:0 0 30px; color:var(--js-ink); font-size:24px; line-height:1.65; font-weight:600; letter-spacing:0; }
.jsl-contact .jsl-section-note{ max-width:780px; margin:26px 0 0; color:var(--js-muted); font-size:13px; line-height:1.9; }

/* A SIMPLE START */
.jsl-contact .jsl-section:has(.jsl-principles){ margin-top:26px; padding:38px 42px 42px; border-radius:12px; background:linear-gradient(135deg,rgba(249,247,242,.98),rgba(250,249,246,.94)); }
.jsl-contact .jsl-section:has(.jsl-principles) .jsl-section-title{ margin-bottom:28px; }
.jsl-contact .jsl-principles{ display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:0; margin:0; }
.jsl-contact .jsl-principle{ position:relative; min-width:0; padding:8px 26px 2px; text-align:center; }
.jsl-contact .jsl-principle + .jsl-principle::before{ content:""; position:absolute; left:0; top:18px; bottom:8px; width:1px; background:rgba(173,122,50,.14); }
.jsl-contact .jsl-principle-no{ display:flex; align-items:center; justify-content:center; width:54px; height:54px; margin:0 auto 13px; border-radius:50%; background:rgba(173,122,50,.08); color:var(--js-gold); font-size:12px; font-weight:600; letter-spacing:.03em; }
.jsl-contact .jsl-principle-line{ display:block; }
.jsl-contact .jsl-principle-name{ display:block; margin-bottom:4px; color:var(--js-muted); font-size:12.5px; line-height:1.6; font-weight:400; }
.jsl-contact .jsl-principle-arrow{ display:none; }
.jsl-contact .jsl-principle-value{ display:block; color:var(--js-ink); font-size:16px; line-height:1.55; font-weight:600; }
.jsl-contact .jsl-section:has(.jsl-principles) .jsl-section-note{ margin-left:auto; margin-right:auto; text-align:center; }

/* WHAT WE DO */
.jsl-contact .jsl-section:has(.jsl-services){ padding-top:66px; padding-bottom:68px; }
.jsl-contact .jsl-section:has(.jsl-services) > .jsl-section-label{ float:left; width:180px; margin-right:28px; }
.jsl-contact .jsl-section:has(.jsl-services) > .jsl-section-title{ overflow:hidden; max-width:760px; margin-bottom:34px; font-size:18px; line-height:1.9; font-weight:500; color:var(--js-text); }
.jsl-contact .jsl-services{ clear:both; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:0; margin:0; }
.jsl-contact .jsl-service{ position:relative; min-width:0; padding:8px 34px 0; text-align:center; }
.jsl-contact .jsl-service:first-child{ padding-left:0; } .jsl-contact .jsl-service:last-child{ padding-right:0; }
.jsl-contact .jsl-service + .jsl-service::before{ content:""; position:absolute; top:18px; bottom:0; left:0; width:1px; background:var(--js-line); }
.jsl-contact .jsl-service-no{ display:flex; align-items:center; justify-content:center; width:58px; height:58px; margin:0 auto 15px; border-radius:50%; background:rgba(173,122,50,.07); color:var(--js-gold); font-size:12px; line-height:1; font-weight:600; }
.jsl-contact .jsl-service h3{ margin:0 0 12px; color:var(--js-ink); font-size:15px; line-height:1.7; font-weight:600; }
.jsl-contact .jsl-service p{ max-width:280px; margin:0 auto; color:var(--js-text); font-size:12.5px; line-height:1.9; }

/* FLEXIBLE APPROACH */
.jsl-contact .jsl-flex-section{ position:relative; margin:0 calc(50% - 50vw); padding:42px max(24px,calc((100vw - 1170px)/2)); overflow:hidden; background:radial-gradient(circle at 86% 35%,rgba(128,168,127,.18),transparent 30%),linear-gradient(105deg,var(--js-blue),#f6faf8 58%,var(--js-green)); }
.jsl-contact .jsl-flex-section::after{ content:""; position:absolute; right:4%; top:-70px; width:230px; height:230px; border-radius:48% 52% 42% 58%; border:1px solid rgba(65,95,70,.10); transform:rotate(-18deg); pointer-events:none; }
.jsl-contact .jsl-flex-inner{ position:relative; z-index:1; display:grid; grid-template-columns:minmax(260px,.85fr) minmax(0,1.15fr); gap:58px; align-items:start; }
.jsl-contact .jsl-flex-section .jsl-section-title{ margin:0; font-size:22px; }
.jsl-contact .jsl-flex-copy{ max-width:650px; padding-top:34px; }
.jsl-contact .jsl-flex-copy p{ margin:0 0 9px; color:var(--js-text); font-size:13px; line-height:1.95; }
.jsl-contact .jsl-flex-copy p:last-child{ margin-bottom:0; }

/* PROCESS */
.jsl-contact .jsl-section:has(.jsl-process){ padding-top:58px; padding-bottom:60px; }
.jsl-contact .jsl-process{ display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:18px; margin:4px 0 0; }
.jsl-contact .jsl-step{ position:relative; min-width:0; padding:22px 28px 20px; background:linear-gradient(135deg,#fbfaf7,#f5f2eb); text-align:left; }
.jsl-contact .jsl-step:not(:last-child)::after{ content:"›"; position:absolute; top:50%; right:-13px; z-index:2; transform:translateY(-54%); color:var(--js-gold); font-size:24px; font-weight:300; }
.jsl-contact .jsl-step-no{ margin:0 0 8px; color:var(--js-gold); font-size:17px; line-height:1.3; font-weight:600; }
.jsl-contact .jsl-step h3{ margin:0 0 7px; color:var(--js-ink); font-size:14px; line-height:1.65; font-weight:600; }
.jsl-contact .jsl-step p{ margin:0; color:var(--js-muted); font-size:12px; line-height:1.75; }
.jsl-contact .jsl-section:has(.jsl-process) .jsl-section-note{ margin-top:22px; }

/* CONTACT + COMPANY */
.jsl-contact .jsl-contact-company-grid{ display:grid; grid-template-columns:minmax(0,1.32fr) minmax(320px,.68fr); gap:52px; align-items:start; margin-top:6px; padding:62px 0 54px; border-top:1px solid var(--js-line); }
.jsl-contact .jsl-form-wrap{ max-width:none; margin:0; padding:0; }
.jsl-contact .jsl-form-intro{ max-width:680px; margin:0 0 28px; text-align:left; }
.jsl-contact .jsl-form-intro .jsl-section-title{ margin:0 0 12px; font-size:22px; }
.jsl-contact .jsl-form-intro > p:last-child{ margin:0; color:var(--js-text); font-size:13px; line-height:1.9; }
.jsl-contact .jsl-form-heading{ margin:0 0 18px; color:var(--js-ink); font-size:16px; line-height:1.6; font-weight:600; }
.jsl-contact #pagelogin, .jsl-contact #pagelogin form{ width:100% !important; max-width:none !important; margin:0 !important; float:none !important; }
.jsl-contact .jsl-field{ margin-bottom:16px; }
.jsl-contact .jsl-field label{ display:block; margin:0 0 6px; color:var(--js-ink); font-size:12.5px; line-height:1.6; font-weight:500; }
.jsl-contact .jsl-field label span{ color:var(--js-gold); }
.jsl-contact .jsl-field input, .jsl-contact .jsl-field textarea{ display:block; width:100%; border:1px solid #dededb; border-radius:1px; background:#fff; color:var(--js-ink); font:inherit; font-size:13.5px; box-shadow:none; outline:none; }
.jsl-contact .jsl-field input{ height:43px; padding:0 12px; }
.jsl-contact .jsl-field textarea{ min-height:132px; padding:11px 12px; resize:vertical; }
.jsl-contact .jsl-field input:focus, .jsl-contact .jsl-field textarea:focus{ border-color:var(--js-gold-soft); }
.jsl-contact .jsl-consent{ display:flex; align-items:flex-start; gap:8px; margin:2px 0 20px; color:var(--js-muted); font-size:12px; line-height:1.7; cursor:pointer; }
.jsl-contact .jsl-consent input{ width:15px; height:15px; margin:3px 0 0; flex:0 0 auto; }
.jsl-contact .jsl-consent a{ color:var(--js-gold); text-decoration:underline; text-underline-offset:2px; }
.jsl-contact .jsl-submit{ display:inline-flex; align-items:center; justify-content:center; min-width:205px; padding:12px 28px; border:0; border-radius:1px; background:#303235; color:#fff; font-size:13px; line-height:1.5; font-weight:500; text-align:center; cursor:pointer; }
.jsl-contact .jsl-submit::after{ content:"→"; margin-left:18px; font-weight:300; }
.jsl-contact .jsl-submit:hover{ opacity:.9; }
.jsl-contact .jsl-alert{ margin:0 0 18px; padding:12px 14px; border-radius:2px; font-size:13px; }
.jsl-contact .jsl-alert-danger{ background:#fbefed; color:#8b4037; }
.jsl-contact .jsl-alert-success{ background:#eef5ec; color:#456447; }

/* =========================================================
   FINAL REFINEMENTS — Concept C
   ========================================================= */

/* Hero supporting copy: preserve the explicit <br> as exactly two lines on desktop. */
.jsl-contact .jsl-hero-copy{
  max-width:930px;
}

/* A SIMPLE START: supporting sentence belongs with the heading, not below the four items. */
.jsl-contact .jsl-section:has(.jsl-principles) .jsl-section-title{
  margin-bottom:8px;
}

.jsl-contact .jsl-section:has(.jsl-principles) .jsl-section-note{
  max-width:780px;
  margin:0 0 30px;
  color:var(--js-text);
  text-align:left;
  font-size:13px;
  line-height:1.9;
}

/* CONTACT returns to a calm single-column content width. */
.jsl-contact .jsl-form-wrap{
  max-width:820px;
  margin:0 auto;
  padding:62px 0 68px;
  border-top:1px solid var(--js-line);
}

/* COMPANY: restore the former clean map-left / details-right presentation. */










@media(max-width:991px){
  .jsl-contact .jsl-hero-copy{
    max-width:820px;
  }

  
  .jsl-contact .jsl-company-map,
  .jsl-contact .jsl-company-map iframe,
  .jsl-contact .jsl-company-map .map{
    min-height:280px;
  }
}

@media(max-width:767px){
  .jsl-contact .jsl-hero-copy{
    max-width:none;
  }

  .jsl-contact .jsl-section:has(.jsl-principles) .jsl-section-note{
    margin-bottom:24px;
  }

  .jsl-contact .jsl-form-wrap{
    padding:48px 0 54px;
  }

  
  .jsl-contact .jsl-company-map,
  .jsl-contact .jsl-company-map iframe,
  .jsl-contact .jsl-company-map .map{
    min-height:240px;
    height:240px;
  }
}

/* =========================================================
   FINAL CONTENT / HIERARCHY REFINEMENTS
   ========================================================= */

/* PROCESS intro note now belongs directly under the section title. */
.jsl-contact .jsl-section:has(.jsl-process) > .jsl-section-title{
  margin-bottom:8px;
}

.jsl-contact .jsl-section:has(.jsl-process) > .jsl-section-note{
  max-width:860px;
  margin:0 0 30px;
  color:var(--js-text);
  font-size:13px;
  line-height:1.9;
}

/* COMPANY: expanded profile information while preserving the legacy card style. */



.jsl-contact .jsl-company-card{
  min-height:500px;
}



.jsl-contact .jsl-company-subline{
  display:block;
}


@media(max-width:991px){
  .jsl-contact .jsl-company-map,
  .jsl-contact .jsl-company-map iframe,
  .jsl-contact .jsl-company-map .map{
    min-height:300px;
  }

  .jsl-contact .jsl-company-card{
    min-height:0;
  }
}

@media(max-width:767px){
  .jsl-contact .jsl-section:has(.jsl-process) > .jsl-section-note{
    margin-bottom:24px;
  }

  .jsl-contact .jsl-company-map,
  .jsl-contact .jsl-company-map iframe,
  .jsl-contact .jsl-company-map .map{
    min-height:235px;
  }
}

/* =========================================================
   COMPANY — restored from the original /lien-he-1 source
   ========================================================= */
.jsl-contact .jsl-grid{
  display:grid;
  grid-template-columns:1.6fr 1fr;
  gap:24px;
  margin-top:36px;
}

.jsl-contact .jsl-map{
  border-radius:10px;
  overflow:hidden;
  border:1px solid #ECE8DF;
  min-height:500px;
}

.jsl-contact .jsl-map iframe,
.jsl-contact .jsl-map .map{
  width:100%;
  height:100%;
  min-height:500px;
  border:0;
  display:block;
}

.jsl-contact .jsl-info-card{
  background:#F7F5F0;
  border:1px solid #ECE8DF;
  border-radius:10px;
  padding:32px;
}

.jsl-contact .jsl-info-card h5{
  font-weight:600;
  font-size:13px;
  letter-spacing:.1em;
  text-transform:uppercase;
  color:#8A6B3F;
  margin:0 0 16px;
}

.jsl-contact .jsl-info-row{
  display:flex;
  align-items:flex-start;
  gap:14px;
  margin-bottom:18px;
  color:#2B2A28;
}

.jsl-contact .jsl-info-row:last-child{
  margin-bottom:0;
}

.jsl-contact .jsl-info-row i{
  color:#8A6B3F;
  font-size:16px;
  margin-top:3px;
  flex:none;
  width:16px;
  text-align:center;
}

.jsl-contact .jsl-info-row a{
  color:#2B2A28;
  text-decoration:none;
}

.jsl-contact .jsl-info-row a:hover{
  color:#8A6B3F;
}

.jsl-contact .jsl-info-label{
  display:block;
  margin-bottom:3px;
  color:#8A6B3F;
  font-size:12px;
  font-weight:600;
  letter-spacing:.03em;
}

.jsl-contact .jsl-social{
  margin-top:28px;
  padding-top:24px;
  border-top:1px solid #ECE8DF;
}

.jsl-contact .jsl-social ul{
  list-style:none;
  margin:0;
  padding:0;
  display:flex;
  gap:10px;
}

.jsl-contact .jsl-social a{
  display:flex;
  align-items:center;
  justify-content:center;
  width:36px;
  height:36px;
  border-radius:50%;
  background:#B08D57;
  color:#fff;
  text-decoration:none;
  font-size:14px;
}

.jsl-contact .jsl-social a:hover{
  background:#8A6B3F;
}

.jsl-contact .jsl-social a i,
.jsl-contact .jsl-social a svg{
  color:#fff;
  fill:currentColor;
}

@media(max-width:991px){
  .jsl-contact .jsl-grid{
    grid-template-columns:1fr;
  }

  .jsl-contact .jsl-map,
  .jsl-contact .jsl-map iframe,
  .jsl-contact .jsl-map .map{
    min-height:300px;
  }
}

@media(max-width:767px){
  .jsl-contact .jsl-grid{
    margin-top:28px;
  }

  .jsl-contact .jsl-map,
  .jsl-contact .jsl-map iframe,
  .jsl-contact .jsl-map .map{
    min-height:235px;
  }

  .jsl-contact .jsl-info-card{
    padding:26px 22px 24px;
  }
}

/* =========================================================
   WHAT WE DO — restore approved left-aligned hierarchy
   ========================================================= */
.jsl-contact .jsl-section:has(.jsl-services) > .jsl-section-label{
  float:none;
  width:auto;
  margin-right:0;
  margin-bottom:15px;
  text-align:left;
}

.jsl-contact .jsl-section:has(.jsl-services) > .jsl-section-title{
  overflow:visible;
  max-width:820px;
  margin:0 0 34px;
  color:var(--js-text);
  font-size:18px;
  line-height:1.9;
  font-weight:500;
  text-align:left;
}

/* =========================================================
   v5.10 — FLEXIBLE APPROACH
   Protect the two-column desktop layout from global theme CSS.
   ========================================================= */
@media (min-width: 992px){
  .jsl-contact .jsl-flex-section .jsl-flex-inner{
    display:grid !important;
    grid-template-columns:minmax(300px, .9fr) minmax(480px, 1.35fr) !important;
    column-gap:58px !important;
    row-gap:0 !important;
    align-items:start !important;
    width:100% !important;
    max-width:1170px !important;
    margin:0 auto !important;
    float:none !important;
  }

  .jsl-contact .jsl-flex-section .jsl-flex-inner > div{
    width:auto !important;
    min-width:0 !important;
    max-width:none !important;
    margin-left:0 !important;
    margin-right:0 !important;
    float:none !important;
  }

  .jsl-contact .jsl-flex-section .jsl-flex-copy{
    display:block !important;
    width:100% !important;
    min-width:0 !important;
    max-width:650px !important;
    padding-top:34px !important;
    margin:0 !important;
    float:none !important;
  }

  .jsl-contact .jsl-flex-section .jsl-flex-copy p{
    display:block !important;
    width:100% !important;
    max-width:none !important;
    white-space:normal !important;
    word-break:normal !important;
    overflow-wrap:normal !important;
  }
}

/* =========================================================
   v5.10 — restore Concept C responsive rules lost during
   COMPANY cleanup. No design change; only original behavior.
   ========================================================= */
@media(max-width:991px){
  .jsl-contact .jsl-page-head{ padding:48px 38px 52px; }
  .jsl-contact .jsl-hero-title{ font-size:31px; }
  .jsl-contact .jsl-section:has(.jsl-principles){ padding-left:28px; padding-right:28px; }
  .jsl-contact .jsl-principles{ grid-template-columns:repeat(2,minmax(0,1fr)); gap:26px 0; }
  .jsl-contact .jsl-principle:nth-child(odd)::before{ display:none; }
  .jsl-contact .jsl-service{ padding-left:22px; padding-right:22px; }

  .jsl-contact .jsl-flex-section .jsl-flex-inner{
    grid-template-columns:1fr !important;
    gap:0 !important;
    max-width:none !important;
  }

  .jsl-contact .jsl-flex-section .jsl-flex-copy{
    width:100% !important;
    max-width:650px !important;
    padding-top:10px !important;
    margin:0 !important;
    float:none !important;
  }

  .jsl-contact .jsl-process{ grid-template-columns:repeat(2,minmax(0,1fr)); }
  .jsl-contact .jsl-step:nth-child(2)::after{ display:none; }
  .jsl-contact .jsl-contact-company-grid{ grid-template-columns:1fr; gap:44px; }
}

@media(max-width:767px){
  .jsl-contact{ font-size:14px; }
  .jsl-contact .jsl-page-head{ padding:32px 20px 36px; }
  .jsl-contact .jsl-page-head::after{ width:210px; height:210px; right:-90px; top:-70px; }
  .jsl-contact .jsl-hero-title{ font-size:26px; line-height:1.55; }
  .jsl-contact .jsl-hero-title br{ display:none; }
  .jsl-contact .jsl-hero-copy{ font-size:13.5px; line-height:1.9; }
  .jsl-contact .jsl-section{ padding:44px 0; }
  .jsl-contact .jsl-section-label{ font-size:14px; }
  .jsl-contact .jsl-section-title{ margin-bottom:24px; font-size:21px; line-height:1.65; }

  .jsl-contact .jsl-section:has(.jsl-principles){
    margin-top:18px;
    padding:28px 20px 30px;
    border-radius:8px;
  }

  .jsl-contact .jsl-principles{ grid-template-columns:repeat(2,minmax(0,1fr)); }
  .jsl-contact .jsl-principle{ padding:4px 12px; }
  .jsl-contact .jsl-principle-no{ width:48px; height:48px; }

  .jsl-contact .jsl-section:has(.jsl-services) > .jsl-section-label{
    float:none;
    width:auto;
    margin-right:0;
  }

  .jsl-contact .jsl-section:has(.jsl-services) > .jsl-section-title{
    overflow:visible;
    margin-bottom:28px;
    font-size:18px;
    line-height:1.8;
  }

  .jsl-contact .jsl-services{ grid-template-columns:1fr; gap:28px; }

  .jsl-contact .jsl-service,
  .jsl-contact .jsl-service:first-child,
  .jsl-contact .jsl-service:last-child{
    padding:0;
    text-align:left;
  }

  .jsl-contact .jsl-service + .jsl-service::before{ display:none; }
  .jsl-contact .jsl-service-no{ margin:0 0 10px; }
  .jsl-contact .jsl-service p{ margin:0; max-width:none; }

  .jsl-contact .jsl-flex-section{ padding-top:36px; padding-bottom:38px; }
  .jsl-contact .jsl-flex-section .jsl-section-title{ font-size:20px; }
  .jsl-contact .jsl-flex-section .jsl-flex-copy{
    max-width:none !important;
    padding-top:10px !important;
  }

  .jsl-contact .jsl-process{ grid-template-columns:1fr; gap:12px; }
  .jsl-contact .jsl-step{ padding:18px 20px 17px; }
  .jsl-contact .jsl-step::after{ display:none !important; }

  .jsl-contact .jsl-contact-company-grid{ padding:48px 0 38px; gap:40px; }
  .jsl-contact .jsl-form-intro .jsl-section-title{ font-size:20px; }
  .jsl-contact .jsl-submit{ width:100%; }
}

@media(max-width:420px){
  .jsl-contact .jsl-section:has(.jsl-principles){ padding-left:16px; padding-right:16px; }
  .jsl-contact .jsl-principles{ grid-template-columns:repeat(2,minmax(0,1fr)); gap:22px 0; }
  .jsl-contact .jsl-principle{ padding-left:10px; padding-right:10px; }
  .jsl-contact .jsl-principle:nth-child(odd)::before{ display:none; }
}

/* =========================================================
   v5.11 — FLEXIBLE APPROACH container alignment
   Keep the colored panel inside the same page container as
   WHAT WE DO / PROCESS / CONTACT.
   ========================================================= */
.jsl-contact .jsl-flex-section{
  position:relative !important;
  width:100% !important;
  max-width:none !important;
  margin-left:0 !important;
  margin-right:0 !important;
  padding-left:40px !important;
  padding-right:40px !important;
  box-sizing:border-box !important;
}

.jsl-contact .jsl-flex-section .jsl-flex-inner{
  width:100% !important;
  max-width:none !important;
  margin-left:0 !important;
  margin-right:0 !important;
}

@media (min-width:992px){
  .jsl-contact .jsl-flex-section .jsl-flex-inner{
    grid-template-columns:minmax(300px,.9fr) minmax(0,1.35fr) !important;
    column-gap:58px !important;
  }

  .jsl-contact .jsl-flex-section .jsl-flex-copy{
    width:100% !important;
    max-width:none !important;
  }
}

@media(max-width:767px){
  .jsl-contact .jsl-flex-section{
    padding-left:20px !important;
    padding-right:20px !important;
  }
}

/* =========================================================
   v5.12 — final hierarchy / COMPANY spacing refinements
   ========================================================= */

/* WHAT WE DO lead: slightly quieter than section H2 titles */
.jsl-contact .jsl-section:has(.jsl-services) > .jsl-section-title{
  font-size:16px !important;
  line-height:1.9 !important;
  font-weight:500 !important;
}

/* Give the final COMPANY block the same breathing room before footer
   as the vertical rhythm used between content sections. */
.jsl-contact .jsl-company{
  padding-bottom:62px !important;
}

/* ACCESS was removed; allow the map to follow the now shorter card
   instead of imposing the previous 500px minimum. */
.jsl-contact .jsl-map,
.jsl-contact .jsl-map iframe,
.jsl-contact .jsl-map .map{
  min-height:420px !important;
}

@media(max-width:991px){
  .jsl-contact .jsl-company{
    padding-bottom:52px !important;
  }

  .jsl-contact .jsl-map,
  .jsl-contact .jsl-map iframe,
  .jsl-contact .jsl-map .map{
    min-height:300px !important;
  }
}

@media(max-width:767px){
  .jsl-contact .jsl-company{
    padding-bottom:44px !important;
  }

  .jsl-contact .jsl-map,
  .jsl-contact .jsl-map iframe,
  .jsl-contact .jsl-map .map{
    min-height:235px !important;
  }

  .jsl-contact .jsl-section:has(.jsl-services) > .jsl-section-title{
    font-size:16px !important;
    line-height:1.8 !important;
  }
}

/* COMPANY compact vertical rhythm after removing ACCESS */
@media(min-width:992px){
  .jsl-contact .jsl-info-card{
    padding:28px !important;
  }

  .jsl-contact .jsl-info-row{
    margin-bottom:14px !important;
  }

  .jsl-contact .jsl-social{
    margin-top:22px !important;
    padding-top:18px !important;
  }

  .jsl-contact .jsl-social h5{
    margin-bottom:12px !important;
  }
}

/* =========================================================
   v5.13 — A SIMPLE START editorial refinement
   Remove the large beige card feeling while preserving
   the four numbered principles and their hierarchy.
   ========================================================= */
.jsl-contact .jsl-section:has(.jsl-principles){
  margin-top:0 !important;
  padding-left:0 !important;
  padding-right:0 !important;
  background:#fff !important;
  border:0 !important;
  border-radius:0 !important;
  box-shadow:none !important;
}

.jsl-contact .jsl-section:has(.jsl-principles) .jsl-section-title{
  margin-bottom:8px !important;
}

.jsl-contact .jsl-section:has(.jsl-principles) .jsl-section-note{
  max-width:780px !important;
  margin:0 0 34px !important;
}

.jsl-contact .jsl-principles{
  position:relative;
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:0 !important;
  align-items:stretch;
  background:#fff !important;
}

.jsl-contact .jsl-principle{
  position:relative;
  padding:2px 28px 0 !important;
  text-align:center;
  background:transparent !important;
  border:0 !important;
  border-radius:0 !important;
  box-shadow:none !important;
}

.jsl-contact .jsl-principle:first-child{
  padding-left:0 !important;
}

.jsl-contact .jsl-principle:last-child{
  padding-right:0 !important;
}

.jsl-contact .jsl-principle + .jsl-principle::before{
  content:"" !important;
  display:block !important;
  position:absolute !important;
  left:0 !important;
  top:8px !important;
  bottom:4px !important;
  width:1px !important;
  height:auto !important;
  background:var(--js-line) !important;
  border:0 !important;
  border-radius:0 !important;
  transform:none !important;
}

.jsl-contact .jsl-principle-no{
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  width:54px !important;
  height:54px !important;
  margin:0 auto 16px !important;
  border-radius:50% !important;
  background:#f8f4ed !important;
  color:var(--js-gold-dark) !important;
  border:0 !important;
  font-size:12px !important;
  font-weight:700 !important;
}

.jsl-contact .jsl-principle h3{
  margin:0 0 8px !important;
}

.jsl-contact .jsl-principle p{
  margin:0 !important;
}

@media(max-width:991px){
  .jsl-contact .jsl-section:has(.jsl-principles){
    padding-left:0 !important;
    padding-right:0 !important;
  }

  .jsl-contact .jsl-principles{
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
    row-gap:30px !important;
  }

  .jsl-contact .jsl-principle{
    padding:4px 22px !important;
  }

  .jsl-contact .jsl-principle:nth-child(odd){
    padding-left:0 !important;
  }

  .jsl-contact .jsl-principle:nth-child(even){
    padding-right:0 !important;
  }

  .jsl-contact .jsl-principle:nth-child(odd)::before{
    display:none !important;
  }

  .jsl-contact .jsl-principle:nth-child(3),
  .jsl-contact .jsl-principle:nth-child(4){
    padding-top:26px !important;
    border-top:1px solid var(--js-line) !important;
  }
}

@media(max-width:767px){
  .jsl-contact .jsl-section:has(.jsl-principles){
    margin-top:0 !important;
    padding-top:40px !important;
    padding-bottom:40px !important;
  }

  .jsl-contact .jsl-section:has(.jsl-principles) .jsl-section-note{
    margin-bottom:28px !important;
  }

  .jsl-contact .jsl-principles{
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
    row-gap:24px !important;
  }

  .jsl-contact .jsl-principle{
    padding-left:12px !important;
    padding-right:12px !important;
  }

  .jsl-contact .jsl-principle:nth-child(odd){
    padding-left:0 !important;
  }

  .jsl-contact .jsl-principle:nth-child(even){
    padding-right:0 !important;
  }

  .jsl-contact .jsl-principle-no{
    width:50px !important;
    height:50px !important;
    margin-bottom:12px !important;
  }
}

/* =========================================================
   v5.14 — A SIMPLE START / editorial commitments
   Distinguish principles from WHAT WE DO:
   no circles, no vertical dividers, horizontal statement rules.
   ========================================================= */
.jsl-contact .jsl-principles{
  display:grid !important;
  grid-template-columns:repeat(4,minmax(0,1fr)) !important;
  gap:32px !important;
  align-items:start !important;
}

.jsl-contact .jsl-principle,
.jsl-contact .jsl-principle:first-child,
.jsl-contact .jsl-principle:last-child{
  position:relative !important;
  padding:0 0 18px !important;
  text-align:left !important;
  border:0 !important;
  background:transparent !important;
}

.jsl-contact .jsl-principle::after{
  content:"" !important;
  position:absolute !important;
  left:0 !important;
  bottom:0 !important;
  width:54px !important;
  height:1px !important;
  background:var(--js-gold) !important;
}

.jsl-contact .jsl-principle + .jsl-principle::before,
.jsl-contact .jsl-principle:nth-child(odd)::before{
  display:none !important;
  content:none !important;
}

.jsl-contact .jsl-principle-no{
  display:block !important;
  width:auto !important;
  height:auto !important;
  margin:0 0 18px !important;
  padding:0 !important;
  border:0 !important;
  border-radius:0 !important;
  background:transparent !important;
  color:var(--js-gold-dark) !important;
  font-size:12px !important;
  line-height:1 !important;
  font-weight:700 !important;
  letter-spacing:.08em !important;
  text-align:left !important;
}

.jsl-contact .jsl-principle h3{
  margin:0 0 7px !important;
  color:var(--js-muted) !important;
  font-size:13px !important;
  line-height:1.6 !important;
  font-weight:500 !important;
  text-align:left !important;
}

.jsl-contact .jsl-principle p{
  margin:0 !important;
  color:var(--js-text) !important;
  font-size:17px !important;
  line-height:1.55 !important;
  font-weight:700 !important;
  text-align:left !important;
}

@media(max-width:991px){
  .jsl-contact .jsl-principles{
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
    gap:30px 36px !important;
  }

  .jsl-contact .jsl-principle,
  .jsl-contact .jsl-principle:nth-child(odd),
  .jsl-contact .jsl-principle:nth-child(even),
  .jsl-contact .jsl-principle:nth-child(3),
  .jsl-contact .jsl-principle:nth-child(4){
    padding:0 0 18px !important;
    border:0 !important;
  }
}

@media(max-width:767px){
  .jsl-contact .jsl-principles{
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
    gap:28px 22px !important;
  }

  .jsl-contact .jsl-principle-no{
    margin-bottom:14px !important;
  }

  .jsl-contact .jsl-principle h3{
    font-size:12px !important;
  }

  .jsl-contact .jsl-principle p{
    font-size:16px !important;
  }

  .jsl-contact .jsl-principle::after{
    width:42px !important;
  }
}

/* =========================================================
   v5.15 — approved micro refinements
   ========================================================= */

/* Match WHAT WE DO supporting copy to the other section notes. */
.jsl-contact .jsl-section:has(.jsl-services) > .jsl-section-title{
  font-size:13px !important;
  line-height:1.9 !important;
  font-weight:400 !important;
}

/* Reserve the short gold underline for section headings only. */
.jsl-contact .jsl-principle::after{
  display:none !important;
  content:none !important;
}

/* =========================================================
   v5.16 — A SIMPLE START number accent
   Force 01–04 to the Japan Selections gold on Sapo.
   ========================================================= */
.jsl-contact .jsl-principle-no{
  color:#8A6B3F !important;
}