/* Kinn Psykisk Helse — delt stylesheet for alle sider */

:root{
  --bg:#FFFFFF;
  --paper:#FAF7FB;
  --purple-deep:#3A1D57;
  --purple:#6B2E8F;
  --magenta:#AD2E8C;
  --pink:#E863A8;
  --pink-soft:#F8E9F2;
  --ink:#241934;
  --ink-soft:#655C72;
  --line:#ECE6F0;
  --max-w:1120px;
  --shadow:0 10px 30px rgba(58,29,87,0.07);
  --shadow-lg:0 24px 50px rgba(58,29,87,0.1);
  --radius:20px;
}
*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto;}
  *{animation-duration:.001ms!important; transition-duration:.001ms!important;}
}
body{
  margin:0; background:var(--bg); color:var(--ink);
  font-family:'Manrope',sans-serif; line-height:1.65; -webkit-font-smoothing:antialiased;
}
h1,h2,h3{font-family:'Fraunces',serif; margin:0; color:var(--ink); letter-spacing:-0.01em; font-weight:500;}
a{color:inherit; text-decoration:none;}
img{display:block; max-width:100%;}
.wrap{max-width:var(--max-w); margin:0 auto; padding:0 28px;}
.eyebrow{
  font-size:0.72rem; letter-spacing:0.14em; text-transform:uppercase; font-weight:700;
  color:var(--magenta); margin-bottom:14px; display:inline-block;
}
section{padding:88px 0;}
.skip{position:absolute; left:-999px; top:auto; background:var(--purple-deep); color:#fff; padding:12px 18px; border-radius:8px; z-index:200;}
.skip:focus{left:16px; top:16px;}

/* Header */
header{padding:20px 0; position:sticky; top:0; background:rgba(255,255,255,0.95); backdrop-filter:blur(8px); z-index:50; border-bottom:1px solid var(--line); box-shadow:0 1px 0 0 var(--pink-soft);}
header .wrap{display:flex; align-items:center; justify-content:space-between; gap:20px;}
.logo{display:flex; align-items:center; gap:10px;}
.logo img{height:34px; width:auto;}
.logo-text{display:flex; flex-direction:column; line-height:1.1;}
.logo-text strong{font-family:'Fraunces',serif; font-size:1.05rem; color:var(--ink);}
.logo-text span{font-size:0.58rem; letter-spacing:0.14em; text-transform:uppercase; color:var(--ink-soft);}
nav.mainnav{display:flex; gap:28px;}
nav.mainnav a{font-size:0.88rem; font-weight:600; color:var(--ink-soft); transition:color .2s ease;}
nav.mainnav a:hover{color:var(--magenta);}
nav.mainnav a[aria-current="page"]{color:var(--magenta);}
.btn{
  display:inline-flex; align-items:center; gap:8px; padding:11px 20px; border-radius:100px;
  font-size:0.86rem; font-weight:700; border:1.5px solid transparent; cursor:pointer;
  transition:transform .2s ease, background .2s ease, border-color .2s ease;
}
.btn-fill{background:var(--magenta); color:#fff;}
.btn-fill:hover{background:var(--purple-deep); transform:translateY(-1px);}
.btn-line{border-color:var(--line); color:var(--ink);}
.btn-line:hover{border-color:var(--magenta); color:var(--magenta);}
.menu-toggle{display:none; background:none; border:none; font-size:1.5rem; cursor:pointer; color:var(--ink);}

/* Hero (forside) */
.hero{padding:70px 0 0; position:relative; overflow:hidden;}
.hero::before{
  content:''; position:absolute; top:-200px; right:-160px; width:460px; height:460px; border-radius:50%;
  background:radial-gradient(circle, rgba(173,46,140,0.08), rgba(173,46,140,0) 70%); z-index:0;
}
.hero .wrap{position:relative; z-index:1;}
.hero-top{max-width:700px; margin:0 auto; text-align:center;}
.hero h1{font-size:clamp(2.6rem,5.2vw,4rem); line-height:1.06;}
.hero h1 .accent{color:var(--magenta);}
.hero p.lead{margin:24px auto 0; font-size:1.15rem; color:var(--ink-soft); max-width:46ch;}
.hero-ctas{display:flex; gap:12px; margin-top:32px; justify-content:center; flex-wrap:wrap;}

/* Meet-her strip */
.meet-strip{
  margin-top:60px; background:var(--paper); border:1px solid var(--line); border-radius:var(--radius);
  padding:40px 44px; box-shadow:var(--shadow);
}
.meet-grid{display:grid; grid-template-columns:auto 1fr; gap:36px; align-items:center;}
.meet-avatar{
  width:150px; height:150px; border-radius:10px; overflow:hidden; flex-shrink:0;
  border:6px solid #fff; box-shadow:0 14px 30px rgba(58,29,87,0.18); transform:rotate(-3deg);
}
.meet-avatar img{width:100%; height:100%; object-fit:cover; object-position:50% 22%;}
.meet-text p{margin:0; color:var(--ink-soft); font-size:1rem; max-width:60ch;}
.meet-text .name{font-family:'Fraunces',serif; font-size:1.28rem; color:var(--ink); margin-bottom:6px;}
.meet-badges{display:flex; gap:8px; flex-wrap:wrap; margin-top:14px;}
.meet-badge{font-size:0.74rem; font-weight:600; color:var(--magenta); background:#fff; border:1px solid var(--pink-soft); padding:6px 13px; border-radius:100px;}
@media (max-width:640px){ .meet-grid{grid-template-columns:1fr; text-align:center;} .meet-avatar{margin:0 auto; transform:none;} .meet-badges{justify-content:center;} .meet-strip{padding:32px 24px;} }

/* Page hero (innsider) */
.page-hero{padding:56px 0 8px; text-align:center; position:relative; overflow:hidden;}
.page-hero::before{
  content:''; position:absolute; top:-220px; left:50%; transform:translateX(-50%); width:520px; height:420px; border-radius:50%;
  background:radial-gradient(circle, rgba(173,46,140,0.07), rgba(173,46,140,0) 70%); z-index:0;
}
.page-hero .wrap{position:relative; z-index:1;}
.page-hero h1{font-size:clamp(2.2rem,4.4vw,3.2rem); line-height:1.1; max-width:18ch; margin:0 auto;}
.page-hero p.lead{margin:20px auto 0; max-width:54ch; color:var(--ink-soft); font-size:1.08rem;}
.page-hero .hero-ctas{margin-top:28px;}

/* Section head */
.section-head{max-width:600px; margin:0 auto 48px; text-align:center;}
.section-head.left{margin:0 0 40px; text-align:left; max-width:640px;}
.section-head h2{font-size:clamp(1.7rem,2.8vw,2.2rem); line-height:1.2;}
.section-head p{margin-top:14px; color:var(--ink-soft); font-size:1rem;}

/* Slik foregår det — step cards */
.steps-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:20px;}
.step-card{background:#fff; border:1px solid var(--line); border-radius:16px; padding:28px 24px; box-shadow:var(--shadow); transition:transform .25s ease, box-shadow .25s ease;}
.step-card:hover{transform:translateY(-3px); box-shadow:var(--shadow-lg);}
.step-card .step-num{
  width:38px; height:38px; border-radius:50%; background:var(--pink-soft); color:var(--magenta);
  display:flex; align-items:center; justify-content:center; font-family:'Fraunces',serif; font-size:1rem; margin-bottom:16px;
}
.step-card h3{font-size:1.02rem; margin-bottom:6px;}
.step-card p{margin:0; color:var(--ink-soft); font-size:0.88rem;}

/* Generic soft-card content block (om-teaser, etc.) */
.om{background:var(--bg);}
.om-inner{max-width:760px; margin:0 auto; background:var(--paper); border:1px solid var(--line); border-radius:var(--radius); padding:52px 56px; box-shadow:var(--shadow);}
.om-inner p{font-size:1.03rem; color:var(--ink-soft); margin-bottom:16px;}
.om-inner p:first-of-type{color:var(--ink); font-size:1.1rem; font-weight:500; border-left:3px solid var(--magenta); padding-left:18px;}
.om-signoff{margin-top:20px; font-family:'Fraunces',serif; font-style:italic; font-size:1.08rem; color:var(--ink);}
.om-signoff span{display:block; font-family:'Manrope',sans-serif; font-style:normal; font-size:0.72rem; letter-spacing:0.06em; text-transform:uppercase; color:var(--magenta); font-weight:700; margin-top:6px;}
.om-inner .btn{margin-top:8px;}
@media (max-width:640px){ .om-inner{padding:36px 26px;} }

/* Pull quote */
.pull-band{text-align:center;}
.pull-band .quote-card{
  max-width:720px; margin:0 auto; background:#fff; border:1px solid var(--line); border-radius:var(--radius);
  padding:52px 48px; box-shadow:var(--shadow);
}
.pull-band blockquote{
  margin:0; font-family:'Fraunces',serif; font-style:italic;
  font-size:clamp(1.3rem,2.4vw,1.7rem); line-height:1.5; color:var(--ink);
}
.pull-band cite{display:block; margin-top:20px; font-family:'Manrope',sans-serif; font-style:normal; font-size:0.78rem; letter-spacing:0.08em; text-transform:uppercase; color:var(--magenta); font-weight:700;}
@media (max-width:640px){ .pull-band .quote-card{padding:36px 26px;} }

/* Tjenester — service cards */
.service-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:22px;}
.service-card{background:#fff; border:1px solid var(--line); border-radius:var(--radius); padding:34px 28px; box-shadow:var(--shadow); transition:transform .25s ease, box-shadow .25s ease; display:flex; flex-direction:column;}
.service-card:hover{transform:translateY(-3px); box-shadow:var(--shadow-lg);}
.service-card .icon{
  width:46px; height:46px; border-radius:12px; background:var(--pink-soft); color:var(--magenta);
  display:flex; align-items:center; justify-content:center; margin-bottom:18px;
}
.service-card .icon svg{width:22px; height:22px;}
.service-card h3{font-size:1.1rem; margin-bottom:8px;}
.service-card p{margin:0 0 16px; color:var(--ink-soft); font-size:0.92rem; flex-grow:1;}
.service-card ul{margin:0; padding-left:18px; color:var(--ink-soft); font-size:0.88rem; display:grid; gap:6px;}
@media (max-width:940px){ .service-grid{grid-template-columns:1fr 1fr;} }
@media (max-width:640px){ .service-grid{grid-template-columns:1fr;} }

.info-band{background:var(--paper); border-top:1px solid var(--line); border-bottom:1px solid var(--line);}
.info-grid{display:grid; grid-template-columns:1fr 1fr; gap:48px; align-items:start;}
.info-grid h2{font-size:clamp(1.5rem,2.4vw,1.9rem); margin-bottom:16px;}
.info-grid p{color:var(--ink-soft); margin-bottom:14px;}
.info-list{margin:0; padding:0; list-style:none; display:grid; gap:14px;}
.info-list li{display:flex; gap:12px; color:var(--ink-soft); font-size:0.96rem;}
.info-list li::before{content:'✓'; color:var(--magenta); font-weight:700; flex-shrink:0;}
@media (max-width:820px){ .info-grid{grid-template-columns:1fr;} }

/* Om Ann Hege — full page */
.about-hero{display:grid; grid-template-columns:0.85fr 1.15fr; gap:56px; align-items:center;}
.about-photo{border-radius:var(--radius); overflow:hidden; box-shadow:var(--shadow-lg); transform:rotate(-1.5deg);}
.about-photo img{width:100%; height:100%; object-fit:cover; aspect-ratio:4/5; object-position:50% 18%;}
.about-copy .eyebrow{display:block;}
.about-copy h1{font-size:clamp(2rem,3.6vw,2.7rem); line-height:1.15;}
.about-copy p.lead{margin-top:18px; color:var(--ink-soft); font-size:1.08rem;}
@media (max-width:860px){ .about-hero{grid-template-columns:1fr; text-align:center;} .about-photo{max-width:320px; margin:0 auto; transform:none;} }

.about-body{max-width:680px; margin:0 auto;}
.about-body p{color:var(--ink-soft); font-size:1.04rem; margin-bottom:18px;}
.about-body p.callout{color:var(--ink); font-size:1.1rem; font-weight:500; border-left:3px solid var(--magenta); padding-left:18px;}

.about-photo-duo{display:grid; grid-template-columns:1fr 1fr; gap:22px; max-width:560px; margin:0 auto;}
.about-photo-duo figure{margin:0;}
.about-photo-duo img{border-radius:16px; box-shadow:var(--shadow); width:100%; aspect-ratio:3/4; object-fit:cover; object-position:50% 20%;}
.about-photo-duo figcaption{margin-top:10px; text-align:center; font-size:0.8rem; color:var(--ink-soft);}
.about-photo-duo figure:nth-child(1){transform:rotate(-2deg);}
.about-photo-duo figure:nth-child(2){transform:rotate(2deg); margin-top:22px;}
@media (max-width:640px){ .about-photo-duo{max-width:320px;} .about-photo-duo figure:nth-child(2){margin-top:0;} }

.values-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:20px;}
.value-card{background:var(--paper); border:1px solid var(--line); border-radius:16px; padding:28px 24px;}
.value-card h3{font-size:1rem; margin-bottom:8px;}
.value-card p{margin:0; color:var(--ink-soft); font-size:0.88rem;}
@media (max-width:820px){ .values-grid{grid-template-columns:1fr;} }

/* FAQ */
.faq-card{
  max-width:900px; margin:0 auto; background:#fff; border:1px solid var(--line); border-radius:var(--radius);
  padding:44px 48px; box-shadow:var(--shadow);
}
.faq-grid{display:grid; grid-template-columns:1fr 1fr; gap:0 40px;}
.faq-grid.single{grid-template-columns:1fr;}
.faq-item{border-bottom:1px solid var(--line);}
.faq-item:nth-last-child(-n+2){border-bottom:none;}
.faq-grid.single .faq-item:last-child{border-bottom:none;}
.faq-q{
  width:100%; text-align:left; background:none; border:none; cursor:pointer;
  padding:20px 2px; display:flex; justify-content:space-between; align-items:center; gap:16px;
  font-family:'Fraunces',serif; font-size:1rem; color:var(--ink);
}
.faq-q .plus{
  flex-shrink:0; width:24px; height:24px; border-radius:50%; border:1.5px solid var(--line);
  display:flex; align-items:center; justify-content:center; position:relative; transition:transform .3s ease, border-color .3s ease;
}
.faq-q .plus::before, .faq-q .plus::after{content:''; position:absolute; background:var(--magenta);}
.faq-q .plus::before{width:10px; height:2px;}
.faq-q .plus::after{width:2px; height:10px;}
.faq-item.open .plus{transform:rotate(135deg); border-color:var(--magenta);}
.faq-a{max-height:0; overflow:hidden; transition:max-height .35s ease;}
.faq-a p{margin:0 2px 20px; color:var(--ink-soft); font-size:0.92rem;}
@media (max-width:760px){ .faq-grid{grid-template-columns:1fr;} .faq-item:nth-last-child(-n+2){border-bottom:1px solid var(--line);} .faq-item:last-child{border-bottom:none;} .faq-card{padding:32px 24px;} }

/* Kontakt band (cta) */
.kontakt{background:var(--bg);}
.kontakt-card{
  max-width:760px; margin:0 auto; text-align:center; color:#fff;
  background:linear-gradient(135deg, var(--purple-deep), var(--purple) 55%, var(--magenta));
  border-radius:28px; padding:64px 44px; position:relative; overflow:hidden; box-shadow:var(--shadow-lg);
}
.kontakt-card::before{content:''; position:absolute; width:340px; height:340px; border-radius:50%; background:rgba(255,255,255,0.07); top:-120px; left:-100px;}
.kontakt-card::after{content:''; position:absolute; width:260px; height:260px; border-radius:50%; background:rgba(255,255,255,0.05); bottom:-100px; right:-80px;}
.kontakt-card .inner{position:relative; z-index:1;}
.kontakt-card .eyebrow{color:rgba(255,255,255,0.78);}
.kontakt-card h2, .kontakt-card h1{color:#fff; font-size:clamp(1.9rem,3.2vw,2.5rem);}
.kontakt-card p.lead{color:rgba(255,255,255,0.85); margin:16px auto 32px; max-width:44ch; font-size:1.05rem;}
.kontakt-actions{display:flex; gap:14px; justify-content:center; flex-wrap:wrap;}
.btn-white{background:#fff; color:var(--purple-deep);}
.btn-white:hover{transform:translateY(-2px); box-shadow:0 14px 30px rgba(0,0,0,0.2);}
.btn-outline-white{border-color:rgba(255,255,255,0.5); color:#fff;}
.btn-outline-white:hover{background:rgba(255,255,255,0.12); border-color:#fff;}
.kontakt-meta{margin-top:34px; display:flex; justify-content:center; gap:28px; flex-wrap:wrap; font-size:0.84rem; color:rgba(255,255,255,0.75);}
@media (max-width:640px){ .kontakt-card{padding:44px 26px;} }

/* Kontakt page — form + info grid */
.contact-grid{display:grid; grid-template-columns:0.95fr 1.05fr; gap:40px; align-items:start;}
.contact-info{display:grid; gap:20px;}
.contact-info-card{background:var(--paper); border:1px solid var(--line); border-radius:var(--radius); padding:32px; display:flex; gap:16px; align-items:flex-start;}
.contact-info-card .icon{
  width:44px; height:44px; border-radius:12px; background:#fff; color:var(--magenta); flex-shrink:0;
  display:flex; align-items:center; justify-content:center; box-shadow:var(--shadow);
}
.contact-info-card .icon svg{width:20px; height:20px;}
.contact-info-card h3{font-size:0.98rem; margin-bottom:4px;}
.contact-info-card p, .contact-info-card a{margin:0; color:var(--ink-soft); font-size:0.94rem;}
.contact-info-card a:hover{color:var(--magenta);}
.contact-photo{display:flex; align-items:center; gap:16px; background:#fff; border:1px solid var(--line); border-radius:var(--radius); padding:20px; box-shadow:var(--shadow);}
.contact-photo img{width:66px; height:66px; border-radius:12px; object-fit:cover; object-position:50% 20%; flex-shrink:0;}
.contact-photo p{margin:0; color:var(--ink-soft); font-size:0.9rem;}
.contact-photo strong{color:var(--ink); font-family:'Fraunces',serif; font-weight:500;}

.form{background:#fff; border:1px solid var(--line); border-radius:var(--radius); padding:40px; box-shadow:var(--shadow);}
.form h2{font-size:1.3rem; margin-bottom:6px;}
.form > p{color:var(--ink-soft); font-size:0.92rem; margin:0 0 26px;}
.form__row{margin-bottom:18px;}
.form label{display:block; font-size:0.85rem; font-weight:600; color:var(--ink); margin-bottom:6px;}
.form input, .form textarea{
  width:100%; padding:12px 14px; border:1.5px solid var(--line); border-radius:10px;
  font-family:inherit; font-size:0.95rem; color:var(--ink); background:var(--paper); transition:border-color .2s ease;
}
.form input:focus, .form textarea:focus{outline:none; border-color:var(--magenta);}
.form textarea{resize:vertical; min-height:120px;}
.form__note{font-size:0.8rem; color:var(--ink-soft); margin-top:14px;}
.form .btn{width:100%; justify-content:center; padding:13px 20px;}
@media (max-width:860px){ .contact-grid{grid-template-columns:1fr;} }

/* Takk / 404 — centered message card */
.status-card{max-width:620px; margin:0 auto; text-align:center; background:var(--paper); border:1px solid var(--line); border-radius:var(--radius); padding:64px 44px; box-shadow:var(--shadow);}
.status-card .eyebrow{margin-bottom:18px;}
.status-card h1{font-size:clamp(1.9rem,3.4vw,2.4rem);}
.status-card p{margin-top:16px; color:var(--ink-soft); font-size:1.03rem;}
.status-card .hero-ctas{justify-content:center; margin-top:28px;}

/* Footer */
footer{padding:40px 0 32px; background:var(--paper); border-top:1px solid var(--line); color:var(--ink-soft);}
.footer-inner{display:flex; justify-content:space-between; align-items:flex-start; flex-wrap:wrap; gap:28px;}
footer .flogo{display:flex; align-items:center; gap:9px;}
footer .flogo img{height:26px; width:auto;}
footer strong{color:var(--ink); font-family:'Fraunces',serif;}
footer .fnav{display:flex; gap:22px; flex-wrap:wrap; font-size:0.86rem;}
footer .fnav a:hover{color:var(--magenta);}
.footer-bottom{margin-top:28px; padding-top:20px; border-top:1px solid var(--line); display:flex; justify-content:space-between; flex-wrap:wrap; gap:10px; font-size:0.78rem;}

.reveal{opacity:0; transform:translateY(14px); transition:opacity .6s ease, transform .6s ease;}
.reveal.in{opacity:1; transform:translateY(0);}

@media (max-width:940px){
  nav.mainnav{display:none;}
  .menu-toggle{display:block;}
  .steps-grid{grid-template-columns:1fr 1fr;}
  .about-hero{grid-template-columns:1fr;}
}
@media (max-width:560px){
  section{padding:64px 0;}
  .steps-grid{grid-template-columns:1fr;}
  .kontakt-actions{flex-direction:column; align-items:stretch;}
  .kontakt-card{padding:40px 24px;}
  .footer-inner{flex-direction:column;}
}

.mobile-menu{
  position:fixed; inset:0; z-index:60; background:#fff; color:var(--ink);
  display:flex; flex-direction:column; padding:26px 28px; transform:translateY(-100%); transition:transform .35s ease;
}
.mobile-menu.open{transform:translateY(0);}
.mobile-menu .close-row{display:flex; justify-content:flex-end;}
.mobile-menu .close-row button{background:none; border:none; color:var(--ink); font-size:1.8rem; cursor:pointer;}
.mobile-menu nav{display:flex; flex-direction:column; gap:22px; margin-top:36px;}
.mobile-menu nav a{font-family:'Fraunces',serif; font-size:1.6rem; color:var(--ink);}
.mobile-menu nav a[aria-current="page"]{color:var(--magenta);}
