/* Pappy · Puppy Portal di AIDD 1.2.0 — identità grafica «Cuccioli con amore».
   Palette crema, rosa cipria e beige; superfici bianche semitrasparenti; nessuna risorsa esterna (caratteri e immagini locali). */

@font-face{font-family:"Inter";font-style:normal;font-weight:400;font-display:swap;src:url("fonts/inter-400.woff") format("woff")}
@font-face{font-family:"Inter";font-style:normal;font-weight:600;font-display:swap;src:url("fonts/inter-600.woff") format("woff")}
@font-face{font-family:"Inter";font-style:normal;font-weight:700 800;font-display:swap;src:url("fonts/inter-700.woff") format("woff")}
@font-face{font-family:"PappySerif";font-style:italic;font-weight:400 700;font-display:swap;src:url("fonts/pappyserif-italic.woff") format("woff")}

:root{
  color-scheme:light;
  --cream:#fbf4ee;--cream-2:#f6ebe2;--beige:#eadccf;--beige-2:#d9c5b4;
  --rose:#c4677a;--rose-dark:#9b4256;--rose-soft:#f8e2e3;--rose-mist:#fcefee;
  --ink:#3d2a24;--ink-2:#5b443c;--muted:#7a6159;
  --glass:rgba(255,252,250,.80);--glass-strong:rgba(255,253,251,.92);--line:rgba(160,120,100,.20);
  --ok:#e5f3e6;--ok-ink:#2f6b3a;--warn:#fdf1d8;--err:#fbe4e1;--err-ink:#94302a;
  --shadow:0 10px 30px -12px rgba(110,62,48,.28),0 2px 6px rgba(110,62,48,.06);
  --shadow-lg:0 22px 50px -18px rgba(110,62,48,.36);
  --r:22px;--r-sm:14px;
  --sans:"Inter",system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
  --script:"PappySerif",Georgia,"Times New Roman",serif;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:96px}
body{margin:0;min-height:100vh;display:flex;flex-direction:column;color:var(--ink);font:16px/1.6 var(--sans);
  background:var(--cream) url("img/pappy-bg.jpg") top center/max(100%,1280px) auto no-repeat}
