/* ============================================================
   Tulpenhuis Amstel 
   ============================================================ */

:root{
  --green-dark:#3f4d2f;
  --green:#6d7f4b;
  --green-light:#a8b883;
  --cream:#faf7ec;
  --sand:#f1ead7;
  --gold:#c9a227;
  --text:#2f3526;
  --muted:#6b7259;
}

*{box-sizing:border-box;}

html{
  scroll-behavior:smooth;
  scroll-padding-top:90px;
}
@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto;}
}

body{
  margin:0;
  font-family:"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  color:var(--text);
  background:var(--cream);
  line-height:1.65;
}

a{color:var(--green-dark);text-decoration:none;}
a:hover{text-decoration:underline;}

img{max-width:100%;height:auto;}

header{
  background:var(--green-dark);
  color:#f6f3e6;
  padding:18px 0;
  position:sticky;top:0;z-index:10;
  box-shadow:0 2px 12px rgba(0,0,0,.15);
}

.wrap{max-width:1080px;margin:0 auto;padding:0 24px;width:100%;}
.nav{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px;}

.logo{
  font-size:1.35rem;
  font-weight:700;
  letter-spacing:.5px;
  display:flex;
  align-items:center;
  white-space:nowrap;
}
.logo span{color:var(--green-light);}
.logo .tulip{
  width:.9em;
  height:.9em;
  display:inline-block;
  flex:0 0 auto;
  margin:0 .22em 0 .18em;
  fill:none;
  stroke:var(--green-light);
  stroke-width:2;
  stroke-linecap:round;
  stroke-linejoin:round;
}

nav ul{display:flex;gap:22px;list-style:none;margin:0;padding:0;font-size:.95rem;}
nav a{
  color:#f6f3e6;
  display:inline-flex;
  align-items:center;
  gap:8px;
  line-height:1;
}
nav a svg{
  width:16px;
  height:16px;
  flex:0 0 auto;
  fill:none;
  stroke:currentColor;
  stroke-width:2;
  stroke-linecap:round;
  stroke-linejoin:round;
  transition:transform .15s;
}
nav a:hover{color:var(--green-light);text-decoration:none;}
nav a:hover svg{transform:translateY(-1px);}

.btn{
  display:inline-block;
  background:var(--green);
  color:#fff;
  padding:13px 30px;
  border-radius:6px;
  font-weight:600;
  transition:background .2s;
}
.btn:hover{background:var(--green-dark);text-decoration:none;}

