/* ==========================================================================
   Skulptura – Motorsägen-Schnitzkurse Bündnerland
   Palette: Birkenweiss #FAF3E7 · Nussbaumbraun #3A2718 · Spänen-Orange #E0722C
            Moosgrün #7C8B6E · Steingrau #8B8378
   Type: Fraunces (Display) + Work Sans (Body)
   ========================================================================== */

:root{
  --paper:#FAF3E7;
  --paper-dim:#F1E3CC;
  --walnut:#3A2718;
  --walnut-soft:#5c3a22;
  --orange:#E0722C;
  --orange-deep:#C25A1C;
  --moss:#7C8B6E;
  --stone:#8B8378;
  --line:rgba(58,39,24,0.14);
  --shadow:0 18px 40px -20px rgba(58,39,24,0.35);
  --radius:2px;
  --max:1180px;
  --serif:"Fraunces", "Iowan Old Style", Georgia, serif;
  --sans:"Work Sans", "Segoe UI", system-ui, sans-serif;
}

*,*::before,*::after{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  background:var(--paper);
  color:var(--walnut);
  font-family:var(--sans);
  font-size:17px;
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%;display:block;}
a{color:inherit;}
h1,h2,h3,h4{font-family:var(--serif);font-weight:600;margin:0 0 .5em;letter-spacing:-0.01em;color:var(--walnut);}
p{margin:0 0 1em;}
.wrap{max-width:var(--max);margin:0 auto;padding:0 28px;}
.eyebrow{
  font-family:var(--sans);
  text-transform:uppercase;
  letter-spacing:.14em;
  font-size:.76rem;
  font-weight:600;
  color:var(--orange-deep);
  margin:0 0 .9em;
}
section{padding:96px 0;}
@media(max-width:780px){section{padding:64px 0;}}

/* focus visibility */
a:focus-visible, button:focus-visible, input:focus-visible, textarea:focus-visible{
  outline:3px solid var(--orange);
  outline-offset:3px;
}

/* -------------------- chainsaw-cut divider (signature element) -------- */
.cut-divider{
  width:100%;
  height:34px;
  display:block;
  line-height:0;
}
.cut-divider svg{width:100%;height:100%;display:block;}

/* -------------------- header / nav -------------------------------- */
.site-header{
  position:fixed;top:0;left:0;right:0;z-index:100;
  background:rgba(250,243,231,0.92);
  backdrop-filter:blur(6px);
  border-bottom:1px solid var(--line);
}
.site-header .wrap{
  display:flex;align-items:center;justify-content:space-between;
  height:78px;
}
.logo{
  font-family:var(--serif);
  font-size:1.3rem;font-weight:700;
  letter-spacing:.02em;
  text-decoration:none;
  display:flex;align-items:center;gap:.5em;
}
.logo .ring{
  width:12px;height:12px;border-radius:50%;
  border:2px solid var(--orange);
  display:inline-block;
}
nav.primary-nav ul{
  list-style:none;display:flex;gap:2.1rem;margin:0;padding:0;
}
nav.primary-nav a{
  text-decoration:none;font-size:.95rem;font-weight:500;
  padding:.3em 0;border-bottom:2px solid transparent;
  transition:border-color .2s ease, color .2s ease;
}
nav.primary-nav a:hover{border-color:var(--orange);color:var(--orange-deep);}
.nav-cta{
  background:var(--walnut);color:var(--paper);
  padding:.65em 1.3em;border-radius:var(--radius);
  text-decoration:none;font-weight:600;font-size:.9rem;
  border:1px solid var(--walnut);
  transition:background .2s ease;
}
.nav-cta:hover{background:var(--orange-deep);border-color:var(--orange-deep);}

