:root{
  --ink:#161a14; --grey:#6b7268; --line:#e3e5df; --paper:#f6f7f3; --white:#fff;
  --brand:#2f4a35; --brand-dark:#203524; --brand-light:#eaeee6; --gold:#b8923f; --gold-light:#f3e9d2;
  --radius:10px;
  --font: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
  --font-display: "Fraunces", Georgia, "Times New Roman", serif;
  --mono: "SFMono-Regular", Menlo, Consolas, monospace;
}
*{box-sizing:border-box;}
body{margin:0; font-family:var(--font); color:var(--ink); background:var(--white); line-height:1.5;}
a{color:inherit; text-decoration:none;}
.wrap{max-width:1180px; margin:0 auto; padding:0 20px;}
img{max-width:100%; display:block;}
@media (prefers-reduced-motion: reduce){ *{ animation-duration:.01ms !important; transition-duration:.01ms !important; } }

header.site{background:rgba(255,255,255,.92); backdrop-filter:blur(8px); border-bottom:1px solid var(--line); position:sticky; top:0; z-index:30;}
header.site .wrap{display:flex; align-items:center; justify-content:space-between; height:66px;}
.logo{font-family:var(--font-display); font-weight:600; font-size:22px; letter-spacing:-.01em; display:flex; align-items:center; gap:9px;}
.logo-badge{width:34px; height:34px; border-radius:50%; object-fit:cover; flex-shrink:0;}
.logo span{color:var(--gold); font-style:italic;}
nav.main a{margin-left:24px; font-size:12.5px; font-family:var(--mono); text-transform:uppercase; letter-spacing:.06em; color:var(--grey);}
nav.main a:hover{color:var(--ink);}
.header-actions{display:flex; align-items:center; gap:12px;}
.auth-actions{display:flex; align-items:center; gap:10px; position:relative;}

