/* Home Page Styles */
:root {
    --orange: #FF7043;
    --orange-light: #FFF3EF;
    --orange-mid: #FFCCBC;
    --teal: #26A69A;
    --teal-light: #E0F2F1;
    --yellow: #FFD54F;
    --yellow-light: #FFFDE7;
    --cream: #FFFAF5;
    --green: #66BB6A;
    --green-light: #E8F5E9;
    --red: #EF5350;
    --text: #3E2723;
    --text-muted: #8D6E63;
    --border: #F3E5DE;
    --shadow: 0 8px 32px rgba(255,112,67,0.10);
    --shadow-hover: 0 16px 48px rgba(255,112,67,0.18);
  }
  * { margin:0; padding:0; box-sizing:border-box; }
  html { scroll-behavior:smooth; }
  body { font-family:'Nunito',sans-serif; background:var(--cream); color:var(--text); overflow-x:hidden; }
  h1,h2,h3,h4,h5 { font-family:'Baloo 2',cursive; }

  /* FLOATING PAWS */
  .paw-bg { position:fixed; top:0; left:0; width:100%; height:100%; pointer-events:none; z-index:0; overflow:hidden; }
  .paw-float { position:absolute; opacity:0; animation:floatPaw linear infinite; }
  @keyframes floatPaw {
    0%   { transform:translateY(110vh) rotate(0deg); opacity:0; }
    10%  { opacity:0.06; }
    90%  { opacity:0.06; }
    100% { transform:translateY(-10vh) rotate(360deg); opacity:0; }
  }

  /* NAVBAR */
  #navbar { position:fixed; top:0; width:100%; z-index:1000; padding:0 48px; height:82px; display:flex; align-items:center; justify-content:space-between; background:rgba(255,250,245,0.92); backdrop-filter:blur(12px); border-bottom:1.5px solid var(--border); transition:box-shadow 0.3s; }
  #navbar.scrolled { box-shadow:0 4px 24px rgba(255,112,67,0.10); }
  .nav-logo { display:flex; align-items:center; text-decoration:none; }
  .site-logo { width:210px; max-width:210px; height:auto; display:block; object-fit:contain; }
  .nav-menu { display:flex; align-items:center; gap:18px; margin-left:auto; }
  .nav-links { display:flex; align-items:center; gap:8px; list-style:none; }
  .nav-links a { font-family:'Nunito',sans-serif; font-weight:600; font-size:14px; color:var(--text-muted); text-decoration:none; padding:6px 14px; border-radius:20px; transition:all 0.2s; }
  .nav-links a:hover { color:var(--orange); background:var(--orange-light); }
  .nav-auth { display:flex; gap:10px; align-items:center; }
  .nav-toggle { display:none; width:46px; height:46px; align-items:center; justify-content:center; border:1.5px solid rgba(255,112,67,0.22); border-radius:16px; background:white; color:var(--orange); box-shadow:0 8px 22px rgba(255,112,67,0.12); cursor:pointer; }
  .nav-toggle span { position:relative; display:block; width:20px; height:2px; border-radius:999px; background:currentColor; transition:background-color 0.2s; }
  .nav-toggle span::before,
  .nav-toggle span::after { content:''; position:absolute; left:0; width:20px; height:2px; border-radius:999px; background:currentColor; transition:top 0.2s, transform 0.2s; }
  .nav-toggle span::before { top:-7px; }
  .nav-toggle span::after { top:7px; }
  .nav-toggle.is-open span { background:transparent; }
  .nav-toggle.is-open span::before { top:0; transform:rotate(45deg); }
  .nav-toggle.is-open span::after { top:0; transform:rotate(-45deg); }
  .btn-login { font-family:'Nunito',sans-serif; font-weight:700; font-size:14px; padding:8px 20px; border-radius:24px; border:2px solid var(--orange); background:transparent; color:var(--orange); cursor:pointer; transition:all 0.2s; text-decoration:none; }
  .btn-login:hover { background:var(--orange-light); }
  .btn-register { font-family:'Nunito',sans-serif; font-weight:700; font-size:14px; padding:8px 20px; border-radius:24px; border:none; background:var(--orange); color:white; cursor:pointer; transition:all 0.2s; text-decoration:none; box-shadow:0 4px 16px rgba(255,112,67,0.3); }
  .btn-register:hover { background:#E64A19; box-shadow:0 8px 24px rgba(255,112,67,0.4); }

  /* HERO */
  .hero { padding:120px 48px 80px; position:relative; z-index:1; text-align:center; }
  .hero-badge { display:inline-flex; align-items:center; gap:6px; background:var(--orange-light); border:1.5px solid var(--orange-mid); border-radius:20px; padding:6px 16px; font-size:13px; font-weight:700; color:var(--orange); margin-bottom:24px; animation:bounceIn 0.6s ease; }
  .hero-badge .dot { width:8px; height:8px; background:var(--orange); border-radius:50%; animation:pulse 1.5s ease-in-out infinite; }
  @keyframes pulse { 0%,100%{transform:scale(1);opacity:1} 50%{transform:scale(1.4);opacity:0.6} }
  .hero h1 { font-size:clamp(42px,6vw,72px); font-weight:800; line-height:1.15; color:var(--text); margin-bottom:20px; animation:slideUp 0.7s ease 0.1s both; }
  .hero h1 span { color:var(--orange); }
  .hero-sub { font-size:18px; color:var(--text-muted); max-width:560px; margin:0 auto 40px; line-height:1.7; animation:slideUp 0.7s ease 0.2s both; }
  @keyframes slideUp { from{opacity:0;transform:translateY(30px)} to{opacity:1;transform:translateY(0)} }
  @keyframes bounceIn { from{opacity:0;transform:scale(0.8)} to{opacity:1;transform:scale(1)} }

  .hero-cta { display:flex; gap:16px; justify-content:center; flex-wrap:wrap; margin-bottom:64px; animation:slideUp 0.7s ease 0.3s both; }
  .btn-primary { font-family:'Baloo 2',cursive; font-weight:700; font-size:16px; padding:14px 32px; border-radius:32px; border:none; background:var(--orange); color:white; cursor:pointer; text-decoration:none; display:inline-flex; align-items:center; gap:8px; transition:all 0.25s; box-shadow:0 6px 24px rgba(255,112,67,0.35); }
  .btn-primary:hover { box-shadow:0 12px 32px rgba(255,112,67,0.45); background:#E64A19; }
  .btn-secondary { font-family:'Baloo 2',cursive; font-weight:700; font-size:16px; padding:14px 32px; border-radius:32px; border:2px solid var(--border); background:white; color:var(--text); cursor:pointer; text-decoration:none; display:inline-flex; align-items:center; gap:8px; transition:all 0.25s; }
  .btn-secondary:hover { border-color:var(--orange); color:var(--orange); }

  /* WELFARE CARDS */
  .welfare-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(260px,1fr)); gap:20px; max-width:1200px; margin:0 auto; animation:slideUp 0.7s ease 0.4s both; }
  .welfare-card { background:white; border-radius:24px; padding:28px 24px; border:1.5px solid var(--border); transition:all 0.3s; position:relative; overflow:hidden; }
  .welfare-card::before { content:''; position:absolute; top:0; left:0; right:0; height:4px; border-radius:24px 24px 0 0; background:var(--orange); transform:scaleX(0); transition:transform 0.3s; transform-origin:left; }
  .welfare-card:hover::before { transform:scaleX(1); }
  .welfare-card:hover { transform:translateY(-6px); box-shadow:var(--shadow-hover); border-color:var(--orange-mid); }
  .wc-icon { width:56px; height:56px; border-radius:16px; display:flex; align-items:center; justify-content:center; margin-bottom:16px; }
  .wc-icon.orange { background:var(--orange-light); color:var(--orange); }
  .wc-icon.teal   { background:var(--teal-light); color:var(--teal); }
  .wc-icon.yellow { background:var(--yellow-light); color:#F9A825; }
  .wc-icon.green  { background:var(--green-light); color:var(--green); }
  .welfare-card h3 { font-size:18px; font-weight:700; margin-bottom:8px; color:var(--text); }
  .welfare-card p  { font-size:14px; color:var(--text-muted); line-height:1.6; }
  .welfare-card .wc-count { display:inline-block; background:var(--orange-light); color:var(--orange); font-weight:700; font-size:12px; padding:3px 10px; border-radius:12px; margin-top:12px; }

  /* SECTIONS */
  section { position:relative; z-index:1; padding:80px 48px; }
  .section-label { font-size:12px; font-weight:700; text-transform:uppercase; letter-spacing:2px; color:var(--orange); margin-bottom:10px; }
  .section-title { font-size:clamp(28px,3.5vw,42px); font-weight:800; color:var(--text); margin-bottom:12px; }
  .section-sub   { font-size:16px; color:var(--text-muted); max-width:520px; line-height:1.6; margin-bottom:48px; }
  .section-inner { max-width:1200px; margin:0 auto; }
  .wave-divider  { width:100%; height:64px; overflow:hidden; position:relative; z-index:1; }
  .wave-divider svg { width:100%; height:100%; }

  /* DOG CARDS */
  .dog-section { background:white; }
  .dog-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(320px,1fr)); gap:18px; }
  .dog-card { border:1.5px solid var(--border); border-radius:24px; padding:18px; text-align:left; transition:all 0.3s; cursor:pointer; background:linear-gradient(180deg,#fffaf6 0%,#fff4ed 100%); position:relative; overflow:hidden; display:flex; align-items:center; gap:16px; min-height:154px; }
  .dog-card:hover { transform:translateY(-4px); border-color:var(--orange-mid); box-shadow:0 18px 36px rgba(255,112,67,0.14); }
  .dog-avatar { width:118px; height:118px; border-radius:28px; margin:0; display:flex; align-items:center; justify-content:center; border:3px solid white; box-shadow:0 8px 18px rgba(0,0,0,0.08); background:var(--orange-light); color:var(--orange); transition:transform 0.3s; flex-shrink:0; overflow:hidden; }
  .dog-avatar img { width:100%; height:100%; object-fit:cover; border-radius:28px; display:block; }
  .dog-card:hover .dog-avatar { transform:scale(1.05); }
  .dog-card.steril .dog-avatar { background:var(--yellow-light); color:#F9A825; }
  .dog-card-body { display:flex; flex-direction:column; align-items:flex-start; justify-content:center; min-width:0; flex:1; }
  .dog-card h4   { font-size:18px; font-weight:800; margin-bottom:6px; line-height:1.2; }
  .dog-card .breed { font-size:13px; color:var(--text-muted); margin-bottom:12px; line-height:1.5; }
  .dog-badge { display:inline-flex; font-size:11px; font-weight:800; padding:5px 12px; border-radius:999px; align-items:center; }
  .badge-vacc { background:var(--teal-light); color:#00695C; }
  .badge-ster { background:var(--yellow-light); color:#F57F17; }
  .dog-date  { font-size:12px; color:var(--text-muted); margin-top:10px; display:flex; align-items:center; justify-content:flex-start; gap:4px; line-height:1.4; }
  .new-tag   { position:absolute; top:12px; right:12px; background:var(--orange); color:white; font-size:10px; font-weight:800; padding:2px 8px; border-radius:8px; animation:popIn 0.5s ease; }
  .new-tag.teal { background:var(--teal); }
  @keyframes popIn { from{transform:scale(0)} to{transform:scale(1)} }
  @media (max-width: 640px) {
    .dog-grid { grid-template-columns:1fr; }
    .dog-card { padding:16px; gap:14px; min-height:0; }
    .dog-avatar { width:96px; height:96px; border-radius:24px; }
    .dog-avatar img { border-radius:24px; }
    .dog-card h4 { font-size:16px; }
    .dog-card .breed { font-size:12px; margin-bottom:10px; }
  }

  /* STATS */
  .stats-section { background:var(--orange); }
  .stats-grid    { display:grid; grid-template-columns:repeat(auto-fit,minmax(200px,1fr)); gap:24px; }
  .stat-card     { background:rgba(255,255,255,0.15); border:1.5px solid rgba(255,255,255,0.25); border-radius:24px; padding:32px 24px; text-align:center; backdrop-filter:blur(8px); transition:all 0.3s; }
  .stat-card:hover { background:rgba(255,255,255,0.25); transform:translateY(-4px); }
  .stat-icon   { display:flex; align-items:center; justify-content:center; margin-bottom:12px; color:white; }
  .stat-number { font-family:'Baloo 2',cursive; font-size:52px; font-weight:800; color:white; line-height:1; margin-bottom:8px; }
  .stat-label  { font-size:14px; font-weight:600; color:rgba(255,255,255,0.85); }

  /* DONATE */
  .donate-section { background:var(--green-light); }
  .donate-inner   { display:grid; grid-template-columns:1fr 1fr; gap:60px; align-items:center; max-width:1100px; margin:0 auto; }
  .donate-amounts { display:grid; grid-template-columns:repeat(2,1fr); gap:12px; margin:24px 0; }
  .amount-btn { font-family:'Baloo 2',cursive; font-size:20px; font-weight:700; padding:16px; border-radius:16px; border:2px solid var(--border); background:white; color:var(--text); cursor:pointer; transition:all 0.2s; text-align:center; }
  .amount-btn:hover, .amount-btn.active { border-color:var(--green); background:var(--green); color:white; transform:scale(1.04); box-shadow:0 6px 20px rgba(102,187,106,0.3); }
  .donate-input  { display:flex; align-items:center; gap:10px; background:white; border:2px solid var(--border); border-radius:16px; padding:12px 16px; margin-bottom:20px; transition:border-color 0.2s; }
  .donate-input:focus-within { border-color:var(--green); }
  .donate-input span { font-family:'Baloo 2',cursive; font-size:20px; font-weight:700; color:var(--text-muted); }
  .donate-input input { flex:1; font-family:'Baloo 2',cursive; font-size:20px; font-weight:700; border:none; outline:none; color:var(--text); background:transparent; }
  .donate-visual { position:relative; display:flex; flex-direction:column; gap:16px; }
  .donate-impact-card { background:white; border-radius:20px; padding:20px 24px; display:flex; align-items:center; gap:16px; border:1.5px solid rgba(102,187,106,0.2); box-shadow:0 4px 16px rgba(102,187,106,0.1); transition:transform 0.2s; }
  .donate-impact-card:hover { transform:translateX(6px); }
  .dic-icon { width:48px; flex-shrink:0; display:flex; align-items:center; justify-content:center; color:var(--orange); }
  .dic-text strong { display:block; font-weight:700; font-size:15px; color:var(--text); }
  .dic-text span   { font-size:13px; color:var(--text-muted); }

  /* FEEDING */
  .feeding-section { background:var(--cream); }
  .feeding-grid    { display:grid; grid-template-columns:repeat(auto-fill,minmax(280px,1fr)); gap:20px; }
  .feeding-card    { background:white; border-radius:20px; border:1.5px solid var(--border); overflow:hidden; transition:all 0.3s; }
  .feeding-card:hover { transform:translateY(-5px); box-shadow:var(--shadow); border-color:var(--teal); }
  .feeding-card-link { display:block; color:inherit; text-decoration:none; }
  .feeding-map-thumb { height:130px; background:linear-gradient(135deg,var(--teal-light) 0%,#B2DFDB 100%); display:flex; align-items:center; justify-content:center; color:var(--teal); position:relative; overflow:hidden; }
  .feeding-map-thumb::after { content:''; position:absolute; inset:0; background:repeating-linear-gradient(45deg,transparent,transparent 20px,rgba(38,166,154,0.06) 20px,rgba(38,166,154,0.06) 40px); }
  .feeding-info    { padding:18px 20px; }
  .feeding-info h4 { font-size:16px; font-weight:700; margin-bottom:4px; }
  .feeding-info .address { font-size:13px; color:var(--text-muted); display:flex; align-items:center; gap:4px; margin-bottom:12px; }
  .feeding-info .address svg { color:var(--orange); flex-shrink:0; }
  .feeding-meta { display:flex; gap:8px; flex-wrap:wrap; }
  .feeding-tag  { font-size:11px; font-weight:700; padding:3px 10px; border-radius:10px; display:inline-flex; align-items:center; gap:4px; }
  .tag-morning { background:var(--yellow-light); color:#E65100; }
  .tag-evening { background:#EDE7F6; color:#6A1B9A; }
  .tag-dogs    { background:var(--orange-light); color:var(--orange); }

  /* PLATFORM HOME */
  .platform-home-body { background:linear-gradient(180deg, #fffaf6 0%, #ffffff 100%); }
  .platform-home-hero { padding:132px 48px 44px; position:relative; z-index:1; }
  .platform-home-hero-grid { display:grid; grid-template-columns:minmax(0,1.1fr) minmax(360px,.9fr); gap:28px; align-items:start; }
  .platform-home-title { font-family:'Baloo 2',cursive; font-size:clamp(38px,5.1vw,64px); line-height:1.08; margin:0 0 18px; max-width:760px; }
  .platform-home-copy { max-width:680px; font-size:18px; line-height:1.8; color:var(--text-muted); margin-bottom:26px; }
  .platform-home-actions { display:flex; gap:14px; flex-wrap:wrap; margin-bottom:22px; }
  .platform-home-cta-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; }
  .platform-register-card { display:flex; flex-direction:column; gap:8px; padding:18px 20px; border-radius:24px; border:1.5px solid rgba(38,166,154,.14); background:#ffffff; text-decoration:none; color:var(--text); box-shadow:0 14px 28px rgba(35,31,32,.06); }
  .platform-register-card strong { font-size:17px; }
  .platform-register-card span { font-size:13px; line-height:1.6; color:var(--text-muted); }
  .platform-selector-card { padding:26px; border-radius:30px; border:1.5px solid var(--border); background:rgba(255,255,255,.96); box-shadow:0 20px 34px rgba(35,31,32,.08); }
  .platform-selector-head h2 { margin:10px 0 8px; font-size:28px; }
  .platform-selector-head p { color:var(--text-muted); line-height:1.7; margin-bottom:20px; }
  .platform-selector-pill { display:inline-flex; align-items:center; justify-content:center; padding:7px 12px; border-radius:999px; background:var(--orange-light); color:var(--orange); font-size:12px; font-weight:800; letter-spacing:.06em; text-transform:uppercase; }
  .platform-selector-form { display:grid; gap:14px; }
  .platform-selector-field { display:grid; gap:7px; }
  .platform-selector-field label { font-size:13px; font-weight:800; color:var(--text); }
  .platform-selector-field input,
  .platform-selector-field select { width:100%; min-height:50px; border:1.5px solid var(--border); border-radius:16px; padding:0 14px; font-size:14px; font-family:'Nunito',sans-serif; color:var(--text); background:#fff; }
  .platform-open-btn { width:100%; justify-content:center; }
  .platform-selector-note { margin-top:14px; font-size:13px; line-height:1.7; color:var(--text-muted); }
  .platform-selector-note a { color:var(--orange); text-decoration:none; font-weight:700; }
  .platform-modules-section,
  .platform-directory-section,
  .platform-roles-section { position:relative; z-index:1; }
  .platform-modules-grid,
  .platform-role-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:18px; }
  .platform-module-card,
  .platform-role-card { border:1.5px solid var(--border); border-radius:24px; background:#fff; padding:22px; box-shadow:0 12px 24px rgba(35,31,32,.05); }
  .platform-module-card h3,
  .platform-role-card h3 { margin-bottom:10px; font-size:19px; }
  .platform-module-card p,
  .platform-role-card p { color:var(--text-muted); line-height:1.7; font-size:14px; }
  .platform-directory-section { background:var(--cream); }
  .platform-society-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; }
  .platform-society-card { border:1.5px solid var(--border); border-radius:26px; background:#fff; padding:22px; display:flex; flex-direction:column; gap:12px; box-shadow:0 12px 24px rgba(35,31,32,.05); }
  .platform-society-township { display:inline-flex; align-items:center; align-self:flex-start; border-radius:999px; background:var(--teal-light); color:var(--teal); padding:6px 10px; font-size:11px; font-weight:800; text-transform:uppercase; letter-spacing:.05em; }
  .platform-society-card h3 { font-size:22px; line-height:1.2; }
  .platform-society-card p { font-size:14px; line-height:1.7; color:var(--text-muted); flex:1; }
  .platform-society-open { align-self:flex-start; }

  /* STRAYS GALLERY */
  .stray-gallery-body { background:radial-gradient(circle at top left, rgba(255,112,67,.12), transparent 28%), radial-gradient(circle at top right, rgba(38,166,154,.1), transparent 24%), linear-gradient(180deg, #fffaf6 0%, #ffffff 100%); }
  .stray-gallery-hero { padding:136px 48px 28px; }
  .stray-gallery-title { margin-bottom:14px; }
  .stray-gallery-sub { max-width:760px; }
  .stray-gallery-summary { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; margin-top:26px; }
  .stray-gallery-stat { border:1.5px solid rgba(255,112,67,.15); border-radius:22px; padding:20px 22px; background:rgba(255,255,255,.92); box-shadow:0 12px 28px rgba(28,41,61,.06); display:flex; flex-direction:column; gap:6px; }
  .stray-gallery-stat-value { font-family:'Baloo 2',cursive; font-size:32px; line-height:1; color:var(--orange); font-weight:800; }
  .stray-gallery-stat-label { font-size:13px; color:var(--text-muted); font-weight:700; }
  .stray-gallery-section { padding:12px 48px 64px; }
  .stray-gallery-layout { display:grid; grid-template-columns:320px minmax(0,1fr); gap:24px; align-items:start; }
  .stray-gallery-sidebar { position:sticky; top:110px; }
  .stray-gallery-filter-card { border:1.5px solid var(--border); border-radius:28px; background:rgba(255,255,255,.95); box-shadow:0 18px 36px rgba(28,41,61,.07); padding:22px; display:grid; gap:16px; }
  .stray-gallery-filter-head { display:flex; align-items:center; justify-content:space-between; gap:12px; }
  .stray-gallery-filter-head h3 { margin:0; font-family:'Baloo 2',cursive; font-size:24px; line-height:1; }
  .stray-gallery-clear { color:var(--orange); font-size:13px; font-weight:700; text-decoration:none; }
  .stray-gallery-field { display:grid; gap:7px; }
  .stray-gallery-field label { font-size:13px; font-weight:700; color:var(--text); }
  .stray-gallery-field input,
  .stray-gallery-field select { width:100%; min-height:48px; border:1.5px solid var(--border); border-radius:16px; background:#fff; color:var(--text); font-family:'Nunito',sans-serif; font-size:14px; padding:0 14px; outline:none; transition:border-color .2s ease, box-shadow .2s ease; }
  .stray-gallery-field select { appearance:none; background-image:linear-gradient(45deg, transparent 50%, var(--text-muted) 50%), linear-gradient(135deg, var(--text-muted) 50%, transparent 50%); background-position:calc(100% - 18px) calc(50% - 2px), calc(100% - 12px) calc(50% - 2px); background-size:6px 6px, 6px 6px; background-repeat:no-repeat; padding-right:34px; }
  .stray-gallery-field input:focus,
  .stray-gallery-field select:focus { border-color:var(--orange-mid); box-shadow:0 0 0 4px rgba(255,112,67,.12); }
  .stray-gallery-apply { width:100%; justify-content:center; }
  .stray-gallery-main { min-width:0; }
  .stray-gallery-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; }
  .stray-gallery-card { min-height:182px; }
  .stray-gallery-card-head { display:flex; align-items:flex-start; justify-content:space-between; gap:12px; width:100%; }
  .stray-gallery-chip-row { display:flex; flex-wrap:wrap; gap:8px; margin-bottom:10px; }
  .stray-gallery-health,
  .stray-gallery-tag { display:inline-flex; align-items:center; border-radius:999px; padding:6px 10px; font-size:11px; font-weight:800; }
  .stray-gallery-health { background:rgba(38,166,154,.12); color:#0f766e; }
  .stray-gallery-zone { margin:0 0 12px; font-size:13px; color:var(--text); font-weight:700; }
  .stray-gallery-tags { display:flex; flex-wrap:wrap; gap:8px; margin-bottom:10px; }
  .stray-gallery-tag { background:rgba(255,112,67,.12); color:var(--orange); }
  .stray-gallery-empty { border:1.5px dashed rgba(255,112,67,.3); border-radius:28px; background:rgba(255,255,255,.92); padding:48px 24px; text-align:center; }
  .stray-gallery-empty h3 { margin-bottom:10px; }
  .stray-gallery-empty p { margin-bottom:18px; color:var(--text-muted); }

  /* VET FINDER */
  .vet-finder-section { background:white; }
  .vet-finder-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(280px,1fr)); gap:20px; }
  .vet-finder-card { background:#fffdf8; border:1.5px solid rgba(62,39,35,0.12); border-radius:24px; padding:24px; box-shadow:0 14px 30px rgba(48,35,29,0.06); display:flex; flex-direction:column; gap:14px; }
  .vet-finder-card-head { display:flex; align-items:flex-start; justify-content:space-between; gap:12px; }
  .vet-finder-card h3 { font-size:20px; font-weight:800; margin:0 0 4px; line-height:1.35; }
  .vet-finder-type { font-size:12px; font-weight:800; color:var(--teal); text-transform:uppercase; letter-spacing:0.12em; margin:0; }
  .vet-finder-distance { flex-shrink:0; display:inline-flex; align-items:center; justify-content:center; min-height:40px; padding:8px 16px; border-radius:12px; background:#133628; color:#FFB74D; font-family:'Baloo 2',cursive; font-size:16px; font-weight:800; }
  .vet-finder-address { margin:0; color:var(--text-muted); font-size:15px; line-height:1.7; }
  .vet-finder-meta { display:flex; flex-direction:column; gap:8px; color:#5d6776; font-size:14px; line-height:1.6; }
  .vet-finder-meta span { display:flex; align-items:flex-start; gap:10px; }
  .vet-finder-meta svg { flex-shrink:0; color:var(--orange); margin-top:2px; }
  .vet-finder-actions { display:flex; gap:10px; flex-wrap:wrap; margin-top:auto; }
  .vet-finder-actions .btn-primary,
  .vet-finder-actions .btn-secondary { min-width:0; padding:12px 22px; }

  @media (max-width: 720px) {
    .vet-finder-card { padding:20px; }
    .vet-finder-card h3 { font-size:18px; }
    .vet-finder-card-head { flex-direction:column; align-items:flex-start; }
    .vet-finder-distance { min-height:36px; padding:6px 14px; font-size:15px; }
    .vet-finder-actions { width:100%; }
    .vet-finder-actions .btn-primary,
    .vet-finder-actions .btn-secondary { flex:1 1 100%; justify-content:center; }
  }

  /* TIPS */
  .tips-section { background:white; }
  .tips-grid    { display:grid; grid-template-columns:repeat(auto-fill,minmax(300px,1fr)); gap:20px; }
  .tip-card     { background:var(--cream); border-radius:20px; padding:24px; border:1.5px solid var(--border); display:flex; gap:16px; transition:all 0.3s; align-items:flex-start; }
  .tip-card:hover { transform:translateY(-4px); border-color:var(--orange-mid); box-shadow:0 8px 24px rgba(255,112,67,0.1); }
  .tip-num { font-family:'Baloo 2',cursive; font-size:36px; font-weight:800; color:var(--orange-mid); line-height:1; min-width:44px; }
  .tip-card h4 { font-size:16px; font-weight:700; margin-bottom:6px; color:var(--text); }
  .tip-card p  { font-size:14px; color:var(--text-muted); line-height:1.6; }

  /* FACTS */
  .facts-section { background:#FFF8E1; }
  .facts-marquee-wrapper { overflow:hidden; position:relative; }
  .facts-marquee-wrapper::before,.facts-marquee-wrapper::after { content:''; position:absolute; top:0; bottom:0; width:80px; z-index:2; }
  .facts-marquee-wrapper::before { left:0; background:linear-gradient(90deg,#FFF8E1 0%,transparent 100%); }
  .facts-marquee-wrapper::after  { right:0; background:linear-gradient(-90deg,#FFF8E1 0%,transparent 100%); }
  .facts-marquee { display:flex; gap:20px; animation:marquee 30s linear infinite; width:max-content; }
  .facts-marquee:hover { animation-play-state:paused; }
  @keyframes marquee { 0%{transform:translateX(0)} 100%{transform:translateX(-50%)} }
  .fact-chip { background:white; border:1.5px solid var(--yellow); border-radius:16px; padding:14px 20px; white-space:nowrap; display:flex; align-items:center; gap:10px; flex-shrink:0; font-size:14px; font-weight:600; color:var(--text); transition:transform 0.2s; }
  .fact-chip:hover { transform:scale(1.03); }
  .fact-chip .fc-icon { color:var(--orange); display:flex; align-items:center; }
  .facts-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(280px,1fr)); gap:16px; margin-top:40px; }
  .fact-card  { background:white; border-radius:20px; padding:24px; border:1.5px solid rgba(255,213,79,0.4); transition:all 0.3s; display:flex; gap:14px; align-items:flex-start; }
  .fact-card:hover { transform:translateY(-3px); box-shadow:0 8px 24px rgba(255,213,79,0.2); }
  .fact-icon  { flex-shrink:0; color:var(--orange); display:flex; align-items:center; }
  .fact-card h4 { font-size:15px; font-weight:700; margin-bottom:4px; }
  .fact-card p  { font-size:13px; color:var(--text-muted); line-height:1.6; }

  /* FAQ */
  .faq-section { background:white; }
  .faq-inner   { max-width:760px; margin:0 auto; }
  .faq-item    { border:1.5px solid var(--border); border-radius:16px; margin-bottom:12px; overflow:hidden; transition:all 0.3s; }
  .faq-item:hover { border-color:var(--orange-mid); }
  .faq-item.open  { border-color:var(--orange); box-shadow:0 4px 16px rgba(255,112,67,0.1); }
  .faq-q { width:100%; display:flex; align-items:center; justify-content:space-between; padding:20px 24px; background:none; border:none; cursor:pointer; text-align:left; gap:16px; font-family:'Nunito',sans-serif; }
  .faq-q-text { font-size:16px; font-weight:700; color:var(--text); }
  .faq-icon-wrap { width:32px; height:32px; border-radius:50%; background:var(--orange-light); display:flex; align-items:center; justify-content:center; transition:all 0.3s; flex-shrink:0; color:var(--orange); font-size:20px; font-weight:700; line-height:1; }
  .faq-item.open .faq-icon-wrap { background:var(--orange); color:white; transform:rotate(45deg); }
  .faq-a { padding:0 24px; max-height:0; overflow:hidden; transition:max-height 0.4s ease,padding 0.3s; font-size:15px; color:var(--text-muted); line-height:1.7; }
  .faq-item.open .faq-a { max-height:200px; padding:0 24px 20px; }

  /* FOOTER */
  footer { background:var(--text); color:rgba(255,255,255,0.7); padding:48px; position:relative; z-index:1; }
  .footer-inner { max-width:1200px; margin:0 auto; display:grid; grid-template-columns:2fr 1fr 1fr 1fr; gap:40px; padding-bottom:40px; border-bottom:1px solid rgba(255,255,255,0.1); }
  .footer-brand p  { font-size:14px; line-height:1.7; margin-top:12px; max-width:280px; }
  .footer-col h5   { font-size:14px; font-weight:700; color:white; margin-bottom:16px; }
  .footer-col a    { display:flex; align-items:center; gap:8px; font-size:13px; color:rgba(255,255,255,0.6); text-decoration:none; margin-bottom:8px; transition:color 0.2s; }
  .footer-col a:hover { color:var(--orange); }
  .footer-col a svg { flex-shrink:0; }
  .footer-bottom { max-width:1200px; margin:24px auto 0; display:flex; justify-content:space-between; align-items:center; gap:18px; font-size:13px; }
  .footer-logo { display:flex; align-items:center; gap:8px; margin-bottom:12px; }
  .footer-logo-icon { width:36px; height:36px; background:var(--orange); border-radius:10px; display:flex; align-items:center; justify-content:center; color:white; }
  .footer-logo span { font-family:'Baloo 2',cursive; font-weight:800; font-size:20px; color:white; }
  .footer-made { display:inline-flex; align-items:center; justify-content:flex-end; gap:6px; color:rgba(255,255,255,0.58); line-height:1.4; text-align:right; flex-wrap:wrap; }
  .footer-made svg { color:var(--orange); }
  .footer-made a { color:rgba(255,255,255,0.86); text-decoration:none; font-weight:800; letter-spacing:.4px; transition:color .2s; }
  .footer-made a:hover { color:var(--orange); }

  /* REVEAL */
  .reveal { opacity:1; transform:none; transition:all 0.6s ease; }
  .js-reveal .reveal { opacity:0; transform:translateY(30px); }
  .js-reveal .reveal.visible { opacity:1; transform:translateY(0); }
  .section-divider { height:3px; background:repeating-linear-gradient(90deg,var(--orange) 0px,var(--orange) 16px,transparent 16px,transparent 24px); opacity:0.3; }

  @media (max-width:768px) {
    #navbar { height:76px; padding:0 18px; }
    .site-logo { width:178px; max-width:178px; }
    .nav-toggle { display:inline-flex; }
    .nav-menu { position:fixed; top:86px; left:16px; right:16px; z-index:1001; display:grid; gap:16px; padding:18px; margin-left:0; border:1.5px solid rgba(255,112,67,0.18); border-radius:24px; background:rgba(255,250,245,0.98); box-shadow:0 22px 56px rgba(62,39,35,0.18); opacity:0; visibility:hidden; pointer-events:none; transform:translateY(-12px); transition:opacity 0.22s, transform 0.22s, visibility 0.22s; }
    .nav-menu.is-open { opacity:1; visibility:visible; pointer-events:auto; transform:translateY(0); }
    .nav-links { display:grid; grid-template-columns:1fr; gap:6px; }
    .nav-links a { display:flex; align-items:center; min-height:42px; padding:10px 12px; border-radius:14px; background:rgba(255,255,255,0.76); color:var(--text); font-weight:800; }
    .nav-auth { display:grid; grid-template-columns:1fr; gap:10px; }
    .nav-society-chip { justify-content:center; width:100%; min-height:38px; }
    .btn-login,
    .btn-register { width:100%; justify-content:center; text-align:center; }
    section { padding:54px 18px; }
    .hero { padding:104px 18px 48px; }
    .hero h1 { font-size:clamp(34px,10vw,48px); line-height:1.08; margin-bottom:14px; }
    .hero-sub { font-size:15px; line-height:1.55; margin-bottom:28px; }
    .welfare-grid { grid-template-columns:1fr; gap:14px; }
    .welfare-card { padding:22px 20px; border-radius:20px; }
    .section-label { font-size:11px; letter-spacing:1.6px; }
    .section-title { font-size:clamp(27px,8vw,36px); line-height:1.08; }
    .section-sub { font-size:15px; line-height:1.55; margin-bottom:28px; }
    .dog-grid,
    .feeding-grid,
    .vet-finder-grid,
    .tips-grid,
    .facts-grid { grid-template-columns:1fr; gap:14px; }
    .stats-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; }
    .stat-card { padding:24px 18px; }
    .stat-number { font-size:42px; }
    .feeding-map-thumb { height:170px; }
    .feeding-info { padding:16px; }
    .feeding-tag { flex:1 1 auto; justify-content:center; }
    .tip-card,
    .fact-card { padding:18px; border-radius:18px; }
    .tip-card { display:grid; grid-template-columns:auto 1fr; gap:12px; align-items:flex-start; background:#fff; box-shadow:0 10px 24px rgba(62,39,35,0.05); }
    .tip-num { min-width:42px; height:42px; display:flex; align-items:center; justify-content:center; border-radius:14px; background:var(--orange-light); color:var(--orange); font-size:22px; line-height:1; }
    .tip-card h4 { font-size:16px; line-height:1.2; margin-bottom:5px; }
    .tip-card p { font-size:13px; line-height:1.5; }
    .fact-card { display:grid; grid-template-columns:auto 1fr; gap:12px; align-items:flex-start; background:#fff; box-shadow:0 10px 24px rgba(62,39,35,0.05); }
    .fact-icon { width:42px; height:42px; display:flex; align-items:center; justify-content:center; border-radius:14px; background:var(--yellow-light); color:var(--orange); }
    .fact-card h4 { font-size:16px; line-height:1.2; margin-bottom:5px; }
    .fact-card p { font-size:13px; line-height:1.5; }
    .facts-grid { display:flex; overflow-x:auto; scroll-snap-type:x mandatory; scroll-padding:0 18px; padding:2px 18px 12px; margin:28px -18px 0; -webkit-overflow-scrolling:touch; scrollbar-width:none; }
    .facts-grid::-webkit-scrollbar { display:none; }
    .facts-grid .fact-card { flex:0 0 82%; scroll-snap-align:center; }
    .facts-marquee-wrapper::before,
    .facts-marquee-wrapper::after { width:28px; }
    .faq-q { padding:16px 18px; }
    .faq-q-text { font-size:15px; line-height:1.35; }
    .faq-a { font-size:14px; line-height:1.6; }
    .faq-item.open .faq-a { max-height:360px; padding:0 18px 18px; }
    .donate-inner { grid-template-columns:1fr; gap:32px; }
    footer { padding:38px 18px; }
    .footer-inner { grid-template-columns:1fr; gap:22px; padding-bottom:28px; }
    .footer-brand { text-align:center; }
    .footer-logo { justify-content:center; margin-bottom:10px; }
    .footer-brand p { max-width:none; margin:10px auto 0; font-size:13px; line-height:1.6; }
    .footer-col { padding:18px; border:1px solid rgba(255,255,255,0.08); border-radius:18px; background:rgba(255,255,255,0.04); }
    .footer-col h5 { margin-bottom:12px; }
    .footer-col a { min-height:32px; margin-bottom:6px; font-size:13px; }
    .footer-bottom { flex-direction:column; gap:12px; align-items:center; justify-content:center; text-align:center; }
    .footer-made { justify-content:center; text-align:center; }
    .stray-gallery-hero { padding:118px 20px 24px; }
    .stray-gallery-section { padding:0 20px 48px; }
    .stray-gallery-summary { grid-template-columns:1fr; }
    .stray-gallery-layout { grid-template-columns:1fr; }
    .stray-gallery-sidebar { position:static; }
    .stray-gallery-grid { grid-template-columns:1fr; }
    .platform-home-hero { padding:118px 20px 32px; }
    .platform-home-hero-grid,
    .platform-home-cta-grid,
    .platform-modules-grid,
    .platform-role-grid,
    .platform-society-grid { grid-template-columns:1fr; }
    .platform-home-copy { font-size:16px; }
  }

  @media (max-width:480px) {
    #navbar { height:72px; padding:0 14px; }
    .site-logo { width:160px; max-width:160px; }
    .nav-toggle { width:42px; height:42px; border-radius:14px; }
    .nav-menu { top:80px; left:12px; right:12px; border-radius:22px; }
    .hero { padding:96px 16px 42px; }
    section { padding:48px 16px; }
    .dog-card { align-items:flex-start; }
    .dog-avatar { width:88px; height:88px; border-radius:22px; }
    .dog-avatar img { border-radius:22px; }
    .feeding-map-thumb { height:150px; }
    .vet-finder-card { padding:18px; }
    .tip-card { grid-template-columns:1fr; gap:10px; }
    .tip-card,
    .fact-card { grid-template-columns:1fr; }
    .tip-card,
    .fact-card { gap:12px; }
    .tip-num { width:42px; min-width:42px; font-size:20px; }
    .facts-grid { scroll-padding:0 16px; padding-inline:16px; margin-inline:-16px; }
    .facts-grid .fact-card { flex-basis:86%; }
    .footer-col { padding:16px; }
    .footer-logo span { font-size:18px; }
    .footer-logo-icon { width:32px; height:32px; border-radius:9px; }
    .footer-made { font-size:12px; max-width:260px; }
  }

.nav-society-chip {
  display: flex;
  align-items: center;
  gap: 7px;
  padding: 5px 12px 5px 6px;
  border-radius: 999px;
  border: 1.5px solid var(--border);
  background: rgba(255, 255, 255, 0.84);
  color: var(--text);
  font-size: 11px;
  font-weight: 800;
  line-height: 1;
  white-space: nowrap;
}

.app-dog-code {
  display: inline-flex;
  align-items: center;
  margin-top: 4px;
  font-size: 11px;
  line-height: 1.4;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--text-muted);
}

.app-dog-code--detail {
  margin: 10px 0 0;
  font-size: 12px;
}

.dog-card-link {
  display: flex;
  align-items: center;
  gap: 16px;
  color: inherit;
  text-decoration: none;
}