.burger{
  display:none;width:44px;height:44px;border:none;background:none;cursor:pointer;
  position:relative;
}
.burger span{
  display:block;position:absolute;left:10px;right:10px;height:2px;background:var(--walnut);
  transition:transform .25s ease, opacity .25s ease, top .25s ease;
}
.burger span:nth-child(1){top:16px;}
.burger span:nth-child(2){top:22px;}
.burger span:nth-child(3){top:28px;}
.burger.is-open span:nth-child(1){top:22px;transform:rotate(45deg);}
.burger.is-open span:nth-child(2){opacity:0;}
.burger.is-open span:nth-child(3){top:22px;transform:rotate(-45deg);}

.mobile-drawer{
  position:fixed;inset:0 0 0 auto;width:min(84vw,360px);
  background:var(--walnut);color:var(--paper);
  transform:translateX(100%);
  transition:transform .32s ease;
  z-index:150;
  padding:100px 32px 32px;
}
.mobile-drawer.is-open{transform:translateX(0);}
.mobile-drawer ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:1.6rem;}
.mobile-drawer a{
  color:var(--paper);text-decoration:none;font-family:var(--serif);font-size:1.5rem;
}
.drawer-backdrop{
  position:fixed;inset:0;background:rgba(58,39,24,.45);
  opacity:0;pointer-events:none;transition:opacity .3s ease;z-index:140;
}
.drawer-backdrop.is-open{opacity:1;pointer-events:auto;}

@media(max-width:860px){
  nav.primary-nav, .nav-cta{display:none;}
  .burger{display:block;}
}

