/* ============================================================
   STORYBOOK — Kinvara website template demo
   Hand-illustrated woodland journal. Fictional cattery:
   Tamarack Maine Coons, Bar Harbor, Maine.
   Customize per customer by editing the :root token block only.
   ============================================================ */
@import url('https://fonts.googleapis.com/css2?family=EB+Garamond:ital,wght@0,400;0,500;0,600;1,400;1,500&family=Caveat:wght@500;600&display=swap');

:root{
  --page:   #FAF5E9;
  --card:   #FFFDF6;
  --ink:    #43392E;
  --ink-soft:#77685A;
  --pine:   #44614E;
  --pine-d: #33493B;
  --berry:  #9C4938;
  --honey:  #D9A441;
  --serif: 'EB Garamond', Georgia, serif;
  --hand:  'Caveat', cursive;
  /* the hand-drawn wobble */
  --wobble: 255px 15px 225px 15px / 15px 225px 15px 255px;
  --wobble2: 15px 225px 15px 255px / 255px 15px 225px 15px;
  --max: 1060px;
}

*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{font-family:var(--serif);color:var(--ink);background:var(--page);line-height:1.7;font-size:17.5px;-webkit-font-smoothing:antialiased}
img{max-width:100%;display:block;filter:saturate(.94)}
a{color:inherit;text-decoration:none}
ul{list-style:none}
h1,h2,h3{font-family:var(--serif);font-weight:600;line-height:1.2;letter-spacing:.005em}
h1{font-size:clamp(2.2rem,5vw,3.4rem)}
h2{font-size:clamp(1.6rem,3.2vw,2.3rem)}
h3{font-size:1.25rem}
em{font-style:italic}

.sb-container{max-width:var(--max);margin:0 auto;padding:0 24px}

/* ---------- hand annotations ---------- */
.sb-hand{font-family:var(--hand);font-size:1.35rem;font-weight:600;color:var(--berry);line-height:1.3}
.sb-hand--pine{color:var(--pine)}
.sb-eyebrow{font-size:.8rem;font-weight:600;letter-spacing:.26em;text-transform:uppercase;color:var(--pine)}

/* ---------- leaf doodle ---------- */
.sb-leaf{color:var(--pine);display:block;margin:14px auto}

