
/* REHEART portal sections — service catalogue, discovery, and editorial topics */
.portal-section {position:relative;padding:86px 0 92px;border-bottom:1px solid rgba(116,132,114,.18)}
.portal-section::before{content:"";position:absolute;top:0;left:0;width:118px;height:1px;background:linear-gradient(90deg,#b8a27b,transparent)}
.portal-heading{display:flex;align-items:end;justify-content:space-between;gap:30px;margin-bottom:33px}
.portal-heading .portal-kicker{font:600 14px/1.4 var(--font-english,Georgia,serif);letter-spacing:.19em;color:#a08a62}
.portal-heading h2{margin:10px 0 9px;font:500 clamp(27px,3vw,39px)/1.55 var(--font-heading,serif);color:#294c3a;letter-spacing:.04em}
.portal-heading p{font-size:13px;line-height:2;color:#67786b;margin:0}
.portal-side-note{font-size:12px;line-height:1.95;color:#7a897d;max-width:265px;margin:0 0 3px}
/* Two clear service categories — counseling first, listening second. */
.service-catalogue{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:clamp(17px,2.5vw,29px);
}
.catalog-card{
  position:relative;
  display:flex;
  flex-direction:column;
  min-width:0;
  overflow:hidden;
  background:#fffefa;
  border:1px solid #d9e2d7;
  border-radius:21px;
  box-shadow:0 16px 38px rgba(35,61,43,.055);
  transition:transform .22s ease,box-shadow .22s ease,border-color .22s ease;
}
.catalog-card:hover{
  transform:translateY(-4px);
  border-color:#aec6b3;
  box-shadow:0 22px 45px rgba(35,61,43,.11);
}
.catalog-art{
  position:relative;
  height:210px;
  padding:30px clamp(24px,3vw,34px);
  overflow:hidden;
  isolation:isolate;
  display:flex;
  align-items:flex-start;
  background:linear-gradient(122deg,#f0efe4,#e2ebe0);
}
.catalog-art::before{
  content:"";
  position:absolute;
  z-index:-1;
  right:-40px;
  top:-79px;
  width:275px;
  height:275px;
  border-radius:47% 53% 66% 34%;
  transform:rotate(-16deg);
  border:1.5px solid rgba(255,255,255,.58);
  background:rgba(255,255,255,.075);
  box-shadow:0 0 0 28px rgba(255,255,255,.045),0 0 0 58px rgba(255,255,255,.025);
}
.catalog-art::after{
  content:"";
  position:absolute;
  z-index:-1;
  width:136px;
  height:108px;
  right:57px;
  bottom:-43px;
  border:2px solid rgba(255,255,255,.3);
  border-radius:56% 44% 35% 65%;
  transform:rotate(25deg);
}
.catalog-art__content{position:relative;z-index:1;max-width:80%;display:flex;flex-direction:column;align-items:flex-start}
.catalog-art .brand-kicker{
  font:600 11px/1.5 var(--font-english,Georgia,serif);
  letter-spacing:.18em;
  color:#9c8865;
}
.catalog-art .catalog-monogram{
  position:relative;
  display:block;
  margin-top:17px;
  font:500 clamp(28px,3.2vw,39px)/1.5 var(--font-heading,serif);
  letter-spacing:.04em;
  color:#2a4a3a;
  text-wrap:balance;
}
.catalog-art__caption{
  display:block;
  margin-top:11px;
  font-size:12px;
  line-height:1.85;
  letter-spacing:.025em;
  color:#596f5f;
}
.catalog-card.reheart .catalog-art{
  background:radial-gradient(circle at 96% 5%,rgba(212,188,135,.17),transparent 46%),linear-gradient(115deg,#204636 0%,#295d49 53%,#477e61 100%);
}
.catalog-card.reheart .catalog-art::before{border-color:rgba(229,233,209,.22);background:rgba(213,230,214,.07);box-shadow:0 0 0 28px rgba(243,241,213,.055),0 0 0 58px rgba(243,241,213,.025)}
.catalog-card.reheart .catalog-art::after{border-color:rgba(244,244,222,.24)}
.catalog-card.reheart .brand-kicker{color:#decda7}
.catalog-card.reheart .catalog-monogram{color:#fffef5}
.catalog-card.reheart .catalog-art__caption{color:#e0ede1}
.catalog-card.kokoyori .catalog-art{
  background:radial-gradient(circle at 93% 6%,rgba(255,255,255,.7),transparent 44%),linear-gradient(115deg,#f0d5db 0%,#f7e5e7 53%,#fcf3ef 100%);
}
.catalog-card.kokoyori .catalog-art::before{border-color:rgba(186,120,133,.26);background:rgba(255,255,255,.24);box-shadow:0 0 0 28px rgba(186,120,133,.07),0 0 0 58px rgba(186,120,133,.035)}
.catalog-card.kokoyori .catalog-art::after{border-color:rgba(186,120,133,.24)}

/* Service identity lives in the art, accents, and CTA; layout stays unified. */
.catalog-card.reheart{border-color:#cfe0d3;background:linear-gradient(180deg,#fcfefb,#fffefa)}
.catalog-card.kokoyori{border-color:#ebd7db;background:linear-gradient(180deg,#fffafa,#fffefa)}
.catalog-card.reheart:hover{border-color:#91b5a0;box-shadow:0 22px 45px rgba(41,93,73,.12)}
.catalog-card.kokoyori:hover{border-color:#d3a2ad;box-shadow:0 22px 45px rgba(158,92,107,.12)}
.catalog-card.reheart .catalog-body{background:linear-gradient(180deg,#fcfefb,#fffefa)}
.catalog-card.kokoyori .catalog-body{background:linear-gradient(180deg,#fffafa,#fffefa)}
.catalog-card.reheart .catalog-eyebrow{color:#386c52}
.catalog-card.reheart .catalog-eyebrow::before{background:#84aa8c}
.catalog-card.reheart .catalog-body h3{color:#234c3b}
.catalog-card.kokoyori .brand-kicker{color:#875362}
.catalog-card.kokoyori .catalog-monogram{color:#874a5b}
.catalog-card.kokoyori .catalog-art__caption{color:#765761}
.catalog-card.kokoyori .catalog-eyebrow{color:#9e5c6b}
.catalog-card.kokoyori .catalog-eyebrow::before{background:#ba7885}
.catalog-card.kokoyori .catalog-body h3{color:#754758}
.catalog-card.kokoyori .catalog-desc{color:#6d5a5e}
.catalog-card.kokoyori .catalog-foot{border-top-color:#f0e3e3}
.catalog-card.kokoyori .catalog-foot small{color:#826f73}

.catalog-body{
  padding:29px clamp(24px,2.75vw,33px) 29px;
  display:flex;
  flex-direction:column;
  flex:1;
}
.catalog-eyebrow{
  display:flex;
  align-items:center;
  gap:9px;
  font:600 10px/1.5 var(--font-english,Georgia,serif);
  color:#a18a65;
  letter-spacing:.16em;
}
.catalog-eyebrow::before{content:"";display:inline-block;width:19px;height:1px;background:#b4a078;flex-shrink:0}
.catalog-body h3{
  font:500 clamp(21px,2.25vw,26px)/1.65 var(--font-heading,serif);
  color:#294c3a;
  margin:11px 0 11px;
}
.catalog-desc{font-size:13px;line-height:2.05;color:#63776a;margin:0 0 19px;min-height:80px}
.catalog-tags{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 26px}
.catalog-tags span{
  display:inline-block;
  padding:6px 10px;
  border:1px solid #dce6d9;
  border-radius:999px;
  background:#f3f7f0;
  color:#53745d;
  font-size:11px;
  line-height:1.4;
}
.catalog-card.kokoyori .catalog-tags span{background:#fcf2f3;border-color:#ebd5d9;color:#89525f}
.catalog-foot{
  border-top:1px solid #e7ebe3;
  padding-top:20px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin-top:auto;
}
.catalog-foot small{font-size:11px;color:#7d8c80;line-height:1.65;max-width:135px}
.catalog-link{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  text-align:center;
  gap:6px;
  min-height:42px;
  padding:10px 18px;
  border:1px solid #295d49;
  border-radius:999px;
  background:#295d49;
  color:#fffefa;
  font-size:12px;
  font-weight:700;
  line-height:1.5;
  text-decoration:none;
  white-space:nowrap;
  transition:background .18s ease,color .18s ease,border-color .18s ease;
}
.catalog-link:hover,.catalog-link:focus-visible{background:#183d31;border-color:#183d31;color:#fffefa;text-decoration:none}
.catalog-card.kokoyori .catalog-link{background:#9e5c6b;color:#fffefa;border-color:#9e5c6b}
.catalog-card.kokoyori .catalog-link:hover,.catalog-card.kokoyori .catalog-link:focus-visible{background:#854b59;border-color:#854b59;color:#fffefa}
.catalog-link:focus-visible{outline:3px solid #b7ae82;outline-offset:3px}
.catalog-helper{
  display:flex;
  align-items:center;
  justify-content:space-between;
  flex-wrap:wrap;
  gap:12px 20px;
  margin:22px 0 0;
  padding:20px 23px;
  background:#f5f7f1;
  border:1px solid #e0e7dc;
  border-radius:13px;
  font-size:12px;
  line-height:1.85;
  color:#56715d;
}
.catalog-helper p{margin:0;color:inherit;font-size:12px;line-height:1.9}
.catalog-helper strong{color:#34533e;font-weight:700}
.catalog-helper a{color:#2b5b40;text-decoration:underline;text-underline-offset:4px;font-size:12px;font-weight:700;white-space:nowrap}
.catalog-helper a:hover{color:#1d402b}
.portal-finder{background:linear-gradient(145deg,rgba(239,242,234,.88),rgba(249,248,242,.95));border-radius:22px;border:1px solid rgba(210,219,208,.9);padding:31px clamp(19px,3.4vw,44px) 37px;box-shadow:inset 0 1px 0 rgba(255,255,255,.65)}
.finder-tabs{display:flex;gap:8px;flex-wrap:wrap;padding:5px;border-radius:14px;background:rgba(255,254,251,.8);border:1px solid #e1e6dc;max-width:max-content}
.finder-tab{border:0;border-radius:10px;background:transparent;color:#62786a;padding:12px 21px;font-size:12px;font-weight:600;cursor:pointer}
.finder-tab[aria-selected=true]{color:#fff;background:#335b45;box-shadow:0 4px 15px #32574424}
.finder-panel{margin-top:26px}
.finder-panel[hidden]{display:none}
.finder-prompt{font:500 19px/1.7 var(--font-heading,serif);color:#30503e;margin:0 0 16px}
.finder-options{display:flex;gap:10px;flex-wrap:wrap}
.finder-option{border:1px solid #d8dfd2;border-radius:999px;background:rgba(255,255,253,.91);color:#465f50;padding:11px 17px;font:500 12px/1.5 var(--font-body,sans-serif);cursor:pointer;transition:background .2s,border-color .2s,transform .2s}
.finder-option:hover{border-color:#97ad98;transform:translateY(-2px)}
.finder-option[aria-pressed=true]{background:#335b45;color:#fff;border-color:#335b45}
.finder-results{margin-top:27px;border-top:1px solid #d8dfd4;padding-top:23px}
.finder-results-head{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:15px}
.finder-results-head strong{font-size:13px;color:#365843}
.finder-reset{border:0;background:transparent;color:#587b65;text-decoration:underline;text-underline-offset:4px;font:600 12px/1.5 var(--font-body,sans-serif);cursor:pointer}
.finder-matches{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.finder-match{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:17px 19px;border-radius:12px;background:#fffefa;border:1px solid #dfe6dc;color:#305041;transition:border-color .2s}
.finder-match:hover{border-color:#9bb6a3}
.finder-match[hidden]{display:none}
.finder-match strong{display:block;font-size:14px;margin-bottom:5px}
.finder-match small{font-size:11px;line-height:1.75;color:#7b897d}
.finder-match .arrow{font:26px/1 Georgia,serif;color:#97ad9c}
.finder-disclaimer{margin:15px 0 0;font-size:11px;line-height:1.9;color:#7f8c7f}
.portal-journal-hint{font-size:12px;line-height:1.9;color:#6c8070;margin-top:22px}
@media(max-width:1080px){
  .portal-side-note{display:none}
  .service-catalogue{gap:17px}
  .catalog-body{padding:24px}
  .catalog-foot{align-items:flex-start;flex-wrap:wrap}
  .catalog-desc{min-height:0}
}
@media(max-width:770px){
  .portal-section{padding:68px 0 72px}
  .service-catalogue{grid-template-columns:1fr;gap:19px}
  .catalog-card{display:grid;grid-template-columns:minmax(210px,39%) minmax(0,1fr)}
  .catalog-art{height:100%;min-height:285px;display:flex;align-items:center;padding:27px}
  .catalog-art__content{max-width:100%}
  .catalog-art .catalog-monogram{font-size:clamp(25px,3.7vw,33px)}
  .catalog-body{padding:25px}
  .catalog-desc{min-height:0}
  .finder-tabs{display:grid;grid-template-columns:repeat(3,1fr);width:100%;max-width:none;gap:3px}
  .finder-tab{padding:11px 6px;font-size:11px}
  .finder-matches{grid-template-columns:1fr}
}
@media(max-width:480px){
  .portal-section{padding:58px 0 63px}
  .portal-heading{margin-bottom:23px}
  .catalog-card{display:flex;border-radius:18px}
  .catalog-art{min-height:0;height:166px;align-items:flex-start;padding:22px 23px}
  .catalog-art__content{max-width:92%}
  .catalog-art .catalog-monogram{font-size:29px;margin-top:12px}
  .catalog-art__caption{font-size:11px;margin-top:6px}
  .catalog-body{padding:24px 22px}
  .catalog-body h3{font-size:22px}
  .catalog-desc{font-size:12px;margin-bottom:18px}
  .catalog-tags{margin-bottom:22px}
  .catalog-foot{align-items:flex-start;flex-direction:column;gap:12px}
  .catalog-foot small{max-width:none}
  .catalog-link{width:100%}
  .catalog-helper{align-items:flex-start;padding:18px 19px}
  .portal-finder{padding:19px 15px 24px;border-radius:17px}
  .finder-prompt{font-size:17px}
  .finder-option{padding:10px 13px;font-size:11px}
}
@media(prefers-reduced-motion:reduce){
  .catalog-card,.catalog-link,.finder-option,.finder-match{transition:none!important;transform:none!important}
}


/* REHEART LISTENING PHILOSOPHY — brand promise before service selection. */
.portal-listening-philosophy{
  display:grid;
  grid-template-columns:minmax(0,1.42fr) minmax(250px,.74fr);
  align-items:center;
  gap:clamp(22px,3.4vw,50px);
  position:relative;
  overflow:hidden;
  isolation:isolate;
  margin:37px 0 16px;
  padding:clamp(30px,4.2vw,54px);
  border:1px solid #dee4d9;
  border-radius:22px;
  background:linear-gradient(119deg,#fffefa 0%,#f7f7f1 66%,#edf2e9 100%);
  box-shadow:0 18px 42px rgba(41,64,46,.045);
}
.portal-listening-philosophy::before{
  content:"";
  position:absolute;
  left:clamp(30px,4.2vw,54px);
  top:0;
  height:2px;
  width:84px;
  background:linear-gradient(90deg,#a9946c,#d4c8ab,transparent);
}
.listening-philosophy__copy{position:relative;z-index:1;min-width:0}
.listening-philosophy__eyebrow{
  display:inline-block;
  margin:0 0 12px;
  color:#997f5a;
  font:600 11px/1.5 Georgia,serif;
  letter-spacing:.17em;
}
.listening-philosophy__copy h2{
  margin:0 0 16px;
  color:#2a4a39;
  font:500 clamp(25px,3vw,37px)/1.65 var(--font-heading,"Shippori Mincho",serif);
  letter-spacing:.04em;
  text-wrap:pretty;
}
.listening-philosophy__lead{
  margin:0 0 13px;
  color:#385341;
  font:500 clamp(14px,1.4vw,16px)/1.95 var(--font-body,"Noto Sans JP",sans-serif);
}
.listening-philosophy__lead strong{
  color:#264b36;
  font-weight:700;
  background:linear-gradient(transparent 70%,rgba(194,174,127,.25) 70%);
}
.listening-philosophy__description{
  margin:0 0 23px;
  max-width:720px;
  font:400 13px/2.05 var(--font-body,"Noto Sans JP",sans-serif);
  color:#64776a;
}
.listening-philosophy__link{
  display:inline-flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  max-width:100%;
  padding:12px 18px;
  border:1px solid #355f45;
  border-radius:999px;
  color:#fffefa;
  background:#355b45;
  font:600 12px/1.65 var(--font-body,"Noto Sans JP",sans-serif);
  text-decoration:none;
  transition:background .2s ease,transform .2s ease;
}
.listening-philosophy__link:hover{
  background:#264834;
  color:#fff;
  transform:translateY(-2px);
}
.listening-philosophy__link:focus-visible{outline:3px solid #a1b9a5;outline-offset:3px}
.listening-philosophy__link span{font-size:16px;font-weight:400;line-height:1}
.listening-philosophy__source{
  margin:11px 0 0;
  color:#829083;
  font:400 11px/1.8 var(--font-body,"Noto Sans JP",sans-serif);
}
.listening-philosophy__message{
  display:flex;
  flex-direction:column;
  justify-content:center;
  min-height:248px;
  padding:30px clamp(21px,2.8vw,35px);
  border:1px solid rgba(155,173,152,.5);
  border-radius:15px;
  background:radial-gradient(circle at 96% 2%,rgba(230,211,172,.28),transparent 62%),linear-gradient(145deg,#f0f4ec,#e8eee5);
  color:#385847;
}
.listening-philosophy__mark{
  color:#8e825f;
  font:600 10px/1.5 Georgia,serif;
  letter-spacing:.18em;
}
.listening-philosophy__message p{
  margin:24px 0;
  font:500 clamp(21px,2.1vw,29px)/1.85 var(--font-heading,"Shippori Mincho",serif);
  letter-spacing:.065em;
  color:#305441;
}
.listening-philosophy__rule{
  display:block;
  width:47px;
  height:1px;
  margin:0 0 14px;
  background:#b6a47e;
}
.listening-philosophy__small{
  font:400 11px/1.9 var(--font-body,"Noto Sans JP",sans-serif);
  color:#718574;
}
@media(max-width:850px){
  .portal-listening-philosophy{
    grid-template-columns:1fr;
    gap:24px;
    padding:32px;
  }
  .portal-listening-philosophy::before{left:32px}
  .listening-philosophy__message{min-height:auto;padding:22px 25px}
  .listening-philosophy__message p{font-size:23px;margin:14px 0}
}
@media(max-width:520px){
  .portal-listening-philosophy{
    margin:21px 0 5px;
    padding:25px 19px 22px;
    border-radius:16px;
    gap:20px;
  }
  .portal-listening-philosophy::before{left:19px}
  .listening-philosophy__eyebrow{font-size:10px}
  .listening-philosophy__copy h2{font-size:25px;line-height:1.64}
  .listening-philosophy__lead{font-size:14px}
  .listening-philosophy__description{font-size:12px;line-height:2.05}
  .listening-philosophy__link{width:100%;justify-content:center;min-height:45px}
  .listening-philosophy__source{font-size:10px}
  .listening-philosophy__message{padding:18px 21px;border-radius:12px}
  .listening-philosophy__message p{font-size:21px}
}
@media(prefers-reduced-motion:reduce){
  .listening-philosophy__link{transition:none}
  .listening-philosophy__link:hover{transform:none}
}
