
/* Shared brand header for every ReHeart Counseling .com page. */
.unified-header{position:relative;z-index:30;background:rgba(255,254,250,.96);border-bottom:1px solid rgba(197,208,192,.55);isolation:isolate}
.unified-header-inner{width:100%;max-width:1390px;margin:0 auto;padding:14px clamp(16px,2.5vw,38px);min-height:83px;display:flex;align-items:center;justify-content:space-between;gap:clamp(13px,2.2vw,34px);box-sizing:border-box}
.unified-brand{display:flex;align-items:center;min-width:0;flex:0 1 auto;text-decoration:none!important}
.unified-brand img{display:block;width:clamp(234px,29vw,370px);height:auto;max-height:82px;object-fit:contain;object-position:left center}
.unified-nav{display:flex;align-items:center;justify-content:flex-end;gap:clamp(13px,1.75vw,28px);min-width:0}
.unified-nav a{font:600 clamp(11px,1vw,13px)/1.5 "Noto Sans JP",sans-serif;letter-spacing:.015em;text-decoration:none;color:#3e5948;white-space:nowrap;border-bottom:1px solid transparent;padding:8px 0}
.unified-nav a:hover,.unified-nav a[aria-current="page"]{color:#294a36;border-bottom-color:#a99568}
.unified-nav a.unified-primary{border:1px solid #355b46!important;border-radius:999px;padding:10px 17px;background:#32563f;color:#fff}
.unified-nav a.unified-primary:hover{background:#244431;color:#fff}
.unified-menu-toggle{display:none;align-items:center;gap:9px;padding:10px 12px;border:1px solid #b6c5b7;background:#fffef8;color:#31503e;border-radius:9px;font:600 11px "Noto Sans JP",sans-serif;cursor:pointer}
.unified-menu-toggle svg{width:20px;height:20px;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round}
.unified-mobile-nav[hidden]{display:none!important}
.unified-mobile-nav{position:absolute;z-index:45;right:clamp(15px,3vw,37px);top:calc(100% - 3px);min-width:min(320px,calc(100vw - 30px));padding:12px;border:1px solid #d8e0d5;border-radius:14px;background:#fffefa;box-shadow:0 19px 42px #25413227;display:flex;flex-direction:column;gap:2px}
.unified-mobile-nav a{padding:12px 15px;border-radius:8px;font:500 13px/1.6 "Noto Sans JP",sans-serif;text-decoration:none;color:#31513c}
.unified-mobile-nav a:hover{background:#edf3eb}
.unified-mobile-nav a[aria-current="page"]{background:#eef2e9;font-weight:700}
@media(max-width:1080px){
 .unified-header-inner{min-height:75px}
 .unified-nav{display:none}
 .unified-menu-toggle{display:flex}
 .unified-brand img{width:clamp(230px,46vw,352px)}
}
@media(max-width:530px){
 .unified-header-inner{padding:10px 13px;min-height:65px;gap:8px}
 .unified-brand img{width:clamp(200px,68vw,300px);max-height:64px}
 .unified-menu-toggle{font-size:0;padding:10px}
 .unified-menu-toggle svg{width:19px;height:19px}
 .unified-mobile-nav{right:12px}
}
@media(max-width:350px){.unified-brand img{width:195px}.unified-menu-toggle{padding:9px}}


/* REHEART SHARED FOOTER — used on the portal home, all kokoro guides, and /journal/. */
footer.site-footer{
  --footer-ink:#edf2e9;
  --footer-muted:#c5d4c5;
  margin-top:50px;
  padding:43px 0 25px;
  border-top:1px solid rgba(181,170,133,.3);
  background:linear-gradient(122deg,#29493a 0%,#244334 67%,#2d4b3b 100%);
  color:var(--footer-ink);
  font-family:"Noto Sans JP","Hiragino Kaku Gothic ProN","Yu Gothic",sans-serif;
  font-size:12px;
  line-height:1.85;
}
footer.site-footer .footer-wrap{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  flex-wrap:wrap;
  gap:24px 42px;
  width:min(1130px,calc(100% - 48px));
  max-width:none;
  margin:0 auto;
  padding:0;
}
footer.site-footer .footer-wrap > div:first-child{
  min-width:0;
  max-width:470px;
}
footer.site-footer .footer-wrap strong{
  display:block;
  font:500 clamp(20px,2.1vw,25px)/1.6 "Shippori Mincho","Yu Mincho",serif;
  letter-spacing:.025em;
  color:#fbfcf6;
}
footer.site-footer .footer-wrap p{
  margin:9px 0 0;
  color:var(--footer-muted);
  font-size:12px;
  line-height:1.9;
}
footer.site-footer .footer-wrap p:last-child{
  color:#acc0ad;
  font-size:11px;
  margin-top:6px;
}
/* Simple, visible company link with no surrounding background or border. */
footer.site-footer .footer-wrap p .footer-company-link{
  display:inline;
  margin-left:4px;
  padding:0;
  border:0;
  border-radius:0;
  background:transparent;
  box-shadow:none;
  color:#efdfb5;
  font:700 12px/1.85 "Noto Sans JP",sans-serif;
  text-decoration:underline;
  text-decoration-thickness:1.5px;
  text-decoration-color:currentColor;
  text-underline-offset:4px;
  transition:color .16s ease;
}
footer.site-footer .footer-wrap p .footer-company-link::after{
  content:" ↗";
  font-size:12px;
  font-weight:700;
}
footer.site-footer .footer-wrap p .footer-company-link:hover{
  color:#fffefa;
  text-decoration-color:currentColor;
}
footer.site-footer .footer-wrap p .footer-company-link:focus-visible{
  color:#fffefa;
  outline:2px solid #fffefa;
  outline-offset:4px;
}
footer.site-footer .footer-links{
  display:flex;
  justify-content:flex-end;
  align-items:flex-start;
  flex-wrap:wrap;
  gap:24px 28px;
  max-width:680px;
  padding-top:4px;
  color:#dbe7dc;
  font:500 12px/1.9 "Noto Sans JP",sans-serif;
}
footer.site-footer .footer-links .footer-group{
  display:flex;
  flex:0 1 auto;
  flex-direction:column;
  align-items:flex-start;
  min-width:142px;
  gap:6px;
}
/* Service kinds are visible across desktop and mobile, not just in link titles. */
footer.site-footer .footer-links .footer-group--services{
  min-width:220px;
}
footer.site-footer .footer-links .footer-service-link{
  display:flex;
  align-items:center;
  min-width:0;
  padding:6px 10px;
  border:1px solid rgba(235,243,229,.17);
  border-radius:9px;
  background:rgba(255,255,255,.045);
  text-decoration:none;
}
footer.site-footer .footer-links .footer-service-link:hover,
footer.site-footer .footer-links .footer-service-link:focus-visible{
  border-color:#d6c495;
  background:rgba(255,255,255,.095);
}
footer.site-footer .footer-links .footer-service-content{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:1px;
  min-width:0;
}
footer.site-footer .footer-links .footer-service-type{
  display:block;
  color:#ead6a9;
  font-size:10.5px;
  font-weight:700;
  letter-spacing:.055em;
}
footer.site-footer .footer-links .footer-service-name{
  display:block;
  color:#f7fbf3;
  font-size:12px;
  line-height:1.75;
  font-weight:600;
}
footer.site-footer .footer-links .footer-group-heading{
  display:block;
  margin:0 0 3px;
  color:#f4e6c6;
  font-weight:700;
  font-size:12px;
  letter-spacing:.035em;
}
footer.site-footer .footer-links a{
  color:inherit;
  text-decoration:none;
  border-bottom:1px solid transparent;
  transition:color .18s ease,border-color .18s ease;
}
footer.site-footer .footer-links a:hover,
footer.site-footer .footer-links a:focus-visible{
  color:#fffefa;
  border-bottom-color:#cdbb92;
  text-decoration:none;
}
footer.site-footer .footer-links a:focus-visible{
  outline:2px solid #d0e0cb;
  outline-offset:4px;
}
footer.site-footer .unified-footer-bottom{
  display:flex;
  justify-content:space-between;
  flex-wrap:wrap;
  gap:6px 18px;
  width:min(1130px,calc(100% - 48px));
  margin:28px auto 0;
  padding:17px 0 0;
  border-top:1px solid rgba(232,236,224,.16);
  color:#b4c6b4;
  font:400 10.5px/1.8 "Noto Sans JP",sans-serif;
  letter-spacing:.01em;
}
@media(max-width:780px){
  footer.site-footer{margin-top:27px;padding:34px 0 23px}
  footer.site-footer .footer-wrap{
    flex-direction:column;
    gap:19px;
    width:min(1130px,calc(100% - 36px));
  }
  footer.site-footer .footer-links{
    justify-content:flex-start;
    gap:9px 21px;
    padding-top:0;
  }
  footer.site-footer .unified-footer-bottom{
    width:min(1130px,calc(100% - 36px));
    margin-top:24px;
  }
}
@media(max-width:430px){
  footer.site-footer .footer-wrap strong{font-size:20px}
  footer.site-footer .footer-links{gap:8px 16px;font-size:11.5px}
}
/* MOBILE FOOTER SECTIONS - STEP38
   Links first, company signature last; clear groups without oversized cards. */
@media(max-width:780px){
  footer.site-footer{
    padding-top:30px;
    padding-bottom:22px;
  }
  footer.site-footer .footer-wrap{
    flex-direction:column;
    align-items:stretch;
    gap:0;
  }
  footer.site-footer .footer-links{
    order:1;
    display:grid;
    grid-template-columns:minmax(0,1fr);
    justify-content:stretch;
    width:100%;
    max-width:none;
    gap:0;
    padding:0;
  }
  footer.site-footer .footer-links .footer-group{
    width:100%;
    min-width:0;
    padding:0 0 16px;
    margin:0 0 21px;
    border-bottom:1px solid rgba(237,242,233,.22);
    align-items:stretch;
    gap:0;
  }
  footer.site-footer .footer-links .footer-group:last-child{
    border-bottom:0;
    margin-bottom:4px;
    padding-bottom:0;
  }
  footer.site-footer .footer-links .footer-group-heading{
    font-size:14px;
    line-height:1.7;
    padding:0 0 0 11px;
    margin:0 0 9px;
    border-left:3px solid #d4c398;
    color:#f9edce;
  }
  footer.site-footer .footer-links a{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
    width:100%;
    min-height:42px;
    padding:9px 2px 9px 0;
    border-bottom:1px solid rgba(237,242,233,.09);
    color:#e4eee4;
    font-size:14px;
    font-weight:500;
    line-height:1.6;
    overflow-wrap:anywhere;
  }
  footer.site-footer .footer-links .footer-group a:last-child{
    border-bottom:0;
  }
  footer.site-footer .footer-links a::after{
    content:"›";
    flex:0 0 auto;
    color:#bdcfc2;
    font-size:20px;
    line-height:1;
  }
  footer.site-footer .footer-wrap > div:first-child{
    order:2;
    width:100%;
    max-width:none;
    margin-top:20px;
    padding-top:24px;
    border-top:1px solid rgba(237,242,233,.27);
    text-align:center;
  }
  footer.site-footer .footer-wrap > div:first-child strong{
    font-size:21px;
  }
  footer.site-footer .footer-wrap > div:first-child p{
    margin-top:7px;
    font-size:12px;
    line-height:1.75;
  }
  footer.site-footer .footer-wrap > div:first-child p:last-child{
    margin-top:10px;
  }
  footer.site-footer .unified-footer-bottom{
    justify-content:center;
    text-align:center;
    margin-top:14px;
    padding-top:10px;
    border-top:0;
  }
}

@media(max-width:780px){
  footer.site-footer .footer-links .footer-group--services{
    min-width:0;
  }
  footer.site-footer .footer-links .footer-service-link{
    display:flex;
    justify-content:space-between;
    min-height:72px;
    margin:0 0 10px;
    padding:12px 14px;
    border:1px solid rgba(239,243,232,.23);
    border-radius:12px;
    background:rgba(255,255,255,.075);
    gap:14px;
  }
  footer.site-footer .footer-links .footer-group .footer-service-link:last-child{
    border-bottom:1px solid rgba(239,243,232,.23);
  }
  footer.site-footer .footer-links .footer-service-type{
    font-size:11px;
  }
  footer.site-footer .footer-links .footer-service-name{
    font-size:14px;
    line-height:1.55;
  }
}

@media(prefers-reduced-motion:reduce){
  footer.site-footer .footer-links a{transition:none}
}


/* STEP40: Consistent mobile hierarchy on every page (no JS-dependent appearance). */
@media (max-width:780px){
  footer.site-footer .footer-wrap {
    display:flex;
    flex-direction:column;
    align-items:stretch;
  }
  footer.site-footer .footer-links {
    order:1;
    display:grid;
    grid-template-columns:minmax(0,1fr);
    width:100%;
    gap:0;
  }
  footer.site-footer .footer-links .footer-group {
    box-sizing:border-box;
    display:flex;
    flex-direction:column;
    width:100%;
    min-width:0;
    margin:0 0 14px;
    padding:16px 15px 12px;
    border:1px solid rgba(237,242,233,.20);
    border-radius:13px;
    background:rgba(255,255,255,.045);
  }
  footer.site-footer .footer-links .footer-group:last-child{
    margin-bottom:0;
    padding-bottom:12px;
    border:1px solid rgba(237,242,233,.20);
  }
  footer.site-footer .footer-links .footer-group-heading{
    display:block;
    font-size:14px;
    line-height:1.65;
    font-weight:700;
    margin:0 0 10px;
    padding-left:11px;
    border-left:3px solid #ddc99c;
    color:#fff1ca;
  }
  footer.site-footer .footer-links .footer-service-link{
    min-height:70px;
    margin:0 0 9px;
    padding:11px 12px;
    border:1px solid rgba(245,248,236,.23);
    border-radius:10px;
    background:rgba(255,255,255,.08);
  }
  footer.site-footer .footer-links .footer-group .footer-service-link:last-child{
    margin-bottom:2px;
    border-bottom:1px solid rgba(245,248,236,.23);
  }
  footer.site-footer .footer-links .footer-service-type{
    font-size:11px;
    color:#ebd8ac;
  }
  footer.site-footer .footer-links .footer-service-name{
    font-size:14px;
    line-height:1.6;
  }
  footer.site-footer .footer-wrap>.footer-brand{
    order:2;
    box-sizing:border-box;
    max-width:none;
    width:100%;
    padding:23px 4px 0;
    margin:22px 0 0;
    border-top:1px solid rgba(237,242,233,.28);
    text-align:center;
  }
  footer.site-footer .footer-wrap>.footer-brand strong{
    font-size:21px;
  }
  footer.site-footer .unified-footer-bottom{
    justify-content:center;
    text-align:center;
    margin-top:14px;
  }
}