/* ---------- buttons (wobbly) ---------- */
.sb-btn{display:inline-block;font-family:var(--serif);font-weight:600;font-size:.98rem;padding:13px 30px;border:2px solid var(--ink);border-radius:var(--wobble);color:var(--ink);background:var(--card);cursor:pointer;transition:background .16s,color .16s,transform .16s}
.sb-btn:hover{background:var(--ink);color:var(--page);transform:rotate(-.6deg)}
.sb-btn--pine{background:var(--pine);border-color:var(--pine);color:var(--page)}
.sb-btn--pine:hover{background:var(--pine-d);border-color:var(--pine-d)}
.sb-btn--berry{background:var(--berry);border-color:var(--berry);color:var(--page)}
.sb-btn--berry:hover{background:#7E392B;border-color:#7E392B}

/* ---------- header ---------- */
.sb-header{position:sticky;top:0;z-index:60;background:rgba(250,245,233,.94);backdrop-filter:blur(8px);border-bottom:2px solid var(--ink)}
.sb-header__inner{max-width:var(--max);margin:0 auto;padding:14px 24px;display:flex;align-items:center;justify-content:space-between;gap:18px}
.sb-logo{display:flex;align-items:center;gap:12px}
.sb-logo__mark{width:44px;height:44px;border:2px solid var(--ink);border-radius:var(--wobble2);display:grid;place-items:center;color:var(--pine);background:var(--card);transform:rotate(-4deg);flex:none}
.sb-logo__text{font-weight:600;font-size:1.3rem;line-height:1.05}
.sb-logo__text .sb-hand{display:block;font-size:1.05rem;margin-top:1px}
.sb-nav{display:flex;align-items:center;gap:26px}
.sb-nav a{font-size:1.02rem;font-weight:500;position:relative;padding-bottom:3px}
.sb-nav a::after{content:"";position:absolute;left:0;right:100%;bottom:-1px;height:3px;background:var(--honey);border-radius:3px;transition:right .2s;transform:rotate(-.5deg)}
.sb-nav a:hover::after,.sb-nav a[aria-current]::after{right:0}
.sb-nav a[aria-current]{font-weight:600}
.sb-nav .sb-btn{padding:9px 20px;font-size:.9rem}
.sb-burger{display:none;background:var(--card);border:2px solid var(--ink);border-radius:var(--wobble2);cursor:pointer;padding:9px 11px}
.sb-burger span{display:block;width:20px;height:2px;background:var(--ink);margin:4.5px 0;border-radius:2px}

/* ---------- hero: journal page ---------- */
.sb-hero{padding:64px 0 80px}
.sb-hero__page{max-width:var(--max);margin:0 auto;padding:0 24px;display:grid;grid-template-columns:1.05fr .95fr;gap:52px;align-items:center}
.sb-hero h1 em{color:var(--pine)}
.sb-hero__note{margin:6px 0 18px}
.sb-hero__sub{font-size:1.12rem;color:var(--ink-soft);margin-bottom:28px;max-width:32rem}
.sb-hero__actions{display:flex;gap:14px;flex-wrap:wrap}
.sb-hero__art{position:relative;padding:16px}
.sb-hero__art img{width:100%;aspect-ratio:4/4.5;object-fit:cover;border:2px solid var(--ink);border-radius:var(--wobble)}
.sb-hero__art::before{content:"";position:absolute;inset:0;border:2px solid var(--ink);border-radius:var(--wobble2);transform:rotate(1.2deg);pointer-events:none}
.sb-tape{position:absolute;top:2px;left:50%;transform:translateX(-50%) rotate(-2deg);width:110px;height:26px;background:rgba(217,164,65,.55);border-radius:2px;z-index:2}
.sb-hero__caption{position:absolute;bottom:-16px;right:14px;background:var(--card);border:2px solid var(--ink);border-radius:var(--wobble2);padding:8px 18px;transform:rotate(-2deg)}

/* ---------- sections ---------- */
.sb-section{padding:84px 0}
.sb-section--card{background:var(--card);border-top:2px solid var(--ink);border-bottom:2px solid var(--ink)}
.sb-section--pine{background:var(--pine-d);color:var(--page)}
.sb-section--pine .sb-eyebrow{color:var(--honey)}
.sb-section-head{text-align:center;max-width:600px;margin:0 auto 50px}
.sb-section-head p{color:var(--ink-soft);margin-top:10px}
.sb-section--pine .sb-section-head p{color:rgba(250,245,233,.8)}
.sb-section-head .sb-hand{display:block;margin-top:8px}

/* ---------- litter journal entries ---------- */
.sb-litters{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:34px}
.sb-litter{background:var(--card);border:2px solid var(--ink);border-radius:var(--wobble);padding:18px 18px 26px;display:flex;flex-direction:column;position:relative}
.sb-litter__img{position:relative;margin-bottom:18px}
.sb-litter__img img{width:100%;aspect-ratio:16/10;object-fit:cover;border:2px solid var(--ink);border-radius:14px}
.sb-badge{position:absolute;top:-12px;left:14px;font-family:var(--hand);font-size:1.15rem;font-weight:600;background:var(--honey);color:var(--ink);border:2px solid var(--ink);border-radius:var(--wobble2);padding:4px 16px;transform:rotate(-2deg)}
.sb-badge--available{background:var(--pine);color:var(--page)}
.sb-badge--expected{background:var(--honey)}
.sb-badge--planned{background:var(--card)}
.sb-litter__body{display:flex;flex-direction:column;gap:13px;flex:1;padding:0 8px}
.sb-litter h3{font-size:1.4rem}
.sb-litter h3 .sb-hand{font-size:1.1rem;margin-left:6px}
.sb-dl{border-top:2px dotted rgba(67,57,46,.35);padding-top:13px;display:grid;gap:7px;font-size:.95rem}
.sb-dl div{display:flex;justify-content:space-between;gap:12px}
.sb-dl span{color:var(--ink-soft);font-style:italic}
.sb-litter__actions{margin-top:auto;display:flex;gap:12px;flex-wrap:wrap;padding-top:8px}
.sb-litter__actions .sb-btn{padding:10px 20px;font-size:.9rem}

/* ---------- kitten field notes ---------- */
.sb-kittens{display:grid;grid-template-columns:repeat(auto-fit,minmax(225px,1fr));gap:30px}
.sb-kitten{background:var(--card);border:2px solid var(--ink);border-radius:var(--wobble2);padding:14px 14px 20px;text-align:center;position:relative;transition:transform .16s}
.sb-kitten:nth-child(odd){transform:rotate(-1deg)}
.sb-kitten:nth-child(even){transform:rotate(1.1deg)}
.sb-kitten:hover{transform:rotate(0) translateY(-4px)}
.sb-kitten img{width:100%;aspect-ratio:1/1.05;object-fit:cover;border:2px solid var(--ink);border-radius:12px}
.sb-kitten h3{margin:14px 0 2px;font-size:1.2rem}
.sb-kitten .sb-hand{display:block;font-size:1.05rem;color:var(--ink-soft)}
.sb-status{display:inline-block;margin-top:10px;font-family:var(--hand);font-size:1.05rem;font-weight:600;border:2px solid var(--ink);border-radius:var(--wobble);padding:3px 16px}
.sb-status--available{background:var(--pine);border-color:var(--pine);color:var(--page)}
.sb-status--reserved{background:var(--honey);color:var(--ink)}
.sb-status--gone{color:var(--ink-soft);border-color:rgba(67,57,46,.4)}

/* ---------- cats (queens & sires) ---------- */
.sb-cats{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:34px}
.sb-cat{background:var(--card);border:2px solid var(--ink);border-radius:var(--wobble);padding:20px 22px 26px;text-align:center}
.sb-cat__frame{position:relative;margin-bottom:16px}
.sb-cat__frame img{width:100%;aspect-ratio:4/3.6;object-fit:cover;border:2px solid var(--ink);border-radius:14px}
.sb-cat__role{position:absolute;bottom:-12px;left:50%;transform:translateX(-50%) rotate(-1.5deg);font-family:var(--hand);font-size:1.1rem;font-weight:600;background:var(--berry);color:var(--page);border:2px solid var(--ink);border-radius:var(--wobble2);padding:2px 18px;white-space:nowrap}
.sb-cat h3{margin:14px 0 2px}
.sb-cat__breed{font-style:italic;color:var(--ink-soft);font-size:.95rem;margin-bottom:10px}
.sb-cat__specs{display:flex;justify-content:center;flex-wrap:wrap;gap:5px 16px;font-size:.85rem;color:var(--ink-soft);margin-bottom:12px}
.sb-link{font-family:var(--hand);font-size:1.15rem;font-weight:600;color:var(--pine);border-bottom:2px solid var(--honey)}
.sb-link:hover{color:var(--berry)}

/* ---------- pine notes ---------- */
.sb-notes{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:28px}
.sb-note{background:rgba(250,245,233,.07);border:2px solid rgba(250,245,233,.35);border-radius:var(--wobble);padding:30px 28px;text-align:center}
.sb-note .sb-hand{display:block;color:var(--honey);margin-bottom:10px}
.sb-note h3{color:var(--page);margin-bottom:10px}
.sb-note p{font-size:.96rem;color:rgba(250,245,233,.82)}

/* ---------- page hero ---------- */
.sb-pagehero{text-align:center;padding:66px 0 54px;border-bottom:2px solid var(--ink);background:var(--card)}
.sb-pagehero p{max-width:44ch;margin:14px auto 0;color:var(--ink-soft)}
.sb-pagehero .sb-hand{display:block;margin-top:10px}

/* ---------- steps ---------- */
.sb-steps{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:28px;counter-reset:sbstep;text-align:center}
.sb-step{background:var(--card);border:2px solid var(--ink);border-radius:var(--wobble2);padding:26px 22px;counter-increment:sbstep}
.sb-step::before{content:"no. " counter(sbstep);font-family:var(--hand);font-size:1.3rem;font-weight:600;color:var(--berry);display:block;margin-bottom:8px}
.sb-step h3{font-size:1.12rem;margin-bottom:6px}
.sb-step p{font-size:.94rem;color:var(--ink-soft)}

/* ---------- forms ---------- */
.sb-form{max-width:740px;margin:0 auto;display:grid;gap:34px}
.sb-fieldset{background:var(--card);border:2px solid var(--ink);border-radius:var(--wobble);padding:36px 38px}
.sb-fieldset legend{font-weight:600;font-size:1.35rem;padding:0 14px}
.sb-fieldset legend .sb-hand{font-size:1.15rem;margin-left:8px}
.sb-fieldset > p{font-size:.95rem;font-style:italic;color:var(--ink-soft);margin:6px 0 22px}
.sb-grid2{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.sb-field{display:grid;gap:6px;margin-bottom:18px}
.sb-field:last-child{margin-bottom:0}
.sb-field label{font-weight:600;font-size:.95rem}
.sb-field label small{color:var(--berry);font-weight:700}
.sb-field input,.sb-field select,.sb-field textarea{font-family:var(--serif);font-size:1.02rem;padding:12px 15px;border:2px solid rgba(67,57,46,.5);border-radius:12px;background:var(--page);color:var(--ink);width:100%}
.sb-field input:focus,.sb-field select:focus,.sb-field textarea:focus{outline:none;border-color:var(--pine);background:var(--card)}
.sb-field textarea{min-height:110px;resize:vertical}
.sb-radio-row{display:flex;flex-wrap:wrap;gap:10px}
.sb-radio-row label{display:inline-flex;align-items:center;gap:9px;background:var(--page);border:2px solid rgba(67,57,46,.5);border-radius:var(--wobble2);padding:8px 17px;font-size:.95rem;cursor:pointer}
.sb-radio-row input{accent-color:var(--pine)}
.sb-radio-row label:has(input:checked){border-color:var(--pine);background:rgba(68,97,78,.1)}
.sb-check{display:flex;gap:12px;align-items:flex-start;font-size:.98rem;margin-bottom:14px}
.sb-check input{width:18px;height:18px;margin-top:5px;accent-color:var(--pine);flex:none}
.sb-form__submit{text-align:center}
.sb-form__note{font-family:var(--hand);font-size:1.2rem;color:var(--ink-soft);margin-top:14px}
.sb-success{background:var(--card);border:2px solid var(--ink);border-radius:var(--wobble);padding:52px 42px;text-align:center;max-width:640px;margin:0 auto}
.sb-success svg{color:var(--pine);margin-bottom:16px}
.sb-success p{color:var(--ink-soft);margin-top:12px}

/* ---------- footer ---------- */
.sb-footer{background:var(--pine-d);color:rgba(250,245,233,.85);margin-top:94px;border-top:2px solid var(--ink);text-align:center}
.sb-footer__inner{max-width:var(--max);margin:0 auto;padding:58px 24px 42px}
.sb-footer__word{font-weight:600;font-size:1.6rem;color:var(--page);display:block}
.sb-footer .sb-hand{color:var(--honey);display:block;margin:4px 0 18px}
.sb-footer p{font-size:.96rem;max-width:44ch;margin:0 auto 24px}
.sb-footer__links{display:flex;justify-content:center;gap:30px;flex-wrap:wrap;margin-bottom:22px}
.sb-footer__links a{font-size:1rem;font-weight:500;border-bottom:2px solid transparent}
.sb-footer__links a:hover{border-color:var(--honey)}
.sb-footer__contact{font-size:.94rem;font-style:italic}
.sb-footer__contact a{color:var(--page)}
.sb-footer__bar{border-top:1px solid rgba(250,245,233,.25);padding:18px 24px;font-size:.82rem;color:rgba(250,245,233,.6)}
.sb-footer__bar a{color:var(--honey)}

/* ---------- demo bar ---------- */
.kv-demobar{position:fixed;bottom:16px;left:50%;transform:translateX(-50%);z-index:90;background:var(--ink);color:var(--page);border-radius:var(--wobble);box-shadow:0 12px 34px rgba(0,0,0,.3);display:flex;align-items:center;gap:6px;padding:8px 12px 8px 20px;font-size:.9rem;white-space:nowrap}
.kv-demobar b{font-weight:700}
.kv-demobar a{padding:8px 14px;border-radius:999px;font-weight:600}
.kv-demobar a:hover{background:rgba(250,245,233,.15)}
.kv-demobar a.kv-demobar__cta{background:var(--honey);color:var(--ink)}
@media(max-width:640px){.kv-demobar{font-size:.8rem;padding-left:14px;max-width:calc(100vw - 20px)}.kv-demobar span.kv-hide-sm{display:none}}

/* ---------- responsive ---------- */
@media(max-width:900px){
  .sb-hero__page{grid-template-columns:1fr;gap:48px}
  .sb-hero__art{max-width:460px;margin:0 auto;width:100%}
}
@media(max-width:820px){
  .sb-nav{position:fixed;top:78px;left:14px;right:14px;background:var(--card);border:2px solid var(--ink);border-radius:var(--wobble);flex-direction:column;align-items:stretch;padding:16px;display:none;z-index:70;gap:2px}
  .sb-nav.is-open{display:flex}
  .sb-nav a{padding:12px 14px;text-align:center}
  .sb-nav a::after{display:none}
  .sb-burger{display:block}
  .sb-grid2{grid-template-columns:1fr}
  .sb-fieldset{padding:28px 22px}
  .sb-section{padding:62px 0}
}