/* -------------------- hero -------------------------------- */
.hero{
  position:relative;
  min-height:92vh;
  display:flex;align-items:flex-end;
  color:var(--paper);
  overflow:hidden;
  padding-top:78px;
}
.hero-media{
  position:absolute;inset:0;z-index:0;
}
.hero-media img{width:100%;height:100%;object-fit:cover;}
.hero-media::after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(180deg, rgba(42,25,13,0.15) 0%, rgba(30,17,9,0.78) 100%);
}
.hero-content{position:relative;z-index:1;padding-bottom:88px;width:100%;}
.hero-quote{
  font-family:var(--serif);
  font-size:clamp(1.5rem, 3.4vw, 2.5rem);
  max-width:820px;
  font-weight:500;
  line-height:1.32;
  margin-bottom:.5em;
}
.hero-quote span{color:var(--orange);}
.hero-attrib{
  font-size:.95rem;letter-spacing:.06em;text-transform:uppercase;
  color:var(--paper-dim);
  margin-bottom:2.2em;
}
.hero-actions{display:flex;gap:1rem;flex-wrap:wrap;}
.btn{
  display:inline-block;padding:.9em 1.7em;text-decoration:none;
  font-weight:600;font-size:.95rem;border-radius:var(--radius);
  transition:transform .18s ease, background .2s ease;
}
.btn:hover{transform:translateY(-2px);}
.btn-primary{background:var(--orange);color:var(--walnut);}
.btn-primary:hover{background:#f08a4b;}
.btn-outline{border:1.5px solid var(--paper);color:var(--paper);}
.btn-outline:hover{background:rgba(250,243,231,.12);}

/* -------------------- about -------------------------------- */
.about{background:var(--paper);}
.about .grid{
  display:grid;grid-template-columns:.85fr 1.15fr;gap:64px;align-items:center;
}
.about-media{position:relative;}
.about-media img{border-radius:var(--radius);box-shadow:var(--shadow);}
.about-media .ring-badge{
  position:absolute;bottom:-28px;left:-28px;
  width:132px;height:132px;border-radius:50%;
  background:var(--orange);color:var(--walnut);
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  text-align:center;font-family:var(--serif);
  box-shadow:var(--shadow);
}
.about-media .ring-badge strong{font-size:1.7rem;display:block;line-height:1;}
.about-media .ring-badge span{font-size:.7rem;text-transform:uppercase;letter-spacing:.08em;}
.about h2{font-size:clamp(1.8rem,3vw,2.5rem);}
.about .name-tag{
  display:inline-block;font-family:var(--sans);font-weight:600;color:var(--moss);
  margin-top:1.2em;
}
@media(max-width:860px){
  .about .grid{grid-template-columns:1fr;gap:48px;}
  .about-media .ring-badge{width:100px;height:100px;left:-18px;bottom:-18px;}
}

/* -------------------- philosophy strip -------------------------------- */
.philosophy{
  background:var(--walnut);color:var(--paper);
  position:relative;
}
.philosophy .wrap{
  display:grid;grid-template-columns:repeat(3,1fr);gap:48px;
}
.philosophy .item .eyebrow{color:var(--orange);}
.philosophy h3{color:var(--paper);font-size:1.25rem;}
.philosophy p{color:var(--paper-dim);font-size:.98rem;}
@media(max-width:780px){
  .philosophy .wrap{grid-template-columns:1fr;gap:36px;}
}

/* -------------------- angebote / pricing -------------------------------- */
.angebote{background:var(--paper);}
.angebote .head{max-width:640px;margin-bottom:56px;}
.limit-note{
  display:inline-flex;align-items:center;gap:.5em;
  background:var(--paper-dim);border:1px solid var(--line);
  padding:.5em 1em;border-radius:var(--radius);
  font-size:.85rem;font-weight:600;color:var(--orange-deep);
  margin-bottom:1.4em;
}
.offer-grid{
  display:grid;grid-template-columns:repeat(3,1fr);gap:2px;
  background:var(--line);
  border:1px solid var(--line);
}
.offer-card{
  background:var(--paper);
  padding:44px 34px;
  display:flex;flex-direction:column;
}
.offer-card h3{font-size:1.35rem;}
.offer-card p{color:var(--walnut-soft);font-size:.96rem;flex-grow:1;}
.offer-card .offer-link{
  margin-top:1.2em;font-weight:600;color:var(--orange-deep);text-decoration:none;
  border-bottom:1px solid var(--orange-deep);padding-bottom:.15em;align-self:flex-start;
}
.offer-card.featured{background:var(--walnut);color:var(--paper);}
.offer-card.featured h3, .offer-card.featured p{color:var(--paper);}
.offer-card.featured p{color:var(--paper-dim);}
.offer-card.featured .offer-link{color:var(--orange);border-color:var(--orange);}
@media(max-width:860px){.offer-grid{grid-template-columns:1fr;}}

.offer-detail{
  margin-top:80px;display:grid;grid-template-columns:1.05fr .95fr;gap:56px;align-items:start;
}
.offer-detail:not(:last-child){margin-bottom:24px;}
.offer-detail .media img{border-radius:var(--radius);box-shadow:var(--shadow);}
.offer-detail h3{font-size:1.6rem;}
.material-box{
  margin-top:1.6em;padding:22px 24px;background:var(--paper-dim);
  border-left:3px solid var(--orange);
}
.material-box h4{font-size:.95rem;text-transform:uppercase;letter-spacing:.06em;margin-bottom:.5em;}
.material-box p{font-size:.94rem;margin-bottom:0;}
@media(max-width:860px){
  .offer-detail{grid-template-columns:1fr;}
  .offer-detail.reverse .media{order:-1;}
}

/* -------------------- gallery -------------------------------- */
.gallery{background:var(--walnut);color:var(--paper);}
.gallery .eyebrow{color:var(--orange);}
.gallery h2{color:var(--paper);}
.gallery-grid{
  display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:190px;gap:8px;margin-top:44px;
}
.gallery-grid a{display:block;overflow:hidden;position:relative;border-radius:var(--radius);}
.gallery-grid img{width:100%;height:100%;object-fit:cover;transition:transform .5s ease;}
.gallery-grid a:hover img{transform:scale(1.06);}
.gallery-grid a:nth-child(1){grid-column:span 2;grid-row:span 2;}
.gallery-grid a:nth-child(4){grid-column:span 2;}
@media(max-width:780px){
  .gallery-grid{grid-template-columns:repeat(2,1fr);grid-auto-rows:160px;}
  .gallery-grid a:nth-child(1){grid-column:span 2;grid-row:span 1;}
}

/* -------------------- steinkunst -------------------------------- */
.steinkunst{background:var(--paper);}
.steinkunst .grid{
  display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:center;
}
.steinkunst-media img{border-radius:var(--radius);box-shadow:var(--shadow);}
.steinkunst .eyebrow{color:var(--stone);}
@media(max-width:860px){.steinkunst .grid{grid-template-columns:1fr;}}

/* -------------------- contact -------------------------------- */
.contact{background:var(--paper-dim);}
.contact .grid{
  display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:start;
}
.contact-info h2{font-size:clamp(1.8rem,3vw,2.4rem);}
.contact-list{list-style:none;padding:0;margin:1.6em 0;}
.contact-list li{
  padding:.9em 0;border-top:1px solid var(--line);
  display:flex;gap:1em;font-size:.98rem;
}
.contact-list li:last-child{border-bottom:1px solid var(--line);}
.contact-list strong{min-width:110px;font-weight:600;}
.map-embed{
  border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow);
  border:1px solid var(--line);
}
.map-embed iframe{width:100%;height:280px;border:0;display:block;}

