/* NARM / Approach page
   Page-specific layout only. Shared typography, buttons, header, footer,
   FAQ, containers and accessibility come from john-lack-global.css. */

/* Match the canonical relationship-page typography scale. */
.narm-hero h1{font-size:clamp(3.1rem,7vw,6.4rem);margin:0 0 20px;}
main h2{font-size:clamp(2.2rem,4.3vw,4.3rem);margin:0 0 20px;}
main h3{font-size:clamp(1.35rem,2vw,1.75rem);margin:0 0 20px;}

.narm-hero{
  background:var(--bg);
  padding:74px 0 80px;
  overflow:hidden;
}
.narm-hero-grid{
  display:grid;
  grid-template-columns:1.08fr .92fr;
  gap:70px;
  align-items:center;
}
.narm-hero-copy .lead{
  font-size:clamp(1.16rem,1.8vw,1.45rem);
  max-width:710px;
  color:#47544e;
}
.hero-actions{
  display:flex;
  gap:12px;
  flex-wrap:wrap;
  margin-top:30px;
}
.narm-hero-media{
  position:relative;
  min-height:640px;
}
.narm-hero-media:before{
  content:"";
  position:absolute;
  inset:4% -10% 10% 10%;
  border-radius:46% 54% 48% 52% / 50% 44% 56% 50%;
  background:var(--blue);
}
.narm-hero-media img{
  position:absolute;
  inset:0 0 0 auto;
  width:92%;
  height:100%;
  object-fit:cover;
  border-radius:40% 40% 36% 36% / 27% 27% 44% 44%;
  box-shadow:var(--shadow);
}

.intro-band{
  padding:34px 0;
  background:#fff;
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
}
.intro-quote{
  max-width:900px;
  margin:0 auto;
  text-align:center;
  padding:6px 0;
}
.intro-quote p{
  margin:0;
  font-family:"Montserrat",sans-serif;
  font-size:clamp(1.12rem,2vw,1.42rem);
  line-height:1.5;
  letter-spacing:-.015em;
  color:var(--ink);
}
.intro-quote cite{
  display:block;
  margin-top:14px;
  font-style:normal;
  color:var(--muted);
  font-size:.9rem;
}

.section-intro{
  max-width:720px;
  margin-bottom:38px;
}
.section-intro p{color:var(--muted)}

.narm-fit{background:#fbfaf6}
.fit-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:14px;
}
.fit-item{
  padding:18px 20px;
  border:1px solid var(--line);
  border-radius:18px;
  background:var(--bg);
  font-size:.96rem;
  line-height:1.4;
}

.narm-difference-card{
  max-width:920px;
  margin:36px auto 0;
  padding:30px;
  border:1px solid var(--line);
  border-radius:var(--radius);
  background:var(--paper);
}
.difference-list{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:12px;
  margin-top:26px;
}
.difference-item{
  padding:17px 18px;
  border-radius:18px;
  border:1px solid var(--line);
  background:var(--bg);
  font-size:.96rem;
  line-height:1.45;
}

.adaptation{background:#eef1ec}

.session-section{background:#fff}
.session-grid{
  display:grid;
  grid-template-columns:.85fr 1.15fr;
  gap:72px;
  align-items:start;
}
.sticky{position:sticky;top:118px}
.session-steps{display:grid;gap:14px}
.session-step{
  display:grid;
  grid-template-columns:48px 1fr;
  gap:16px;
  align-items:start;
  padding:18px 0;
  border-bottom:1px solid var(--line);
}
.session-step:last-child{border-bottom:0}
.session-step > span{
  width:42px;
  height:42px;
  border-radius:999px;
  background:#d8e1d4;
  color:#44544b;
  display:flex;
  align-items:center;
  justify-content:center;
  font-family:"Montserrat",sans-serif;
  font-size:.82rem;
}
.session-step h3{margin:0 0 6px}
.session-step p{margin:0;color:var(--muted);font-size:.96rem}

.elements-shell{margin-top:10px}
.elements-track{
  display:flex;
  gap:18px;
  overflow-x:auto;
  scroll-snap-type:x mandatory;
  scrollbar-width:none;
  scroll-behavior:smooth;
  padding-bottom:8px;
}
.elements-track::-webkit-scrollbar{display:none}
.element-card{
  flex:0 0 calc(25% - 14px);
  min-height:220px;
  scroll-snap-align:start;
  border:1px solid var(--line);
  background:var(--paper);
  border-radius:22px;
  padding:26px;
}
.element-heading{
  display:flex;
  align-items:center;
  gap:12px;
  margin-bottom:20px;
}
.element-heading h3{margin:0}
.element-number{
  display:inline-flex;
  width:44px;
  height:44px;
  align-items:center;
  justify-content:center;
  border-radius:999px;
  background:#d8e1d4;
  color:#44544b;
  font-family:"Montserrat",sans-serif;
  font-size:.84rem;
  margin:0;
  flex:0 0 auto;
}
.element-card p{color:var(--muted);font-size:.95rem}

.slider-controls{
  display:flex;
  align-items:center;
  justify-content:space-between;
  margin-top:18px;
}
.slider-buttons{display:flex;gap:10px}
.slider-btn{
  width:44px;
  height:44px;
  border-radius:999px;
  border:1px solid var(--line);
  background:var(--paper);
  color:var(--ink);
  font-size:1.15rem;
  cursor:pointer;
  transition:.2s ease;
}
.slider-btn:hover{
  transform:translateY(-2px);
  box-shadow:0 8px 18px rgba(36,48,43,.08);
}
.slider-hint{font-size:.86rem;color:var(--muted)}

.narm{
  background:#26332e;
  color:#edf0ed;
}
.narm .eyebrow{color:#bbc9bd}
.narm p{color:#cfd6d1}
.narm-grid{
  display:grid;
  grid-template-columns:1fr .92fr;
  gap:80px;
  align-items:center;
}
.narm-image img{
  border-radius:var(--radius);
  min-height:560px;
  object-fit:cover;
}
.narm a.text-link{color:#fff}
.narm a.text-link:hover{text-decoration:none}

.legal-note{
  margin-top:26px;
  padding:18px 20px;
  border-radius:16px;
  background:var(--bg);
  border:1px solid var(--line);
  color:var(--muted);
  font-size:.9rem;
}

.narm-cta{
  background:var(--sage);
  padding:78px 0;
}
.narm-cta-inner{
  display:grid;
  grid-template-columns:1.2fr .8fr;
  gap:50px;
  align-items:end;
}
.narm-cta p{max-width:680px}

@media(max-width:900px){
  .narm-hero-grid,.session-grid,.narm-grid,.narm-cta-inner{
    grid-template-columns:1fr;
  }
  .narm-hero-grid{
    display:flex;
    flex-direction:column;
  }
  .narm-hero-copy{order:1}
  .narm-hero-media{order:2;width:100%;min-height:520px}
  body{font-size:17px}
  .section{padding:80px 0}
  .difference-list{grid-template-columns:1fr}
  .fit-grid{grid-template-columns:1fr 1fr}
  .element-card{flex-basis:48%}
  .sticky{position:static}
}

@media(max-width:600px){
  .narm-hero{padding:46px 0 80px}
  .narm-hero h1{font-size:3.15rem}
  main h2{font-size:2.45rem}
  .narm-hero-media{min-height:420px}
  .fit-grid{grid-template-columns:1fr}
  .element-card{flex-basis:86%;min-height:auto}
  .narm-difference-card{padding:24px}
  .slider-controls{align-items:flex-end}
}