.btn-ghost{
  background:transparent;
  color:var(--green-dark);
  border:2px solid var(--green);
  padding:11px 28px;
}
.btn-ghost:hover{background:var(--green);color:#fff;}

footer{
  background:var(--green-dark);
  color:#cdd3b8;
  padding:34px 0;
  font-size:.88rem;
}
footer .wrap{
  display:flex;
  justify-content:space-between;
  gap:16px;
  flex-wrap:wrap;
  align-items:center;
}
footer a{color:var(--green-light);}
footer .brand{display:inline-flex;align-items:center;white-space:nowrap;}
footer .brand .tulip{
  width:1em;height:1em;display:inline-block;flex:0 0 auto;
  margin:0 .28em;
  fill:none;stroke:var(--green-light);
  stroke-width:2;stroke-linecap:round;stroke-linejoin:round;
}

.hero{
  background:linear-gradient(135deg,#eef0dc 0%,#e3e7c9 55%,#d8dfba 100%);
  padding:70px 0;
  border-bottom:6px solid var(--green);
}
.hero-grid{
  display:grid;
  grid-template-columns:1.05fr 1fr;
  gap:56px;
  align-items:center;
}
.hero h1{
  font-size:2.5rem;line-height:1.25;margin:0 0 18px;color:var(--green-dark);
}
.hero p{font-size:1.12rem;max-width:540px;color:#4a5238;margin:0 0 28px;}

.hero-gallery{
  display:grid;
  grid-template-columns:1.15fr 1fr;
  grid-template-rows:1fr 1fr;
  gap:14px;
  height:460px;
}
.hero-gallery .ph{
  position:relative;
  border-radius:14px;
  overflow:hidden;
  background-size:cover;
  background-position:center;
  box-shadow:0 14px 34px rgba(63,77,47,.18);
  border:1px solid #d7ddc2;
}
.hero-gallery .ph:first-child{grid-row:1 / span 2;}
.hero-gallery .ph::after{
  content:"";
  position:absolute;inset:0;
  background:linear-gradient(180deg,
             rgba(63,77,47,.02) 0%,
             rgba(63,77,47,.18) 100%);
  pointer-events:none;
}
.ph-1{
  background-image:
    linear-gradient(135deg, rgba(168,184,131,.55), rgba(109,127,75,.75)),
    url('/img/tulpen-1.jpg');
}
.ph-2{
  background-image:
    linear-gradient(135deg, rgba(201,162,39,.35), rgba(63,77,47,.65)),
    url('/img/tulpen-2.jpg');
}
.ph-3{
  background-image:
    linear-gradient(135deg, rgba(241,234,215,.55), rgba(168,184,131,.75)),
    url('/img/tulpen-3.jpg');
}

section{padding:64px 0;}
h2{
  font-size:1.9rem;color:var(--green-dark);margin:0 0 12px;
}
.lead{color:var(--muted);max-width:720px;margin:0 0 38px;}

.grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(260px,1fr));
  gap:26px;
}
.card{
  background:#fff;
  border-radius:10px;
  padding:28px 26px;
  border-top:4px solid var(--green-light);
  box-shadow:0 4px 18px rgba(63,77,47,.08);
}
.card h3{margin:0 0 10px;color:var(--green-dark);font-size:1.15rem;}
.card p{margin:0;color:var(--muted);font-size:.97rem;}

.reviews{background:var(--sand);}
.review{
  background:#fff;
  border-radius:10px;
  padding:24px 26px;
  box-shadow:0 4px 18px rgba(63,77,47,.07);
  border-left:5px solid var(--gold);
}
.stars{color:var(--gold);font-size:1.05rem;letter-spacing:2px;margin-bottom:10px;}
.review blockquote{margin:0 0 14px;font-style:italic;color:#3d4433;}
.review .meta{font-size:.88rem;color:var(--muted);}
.review .meta strong{color:var(--green-dark);}

.contact-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:40px;
  align-items:start;
}
.contact-list{list-style:none;padding:0;margin:0 0 26px;}
.contact-list li{margin-bottom:16px;}
.contact-list .label{
  display:block;
  font-size:.78rem;
  text-transform:uppercase;
  letter-spacing:1px;
  color:var(--green);
  font-weight:700;
  margin-bottom:2px;
}
.contact-list .value{font-size:1.05rem;color:var(--text);}
.map{
  border-radius:10px;
  overflow:hidden;
  box-shadow:0 6px 22px rgba(63,77,47,.14);
  border:1px solid #dfe3cd;
}


.error-page{
  display:flex;
  flex-direction:column;
  min-height:100vh;
}

.error-page main{
  flex:1;
  display:flex;
  align-items:center;
  justify-content:center;
  background:
    radial-gradient(circle at 15% 20%, rgba(168,184,131,.18), transparent 55%),
    radial-gradient(circle at 85% 80%, rgba(201,162,39,.12), transparent 55%),
    linear-gradient(135deg,#f4f1e2 0%,#eef0dc 60%,#e3e7c9 100%);
  padding:80px 0;
}

.err{
  max-width:640px;
  margin:0 auto;
  text-align:center;
}
.err-code{
  font-size:clamp(6rem, 16vw, 11rem);
  line-height:.9;
  font-weight:800;
  letter-spacing:-.03em;
  margin:0 0 10px;
  color:var(--green-dark);
  background:linear-gradient(120deg, var(--green) 0%, var(--green-dark) 55%, var(--green) 100%);
  -webkit-background-clip:text;
  background-clip:text;
  -webkit-text-fill-color:transparent;
}
.err-code small{
  display:block;
  font-size:.22em;
  font-weight:600;
  letter-spacing:.18em;
  text-transform:uppercase;
  color:var(--green);
  -webkit-text-fill-color:var(--green);
  margin-top:16px;
}
.err h1{
  font-size:2rem;
  color:var(--green-dark);
  margin:0 0 16px;
  line-height:1.25;
}
.err p{
  color:#4a5238;
  margin:0 auto 14px;
  font-size:1.05rem;
  max-width:520px;
}
.actions{
  display:flex;
  gap:14px;
  flex-wrap:wrap;
  justify-content:center;
  margin-top:30px;
}

@media (max-width:860px){
  .hero-grid{grid-template-columns:1fr;gap:36px;}
  .hero-gallery{height:380px;}
  .contact-grid{grid-template-columns:1fr;}
}

@media (max-width:760px){
  .hero h1{font-size:1.9rem;}
  nav ul{gap:14px;font-size:.88rem;}
  nav a{gap:6px;}
  nav a svg{width:14px;height:14px;}
  .err h1{font-size:1.6rem;}
  .error-page main{padding:56px 0;}
}