.account-menu{position:relative;}
.account-menu-btn{display:flex; align-items:center; gap:6px; border:1px solid var(--line); background:#fff; border-radius:20px; padding:8px 14px; font-size:13px; font-weight:600; cursor:pointer; color:var(--ink);}
.account-menu-btn:hover{border-color:var(--ink);}
.account-menu-btn svg{width:15px; height:15px; stroke:var(--ink);}
.account-dropdown{position:absolute; top:calc(100% + 8px); right:0; background:#fff; border:1px solid var(--line); border-radius:12px; box-shadow:0 16px 34px rgba(22,26,20,.14); min-width:170px; padding:6px; display:none; z-index:50;}
.account-dropdown.open{display:block;}
.account-dropdown a{display:block; padding:10px 12px; border-radius:8px; font-size:14px; font-weight:600; color:var(--ink);}
.account-dropdown a:hover{background:var(--paper);}
.account-dropdown a.evidenzia{color:var(--brand);}
.account-dropdown .divider{height:1px; background:var(--line); margin:5px 4px;}
.badge-non-letti{display:inline-flex; align-items:center; justify-content:center; min-width:17px; height:17px; padding:0 4px; border-radius:9px; background:#a91f1f; color:#fff; font-size:10.5px; font-weight:700; line-height:1;}

.lang-switch{border:1px solid var(--line); border-radius:20px; padding:6px 10px; font-size:12px; font-family:var(--mono); background:var(--white); color:var(--ink); cursor:pointer;}
.lang-switch:hover{border-color:var(--ink);}

.market-toggle{display:inline-flex; border:1px solid var(--line); border-radius:30px; padding:3px; background:var(--paper);}
.market-toggle button{border:none; background:none; padding:7px 16px; border-radius:24px; font-size:13.5px; font-weight:600; color:var(--grey); cursor:pointer; transition:background .15s ease, color .15s ease;}
.market-toggle button.active{background:var(--brand); color:#fff;}

.btn{display:inline-flex; align-items:center; justify-content:center; gap:8px; padding:11px 18px; border-radius:var(--radius); font-weight:600; font-size:14.5px; cursor:pointer; border:1px solid transparent;}
.btn-primary{background:var(--brand); color:#fff;}
.btn-primary:hover{background:var(--brand-dark);}
.btn-outline{border-color:var(--line); color:var(--ink); background:#fff;}
.btn-outline:hover{border-color:var(--ink);}
.btn-sm{padding:8px 14px; font-size:13px;}
.btn-block{width:100%;}
.btn[disabled]{opacity:.5; cursor:not-allowed;}

.hero{ padding:0; position:relative; overflow:hidden; background:#171310; }
.hero-photo{position:absolute; top:0; bottom:0; width:min(44%, 380px); object-fit:cover; z-index:0;}
.hero-photo.left{left:0; object-position:78% center;}
.hero-photo.right{right:0; object-position:22% center;}
.hero-overlay{position:absolute; inset:0; z-index:1; pointer-events:none;
  background:
    linear-gradient(90deg, transparent 0%, transparent 12%, rgba(15,12,9,.97) 40%, rgba(15,12,9,.97) 60%, transparent 88%, transparent 100%),
    linear-gradient(180deg, rgba(15,12,9,.55) 0%, rgba(15,12,9,.1) 22%, rgba(15,12,9,.1) 66%, rgba(15,12,9,.7) 100%);
}
.hero-inner{position:relative; z-index:2; padding:54px 0 34px; text-align:center;}
.hero-logo-row{display:flex; align-items:center; justify-content:center; gap:10px; margin-bottom:6px;}
.hero-logo-row svg{width:44px; height:44px; filter:drop-shadow(0 2px 6px rgba(0,0,0,.5));}
.hero-inner .logo-sub{font-family:var(--mono); font-size:11px; letter-spacing:.18em; text-transform:uppercase; color:#eae5d9; margin-bottom:20px; text-shadow:0 2px 10px rgba(0,0,0,.7);}
.hero-inner h1{font-family:var(--font-display); font-weight:600; font-size:clamp(22px,3.4vw,32px); color:#fff; margin:0 0 2px; text-shadow:0 3px 16px rgba(0,0,0,.7);}
.hero-claim2{font-family:var(--font-display); font-weight:600; font-style:italic; font-size:clamp(17px,2.2vw,22px); color:var(--gold); margin:0 0 12px; text-shadow:0 2px 10px rgba(0,0,0,.7);}
.hero-sub{color:#f1ede2; font-size:15px; margin:0 auto 20px; max-width:460px; text-shadow:0 2px 12px rgba(0,0,0,.7);}
.badge-row{display:flex; justify-content:center; gap:22px; flex-wrap:wrap; margin-bottom:8px;}
.badge-row .badge{display:flex; flex-direction:column; align-items:center; gap:6px; color:#fff; font-size:10.5px; font-weight:700; text-transform:uppercase; letter-spacing:.02em; max-width:96px; text-shadow:0 2px 10px rgba(0,0,0,.8);}
.badge-row svg{width:23px; height:23px; stroke:var(--gold); filter:drop-shadow(0 2px 6px rgba(0,0,0,.6));}

.disc-strip{display:grid; grid-template-columns:repeat(5,1fr);}
.disc-panel{position:relative; aspect-ratio:1/1; overflow:hidden; border-right:1px solid rgba(184,146,63,.35);}
.disc-panel:last-child{border-right:none;}
.disc-panel img{width:100%; height:100%; object-fit:cover; transition:transform .4s ease;}
.disc-panel:hover img{transform:scale(1.06);}
.disc-panel .overlay{position:absolute; inset:0; background:linear-gradient(180deg, rgba(0,0,0,.15) 0%, transparent 30%, rgba(0,0,0,.75) 100%); display:flex; flex-direction:column; justify-content:space-between; padding:14px;}
.disc-panel .disc-name{color:#fff; font-family:var(--font-display); font-weight:600; font-size:15px; text-transform:uppercase; letter-spacing:.03em;}
.disc-panel .disc-claim{color:#e5e0d3; font-size:11.5px; line-height:1.4;}
@media (max-width:900px){
  .disc-strip{display:flex; overflow-x:auto; scroll-snap-type:x mandatory; -webkit-overflow-scrolling:touch;}
  .disc-panel{flex:0 0 68%; scroll-snap-align:start; aspect-ratio:1/1.05; border-right:1px solid rgba(184,146,63,.35);}
  .hero-photo{width:min(38%, 170px); min-width:0;}
  .badge-row{gap:18px 14px;}
}

.trust-bar{background:var(--paper); border-top:1px solid var(--line); border-bottom:1px solid var(--line); padding:26px 0;}
.trust-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:20px;}
.trust-item{display:flex; align-items:flex-start; gap:12px;}
.trust-item svg{width:26px; height:26px; stroke:var(--gold); flex-shrink:0; margin-top:2px;}
.trust-item strong{display:block; font-size:13px;}
.trust-item span{color:var(--grey); font-size:12px;}
@media (max-width:900px){ .trust-grid{grid-template-columns:1fr 1fr;} }

.map-section{background:#171310; padding:0; position:relative; overflow:hidden;}
.map-photo{width:100%; max-width:820px; margin:0 auto; height:220px; object-fit:cover; display:block; opacity:.9;}
.map-overlay{position:absolute; inset:0; display:flex; flex-direction:column; align-items:center; justify-content:space-between; padding:18px 5% 22px;}
.map-poles-row{width:100%; max-width:640px; display:flex; align-items:flex-start; justify-content:space-between; margin:0 auto;}
.map-pole{display:flex; flex-direction:column; align-items:center; gap:4px;}
.map-pole .flag{font-size:22px; filter:drop-shadow(0 2px 6px rgba(0,0,0,.6));}
.map-pole .label{font-family:var(--mono); color:#fff; font-size:12.5px; font-weight:700; letter-spacing:.06em; text-shadow:0 2px 8px rgba(0,0,0,.8);}
.map-claim{text-align:center; color:#fff; font-family:var(--font-display); font-size:15px; font-weight:600; text-shadow:0 2px 10px rgba(0,0,0,.8); padding:0 16px;}
@media (max-width:700px){ .map-photo{height:170px;} .map-pole .label{font-size:11px;} .map-claim{font-size:13.5px;} }

.search-box{background:#fff; border:1px solid var(--line); border-radius:var(--radius); padding:16px; display:grid; grid-template-columns: 1fr .7fr .9fr .7fr .8fr .8fr auto; gap:10px; box-shadow:0 20px 50px rgba(0,0,0,.18); position:relative; z-index:3; margin-top:22px;}
.search-box input, .search-box select{padding:11px 12px; border:1px solid var(--line); border-radius:8px; font-size:14.5px; font-family:var(--font); background:#fff;}
.search-box input:focus, .search-box select:focus{outline:2px solid var(--brand); outline-offset:1px;}

.section-heading{display:flex; align-items:baseline; justify-content:space-between; padding-top:36px; border-top:1px solid var(--line); margin-top:4px;}
.section-heading h2{font-family:var(--font-display); font-weight:600; font-size:22px; margin:0;}
.section-heading span{font-family:var(--mono); font-size:12px; color:var(--grey); text-transform:uppercase; letter-spacing:.06em;}

.cat-grid{display:grid; grid-template-columns:repeat(9,1fr); gap:12px; padding:30px 0 8px;}
.cat-tile{border:1px solid var(--line); border-radius:var(--radius); background:#fff; padding:18px 10px 14px; text-align:center; transition:border-color .18s ease, transform .18s ease, box-shadow .18s ease;}
.cat-tile:hover{border-color:var(--gold); transform:translateY(-3px); box-shadow:0 12px 22px rgba(22,26,20,.08);}
.cat-tile .cat-num{font-family:var(--mono); font-size:10px; color:var(--grey); letter-spacing:.06em;}
.cat-tile .cat-mono{width:46px; height:46px; margin:8px auto 10px; border-radius:50%; background:var(--brand-light); color:var(--brand-dark); display:flex; align-items:center; justify-content:center; font-family:var(--font-display); font-weight:600; font-size:19px; font-style:italic;}
.cat-tile:hover .cat-mono{background:var(--gold-light); color:#6b4f14;}
.cat-tile .cat-name{font-size:12.5px; font-weight:600; line-height:1.25;}
@media (max-width:900px){ .cat-grid{grid-template-columns:repeat(3,1fr);} }

.grid{display:grid; grid-template-columns:repeat(4,1fr); gap:20px; padding:30px 0 40px;}
.card{border:1px solid var(--line); border-radius:var(--radius); overflow:hidden; background:#fff; display:flex; flex-direction:column; transition:box-shadow .2s ease, transform .2s ease, border-color .2s ease;}
.card:hover{box-shadow:0 14px 30px rgba(22,26,20,.1); transform:translateY(-3px); border-color:var(--gold);}
.card .media{aspect-ratio:4/3; background:var(--paper); position:relative; overflow:hidden;}
.card .media img{width:100%; height:100%; object-fit:cover; transition:transform .35s ease;}
.card:hover .media img{transform:scale(1.045);}
.card .featured-tag{position:absolute; top:10px; left:10px; background:var(--gold); color:#231a05; font-size:10.5px; font-weight:700; padding:4px 9px; border-radius:5px; text-transform:uppercase; letter-spacing:.06em; font-family:var(--mono);}
.card .market-tag{position:absolute; top:10px; right:10px; background:rgba(22,26,20,.78); color:#fff; font-size:10.5px; font-weight:700; padding:4px 8px; border-radius:5px; text-transform:uppercase; font-family:var(--mono);}
.card .body{padding:14px;}
.card .breed{font-size:11.5px; color:var(--grey); text-transform:uppercase; letter-spacing:.04em; font-family:var(--mono);}
.card h3{font-family:var(--font-display); font-weight:600; font-size:18px; margin:3px 0 8px;}
.card .price{font-weight:700; font-size:17px; color:var(--brand); font-family:var(--mono);}
.card .meta{display:flex; gap:12px; font-size:12.5px; color:var(--grey); margin-top:8px; font-family:var(--mono);}

.form-card{max-width:520px; margin:48px auto; border:1px solid var(--line); border-radius:var(--radius); padding:32px; background:#fff;}
.form-card h1{font-size:22px; margin-top:0;}
label{display:block; font-size:13px; font-weight:600; margin:14px 0 5px;}
input, select, textarea{width:100%; padding:11px 12px; border:1px solid var(--line); border-radius:8px; font-size:14.5px; font-family:var(--font);}
textarea{min-height:100px; resize:vertical;}
.error-box{background:#fdecec; color:#a91f1f; border:1px solid #f7c9c9; padding:10px 12px; border-radius:8px; font-size:13.5px; margin-top:14px; display:none;}
.form-row{display:grid; grid-template-columns:1fr 1fr; gap:14px;}
.form-row-3{display:grid; grid-template-columns:1fr 1fr 1fr; gap:14px;}

.dash-header{display:flex; justify-content:space-between; align-items:center; padding:28px 0 10px;}
.plan-badge{display:inline-block; padding:4px 11px; border-radius:20px; background:var(--paper); font-size:12.5px; font-family:var(--mono); font-weight:700;}
.dash-list{border:1px solid var(--line); border-radius:var(--radius); overflow:hidden;}
.dash-row{display:flex; align-items:center; gap:14px; padding:12px 16px; border-bottom:1px solid var(--line); flex-wrap:wrap;}
.dash-row:last-child{border-bottom:none;}
.dash-row img{width:64px; height:48px; object-fit:cover; border-radius:6px; background:var(--paper);}
.dash-row .info{flex:1; min-width:140px;}
@media (max-width:640px){
  .dash-row{padding:14px 16px;}
  .dash-row .info{flex-basis:100%; order:1;}
  .dash-row img{order:0;}
  .dash-row .status-tag{order:2;}
  .dash-row button, .dash-row a.btn{order:3;}
}
.status-tag{font-size:11.5px; padding:3px 9px; border-radius:20px; font-weight:700;}
.status-in_revisione{background:#fff4d6; color:#8a6300;}
.status-pubblicato{background:#dcf6e3; color:#1a7a34;}
.status-rifiutato{background:#fde2e2; color:#a91f1f;}

.photo-drop{border:2px dashed var(--line); border-radius:var(--radius); padding:24px; text-align:center; color:var(--grey); cursor:pointer; margin-top:14px;}

.btn-vetrina{background:var(--gold-light); color:#6b4f14; border:1px solid var(--gold);}
.btn-vetrina:hover{background:var(--gold);}

.msg-list{border:1px solid var(--line); border-radius:var(--radius); overflow:hidden;}
.msg-row{display:flex; align-items:center; gap:12px; padding:14px 16px; border-bottom:1px solid var(--line); cursor:pointer;}
.msg-row:last-child{border-bottom:none;}
.msg-row:hover{background:var(--paper);}
.msg-row.non-letto{background:var(--gold-light);}
.msg-row img{width:50px; height:40px; object-fit:cover; border-radius:6px; background:var(--paper);}
.msg-row .info{flex:1; min-width:0;}
.msg-row .anteprima{color:var(--grey); font-size:13px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis;}
.chat-box{border:1px solid var(--line); border-radius:var(--radius); padding:16px; max-height:420px; overflow-y:auto; display:flex; flex-direction:column; gap:10px;}
.bubble{max-width:75%; padding:9px 13px; border-radius:14px; font-size:14px; line-height:1.4;}
.bubble.mio{align-self:flex-end; background:var(--brand); color:#fff; border-bottom-right-radius:4px;}
.bubble.loro{align-self:flex-start; background:var(--paper); border-bottom-left-radius:4px;}
.chat-form{display:flex; gap:8px; margin-top:12px;}
.chat-form input{flex:1; padding:11px 12px; border:1px solid var(--line); border-radius:8px;}

.admin-row{display:grid; grid-template-columns:70px 2fr 1fr 1fr auto; align-items:center; gap:12px; padding:12px 16px; border-bottom:1px solid var(--line);}
.admin-row:last-child{border-bottom:none;}
.admin-row img{width:60px; height:44px; object-fit:cover; border-radius:6px; background:var(--paper);}
@media (max-width:640px){
  .admin-row{grid-template-columns:60px 1fr; row-gap:8px;}
  .admin-row > div:nth-child(3), .admin-row > div:nth-child(4){grid-column:1/-1;}
  .admin-actions{grid-column:1/-1;}
}
.admin-actions{display:flex; gap:8px;}

.stats-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:14px; margin:20px 0 34px;}
.stat-card{border:1px solid var(--line); border-radius:var(--radius); padding:16px; background:#fff;}
.stat-card .num{font-family:var(--font-display); font-weight:600; font-size:28px;}
.stat-card .lbl{font-size:12px; color:var(--grey); text-transform:uppercase; letter-spacing:.04em; font-family:var(--mono);}
.users-table{width:100%; border-collapse:collapse; font-size:13.5px;}
.users-table th{text-align:left; font-family:var(--mono); font-size:11px; text-transform:uppercase; color:var(--grey); padding:8px 10px; border-bottom:1px solid var(--line);}
.users-table td{padding:9px 10px; border-bottom:1px solid var(--line);}
@media (max-width:900px){ .stats-grid{grid-template-columns:1fr 1fr;} .users-table{display:block; overflow-x:auto; white-space:nowrap;} }
.photo-preview{display:flex; flex-wrap:wrap; gap:8px; margin-top:10px;}
.photo-preview img, .photo-preview video{width:72px; height:56px; object-fit:cover; border-radius:6px;}
.media-item{position:relative; width:72px; height:56px;}
.media-item img, .media-item video{width:100%; height:100%; object-fit:cover; border-radius:6px;}
.media-item .rimuovi-media{position:absolute; top:-6px; right:-6px; width:20px; height:20px; border-radius:50%; background:#a91f1f; color:#fff; border:2px solid #fff; font-size:12px; line-height:1; cursor:pointer; display:flex; align-items:center; justify-content:center; padding:0;}

.pricing-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:22px; padding:40px 0 64px;}
.plan{border:1px solid var(--line); border-radius:var(--radius); padding:30px 26px; text-align:center; background:#fff; transition:transform .2s ease, box-shadow .2s ease;}
.plan:hover{transform:translateY(-3px);}
.plan h3{font-family:var(--font-display); font-weight:600; font-size:19px; margin:0;}
.plan.highlight{border-color:var(--gold); box-shadow:0 16px 34px rgba(184,146,63,.18); position:relative;}
.plan.highlight::before{content:'★'; position:absolute; top:-13px; left:50%; transform:translateX(-50%); background:var(--gold); color:#231a05; width:26px; height:26px; border-radius:50%; display:flex; align-items:center; justify-content:center; font-size:13px;}
.plan .price{font-family:var(--font-display); font-size:36px; font-weight:600; margin:12px 0;}
.plan ul{list-style:none; padding:0; text-align:left; font-size:14px; color:var(--grey); margin:18px 0;}
.plan li{padding:7px 0; border-bottom:1px solid var(--line);}
.plan li::before{content:'— '; color:var(--gold);}

footer.site{border-top:1px solid var(--line); padding:34px 0; color:var(--grey); font-size:13px; margin-top:44px; font-family:var(--mono);}
.footer-grid{display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:14px;}
.footer-links a{margin-left:18px; color:var(--grey);}
.footer-links a:hover{color:var(--ink);}
.footer-links a:first-child{margin-left:0;}

.cookie-banner{position:fixed; left:16px; right:16px; bottom:16px; max-width:520px; margin:0 auto; background:var(--ink); color:#fff; border-radius:var(--radius); padding:18px 20px; box-shadow:0 16px 40px rgba(0,0,0,.25); z-index:100; font-size:13.5px; line-height:1.5;}
.cookie-banner a{text-decoration:underline;}
.cookie-actions{display:flex; gap:10px; margin-top:12px;}
.cookie-actions button{border:none; border-radius:8px; padding:9px 16px; font-size:13px; font-weight:600; cursor:pointer;}
.cookie-actions .accetta{background:var(--gold); color:#231a05;}
.cookie-actions .rifiuta{background:transparent; color:#fff; border:1px solid rgba(255,255,255,.3);}

.legal{max-width:760px; margin:0 auto; padding:44px 0 60px; line-height:1.7; font-size:15px; color:var(--ink);}
.legal h1{font-family:var(--font-display); font-weight:600; font-size:clamp(26px,3.4vw,34px); margin-bottom:6px;}
.legal .agg{color:var(--grey); font-size:13px; font-family:var(--mono); margin-bottom:30px;}
.legal h2{font-family:var(--font-display); font-weight:600; font-size:19px; margin-top:34px;}
.legal p, .legal li{color:#3a3f36;}
.legal ul{padding-left:20px;}

@media (max-width:900px){
  .grid{grid-template-columns:repeat(2,1fr);}
  .search-box{grid-template-columns:1fr;}
  .pricing-grid{grid-template-columns:1fr;}
  .form-row, .form-row-3{grid-template-columns:1fr;}
  nav.main{display:none;}
  .header-actions{gap:8px;}
  .auth-actions .btn-sm{padding:8px 10px; font-size:12px;}
}
