/* PUKKY · Design system
   Warm paper ramp, one accent (PUKKY pink), plum only in the logo mark.
   Type: Newsreader for headlines, Instrument Sans for everything else. All fonts self-hosted. */

@font-face{font-family:"Instrument Sans";font-style:normal;font-weight:400;font-display:swap;src:url("../fonts/instrument-sans-latin-400.woff2") format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Instrument Sans";font-style:normal;font-weight:400;font-display:swap;src:url("../fonts/instrument-sans-latin-ext-400.woff2") format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:"Instrument Sans";font-style:normal;font-weight:500;font-display:swap;src:url("../fonts/instrument-sans-latin-500.woff2") format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Instrument Sans";font-style:normal;font-weight:500;font-display:swap;src:url("../fonts/instrument-sans-latin-ext-500.woff2") format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:"Instrument Sans";font-style:normal;font-weight:600;font-display:swap;src:url("../fonts/instrument-sans-latin-600.woff2") format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Instrument Sans";font-style:normal;font-weight:600;font-display:swap;src:url("../fonts/instrument-sans-latin-ext-600.woff2") format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:"Newsreader";font-style:normal;font-weight:400;font-display:swap;src:url("../fonts/newsreader-latin-400.woff2") format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Newsreader";font-style:normal;font-weight:400;font-display:swap;src:url("../fonts/newsreader-latin-ext-400.woff2") format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:"Newsreader";font-style:normal;font-weight:500;font-display:swap;src:url("../fonts/newsreader-latin-500.woff2") format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Newsreader";font-style:normal;font-weight:500;font-display:swap;src:url("../fonts/newsreader-latin-ext-500.woff2") format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}

:root{
  /* Warm paper ramp */
  --paper:#f7f4ee;
  --card:#fdfbf7;
  --raised:#efe9df;
  --sand-deep:#e6ddcf;
  --text:#1f1b16;
  --text-2:#5e554a;
  --muted:#73695d;
  --line:rgba(31,27,22,.10);
  --line-strong:rgba(31,27,22,.18);

  /* Night: the dark band, footer and story block */
  --night:#171512;
  --night-2:#211e1a;
  --night-text:#efe9de;
  --night-text-2:#b3ab9f;
  --night-line:rgba(239,233,222,.12);

  /* One accent: PUKKY pink, darkened for 4.5:1 with white */
  --accent:#c4286f;
  --accent-hover:#a91f5d;
  --accent-ink:#a8215e;
  --accent-soft:rgba(196,40,111,.10);

  /* Brand plum, used only for the logo mark */
  --plum:#6c3483;

  /* Semantic */
  --ok:#2f7a55;
  --ok-soft:#e3efe6;
  --warn:#8a5a12;
  --warn-soft:#f5ead2;

  --font-body:"Instrument Sans",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
  --font-display:"Newsreader",Georgia,"Times New Roman",serif;

  --r-xs:6px;--r-sm:10px;--r-md:12px;--r-lg:16px;--r-xl:20px;
  --shadow-sm:0 1px 2px rgba(31,27,22,.05);
  --shadow-md:0 8px 24px rgba(31,27,22,.07);
  --shadow-lg:0 24px 48px rgba(31,27,22,.16);
  --ease:cubic-bezier(.22,1,.36,1);
  --wrap:1200px;--gutter:clamp(16px,4vw,32px);
  --header-h:68px;

  /* Legacy names still referenced by page markup */
  --sand:var(--raised);--ink:var(--text);--ink-2:var(--text-2);
  --plum-900:var(--night);--rose-700:var(--accent-ink);--green-100:var(--ok-soft);
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:calc(var(--header-h) + 16px)}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
body{margin:0;font-family:var(--font-body);font-size:17px;line-height:1.6;color:var(--text);background:var(--paper);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
img,svg,video{display:block;max-width:100%;height:auto}
a{color:var(--accent-ink);text-decoration-thickness:1px;text-underline-offset:3px}
a:hover{color:var(--text)}
h1,h2,h3,h4{margin:0 0 .5em;color:var(--text);text-wrap:balance}
h1,h2{font-family:var(--font-display);font-weight:400;line-height:1.08;letter-spacing:-.02em}
h1{font-size:clamp(2.5rem,5.4vw,4.25rem);letter-spacing:-.025em}
h2{font-size:clamp(2rem,3.6vw,2.875rem)}
h3{font-family:var(--font-display);font-size:clamp(1.375rem,2vw,1.625rem);font-weight:500;line-height:1.2;letter-spacing:-.01em}
h4{font-family:var(--font-body);font-size:1rem;font-weight:600;line-height:1.4}
p{margin:0 0 1em}
b,strong{font-weight:600}
.lead{font-size:clamp(1.0625rem,1.5vw,1.1875rem);line-height:1.6;color:var(--text-2);max-width:36rem;text-wrap:pretty}
.muted{color:var(--muted)}
.small{font-size:.875rem;line-height:1.55}
:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:4px}
.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}
.skip{position:absolute;left:12px;top:-60px;background:var(--text);color:var(--paper);padding:8px 12px;border-radius:8px;z-index:100}
.skip:focus{top:12px;color:var(--paper)}
.wrap{width:min(var(--wrap),100% - 2*var(--gutter));margin-inline:auto}
.wrap-narrow{width:min(760px,100% - 2*var(--gutter));margin-inline:auto}
section{padding-block:clamp(64px,9vw,120px)}
.section-tight{padding-block:clamp(40px,5vw,64px)}
.eyebrow{display:block;font-size:.9375rem;font-weight:500;color:var(--muted);margin-bottom:12px}
.section-head{max-width:720px;margin-bottom:clamp(32px,4vw,48px)}
.section-head .lead{margin-bottom:0}
.section-head.center{margin-inline:auto;text-align:center}
.section-head.center .lead{margin-inline:auto}

/* Bands */
.band-alt{background:var(--card);border-block:1px solid var(--line)}
.band-sand{background:var(--raised)}
.band-dark,.surface-plum{background:var(--night);color:var(--night-text)}
.band-dark h1,.band-dark h2,.band-dark h3,.band-dark h4,.band-dark b,.surface-plum h2,.surface-plum h3{color:var(--night-text)}
.band-dark p,.band-dark span,.band-dark .lead,.surface-plum p,.surface-plum li{color:var(--night-text-2)}
.band-dark .eyebrow{color:var(--night-text-2)}
.band-dark a:not(.btn){color:var(--night-text)}