form.contact-form{
  background:var(--paper);border:1px solid var(--line);
  padding:36px;border-radius:var(--radius);box-shadow:var(--shadow);
}
form.contact-form .field{margin-bottom:1.3em;}
form.contact-form label{
  display:block;font-size:.85rem;font-weight:600;margin-bottom:.45em;letter-spacing:.02em;
}
form.contact-form input[type=text],
form.contact-form input[type=email],
form.contact-form textarea{
  width:100%;padding:.85em 1em;font-family:var(--sans);font-size:.98rem;
  border:1px solid var(--line);background:var(--paper);color:var(--walnut);
  border-radius:var(--radius);
}
form.contact-form textarea{min-height:130px;resize:vertical;}
.field-checkbox{display:flex;align-items:flex-start;gap:.7em;font-size:.88rem;}
.field-checkbox input{margin-top:.3em;}
.form-status{margin-top:1em;font-size:.9rem;font-weight:600;}
.form-status.success{color:var(--moss);}
.form-status.error{color:#a8402a;}

/* -------------------- footer -------------------------------- */
footer.site-footer{
  background:var(--walnut);color:var(--paper-dim);
  padding:64px 0 28px;font-size:.9rem;
}
footer .foot-grid{
  display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:40px;margin-bottom:40px;
}
footer h4{color:var(--paper);font-family:var(--sans);font-size:.85rem;text-transform:uppercase;letter-spacing:.08em;margin-bottom:1em;}
footer ul{list-style:none;margin:0;padding:0;}
footer li{margin-bottom:.6em;}
footer a{text-decoration:none;color:var(--paper-dim);}
footer a:hover{color:var(--orange);}
.legal-toggle{
  border-top:1px solid rgba(250,243,231,.15);padding-top:28px;
}
details{margin-bottom:14px;}
details summary{
  cursor:pointer;font-weight:600;color:var(--paper);list-style:none;
  display:flex;align-items:center;gap:.6em;
}
details summary::-webkit-details-marker{display:none;}
details summary::before{content:"+";color:var(--orange);font-size:1.2em;width:1em;}
details[open] summary::before{content:"–";}
details .legal-body{padding:14px 0 4px 1.6em;color:var(--paper-dim);font-size:.88rem;line-height:1.7;}
.foot-bottom{
  margin-top:32px;padding-top:24px;border-top:1px solid rgba(250,243,231,.15);
  display:flex;justify-content:space-between;flex-wrap:wrap;gap:10px;
  font-size:.82rem;color:rgba(241,227,204,.6);
}
@media(max-width:780px){footer .foot-grid{grid-template-columns:1fr;}}

.sr-only{
  position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;
  clip:rect(0,0,0,0);white-space:nowrap;border:0;
}
