/*
Theme Name: Savita HTML Thema
Theme URI: https://savita.nl
Author: Ronald
Version: 2.0
Description: Savita-thema opgebouwd uit de bestaande werkende HTML-homepage, met vaste header en footer en losse WordPress-pagina-inhoud.
*/

:root{
    --paper:#FAF7EA;
    --ink:#1B2A1E;
    --pine:#1F5C42;
    --pine-dark:#173F2D;
    --sage:#3DDC84;
    --sage-light:#B7ECC8;
    --moss:#1C8F63;
    --teal:#0EA5A0;
    --coral:#FF6B54;
    --sun:#FFC23C;
    --ochre:#FFC23C;
    --gold-deep:#FF6B54;
    --card:#FFFFFF;
  }
  *{box-sizing:border-box; margin:0; padding:0;}
  html{scroll-behavior:smooth;}
  body{
    font-family:'Karla', sans-serif;
    color:var(--ink);
    background:var(--paper);
    overflow-x:hidden;
    line-height:1.55;
  }
  h1,h2,h3, .display{
    font-family:'Fraunces', serif;
    font-weight:600;
    letter-spacing:-0.01em;
  }
  a{color:inherit;}
  img{max-width:100%; display:block;}
  .wrap{max-width:1180px; margin:0 auto; padding:0 28px;}

  /* reduced motion */
  @media (prefers-reduced-motion: reduce){
    *{animation:none !important; transition:none !important;}
  }

  /* ============ NAV — FOREST SKYLINE ============ */
  .skyline{
    position:relative;
    background:var(--paper);
    padding-top:18px;
  }
  .skyline-row{
    display:flex;
    align-items:flex-end;
    justify-content:space-between;
    gap:14px;
    max-width:1180px;
    margin:0 auto;
    padding:0 28px;
    flex-wrap:wrap;
  }
  .logo{
    display:flex;
    align-items:center;
    gap:8px;
    padding-bottom:6px;
    flex-shrink:0;
    z-index:5;
    position:relative;
  }
  .logo img{ height:92px; width:auto; display:block; max-width:none; }
  .mobile-toggle{
    display:none;
    background:none;
    border:2px solid var(--pine);
    border-radius:50%;
    width:42px; height:42px;
    font-size:1.1rem;
    color:var(--pine-dark);
    cursor:pointer;
  }

  .forest-nav{
    position:relative;
    display:flex;
    align-items:flex-end;
    justify-content:center;
    gap:clamp(4px, 1.4vw, 16px);
    flex:1;
    flex-wrap:wrap;
  }
  .tree-item{
    position:relative;
    display:flex;
    flex-direction:column;
    align-items:center;
    text-decoration:none;
    cursor:pointer;
    border:none;
    background:none;
    font-family:'Karla', sans-serif;
  }
  .canopy{
    display:block;
    position:relative;
    text-align:center;
    font-size:0.86rem;
    font-weight:700;
    letter-spacing:0.01em;
    line-height:1.1;
    transition:transform .25s ease, filter .25s ease;
  }
  .tree-item:hover .canopy{ transform:translateY(-4px); filter:brightness(1.08); }
  .tree-item:focus-visible .canopy{ outline:3px solid var(--gold-deep); outline-offset:3px; }
  .tree-label{
    position:absolute;
    left:8%; right:8%;
    text-shadow:0 1px 3px rgba(0,0,0,0.35);
    color:#fff;
  }

  /* LOOFBOOM — rounded, leafy clusters */
  .canopy.leaf{
    border-radius:62% 38% 55% 45% / 48% 62% 38% 52%;
    background:var(--sage);
    box-shadow:0 6px 14px -6px rgba(31,92,66,0.35), inset -8px -8px 0 -30px rgba(0,0,0,0.1);
  }
  .canopy.leaf .tree-label{ color:var(--pine-dark); text-shadow:none; bottom:38%; }
  .canopy.leaf::before{
    content:"";
    position:absolute;
    top:-14%; left:-10%;
    width:36%; height:32%;
    border-radius:60% 40% 55% 45% / 50% 60% 40% 50%;
    background:inherit;
  }
  .canopy.leaf::after{
    content:"";
    position:absolute;
    bottom:-10%; right:-8%;
    width:46%; height:40%;
    border-radius:45% 55% 40% 60% / 55% 45% 60% 40%;
    background:inherit;
  }
  .canopy.leaf.sm{ width:74px; height:74px; }
  .canopy.leaf.md{ width:92px; height:92px; }
  .canopy.leaf.accent-teal{ background:var(--teal); }
  .canopy.leaf.accent-teal .tree-label{ color:#fff; text-shadow:0 1px 3px rgba(0,0,0,0.35); }
  .canopy.leaf.accent-coral{ background:var(--coral); }
  .canopy.leaf.accent-coral .tree-label{ color:#fff; text-shadow:0 1px 3px rgba(0,0,0,0.35); }

  /* DENNENBOOM — tiered triangular conifer */
  .canopy.conifer{
    width:98px; height:124px;
    background:linear-gradient(160deg, var(--sage) 0%, var(--pine) 100%);
    clip-path:polygon(50% 0%, 66% 26%, 56% 26%, 76% 52%, 63% 52%, 88% 80%, 60% 80%, 60% 100%, 40% 100%, 40% 80%, 12% 80%, 37% 52%, 24% 52%, 44% 26%, 34% 26%);
  }
  .canopy.conifer .tree-label{ bottom:19%; }
  .canopy.conifer.sm{ width:78px; height:100px; }
  .canopy.conifer.sm .tree-label{ font-size:0.78rem; }
  .canopy.conifer.lg{ width:120px; height:164px; background:linear-gradient(160deg, var(--moss) 0%, var(--pine-dark) 100%); }
  .canopy.conifer.lg .tree-label{ font-size:0.95rem; }
  .canopy.conifer.accent-teal{ background:linear-gradient(160deg, var(--teal) 0%, var(--pine-dark) 100%); }
  .canopy.conifer.accent-coral{ background:linear-gradient(160deg, var(--coral) 0%, var(--gold-deep) 100%); }

  /* VORM-VARIANTEN — elk boompje een eigen silhouet */
  /* .shape-round = standaard loofboom-blob hierboven; geen extra class nodig */
  .canopy.leaf.shape-cloud{
    border-radius:55% 45% 60% 40% / 45% 55% 40% 60%;
  }
  .canopy.leaf.shape-cloud::before{ top:-18%; left:12%; width:32%; height:30%; }
  .canopy.leaf.shape-cloud::after{ bottom:-14%; left:-8%; width:40%; height:36%; }
  .canopy.leaf.shape-oval{
    border-radius:50%;
  }
  .canopy.leaf.shape-oval::before,
  .canopy.leaf.shape-oval::after{ content:none; }
  .canopy.leaf.shape-fan{
    border-radius:50%;
  }
  .canopy.leaf.shape-fan::before{
    top:-24%; left:6%; right:auto;
    width:48%; height:48%;
    border-radius:50%;
  }
  .canopy.leaf.shape-fan::after{
    top:-24%; right:6%; left:auto; bottom:auto;
    width:48%; height:48%;
    border-radius:50%;
  }

  /* .shape-tiered = standaard dennenboom-silhouet hierboven; geen extra class nodig */
  .canopy.conifer.shape-spire{
    clip-path:polygon(50% 0%, 88% 100%, 12% 100%);
  }
  .canopy.conifer.shape-spire .tree-label{
    bottom:10%;
    line-height:1.05;
    font-size:0.78rem;
  }
  .canopy.conifer.shape-dome{
    clip-path:none;
    border-radius:50% 50% 16% 16% / 62% 62% 10% 10%;
  }
  .canopy.conifer.shape-dome .tree-label{ bottom:24%; }

  .trunk{
    width:7px; height:14px;
    background:#7A5C3E;
    border-radius:0 0 3px 3px;
  }

  .horizon{
    width:100%;
    height:30px;
    display:block;
    margin-top:-2px;
  }

  /* ============ HERO ============ */
  .hero{
    background:var(--paper);
  }
  .hero-photo-wrap{
    width:100vw;
    position:relative;
    left:50%;
    margin-left:-50vw;
    line-height:0;
    aspect-ratio:1440/520;
  }
  .hero-photo-wrap svg{ display:block; width:100%; height:100%; }
  .curved-line{ display:block; width:100%; margin-top:-2px; }

  .welcome-overlay{
    position:absolute;
    inset:0;
    display:grid;
    grid-template-columns:1.2fr 0.8fr;
    align-items:center;
    gap:40px;
    padding:0 28px;
    max-width:1180px;
    margin:0 auto;
  }
  .hero-copy h1{
    font-size:clamp(2.4rem, 5.4vw, 3.8rem);
    line-height:1.15;
    color:#fff;
    text-shadow:0 2px 14px rgba(0,0,0,0.45);
    margin:0 0 20px;
  }
  .hero-copy h1 .brand-green{
    color:var(--sage);
  }
  .hero-copy p.lead{
    font-size:1.15rem;
    line-height:1.4;
    color:#fff;
    text-shadow:0 2px 10px rgba(0,0,0,0.4);
    font-family:'Fraunces', serif;
    font-style:italic;
    margin:0;
  }

  /* ============ WAVE DIVIDERS ============ */
  .wave{ display:block; width:100%; }

  /* ============ INTRO SECTION ============ */
  .intro-section{
    background:linear-gradient(180deg, #3DDC84 0%, #1DBF97 55%, #0EA5A0 100%);
    padding:60px 0 30px;
    position:relative;
  }
  .intro-section h2{
    font-size:clamp(1.7rem, 3vw, 2.3rem);
    color:var(--pine-dark);
    margin-bottom:18px;
    max-width:56ch;
  }
  .intro-section p{
    max-width:62ch;
    color:var(--pine-dark);
    font-size:1.05rem;
  }
  .intro-section p + p{ margin-top:14px; }

  .quote-note{
    background:var(--card);
    padding:26px 24px 30px;
    border-radius:18px;
    box-shadow:0 18px 30px -14px rgba(44,58,34,0.35);
    transform:rotate(2.5deg);
    position:relative;
    max-width:300px;
    margin-left:auto;
  }
  .quote-note::before{
    content:"";
    position:absolute;
    top:-14px; left:50%;
    transform:translateX(-50%) rotate(-8deg);
    width:34px; height:14px;
    background:var(--coral);
    border-radius:2px;
    box-shadow:0 3px 6px rgba(0,0,0,0.25);
  }
  .quote-note .eyebrow{
    font-size:0.68rem;
    letter-spacing:0.14em;
    text-transform:uppercase;
    color:var(--coral);
    font-weight:700;
    margin-bottom:10px;
  }
  .quote-note p{
    font-family:'Fraunces', serif;
    font-style:italic;
    font-size:1.1rem;
    color:var(--pine-dark);
    line-height:1.4;
  }
  .quote-note .who{
    display:block;
    margin-top:14px;
    font-family:'Karla', sans-serif;
    font-style:normal;
    font-size:0.85rem;
    color:var(--moss);
    font-weight:600;
  }

  /* ============ ACTIONS SECTION (photo background) ============ */
  .actions-section{
    position:relative;
    padding:70px 0 70px;
    overflow:hidden;
  }
  .actions-bg-photo{
    position:absolute;
    inset:0;
    width:100%;
    height:100%;
    object-fit:cover;
    z-index:0;
  }
  .actions-overlay{
    position:absolute;
    inset:0;
    background:linear-gradient(160deg, rgba(255,194,60,0.4) 0%, rgba(255,107,84,0.45) 100%);
    z-index:1;
  }
  .actions-section .wrap{
    position:relative;
    z-index:2;
  }
  .actions-section h2{
    text-align:center;
    color:#fff;
    text-shadow:0 2px 4px rgba(0,0,0,0.55), 0 4px 18px rgba(0,0,0,0.4);
    font-size:clamp(1.6rem, 3vw, 2.1rem);
    margin-bottom:44px;
  }
  .actions-grid{
    display:grid;
    grid-template-columns:repeat(4, 1fr);
    gap:26px;
  }
  .action-card{
    aspect-ratio:1/1;
    border-radius:50%;
    background:var(--card);
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    text-align:center;
    padding:26px;
    text-decoration:none;
    color:var(--pine-dark);
    box-shadow:0 16px 26px -12px rgba(44,58,34,0.45);
    transition:transform .3s ease, box-shadow .3s ease;
  }
  .action-card:hover{
    transform:translateY(-8px);
    box-shadow:0 22px 34px -12px rgba(44,58,34,0.5);
  }
  .action-card h3{
    font-size:1.05rem;
    margin-bottom:8px;
    line-height:1.2;
  }
  .action-card p{
    font-size:0.82rem;
    color:var(--moss);
    margin-bottom:12px;
  }
  .action-card .cta{
    font-size:0.78rem;
    font-weight:700;
    letter-spacing:0.04em;
    text-transform:uppercase;
    padding-bottom:1px;
    border-bottom:2px solid currentColor;
  }
  .action-card:nth-child(1){ border-top:6px solid var(--sage); }
  .action-card:nth-child(1) .cta{ color:var(--moss); }
  .action-card:nth-child(2){ border-top:6px solid var(--teal); }
  .action-card:nth-child(2) .cta{ color:var(--teal); }
  .action-card:nth-child(3){ border-top:6px solid var(--coral); }
  .action-card:nth-child(3) .cta{ color:var(--coral); }
  .action-card:nth-child(4){ border-top:6px solid var(--pine); }
  .action-card:nth-child(4) .cta{ color:var(--pine); }

  /* ============ FOOTER ============ */
  footer{
    background:var(--pine-dark);
    color:var(--paper);
    padding:34px 0;
    text-align:center;
    font-size:0.85rem;
  }
  footer span{ color:var(--sage-light); }

  /* fade-in on scroll */
  .reveal{
    opacity:0;
    transform:translateY(18px);
    transition:opacity .7s ease, transform .7s ease;
  }
  .reveal.is-visible{ opacity:1; transform:translateY(0); }

  /* ============ RESPONSIVE ============ */
  @media (max-width: 860px){
    .hero-photo-wrap{ aspect-ratio:4/5; }
    .welcome-overlay{
      grid-template-columns:1fr;
      align-content:center;
      justify-items:center;
      gap:22px;
      text-align:center;
      padding:0 24px;
    }
    .hero-copy{ text-align:center; }
    .quote-note{ margin:0 auto; transform:rotate(1deg); max-width:340px; }
    .actions-grid{
      display:flex;
      grid-template-columns:none;
      overflow-x:auto;
      scroll-snap-type:x mandatory;
      gap:20px;
      padding:6px 4px 14px;
      -webkit-overflow-scrolling:touch;
    }
    .action-card{
      flex:0 0 172px;
      scroll-snap-align:center;
    }
  }
  @media (max-width: 560px){
    .hero-photo-wrap{ aspect-ratio:3/4; }
    .hero-copy h1{ margin-bottom:12px; }
    .quote-note{ padding:20px 20px 24px; }
    .actions-grid{ gap:16px; padding:6px 4px 14px; }
    .action-card{ flex:0 0 148px; padding:22px 18px; }
    .forest-nav{ display:none; }
    .mobile-toggle{ display:block; }
    .skyline-row{ align-items:center; }
    .logo img{ height:64px; }
    /* Uitgeklapt mobiel menu: 6 boompjes in een kringetje, Praktisch vast in het midden */
    .forest-nav.open{
      display:block;
      position:absolute;
      top:70px; left:50%;
      transform:translateX(-50%);
      background:var(--paper);
      border-radius:50%;
      box-shadow:0 14px 26px -10px rgba(0,0,0,0.25);
      z-index:10;
      --cr:clamp(160px, 46vw, 200px);
      --ring-r:calc(var(--cr) * 0.62);
      width:calc(var(--cr) * 2);
      height:calc(var(--cr) * 2);
    }
    .forest-nav.open .tree-item{
      position:absolute;
      top:50%; left:50%;
      display:flex;
      flex-direction:column;
      align-items:center;
    }
    /* boompjes op de kring (nth-child 1,2,3,5,6,7 — Praktisch (4) staat in het midden) */
    .forest-nav.open .tree-item:nth-child(1){ transform:translateX(38px) rotate(0deg) translateY(calc(-1 * var(--ring-r))) rotate(0deg) translate(-50%,-50%); }
    .forest-nav.open .tree-item:nth-child(2){ transform:rotate(60deg) translateY(calc(-1 * var(--ring-r))) rotate(-60deg) translate(-50%,-50%); }
    .forest-nav.open .tree-item:nth-child(3){ transform:rotate(120deg) translateY(calc(-1 * var(--ring-r))) rotate(-120deg) translate(-50%,-50%); }
    .forest-nav.open .tree-item:nth-child(5){ transform:translateX(-38px) rotate(180deg) translateY(calc(-1 * var(--ring-r))) rotate(-180deg) translate(-50%,-50%); }
    .forest-nav.open .tree-item:nth-child(6){ transform:rotate(240deg) translateY(calc(-1 * var(--ring-r))) rotate(-240deg) translate(-50%,-50%); }
    .forest-nav.open .tree-item:nth-child(7){ transform:rotate(300deg) translateY(calc(-1 * var(--ring-r))) rotate(-300deg) translate(-50%,-50%); }
    /* Praktisch: vast en alleen gecentreerd, geen kring-transform */
    .forest-nav.open .tree-item:nth-child(4){
      transform:translate(-50%,-50%);
      z-index:1;
    }
    /* Home en Verblijf iets kleiner, Praktisch flink groter en goed leesbaar */
    .forest-nav.open .tree-item:nth-child(1) .canopy,
    .forest-nav.open .tree-item:nth-child(5) .canopy{ width:64px; height:64px; }
    .forest-nav.open .tree-item:nth-child(4) .canopy{ width:108px; height:144px; }
    /* vaste afmetingen op mobiel, passend bij de responsieve, grote cirkel */
    .forest-nav.open .canopy{ font-size:0.88rem; }
    .forest-nav.open .canopy.leaf.sm{ width:66px; height:66px; }
    .forest-nav.open .canopy.leaf.md{ width:80px; height:80px; }
    .forest-nav.open .canopy.conifer{ width:84px; height:108px; }
    .forest-nav.open .canopy.conifer.sm{ width:74px; height:96px; }
    .forest-nav.open .canopy.conifer.lg{ width:108px; height:144px; }
    .forest-nav.open .canopy.conifer.sm .tree-label{ font-size:0.88rem; }
    .forest-nav.open .canopy.conifer.lg .tree-label{ font-size:0.94rem; }
  }
  @media (max-width: 400px){
    .hero-photo-wrap{ aspect-ratio:1/1.3; }
  }

/* Gewone WordPress-pagina's */
.wp-page-content{max-width:1180px;margin:0 auto;padding:64px 28px 80px;}
.wp-page-content h1{font-size:clamp(2rem,4vw,3rem);color:var(--pine-dark);margin:0 0 24px;}
.wp-page-content h2,.wp-page-content h3{color:var(--pine-dark);margin:1.4em 0 .5em;}
.wp-page-content p,.wp-page-content ul,.wp-page-content ol{max-width:72ch;margin:0 0 1em;}
.wp-page-content ul,.wp-page-content ol{padding-left:1.5em;}
/* Tekst over volledige breedte */
.intro-section .wrap > p,
.intro-section .wrap > .wp-block-paragraph {
    max-width: none;
}

/* Rechts uitgelijnde afbeelding met tekstomloop */
.intro-section .wp-block-image.alignright {
    float: right;
    margin: 0 0 20px 35px;
    max-width: 38%;
}