/* Preview banner: a dummy marker, kept quiet */
.preview-bar{background:var(--night);color:var(--night-text-2);font-size:.8125rem;padding:8px 0}
.preview-bar .wrap{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.preview-bar b{font-weight:600;color:var(--night-text)}
.preview-bar .chip-ph{background:transparent;color:#e7c98f;border-color:rgba(231,201,143,.5)}
.preview-bar button{margin-left:auto;background:transparent;border:1px solid var(--night-line);color:var(--night-text);border-radius:6px;padding:4px 10px;font:inherit;font-size:.8125rem;cursor:pointer;transition:background-color 150ms var(--ease)}
.preview-bar button:hover{background:rgba(239,233,222,.08)}
.preview-bar[hidden]{display:none}

/* Header */
.site-header{position:sticky;top:0;z-index:50;background:var(--paper);border-bottom:1px solid transparent;transition:border-color 200ms var(--ease)}
.site-header.is-scrolled{border-color:var(--line)}
.site-header .wrap{display:flex;align-items:center;gap:24px;height:var(--header-h)}
.brand{display:inline-flex;align-items:center;gap:10px;text-decoration:none;color:var(--text);font-family:var(--font-body);font-weight:600;font-size:1.125rem;letter-spacing:.06em;line-height:1}
.brand:hover{color:var(--text)}
.brand svg,.brand img{width:32px;height:32px;color:var(--plum)}
.brand span small{display:block;font-weight:400;font-size:.75rem;letter-spacing:0;color:var(--muted);line-height:1.2;margin-top:4px}
.nav{margin-left:auto;display:flex;align-items:center;gap:2px}
.nav a{font-weight:500;font-size:.9375rem;color:var(--text-2);text-decoration:none;padding:8px 12px;border-radius:8px;transition:background-color 150ms var(--ease),color 150ms var(--ease)}
.nav a:hover{background:var(--raised);color:var(--text)}
.nav a[aria-current="page"]{color:var(--text);background:var(--raised)}
.nav .btn{margin-left:12px}
.nav .btn-primary,.nav .btn-primary:hover{color:#fff}
.lang{display:flex;align-items:center;gap:0;margin-left:8px;padding-left:12px;border-left:1px solid var(--line)}
.lang a{font-size:.8125rem;font-weight:500;letter-spacing:.02em;color:var(--muted);text-decoration:none;padding:6px 8px;border-radius:6px}
.lang a:hover{color:var(--text);background:var(--raised)}
.lang a[aria-current="true"]{color:var(--text);background:transparent;text-decoration:underline;text-decoration-color:var(--accent);text-decoration-thickness:2px;text-underline-offset:6px}
.nav-toggle{display:none;margin-left:auto;width:44px;height:44px;border:0;background:transparent;border-radius:10px;cursor:pointer;color:var(--text)}
.nav-toggle:hover{background:var(--raised)}
.nav-toggle svg{width:24px;height:24px;margin:auto}
.nav-toggle .ic-close,.nav-toggle[aria-expanded="true"] .ic-menu{display:none}
.nav-toggle[aria-expanded="true"] .ic-close{display:block}
.site-header .nav-donate{display:none}
@media (max-width:1040px){
  .nav-toggle{display:inline-flex;align-items:center;justify-content:center;margin-left:8px}
  .site-header .nav-donate{display:inline-flex;margin-left:auto}
  .nav{position:fixed;top:var(--nav-top,var(--header-h));left:0;right:0;bottom:0;background:var(--paper);flex-direction:column;align-items:stretch;justify-content:flex-start;padding:16px var(--gutter) calc(24px + env(safe-area-inset-bottom));gap:0;opacity:0;visibility:hidden;transition:opacity 160ms var(--ease),visibility 0s linear 160ms;overflow:auto;overscroll-behavior:contain}
  .nav.is-open{opacity:1;visibility:visible;transition:opacity 200ms var(--ease),visibility 0s}
  .nav a{font-family:var(--font-display);font-size:1.875rem;line-height:1.15;font-weight:400;letter-spacing:-.01em;color:var(--text);padding:14px 0;border-radius:0;border-bottom:1px solid var(--line)}
  .nav a:hover,.nav a[aria-current="page"]{background:transparent;color:var(--accent-ink)}
  .nav .btn{font-family:var(--font-body);font-size:1rem;font-weight:500;letter-spacing:0;border-radius:var(--r-sm);margin:24px 0 0;min-height:52px;justify-content:center;border-bottom:0;color:#fff}
  .lang{border-left:0;margin:16px 0 0;padding:0;gap:8px}
  .lang a{font-family:var(--font-body);font-size:.9375rem;padding:8px 12px;border:1px solid var(--line);border-radius:8px;letter-spacing:.02em}
  .lang a[aria-current="true"]{border-color:var(--text);text-decoration:none}
  .nav.is-open > *{animation:menuIn 320ms var(--ease) both}
  .nav.is-open > :nth-child(2){animation-delay:30ms}.nav.is-open > :nth-child(3){animation-delay:60ms}
  .nav.is-open > :nth-child(4){animation-delay:90ms}.nav.is-open > :nth-child(5){animation-delay:120ms}
  .nav.is-open > :nth-child(6){animation-delay:150ms}.nav.is-open > :nth-child(7){animation-delay:180ms}
  .nav.is-open > :nth-child(8){animation-delay:210ms}
}
@keyframes menuIn{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
body.nav-open{overflow:hidden}

/* Buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:48px;padding:12px 20px;border-radius:var(--r-sm);font-weight:500;font-size:1rem;text-decoration:none;border:1px solid transparent;cursor:pointer;font-family:inherit;line-height:1.2;transition:transform 150ms var(--ease),background-color 150ms var(--ease),color 150ms var(--ease),border-color 150ms var(--ease);white-space:nowrap}
.btn:active{transform:scale(.98)}
.btn svg{width:18px;height:18px;flex:none}
.btn-primary{background:var(--accent);color:#fff}
.btn-primary:hover{background:var(--accent-hover);color:#fff}
.btn-secondary{background:transparent;color:var(--text);border-color:var(--line-strong)}
.btn-secondary:hover{background:var(--raised);color:var(--text)}
.btn-ghost{background:transparent;color:var(--text);padding-inline:4px;min-height:40px}
.btn-ghost:hover{color:var(--accent-ink)}
.btn-light{background:var(--night-text);color:var(--night)}
.btn-light:hover{background:#fff;color:var(--night)}
.btn-sm{min-height:36px;padding:8px 14px;font-size:.9375rem;border-radius:8px}
.btn-whatsapp{background:var(--card);color:var(--text);border-color:var(--line-strong)}
.btn-whatsapp svg{color:#1f9d55}
.btn-whatsapp:hover{background:var(--raised);color:var(--text)}
.btn-group{display:flex;flex-wrap:wrap;gap:12px}
.btn[aria-disabled="true"]{opacity:.55;pointer-events:none}
/* Buttons on photos and dark bands */
.hero .btn-secondary,.page-hero.has-img .btn-secondary,.band-dark .btn-secondary{color:#fff;border-color:rgba(255,255,255,.6);background:rgba(18,17,15,.18)}
.hero .btn-secondary:hover,.page-hero.has-img .btn-secondary:hover,.band-dark .btn-secondary:hover{background:rgba(255,255,255,.1);color:#fff}

/* Chips: quiet tags, not pills */
.chip{display:inline-flex;align-items:center;gap:6px;padding:4px 8px;border-radius:var(--r-xs);font-size:.8125rem;font-weight:500;line-height:1.3;background:var(--raised);color:var(--text-2)}
.chip-ok::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--ok);flex:none}
.chip-plum,.chip-rose{background:var(--raised);color:var(--text-2)}
.chip-ph{background:var(--warn-soft);color:var(--warn);font-weight:500;font-size:.75rem;letter-spacing:0;text-transform:none;border:1px dashed rgba(138,90,18,.4);padding:2px 6px;vertical-align:middle}
.ph{position:relative}
.ph-text{color:var(--muted)}
.ph-note{display:flex;gap:8px;align-items:flex-start;font-size:.875rem;line-height:1.5;color:var(--warn);margin:0 0 12px}
.ph-note svg{width:16px;height:16px;flex:none;margin-top:3px}

/* Home hero: the shelter after a storm, text on the calm sky */
.hero{position:relative;color:#fff;min-height:clamp(640px,calc(100svh - var(--header-h) - 36px),880px);display:flex;flex-direction:column;background:#3d3d3a;padding-block:0;z-index:1}
.hero picture,.hero > img{position:absolute;inset:0;width:100%;height:100%;overflow:hidden}
.hero img{width:100%;height:100%;object-fit:cover;object-position:center 22%}
.hero::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(18,17,15,.38) 0%,rgba(18,17,15,.12) 42%,rgba(18,17,15,0) 55%,rgba(18,17,15,.66) 100%);pointer-events:none}
.hero .wrap{position:relative;z-index:2}
.hero-copy{padding-top:clamp(56px,9vh,96px)}
.hero h1{color:#fff;font-size:clamp(2.5rem,5vw,4.25rem);margin-bottom:20px;max-width:12.5em}
.hero .lead{color:rgba(255,255,255,.92);max-width:31rem;margin-bottom:32px}
.hero-foot{margin-top:auto;padding-top:40px;padding-bottom:40px;display:flex;align-items:flex-end;justify-content:space-between;gap:32px}
.hero-foot .tag-card{margin-bottom:-96px}
.hero + section{padding-top:clamp(120px,12vw,160px)}
.hero-facts{display:grid;grid-template-columns:repeat(4,auto);gap:12px 40px;margin:0;padding:0;list-style:none}
.hero-facts li{display:flex;flex-direction:column;gap:4px}
.hero-facts b{font-family:var(--font-display);font-size:2rem;font-weight:400;line-height:1;color:#fff;font-variant-numeric:tabular-nums;letter-spacing:-.01em}
.hero-facts span{font-size:.875rem;color:rgba(255,255,255,.82);line-height:1.3}
.hero-source{font-size:.75rem;color:rgba(255,255,255,.62);margin:12px 0 0}

/* Steckbrief: a waiting dog's card, the hero's moment */
.tag-card{position:relative;width:300px;flex:none;background:var(--card);color:var(--text);border-radius:var(--r-lg);padding:12px;box-shadow:var(--shadow-lg);text-decoration:none;display:block;transition:transform 200ms var(--ease)}
.tag-card:hover{color:var(--text);transform:translateY(-2px)}
.tag-card .tag-photo{border-radius:8px;overflow:hidden;aspect-ratio:4/3;background:var(--raised)}
.tag-card .tag-photo img{width:100%;height:100%;object-fit:cover;object-position:center 30%}
.tag-card .tag-body{padding:12px 8px 4px}
.tag-card .route{margin-bottom:12px}
.tag-card .tag-top{display:flex;align-items:baseline;justify-content:space-between;gap:8px}
.tag-card .tag-name{font-family:var(--font-display);font-size:1.625rem;line-height:1.1;font-weight:500}
.tag-card .tag-age{font-size:.875rem;color:var(--muted)}
.tag-card .tag-meta{font-size:.875rem;color:var(--text-2);margin:4px 0 12px}
.tag-card .tag-cta{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:.875rem;font-weight:500;color:var(--accent-ink);border-top:1px solid var(--line);padding-top:12px;margin-top:12px}
.tag-card .tag-cta svg{width:16px;height:16px;transition:transform 150ms var(--ease)}
.tag-card:hover .tag-cta svg{transform:translateX(2px)}

/* Signature: the dashed route from Ankara to a home */
.route{display:flex;align-items:center;gap:8px;font-size:.8125rem;color:var(--muted);line-height:1}
.route i{flex:1;min-width:24px;height:0;border-top:1.5px dashed currentColor;opacity:.55}
.route b{font-weight:500;color:var(--text-2)}
.route .dot{width:7px;height:7px;border-radius:50%;border:1.5px solid currentColor;flex:none}
.route .dot.end{background:var(--accent);border-color:var(--accent)}
.band-dark .route,.site-footer .route{color:var(--night-text-2)}
.band-dark .route b,.site-footer .route b{color:var(--night-text)}

/* Page hero (inner pages) */
.page-hero{background:var(--paper);color:var(--text);padding-block:clamp(48px,7vw,96px) clamp(32px,4vw,56px);position:relative;overflow:hidden;border-bottom:1px solid var(--line)}
.page-hero h1{margin-bottom:16px}
.page-hero .lead{margin-bottom:0}
.page-hero.has-img{min-height:clamp(380px,52vh,520px);display:flex;align-items:flex-end;color:#fff;border-bottom:0;background:#3d3d3a}
.page-hero.has-img img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.page-hero.has-img::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(18,17,15,.5) 0%,rgba(18,17,15,0) 70%),linear-gradient(180deg,rgba(18,17,15,.1) 0%,rgba(18,17,15,.25) 40%,rgba(18,17,15,.7) 100%)}
.page-hero.has-img h1{color:#fff}
.page-hero.has-img .lead{color:rgba(255,255,255,.9)}
.page-hero.has-img .eyebrow{color:rgba(255,255,255,.8)}
.page-hero.has-img .breadcrumb,.page-hero.has-img .breadcrumb a{color:rgba(255,255,255,.8)}
.page-hero .wrap{position:relative;z-index:2}
.breadcrumb{display:flex;gap:8px;flex-wrap:wrap;list-style:none;padding:0;margin:0 0 24px;font-size:.875rem;color:var(--muted)}
.breadcrumb a{color:var(--text-2);text-decoration:none}
.breadcrumb a:hover{color:var(--text);text-decoration:underline}
.breadcrumb li+li::before{content:"/";margin-right:8px;opacity:.5}

/* Grid helpers */
.grid{display:grid;gap:clamp(16px,2.5vw,24px)}
.grid-2{grid-template-columns:repeat(2,1fr)}
.grid-3{grid-template-columns:repeat(3,1fr)}
.grid-4{grid-template-columns:repeat(4,1fr)}
@media (max-width:900px){.grid-3,.grid-4{grid-template-columns:repeat(2,1fr)}}
@media (max-width:600px){.grid-2,.grid-3,.grid-4{grid-template-columns:1fr}}
.split{display:grid;grid-template-columns:1fr 1fr;gap:clamp(32px,6vw,80px);align-items:center}
.split.rev>:first-child{order:2}
@media (max-width:860px){.split{grid-template-columns:1fr}.split.rev>:first-child{order:0}}

/* Cards */
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--r-lg);overflow:hidden;transition:border-color 150ms var(--ease)}
@media (hover:hover) and (pointer:fine){.card.is-link:hover{border-color:var(--line-strong)}}
.card-body{padding:20px}
.card h3{margin-bottom:8px}
.card p:last-child{margin-bottom:0}
.card-img{aspect-ratio:4/3;overflow:hidden;background:var(--raised)}
.card-img img{width:100%;height:100%;object-fit:cover}
.card-link{color:inherit;text-decoration:none;display:block;height:100%}
.card-link:hover{color:inherit}
.feature{padding-top:20px;border-top:1px solid var(--line-strong)}
.feature .ico{width:20px;height:20px;color:var(--text-2);margin-bottom:16px}
.feature .ico svg{width:20px;height:20px;stroke-width:1.5}
.feature h3{margin-bottom:8px}
.feature p{color:var(--text-2);margin:0}
.feature p + a,.feature a{font-weight:500}
.tile{padding-top:16px;border-top:1px solid var(--line-strong)}
.tile b{display:block;font-family:var(--font-display);font-size:clamp(2.5rem,4vw,3.25rem);font-weight:400;letter-spacing:-.02em;color:var(--text);line-height:1;margin-bottom:12px;font-variant-numeric:tabular-nums}
.tile span{color:var(--text-2);font-size:.9375rem}
.band-dark .tile{border-color:var(--night-line)}
.surface{background:var(--card);border:1px solid var(--line);border-radius:var(--r-lg);padding:clamp(20px,3vw,32px)}
.surface-plum{border-radius:var(--r-xl);padding:clamp(24px,4vw,48px)}
.surface-plum .check-ico{color:var(--night-text);flex:none;width:20px;height:20px;margin-top:3px}
.surface-sand{background:var(--raised);border-radius:var(--r-lg);padding:clamp(20px,3vw,32px)}

/* Dog card */
.dog-card{background:transparent;border:0;border-radius:0;overflow:visible}
.dog-card .card-img{aspect-ratio:4/3;position:relative;border-radius:var(--r-md)}
.dog-card .card-img img{transition:opacity 200ms var(--ease)}
@media (hover:hover) and (pointer:fine){.dog-card.is-link:hover .card-img img{opacity:.92}}
.dog-card .badge{position:absolute;left:12px;top:12px;background:var(--card);color:var(--text);font-size:.8125rem;font-weight:500;padding:4px 8px;border-radius:var(--r-xs)}
.dog-card .card-body{padding:16px 0 0}
.dog-card h3{display:flex;align-items:baseline;justify-content:space-between;gap:8px;font-size:1.625rem;margin-bottom:4px}
.dog-card h3 small{font-family:var(--font-body);font-weight:400;font-size:.875rem;color:var(--muted);letter-spacing:0}
.dog-card .meta{color:var(--text-2);font-size:.9375rem;margin:0 0 12px}
.dog-card .chips{display:flex;flex-wrap:wrap;gap:6px}
.dog-card .cta{margin-top:16px;display:inline-flex;align-items:center;gap:6px;font-weight:500;color:var(--accent-ink);font-size:.9375rem}
.dog-card .cta svg{width:16px;height:16px;transition:transform 150ms var(--ease)}
@media (hover:hover) and (pointer:fine){.dog-card:hover .cta svg{transform:translateX(2px)}}
.grid[data-dog-grid],.dog-row{row-gap:48px}

/* Filters */
.filters{display:flex;flex-wrap:wrap;gap:8px 12px;align-items:center;margin-bottom:24px;padding:12px;background:var(--card);border:1px solid var(--line);border-radius:var(--r-lg)}
.filters label{font-size:.875rem;font-weight:500;color:var(--muted);margin-left:4px}
.filters select{appearance:none;-webkit-appearance:none;min-height:40px;padding:8px 36px 8px 12px;border-radius:var(--r-sm);border:1px solid var(--line-strong);background:var(--card) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='none' stroke='%235e554a' stroke-width='1.5'%3E%3Cpath d='M4 6l4 4 4-4'/%3E%3C/svg%3E") no-repeat right 12px center;font:inherit;font-size:.9375rem;color:var(--text);cursor:pointer;transition:border-color 150ms var(--ease)}
.filters select:hover{border-color:var(--text-2)}
.filters .count{margin-left:auto;font-size:.875rem;color:var(--muted);font-variant-numeric:tabular-nums}
.filters .count b{color:var(--text);font-weight:600}
.filters .reset{font-size:.875rem;margin-right:4px}
.empty{padding:40px;text-align:center;color:var(--muted);background:var(--card);border:1px dashed var(--line-strong);border-radius:var(--r-lg)}

/* Dog profile */
.profile-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:clamp(24px,5vw,64px);align-items:start}
@media (max-width:900px){.profile-grid{grid-template-columns:1fr}}
.gallery-main{border-radius:var(--r-lg);overflow:hidden;aspect-ratio:4/3;background:var(--raised)}
.gallery-main img{width:100%;height:100%;object-fit:cover}
.gallery-thumbs{display:grid;grid-template-columns:repeat(5,1fr);gap:8px;margin-top:8px}
.gallery-thumbs button{padding:0;border:2px solid transparent;border-radius:var(--r-sm);overflow:hidden;background:var(--raised);cursor:pointer;aspect-ratio:4/3;transition:border-color 150ms var(--ease)}
.gallery-thumbs button[aria-pressed="true"]{border-color:var(--text)}
.gallery-thumbs img{width:100%;height:100%;object-fit:cover}
.facts{display:grid;grid-template-columns:repeat(2,1fr);gap:0 24px;list-style:none;padding:0;margin:0 0 24px}
.facts li{padding:12px 0;border-bottom:1px solid var(--line);min-width:0;overflow-wrap:anywhere}
.facts.cols3{grid-template-columns:repeat(3,1fr)}
@media (max-width:600px){.facts.cols3{grid-template-columns:repeat(2,1fr)}}
.profile-grid>*{min-width:0}
.facts span{display:block;font-size:.8125rem;color:var(--muted);font-weight:400;margin-bottom:2px}
.facts b{font-weight:500;color:var(--text)}
.compat{display:grid;grid-template-columns:repeat(2,1fr);gap:0 24px;list-style:none;padding:0;margin:0 0 32px}
.compat li{display:flex;align-items:center;gap:10px;min-width:0;padding:12px 0;border-bottom:1px solid var(--line);font-size:.9375rem}
.compat li svg{width:18px;height:18px;flex:none}
.compat .ok svg{color:var(--ok)}
.compat .no svg{color:var(--muted)}
.compat .maybe svg{color:var(--warn)}
@media (max-width:480px){.compat{grid-template-columns:1fr}}
.sticky-cta{position:sticky;top:calc(var(--header-h) + 24px)}
.sticky-cta .surface{box-shadow:var(--shadow-md)}
.sticky-cta .btn-group .btn{width:100%}
.profile-cta-bar{display:none}
@media (max-width:900px){
  .sticky-cta{position:static}
  .profile-cta-bar{display:flex;gap:8px;position:fixed;left:0;right:0;bottom:0;z-index:40;padding:12px var(--gutter) calc(12px + env(safe-area-inset-bottom));background:var(--paper);border-top:1px solid var(--line)}
  .profile-cta-bar .btn{flex:1}
  .profile-cta-bar .btn-whatsapp{flex:none;width:48px;padding:0}
  body.has-cta-bar{padding-bottom:76px}
}

/* Steps: the route, drawn as a dashed line */
.steps{counter-reset:step;list-style:none;padding:0;margin:0;display:grid;gap:0;position:relative}
.steps li{display:grid;grid-template-columns:40px 1fr;gap:20px;padding:0 0 32px;counter-increment:step;position:relative}
.steps li::before{content:counter(step);width:40px;height:40px;border-radius:50%;display:grid;place-items:center;background:var(--paper);border:1px solid var(--line-strong);color:var(--text);font-weight:500;font-size:.9375rem;font-variant-numeric:tabular-nums;position:relative;z-index:1}
.steps li:not(:last-child)::after{content:"";position:absolute;left:19px;top:44px;bottom:4px;border-left:1.5px dashed var(--line-strong)}
.steps li:last-child::before{background:var(--accent);border-color:var(--accent);color:#fff}
.steps li:last-child{padding-bottom:0}
.steps h3{margin:6px 0 6px}
.steps p{margin:0;color:var(--text-2);max-width:60ch}

/* Home: the journey. A plane flies Ankara -> home and lights up each station it passes.
   Desktop: left to right. Phone: top to bottom. Positions are measured in site.js. */
.journey-wrap{position:relative;--m:44px;padding-top:40px}
.jt-from,.jt-to{position:absolute;top:0;display:inline-flex;align-items:center;gap:8px;font-size:.9375rem;font-weight:500;color:var(--text-2);line-height:24px}
.jt-from{left:calc(var(--m) / 2 - 6px)}
.jt-from::before{content:"";width:8px;height:8px;border-radius:50%;border:2px solid currentColor}
.jt-to{right:0;color:var(--text)}
.jt-to svg{width:20px;height:20px;color:var(--accent-ink);transition:transform 400ms var(--ease)}
.jt-line,.jt-fill{position:absolute;left:calc(var(--m) / 2);right:12px;top:calc(40px + var(--m) / 2);height:0;border-top:2px dashed var(--line-strong)}
.jt-fill{border-top:2px solid var(--accent);transform-origin:left center;transform:scaleX(0)}
.jt-plane{position:absolute;left:calc(var(--m) / 2);top:calc(40px + var(--m) / 2);width:48px;height:48px;margin:-24px 0 0 -24px;border-radius:50%;background:var(--card);color:var(--accent);display:grid;place-items:center;box-shadow:0 6px 18px rgba(31,27,22,.14),0 0 0 1px var(--line);z-index:2;opacity:0;will-change:transform}
.jt-plane svg{width:24px;height:24px;transform:rotate(45deg)}
.journey{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(24px,4vw,48px);position:relative;counter-reset:jstep}
.journey li{position:relative;padding-top:calc(var(--m) + 24px);counter-increment:jstep}
.journey li::before{content:counter(jstep);position:absolute;left:0;top:0;width:var(--m);height:var(--m);border-radius:50%;display:grid;place-items:center;background:var(--paper);border:2px solid var(--line-strong);color:var(--text-2);font-weight:600;font-size:1.0625rem;font-variant-numeric:tabular-nums;z-index:1;transition:background-color 300ms var(--ease),border-color 300ms var(--ease),color 300ms var(--ease),transform 300ms var(--ease)}
.journey li.is-reached::before{background:var(--accent);border-color:var(--accent);color:#fff;animation:station 420ms var(--ease)}
.journey h3{margin-bottom:8px;font-size:clamp(1.5rem,2.2vw,1.875rem)}
.journey p{margin:0;color:var(--text-2)}
.journey-wrap.is-landed .jt-to svg{animation:station 420ms var(--ease)}
@keyframes station{0%{transform:scale(1)}40%{transform:scale(1.18)}100%{transform:scale(1)}}
/* Without JS, or with reduced motion before measuring: a finished route */
html:not(.js) .jt-fill{transform:none}
html:not(.js) .journey li::before{background:var(--accent);border-color:var(--accent);color:#fff}
@media (max-width:760px){
  .journey-wrap{--m:40px;padding-top:36px;padding-bottom:84px}
  .jt-to{top:auto;bottom:0;left:calc(var(--m) / 2 - 10px);right:auto}
  .jt-line,.jt-fill{left:calc(var(--m) / 2);right:auto;top:calc(36px + var(--m) / 2);bottom:60px;height:auto;border-top:0;border-left:2px dashed var(--line-strong)}
  .jt-fill{border-left:2px solid var(--accent);transform-origin:center top;transform:scaleY(0)}
  .jt-plane{top:calc(36px + var(--m) / 2);width:44px;height:44px;margin:-22px 0 0 -22px}
  .jt-plane svg{transform:rotate(135deg)}
  .journey{grid-template-columns:1fr;gap:0}
  .journey li{padding:0 0 36px calc(var(--m) + 20px);min-height:var(--m)}
  .journey h3{font-size:1.5rem;margin-top:4px}
}
.steps-row{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(16px,2.5vw,24px);counter-reset:step;list-style:none;padding:0;margin:0}
.steps-row li{counter-increment:step;padding-top:16px;border-top:1px solid var(--line-strong)}
.steps-row li::before{content:counter(step);display:block;font-size:.875rem;color:var(--muted);margin-bottom:8px}
.steps-row h3{margin-bottom:8px}
.steps-row p{margin:0;color:var(--text-2)}
@media (max-width:860px){.steps-row{grid-template-columns:1fr}}

/* FAQ */
.faq{display:grid;gap:0;border-top:1px solid var(--line-strong)}
.faq details{border-bottom:1px solid var(--line-strong);padding:0}
.faq summary{cursor:pointer;list-style:none;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:20px 0;font-weight:500;font-size:1.0625rem;color:var(--text);transition:color 150ms var(--ease)}
.faq summary:hover{color:var(--accent-ink)}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"";width:8px;height:8px;border-right:1.5px solid var(--text-2);border-bottom:1.5px solid var(--text-2);transform:rotate(45deg) translateY(-2px);transition:transform 200ms var(--ease);flex:none;margin-right:4px}
.faq details[open] summary::after{transform:rotate(-135deg)}
.faq details p{color:var(--text-2);padding-bottom:20px;margin:0;max-width:62ch}

/* Donate */
.amounts{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:16px 0 24px}
.amounts button{min-height:84px;border:1px solid var(--line-strong);background:var(--card);border-radius:var(--r-md);font:inherit;cursor:pointer;display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-start;gap:4px;padding:12px;text-align:left;transition:border-color 150ms var(--ease),background-color 150ms var(--ease),transform 150ms var(--ease)}
.amounts button b{font-family:var(--font-display);font-size:1.5rem;font-weight:500;color:var(--text);line-height:1.1;font-variant-numeric:tabular-nums}
.amounts button span{font-size:.8125rem;line-height:1.35;color:var(--muted)}
.amounts button:hover{border-color:var(--text-2)}
.amounts button[aria-pressed="true"]{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}
.amounts button:active{transform:scale(.98)}
@media (max-width:600px){.amounts{grid-template-columns:repeat(2,1fr)}}
.bank{display:grid;gap:0;margin:0;padding:0;list-style:none}
.bank li{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:12px 0;border-bottom:1px solid var(--line);font-size:.9375rem}
.bank li span{color:var(--muted)}
.bank li b{font-weight:500;font-variant-numeric:tabular-nums;text-align:right;display:inline-flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:flex-end}
.copy-btn{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--line-strong);background:var(--card);color:var(--text-2);border-radius:var(--r-xs);padding:2px 8px;font:inherit;font-size:.75rem;font-weight:500;cursor:pointer;transition:background-color 150ms var(--ease),color 150ms var(--ease)}
.copy-btn:hover{background:var(--raised);color:var(--text)}

/* Forms */
.form{display:grid;gap:16px}
.form .row{display:grid;grid-template-columns:1fr 1fr;gap:16px}
@media (max-width:600px){.form .row{grid-template-columns:1fr}}
.field label{display:block;font-weight:500;font-size:.875rem;margin-bottom:6px;color:var(--text)}
.field input,.field textarea,.field select{width:100%;min-height:48px;padding:12px 14px;border:1px solid var(--line-strong);border-radius:var(--r-sm);background:var(--card);font:inherit;color:var(--text);transition:border-color 150ms var(--ease),box-shadow 150ms var(--ease)}
.field textarea{min-height:140px;resize:vertical}
.field input:hover,.field textarea:hover,.field select:hover{border-color:var(--text-2)}
.field input:focus,.field textarea:focus,.field select:focus{outline:none;border-color:var(--text);box-shadow:0 0 0 3px var(--accent-soft)}
.field .hint{font-size:.8125rem;color:var(--muted);margin-top:6px}
.check{display:flex;gap:10px;align-items:flex-start;font-size:.9375rem;color:var(--text-2)}
.check input{width:18px;height:18px;margin-top:3px;accent-color:var(--accent)}
.form-note{font-size:.875rem;color:var(--warn);background:var(--warn-soft);padding:12px 14px;border-radius:var(--r-sm);display:flex;gap:10px;align-items:flex-start}
.form-note svg{width:18px;height:18px;flex:none;margin-top:1px}
.form-note.is-ok{background:var(--ok-soft);color:var(--ok)}

/* Story */
.story-card{background:transparent;border:0;border-radius:0;overflow:visible}
.story-card .card-img{aspect-ratio:1;border-radius:var(--r-md)}
.story-card .card-body{padding:16px 0 0}
.story-card .where{display:inline-flex;align-items:center;gap:6px;font-size:.875rem;color:var(--muted);margin-bottom:4px}
.story-card .where svg{width:14px;height:14px}
.quote{font-family:var(--font-display);font-style:normal;font-weight:400;font-size:clamp(1.5rem,2.6vw,2.125rem);line-height:1.3;letter-spacing:-.01em;color:var(--text);margin:0 0 20px;text-wrap:pretty}
.quote-by{font-size:.9375rem;color:var(--muted)}
.band-dark .quote{color:var(--night-text)}

/* Gallery */
.masonry{columns:3;column-gap:12px}
.masonry a{display:block;margin-bottom:12px;border-radius:var(--r-md);overflow:hidden;background:var(--raised);break-inside:avoid}
.masonry img{width:100%;transition:opacity 200ms var(--ease)}
@media (hover:hover) and (pointer:fine){.masonry a:hover img{opacity:.9}}
@media (max-width:860px){.masonry{columns:2}}
dialog.lightbox{border:0;padding:0;background:transparent;max-width:min(96vw,1200px);max-height:96vh}
dialog.lightbox::backdrop{background:rgba(23,21,18,.92)}
dialog.lightbox img{max-width:min(96vw,1200px);max-height:90vh;width:auto;height:auto;border-radius:var(--r-md);margin:auto}
dialog.lightbox button{position:fixed;top:16px;right:16px;width:44px;height:44px;border-radius:10px;border:0;background:rgba(255,255,255,.12);color:#fff;font-size:1.5rem;cursor:pointer;transition:background-color 150ms var(--ease)}
dialog.lightbox button:hover{background:rgba(255,255,255,.24)}

.img-card{width:100%;aspect-ratio:4/3;object-fit:cover;object-position:center 30%;border-radius:var(--r-lg)}
.adopted-grid img{border-radius:var(--r-md)!important}

/* Partner strip */
.partner{display:flex;gap:20px;align-items:center;padding:20px 0;border-block:1px solid var(--line-strong)}
.partner img{width:64px;height:auto;flex:none;border-radius:8px}
.partner h3{font-size:1.25rem}
.partner p{margin:0;color:var(--text-2)}
@media (max-width:600px){.partner{flex-direction:column;align-items:flex-start}}

/* Closing call: quiet sand surface, one primary action */
.cta-band{background:var(--raised);color:var(--text);border-radius:var(--r-xl);padding:clamp(32px,6vw,64px);display:grid;grid-template-columns:1.3fr .7fr;gap:32px;align-items:end}
.cta-band h2{margin-bottom:12px}
.cta-band p{color:var(--text-2);margin:0;max-width:44ch}
.cta-band .btn-group{justify-content:flex-end}
.cta-band .btn-light{background:var(--accent);color:#fff}
.cta-band .btn-light:hover{background:var(--accent-hover);color:#fff}
.cta-band .btn-secondary{color:var(--text);border-color:var(--line-strong)}
@media (max-width:860px){.cta-band{grid-template-columns:1fr}.cta-band .btn-group{justify-content:flex-start}}

/* Footer */
.site-footer{background:var(--night);color:var(--night-text-2);padding:clamp(56px,7vw,80px) 0 32px;margin-top:0;font-size:.9375rem}
.site-footer a{color:var(--night-text-2);text-decoration:none;transition:color 150ms var(--ease)}
.site-footer a:hover{color:var(--night-text);text-decoration:underline}
.footer-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:32px;margin-bottom:48px}
@media (max-width:860px){.footer-grid{grid-template-columns:1fr 1fr}}
@media (max-width:520px){.footer-grid{grid-template-columns:1fr}}
.site-footer .brand{color:var(--night-text);margin-bottom:20px}
.site-footer .brand svg{color:var(--night-text)}
.site-footer .brand span small{color:var(--night-text-2)}
.site-footer .small{max-width:34ch}
.site-footer h4{color:var(--night-text);font-size:.9375rem;font-weight:500;margin-bottom:12px}
.site-footer ul{list-style:none;padding:0;margin:0;display:grid;gap:8px}
.footer-route{margin:0 0 24px;max-width:420px}
.footer-bottom{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;padding-top:24px;border-top:1px solid var(--night-line);font-size:.8125rem;color:var(--night-text-2)}
.social{display:flex;gap:8px;margin-top:20px}
.social a{width:36px;height:36px;border-radius:8px;border:1px solid var(--night-line);display:grid;place-items:center;transition:background-color 150ms var(--ease)}
.social a:hover{background:rgba(239,233,222,.08)}
.social svg{width:18px;height:18px}

/* Motion: one quiet entrance on the home hero, nothing on scroll */
.reveal{opacity:1;transform:none}
@media (prefers-reduced-motion:no-preference){
  /* Hero: the photo settles, then headline, text and actions rise in sequence (first visit only, once) */
  .hero picture img{animation:settle 1400ms var(--ease) both}
  .hero-copy > *{animation:rise 640ms var(--ease) both}
  .hero-copy > :nth-child(1){animation-delay:80ms}
  .hero-copy > :nth-child(2){animation-delay:160ms}
  .hero-copy > :nth-child(3){animation-delay:240ms}
  .hero-foot{animation:rise 640ms var(--ease) 320ms both}

  /* The route draws itself: Ankara to a home */
  .motion .route i{transform:scaleX(0);transform-origin:left center;transition:transform 900ms cubic-bezier(.77,0,.175,1)}
  .motion .route .dot.end{transform:scale(.4);opacity:0;transition:transform 300ms var(--ease) 820ms,opacity 300ms var(--ease) 820ms}
  .motion .route.is-in i{transform:none}
  .motion .route.is-in .dot.end{transform:none;opacity:1}
  @media (max-width:760px){
      }
  .motion .steps li:not(:last-child)::after{transform:scaleY(0);transform-origin:center top;transition:transform 500ms cubic-bezier(.77,0,.175,1)}
  .motion .steps li.is-in:not(:last-child)::after{transform:none;transition-delay:150ms}
}
@keyframes rise{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
@keyframes settle{from{transform:scale(1.06)}to{transform:none}}
@media (prefers-reduced-motion:reduce){.btn,.card,.tag-card,.masonry img,.card-img img{transition:none}}

/* Prose */
.prose{max-width:70ch}
.prose h2{font-size:1.75rem;margin-top:1.6em}
.prose h3{margin-top:1.4em}
.prose ul{padding-left:1.2em}
.prose li{margin-bottom:.4em}
.toc{background:var(--card);border:1px solid var(--line);border-radius:var(--r-md);padding:16px 20px;margin-bottom:32px}
.toc ol{margin:0;padding-left:1.2em;display:grid;gap:4px}
.inline-list{display:flex;flex-wrap:wrap;gap:8px;list-style:none;padding:0;margin:0}

/* Contact */
.contact-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
@media (max-width:860px){.contact-cards{grid-template-columns:1fr}}
.contact-card{padding-top:20px;border-top:1px solid var(--line-strong)}
.contact-card .ico{width:20px;height:20px;color:var(--text-2);margin-bottom:16px}
.contact-card .ico svg{width:20px;height:20px;stroke-width:1.5}
.contact-card h3{margin-bottom:4px}
.contact-card a{font-weight:500;text-decoration:none;word-break:break-word;font-variant-numeric:tabular-nums}
.contact-card a:hover{text-decoration:underline}
.map{background:var(--raised);border-radius:var(--r-lg);min-height:240px;display:grid;place-items:center;color:var(--muted);text-align:center;padding:24px;font-size:.9375rem}

/* Home: who we are */
.who{display:grid;grid-template-columns:.9fr 1.1fr;gap:clamp(32px,6vw,96px);align-items:center}
.who-photo{position:relative}
.who-photo img{width:100%;aspect-ratio:4/5;object-fit:cover;object-position:center 30%;border-radius:var(--r-lg)}
.who-photo figcaption{font-size:.875rem;color:var(--muted);margin-top:12px}
.who-points{list-style:none;margin:32px 0 0;padding:0;display:grid;gap:0;border-top:1px solid var(--line-strong)}
.who-points li{display:grid;grid-template-columns:minmax(0,13rem) 1fr;gap:8px 24px;padding:20px 0;border-bottom:1px solid var(--line-strong)}
.who-points h3{font-size:1.25rem;margin:0}
.who-points p{margin:0;color:var(--text-2)}
@media (max-width:860px){.who{grid-template-columns:1fr}.who-photo img{aspect-ratio:4/3}.who-points li{grid-template-columns:1fr}}

/* Home: ways to help */
.help{display:grid;grid-template-columns:.8fr 1.2fr;gap:clamp(32px,6vw,96px);align-items:start}
.help-list{list-style:none;margin:0;padding:0;border-top:1px solid var(--line-strong)}
.help-list a{display:grid;grid-template-columns:20px minmax(0,1fr) 20px;gap:16px;align-items:start;padding:24px 0;border-bottom:1px solid var(--line-strong);text-decoration:none;color:var(--text);transition:color 150ms var(--ease)}
.help-list a:hover{color:var(--accent-ink)}
.help-list svg{width:20px;height:20px;color:var(--text-2);margin-top:4px;stroke-width:1.5}
.help-list .go{color:var(--muted);transition:transform 150ms var(--ease),color 150ms var(--ease)}
.help-list a:hover .go{transform:translateX(2px);color:var(--accent-ink)}
.help-list h3{margin:0 0 4px;font-size:1.375rem;color:inherit}
.help-list p{margin:0;color:var(--text-2)}
@media (max-width:860px){.help{grid-template-columns:1fr}}

/* Home: section head with a link on the right */
.head-row{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;flex-wrap:wrap;margin-bottom:clamp(32px,4vw,48px)}
.head-row h2{margin:0}
.link-arrow{display:inline-flex;align-items:center;gap:6px;font-weight:500;text-decoration:none;color:var(--text)}
.link-arrow svg{width:16px;height:16px;transition:transform 150ms var(--ease)}
.link-arrow:hover{color:var(--accent-ink)}
.link-arrow:hover svg{transform:translateX(2px)}

/* Home: story block */
.story{display:grid;grid-template-columns:1.1fr .9fr;gap:clamp(32px,6vw,96px);align-items:center}
.story img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:var(--r-lg)}
@media (max-width:860px){.story{grid-template-columns:1fr}}

/* Home hero on small screens: portrait photo, text on the storm sky, actions on the path */
@media (max-width:760px){
  :root{--hero-h:clamp(560px,calc(100svh - var(--header-h) - 32px),760px)}
  .hero{min-height:0;display:block;background:var(--paper);color:var(--text)}
  .hero picture{bottom:auto;height:var(--hero-h)}
  .hero img{object-position:30% 50%}
  .hero::after{bottom:auto;height:var(--hero-h);background:linear-gradient(180deg,rgba(18,17,15,.35) 0%,rgba(18,17,15,0) 45%,rgba(18,17,15,0) 62%,rgba(18,17,15,.45) 100%)}
  .hero-copy{min-height:var(--hero-h);display:flex;flex-direction:column;padding-top:40px;padding-bottom:128px}
  .hero h1{font-size:clamp(2.375rem,10.6vw,3rem);line-height:1.04;margin-bottom:16px;max-width:none}
  .hero .lead{font-size:1rem;line-height:1.55;max-width:34ch;margin-bottom:0;color:rgba(255,255,255,.88)}
  .hero .btn-group{margin-top:auto;flex-wrap:nowrap;gap:8px}
  .hero .btn-group .btn{flex:1 1 0;min-width:0;padding-inline:12px;min-height:52px}
  .hero .btn-secondary{background:rgba(18,17,15,.35);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}
  .hero-foot{flex-direction:column;align-items:stretch;gap:32px;padding-top:0;padding-bottom:0}
  .hero-foot .tag-card{order:-1;margin:-96px 0 0;width:100%;max-width:none;display:grid;grid-template-columns:112px 1fr;gap:16px;align-items:center;padding:8px}
  .tag-card .tag-photo{aspect-ratio:1;height:100%;max-height:132px}
  .tag-card .tag-body{padding:4px 4px 4px 0}
  .tag-card .route{margin-bottom:8px}
  .tag-card .tag-name{font-size:1.5rem}
  .tag-card .tag-meta{margin:2px 0 8px;font-size:.8125rem}
  .tag-card .tag-cta{border-top:0;padding-top:0;margin-top:0;justify-content:flex-start}
  .hero-facts{grid-template-columns:repeat(2,1fr);gap:0;border-top:1px solid var(--line-strong)}
  .hero-facts li{padding:16px 0;border-bottom:1px solid var(--line-strong)}
  .hero-facts li:nth-child(odd){padding-right:16px;border-right:1px solid var(--line-strong)}
  .hero-facts li:nth-child(even){padding-left:16px}
  .hero-facts b{color:var(--text);font-size:2.25rem}
  .hero-facts span{color:var(--text-2)}
  .hero + section{padding-top:72px}

  /* Dogs: swipe instead of a tall stack */
  .dog-row,.band-alt .grid-3:has(> .dog-card){display:flex;gap:16px;overflow-x:auto;scroll-snap-type:x mandatory;scroll-padding-inline:var(--gutter);margin-inline:calc(-1 * var(--gutter));padding:0 var(--gutter) 8px;scrollbar-width:none;-webkit-overflow-scrolling:touch}
  .dog-row::-webkit-scrollbar,.band-alt .grid-3:has(> .dog-card)::-webkit-scrollbar{display:none}
  .dog-row > .dog-card,.band-alt .grid-3 > .dog-card{flex:0 0 84%;scroll-snap-align:start}
  .head-row{margin-bottom:24px;gap:16px}

  /* Sections breathe a little less on a phone */
  section{padding-block:72px}
  .section-tight{padding-block:40px}
  h2{font-size:clamp(2rem,8.6vw,2.375rem)}
  .who{gap:32px}
  .who-photo img{aspect-ratio:4/3}
  .story{gap:28px}
  .help{gap:24px}
  .help-list a{padding:20px 0}
  .cta-band{padding:28px 24px;border-radius:var(--r-lg)}
  .cta-band .btn-group{flex-direction:column;align-items:stretch}
  .page-hero{padding-block:40px 32px}
  .page-hero.has-img{min-height:360px}
}

@media (max-width:600px){
  .preview-bar{font-size:.75rem;padding:6px 0}
  .preview-bar .wrap{flex-wrap:nowrap}
  .preview-bar .wrap > span:first-child{font-size:0}
  .preview-bar .wrap > span:first-child b{font-size:.75rem}
  .preview-bar .wrap{gap:4px 8px}
  .preview-bar button{padding:2px 8px;font-size:.75rem}
}

/* 404 */
.notfound{text-align:center;padding-block:clamp(80px,14vw,160px)}