body.layout-sheet,body.layout-listing{background-size:max(100%,1280px) auto}
img{max-width:100%}
a{color:var(--rose-dark);text-underline-offset:2px}
a:hover{color:var(--rose)}
:focus-visible{outline:3px solid var(--rose);outline-offset:2px;border-radius:8px}
h1,h2,h3{line-height:1.2;color:var(--ink)}
h1{font-size:clamp(26px,4.6vw,38px);margin:.2em 0 .45em}
h2{font-size:clamp(20px,3vw,26px)}
.ic{width:1.15em;height:1.15em;flex:none;vertical-align:-.2em}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.skip{position:absolute;left:12px;top:-60px;z-index:50;background:var(--ink);color:#fff;padding:10px 16px;border-radius:12px;font-weight:700}
.skip:focus{top:12px}

/* ---------- Intestazione ---------- */
.top{position:sticky;top:0;z-index:20;background:rgba(253,248,244,.88);-webkit-backdrop-filter:saturate(1.2) blur(14px);backdrop-filter:saturate(1.2) blur(14px);border-bottom:1px solid var(--line);box-shadow:0 6px 24px -20px rgba(110,62,48,.6)}
.top-in{max-width:1240px;margin:0 auto;padding:10px 20px;display:flex;align-items:center;gap:12px 22px}
.brand{display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--ink);flex:none}
.brand .mark{width:38px;height:38px;color:var(--rose);flex:none}
.wordmark{font:italic 700 36px/1 var(--script);letter-spacing:-.01em;color:var(--ink);padding-right:4px}
.brand-sub{display:grid;border-left:2px solid var(--beige);padding-left:14px;margin-left:4px;line-height:1.25}
.brand-sub b{font-size:16px;font-weight:700;white-space:nowrap}.brand-sub small{font-size:13px;color:var(--muted);white-space:nowrap}
.mainnav{display:flex;align-items:center;gap:2px;margin-left:auto;flex-wrap:nowrap}
.mainnav a{display:inline-flex;align-items:center;gap:7px;padding:9px 12px;border-radius:14px;text-decoration:none;color:var(--ink);font-weight:600;font-size:15px;white-space:nowrap;transition:background .2s,color .2s}
.mainnav a:hover{background:var(--rose-mist);color:var(--rose-dark)}
.mainnav a[aria-current="page"]{background:var(--rose-soft);color:var(--rose-dark)}
.mainnav a.cta{background:linear-gradient(135deg,#ad5568,#9a4659);color:#fff;box-shadow:0 6px 16px -8px rgba(155,66,86,.8)}
.mainnav a.cta:hover{filter:brightness(1.05);color:#fff}
.count{display:inline-block;min-width:20px;padding:0 6px;border-radius:999px;background:var(--rose);color:#fff;font-size:12px;line-height:20px;text-align:center}
.lang{position:relative}
.lang summary{list-style:none;display:flex;align-items:center;gap:6px;cursor:pointer;padding:8px 12px;border-radius:14px;border:1px solid var(--line);background:rgba(255,255,255,.6);font-weight:700;font-size:14px}
.lang summary::-webkit-details-marker{display:none}
.lang[open] summary{background:var(--rose-soft);border-color:transparent}
.lang ul{position:absolute;right:0;top:calc(100% + 8px);margin:0;padding:6px;list-style:none;min-width:200px;background:var(--glass-strong);border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow-lg);z-index:30}
.lang a{display:flex;gap:10px;padding:8px 12px;border-radius:10px;text-decoration:none;color:var(--ink)}
.lang a b{width:26px;color:var(--muted);font-size:13px}
.lang a:hover{background:var(--rose-mist)}
.lang a[aria-current]{background:var(--rose-soft);font-weight:700}

/* ---------- Struttura ---------- */
main{flex:1;width:100%;max-width:1220px;margin:0 auto;padding:16px 20px 56px}
main:focus{outline:none}
.panel,.sheet,.search-panel,.result-box,.welcome,.lcard{background:var(--glass);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.7);box-shadow:var(--shadow)}
.sheet{max-width:880px;margin:clamp(24px,5vw,56px) auto 0;padding:clamp(20px,4vw,40px);border-radius:28px}
.sheet>h1:first-child,.sheet>.notice+h1{margin-top:0}
.notices{max-width:1080px;margin:8px auto 0}
.panel{border-radius:var(--r);padding:clamp(16px,3vw,28px);margin:18px 0}

/* ---------- Homepage ---------- */
.hero{text-align:center;padding:clamp(70px,12vw,170px) 8px 8px;max-width:900px;margin:0 auto}
.hero h1.script{font:italic 600 clamp(44px,8.2vw,88px)/1.05 var(--script);letter-spacing:-.015em;color:#4a2c25;margin:0 0 14px;text-shadow:0 2px 0 rgba(255,255,255,.9),0 0 26px rgba(255,248,242,.95),0 0 60px rgba(255,248,242,.9)}
.hero h1 .nobr{white-space:nowrap}
.hero h1 .heart{width:.62em;height:.62em;margin-left:.12em;vertical-align:.02em;color:var(--rose);stroke-width:2.2}
.hero-sub{font-size:clamp(18px,2.4vw,22px);font-weight:600;color:var(--ink);margin:0 0 10px;text-shadow:0 0 18px rgba(255,248,242,1),0 0 4px rgba(255,248,242,1)}
.hero-text{max-width:720px;margin:0 auto 18px;color:var(--ink-2);font-size:16.5px;background:rgba(255,250,246,.62);border-radius:18px;padding:10px 18px}
.trust{list-style:none;display:flex;flex-wrap:wrap;justify-content:center;gap:8px 10px;margin:0;padding:0}
.trust li{display:inline-flex;align-items:center;gap:8px;background:rgba(255,255,255,.78);border:1px solid var(--line);border-radius:999px;padding:7px 14px;font-size:14px;font-weight:600;color:var(--ink-2)}
.trust .ic{color:var(--rose)}

.search-panel{max-width:1180px;margin:26px auto 0;border-radius:24px;padding:18px 22px 20px}
.panel-title{display:flex;align-items:center;gap:8px;margin:0 0 10px;font-weight:700;font-size:15px;color:var(--ink-2)}
.panel-title .ic{color:var(--rose)}
.fields{display:grid;grid-template-columns:repeat(4,minmax(0,1fr)) auto;gap:12px 14px;align-items:end}
.fields label{font-size:13px;color:var(--muted);font-weight:600}
.fields .go{display:flex;align-items:center;gap:12px}
.fields .go button{display:inline-flex;align-items:center;gap:8px;padding:12px 26px}
.reset{font-size:14px;font-weight:600;white-space:nowrap}
.chips{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0 0}
.chip{display:inline-flex;gap:6px;align-items:center;background:var(--rose-soft);color:var(--rose-dark);border-radius:999px;padding:5px 12px;font-size:13px;font-weight:600;text-decoration:none}

.result-box{max-width:1180px;margin:18px auto 0;border-radius:24px;padding:20px 24px;display:flex;align-items:center;justify-content:center;gap:16px;text-align:center}
.result-box>.ic{width:34px;height:34px;color:var(--ink-2)}
.result-box strong{font-size:clamp(22px,3vw,28px)}
.result-box .empty{margin:2px 0 0;color:var(--muted);font-size:16px}

.latest{max-width:1180px;margin:34px auto 0}
.sec-head{display:flex;align-items:center;gap:14px;margin:0 0 16px;padding:0 4px}
.sec-head .paw,.welcome .paw{width:44px;height:44px;color:var(--rose)}
.sec-head h2{margin:0;font-size:clamp(24px,3.4vw,32px);font-weight:800}
.sec-head p{margin:2px 0 0;color:var(--ink-2)}
.lgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:20px}
.lcard{position:relative;display:flex;flex-direction:column;border-radius:var(--r);padding:10px;transition:transform .25s,box-shadow .25s}
.lcard:hover{transform:translateY(-3px);box-shadow:var(--shadow-lg)}
.lcard-media{position:relative;display:block;text-decoration:none;border-radius:16px;overflow:hidden;aspect-ratio:4/3;background:linear-gradient(140deg,#fbeeea,#f2e2d6)}
.lcard-media img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .5s}
.lcard:hover .lcard-media img{transform:scale(1.04)}
.ph{width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;color:var(--rose);background:linear-gradient(140deg,#fcefec,#f3e3d8)}
.ph .ic{width:56px;height:56px;opacity:.45}
.ph small{color:var(--muted);font-size:13px;font-weight:600}
.badges{position:absolute;top:10px;left:10px;display:flex;gap:6px;flex-wrap:wrap}
.badge{display:inline-block;padding:4px 12px;border-radius:999px;font-size:12.5px;font-weight:700;box-shadow:0 4px 12px -6px rgba(80,30,30,.5)}
.badge.new{background:#a84f62;color:#fff}
.badge.soon{background:#fff6ea;color:#7a4c1c}
.fav{position:absolute;top:18px;right:18px;width:40px;height:40px;border-radius:50%;display:grid;place-items:center;background:rgba(255,255,255,.82);color:var(--rose-dark);box-shadow:0 4px 14px -6px rgba(80,30,30,.5);transition:transform .2s,background .2s}
.fav:hover{transform:scale(1.08);background:#fff;color:var(--rose)}
.fav .ic{width:22px;height:22px}
.lcard-body{display:flex;flex-direction:column;gap:4px;padding:12px 8px 6px;flex:1}
.lcard-body h3{margin:0;font-size:19px;font-weight:800}
.lcard-body h3 a{color:var(--ink);text-decoration:none}
.lcard-body h3 a:hover{color:var(--rose-dark)}
.lcard-body p{margin:0}
.variety{color:var(--ink-2);font-weight:600;font-size:15px}
.where{display:flex;align-items:center;gap:8px;color:var(--ink-2);font-size:15px}
.flag{width:21px;height:14px;border-radius:3px;object-fit:cover;box-shadow:0 0 0 1px rgba(0,0,0,.08);flex:none;vertical-align:-1px;margin-right:6px}
.where .flag{margin-right:0}
.avail{display:flex;align-items:center;gap:6px;font-size:14px;font-weight:600;margin-top:2px!important}
.avail.yes{color:var(--ok-ink)}.avail.no{color:var(--muted)}.avail.soon{color:#8a5a22}
.btn-soft{margin-top:auto;display:flex;align-items:center;justify-content:center;gap:8px;padding:11px 14px;border-radius:14px;background:var(--rose-soft);color:var(--rose-dark);font-weight:700;text-decoration:none;transition:background .2s}
.lcard-body .avail{margin-bottom:12px!important}
.btn-soft:hover{background:#f3d2d5;color:var(--rose-dark)}
.pager{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:12px;margin:26px 0 0}
.pager>a:last-child{justify-self:end}
.welcome{max-width:760px;margin:30px auto 0;border-radius:28px;padding:clamp(24px,4vw,40px);text-align:center}
.welcome h2{margin:6px 0 10px;font-size:clamp(24px,3.4vw,30px)}
.welcome p{color:var(--ink-2);margin:0 auto 10px;max-width:600px}
main>.note{max-width:1180px;margin:30px auto 0}

/* ---------- Scheda della cucciolata ---------- */
.layout-listing main{padding-top:24px}
.back{margin:8px 0 0}
.back a{display:inline-flex;padding:7px 14px;border-radius:999px;background:rgba(255,255,255,.75);text-decoration:none;font-weight:600;box-shadow:var(--shadow)}
.l-hero{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:clamp(18px,3vw,34px);align-items:start}
.l-cover{border-radius:18px;overflow:hidden;aspect-ratio:4/3;background:linear-gradient(140deg,#fcefec,#f3e3d8)}
.l-cover img{width:100%;height:100%;object-fit:cover;display:block}
.l-info h1{margin:10px 0 6px}
.listing .lead{font-size:17px;color:var(--ink-2);margin:0 0 12px}
.facts{list-style:none;padding:0;margin:0;display:grid;gap:8px}
.facts li{background:rgba(255,255,255,.7);border:1px solid var(--line);border-radius:12px;padding:8px 12px;font-size:15px}
.l-cta{margin:16px 0 0}
.l-cta .button,.actions h2,.pups h2{display:inline-flex;align-items:center;gap:10px}
.pups h2 .paw{width:30px;height:30px;color:var(--rose)}
.actions h2 .ic{color:var(--rose)}
.desc{margin:0;white-space:normal;font-size:16.5px}
.gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:10px;margin:18px 0}
.gallery img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:16px;box-shadow:var(--shadow)}

/* ---------- Schede generiche (cuccioli) ---------- */
.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:16px}
.card{display:grid;grid-template-rows:auto 1fr;background:var(--glass-strong);border:1px solid var(--line);border-radius:18px;overflow:hidden;text-decoration:none;color:inherit}
.card>img,.card>.ph{width:100%;aspect-ratio:4/3;object-fit:cover;display:flex}
.card>.ph .ic{width:42px;height:42px}
.card>div{padding:12px 14px}
.card h2,.card h3{margin:8px 0 2px;font-size:18px}
.card p{margin:2px 0}
.card .small{padding-left:18px;margin:6px 0}
.tag{display:inline-block;font-size:12.5px;font-weight:700;padding:4px 11px;border-radius:999px;background:var(--rose-soft);color:var(--rose-dark)}
.tag.available{background:#e2f2e3;color:var(--ok-ink)}.tag.reserved{background:#fdf0d4;color:#7a4c1c}.tag.sold,.tag.not_available{background:#ece6e2;color:var(--muted)}

/* ---------- Moduli e pulsanti ---------- */
label{display:grid;gap:6px;font-size:14px;font-weight:600;color:var(--ink-2)}
label.check{display:flex;gap:10px;align-items:flex-start;font-weight:500;color:var(--ink)}
input,select,textarea{font:inherit;font-size:16px;padding:11px 13px;border:1px solid var(--beige-2);border-radius:var(--r-sm);background:rgba(255,255,255,.92);color:var(--ink);width:100%;min-width:0;transition:border-color .2s,box-shadow .2s}
select{appearance:none;-webkit-appearance:none;padding-right:38px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%239b4256' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;background-size:18px}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--rose);box-shadow:0 0 0 4px rgba(196,103,122,.18)}
input[type=checkbox]{width:20px;height:20px;margin-top:2px;accent-color:var(--rose);flex:none;padding:0}
button,.button{font:inherit;font-weight:700;padding:11px 20px;border:0;border-radius:var(--r-sm);background:linear-gradient(135deg,#ad5568,#9a4659);color:#fff;cursor:pointer;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;gap:8px;justify-self:start;box-shadow:0 8px 18px -10px rgba(155,66,86,.9);transition:filter .2s,transform .1s}
button:hover,.button:hover{filter:brightness(1.06);color:#fff}
button:active,.button:active{transform:translateY(1px)}
button.secondary,.button.secondary{background:var(--rose-soft);color:var(--rose-dark);box-shadow:none}
button.secondary:hover,.button.secondary:hover{background:#f3d2d5;color:var(--rose-dark)}
button.danger{background:#a3261b}
button.link{background:none;color:var(--rose-dark);padding:0;text-decoration:underline;box-shadow:none;font-weight:600}
.form{display:grid;gap:14px;max-width:560px}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
form.inline{display:inline}
details>summary{cursor:pointer;font-weight:600;color:var(--rose-dark)}
details[open]>summary{margin-bottom:10px}

/* ---------- Testi, avvisi, messaggi ---------- */
.muted,.small{color:var(--muted);font-size:14px}
.note{font-size:14px;color:var(--muted);background:rgba(255,255,255,.62);border-left:4px solid var(--beige-2);border-radius:0 12px 12px 0;padding:10px 14px}
.notice{padding:12px 16px;border-radius:var(--r-sm);margin:10px 0;background:var(--warn);color:var(--ink);border:1px solid rgba(160,110,40,.18)}
.notice.ok{background:var(--ok);border-color:rgba(47,107,58,.2)}
.notice.err{background:var(--err);color:var(--err-ink);border-color:rgba(148,48,42,.2)}
.actions{display:grid;gap:12px}
.actions h2{margin:0 0 4px}
.chat{display:grid;gap:10px;margin:16px 0}
.msg{max-width:84%;background:#fff;border:1px solid var(--line);border-radius:18px 18px 18px 6px;padding:10px 14px;box-shadow:0 4px 12px -10px rgba(80,30,30,.5)}
.msg.mine{justify-self:end;background:var(--rose-soft);border-color:transparent;border-radius:18px 18px 6px 18px}
.msg p{margin:0;overflow-wrap:anywhere}.msg small{color:var(--muted);font-size:12px}
.row{display:block;padding:14px 16px;margin:0 0 8px;border:1px solid var(--line);border-radius:var(--r-sm);background:rgba(255,255,255,.75);text-decoration:none;color:inherit}
a.row:hover{background:#fff;border-color:var(--rose-soft)}
.unread{font-weight:700}
.version{background:rgba(255,255,255,.82);border:1px solid var(--line);border-radius:18px;padding:14px 18px;margin:14px 0}
.version.current{border-color:var(--rose);box-shadow:0 0 0 3px rgba(196,103,122,.12)}
pre.contract{white-space:pre-wrap;font:14px/1.55 Georgia,serif;background:var(--cream-2);padding:14px;border-radius:12px;overflow-wrap:anywhere}
dialog{border:0;border-radius:24px;max-width:min(540px,calc(100vw - 32px));padding:24px 26px;background:var(--glass-strong);box-shadow:var(--shadow-lg);color:var(--ink)}
dialog::backdrop{background:rgba(61,42,36,.42);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}
dialog h2{margin-top:0}

/* ---------- Piè di pagina ---------- */
.foot{margin-top:24px;background:rgba(253,248,244,.9);border-top:1px solid var(--line);font-size:14px;color:var(--muted)}
.foot-in{max-width:1220px;margin:0 auto;padding:22px 20px 34px}
.foot-brand{display:flex;align-items:center;gap:8px;color:var(--ink-2)}
.foot-brand .mark{width:22px;height:22px;color:var(--rose)}
.foot-brand b{font:italic 700 20px var(--script);color:var(--ink)}
.foot a{color:var(--ink-2)}

/* ---------- Adattamento ---------- */
@media (max-width:1500px){.brand-sub small{display:none}}
@media (max-width:1240px){.brand-sub{display:none}}
@media (max-width:1100px){.fields{grid-template-columns:repeat(2,minmax(0,1fr))}.fields .go{grid-column:1/-1}}
@media (max-width:1080px){
  .top-in{flex-wrap:wrap;padding:8px 14px;gap:6px 12px}
  .brand-sub{display:none}
  .lang{margin-left:auto}
  .mainnav{order:3;width:100%;margin:0 -4px;flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;justify-content:space-between}
  .mainnav::-webkit-scrollbar{display:none}
  .mainnav a{flex:1 1 0;min-width:64px;flex-direction:column;gap:2px;padding:6px 6px;font-size:12px;line-height:1.2;border-radius:12px;white-space:normal;text-align:center}
  .mainnav a .ic{width:22px;height:22px}
  .mainnav a.cta{flex-grow:1.8}
  .mainnav a span{overflow-wrap:break-word;hyphens:auto}
  .l-hero{grid-template-columns:1fr}
  body{background-size:1100px auto;background-position:center 52px}
  html{scroll-padding-top:130px}
}
@media (max-width:560px){
  main{padding:10px 14px 44px}
  .wordmark{font-size:30px}.brand .mark{width:32px;height:32px}
  .hero-text{font-size:15.5px}
  .trust li{font-size:13px}
  .fields{grid-template-columns:1fr}
  .search-panel,.result-box{padding:16px;border-radius:20px}
  .lgrid{grid-template-columns:1fr;gap:16px}
  .pager{grid-template-columns:1fr 1fr}.pager>.muted{grid-column:1/-1;grid-row:1;text-align:center}
  .msg{max-width:100%}
  .sheet{border-radius:22px;margin-top:16px}
  body{background-size:1000px auto;background-position:center 100px}
  .hero{padding-top:130px}
}
@media (prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}
@media print{body{background:#fff}.top,.foot,.fav,.search-panel{display:none}}
