:root{
  --rosso: #7a1f2b;
  --rosso-scuro: #591620;
  --crema: #f7f0e4;
  --crema-scuro: #efe4d0;
  --oro: #c9a24b;
  --testo: #2b2320;
  --grigio: #6b625a;
  --bianco: #ffffff;
  --ombra: 0 4px 16px rgba(43,35,32,0.08);
}
*{box-sizing:border-box;margin:0;padding:0;}
body{font-family:'Inter',sans-serif;color:var(--testo);background:var(--crema);line-height:1.6;background-image:radial-gradient(rgba(122,31,43,0.035) 1px, transparent 1px);background-size:22px 22px;}
h1,h2,h3,h4{font-family:'Playfair Display',serif;color:var(--rosso-scuro);}
a{text-decoration:none;color:inherit;}
.container{max-width:1180px;margin:0 auto;padding:0 20px;}
img{max-width:100%;display:block;}

/* Header */
.site-header{background:var(--rosso);box-shadow:var(--ombra);position:sticky;top:0;z-index:100;}
.header-inner{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;flex-wrap:wrap;gap:12px;}
.logo{display:flex;align-items:center;gap:10px;color:var(--crema);font-family:'Playfair Display',serif;font-size:1.4rem;font-weight:700;}
.logo em{color:var(--oro);font-style:normal;}
.logo-icon{font-size:1.6rem;}
.main-nav{display:flex;gap:24px;}
.main-nav a{color:var(--crema);font-weight:500;transition:color .2s;}
.main-nav a:hover{color:var(--oro);}

/* Hero */
.hero{background:linear-gradient(135deg,var(--rosso) 0%,var(--rosso-scuro) 100%);color:var(--crema);padding:70px 0;text-align:center;position:relative;overflow:hidden;}
.hero:before{content:"";position:absolute;inset:0;background-image:radial-gradient(rgba(255,255,255,.08) 2px, transparent 2px);background-size:26px 26px;pointer-events:none;}
.hero-icon{font-size:2.8rem;margin-bottom:10px;position:relative;filter:drop-shadow(0 3px 5px rgba(0,0,0,.3));}
.hero h1{color:var(--bianco);font-size:2.4rem;margin-bottom:14px;position:relative;}
.hero p{font-size:1.1rem;color:var(--crema-scuro);max-width:640px;margin:0 auto 28px;position:relative;}
.search-box{display:flex;max-width:560px;margin:0 auto;background:var(--bianco);border-radius:50px;overflow:hidden;box-shadow:var(--ombra);}
.search-box input{flex:1;border:none;padding:16px 22px;font-size:1rem;font-family:inherit;}
.search-box input:focus{outline:none;}
.search-box button{background:var(--oro);color:var(--rosso-scuro);border:none;padding:0 28px;font-weight:700;cursor:pointer;font-size:1rem;transition:background .2s;}
.search-box button:hover{background:#dab55f;}

/* Section titles */
.section{padding:56px 0;}
.section-title{text-align:center;margin-bottom:10px;font-size:1.9rem;position:relative;}
.section-title:after{content:"";display:block;width:56px;height:3px;background:var(--oro);margin:12px auto 0;border-radius:2px;}
.section-sub{text-align:center;color:var(--grigio);margin-bottom:36px;}

/* Cards grid */
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:20px;}
.card{background:var(--bianco);border-radius:14px;padding:22px;box-shadow:var(--ombra);transition:transform .2s,box-shadow .2s;border:1px solid var(--crema-scuro);border-top:3px solid var(--oro);}
.card:hover{transform:translateY(-4px);box-shadow:0 10px 24px rgba(43,35,32,0.14);}
.card h3{font-size:1.15rem;margin-bottom:6px;}
.card p{color:var(--grigio);font-size:.92rem;}
.card .badge{display:inline-block;background:var(--crema-scuro);color:var(--rosso-scuro);font-size:.78rem;padding:3px 10px;border-radius:20px;margin-top:8px;font-weight:600;}

/* Shop card */
.shop-card{background:var(--bianco);border-radius:14px;box-shadow:var(--ombra);padding:22px;border:1px solid var(--crema-scuro);border-top:3px solid var(--rosso);transition:transform .2s,box-shadow .2s;}
.shop-card:hover{transform:translateY(-4px);box-shadow:0 12px 26px rgba(43,35,32,0.14);}
.shop-card h3{font-size:1.2rem;margin-bottom:4px;}
.shop-card .rating{color:var(--oro);font-size:1rem;margin:6px 0;}
.shop-card .meta{color:var(--grigio);font-size:.9rem;margin-bottom:4px;}
.shop-card .specialita{display:inline-block;background:var(--rosso);color:var(--crema);font-size:.75rem;padding:4px 12px;border-radius:20px;font-weight:600;margin-bottom:10px;}
.shop-card a.details{display:inline-block;margin-top:10px;color:var(--rosso);font-weight:700;border-bottom:2px solid var(--oro);}

/* Breadcrumb */
.breadcrumb{padding:16px 0;font-size:.9rem;color:var(--grigio);}
.breadcrumb a{color:var(--rosso);font-weight:600;}

/* Detail page */
.detail-header{background:var(--rosso-scuro);color:var(--crema);padding:44px 0;}
.detail-header h1{color:var(--bianco);font-size:2rem;}
.detail-header .specialita-tag{display:inline-block;background:var(--oro);color:var(--rosso-scuro);padding:4px 14px;border-radius:20px;font-weight:700;font-size:.85rem;margin-top:10px;}
.detail-grid{display:grid;grid-template-columns:2fr 1fr;gap:32px;margin-top:36px;}
@media(max-width:800px){.detail-grid{grid-template-columns:1fr;}}
.info-box{background:var(--bianco);border-radius:14px;padding:24px;box-shadow:var(--ombra);border:1px solid var(--crema-scuro);margin-bottom:20px;}
.info-box h4{margin-bottom:10px;font-size:1.05rem;}
.services-list{list-style:none;}
.services-list li{padding:6px 0;border-bottom:1px solid var(--crema-scuro);}
.services-list li:before{content:"✓ ";color:var(--oro);font-weight:700;}
.sidebar-box{background:var(--crema-scuro);border-radius:14px;padding:22px;}
.sidebar-box p{margin-bottom:8px;}
.btn{display:inline-block;background:var(--rosso);color:var(--crema);padding:12px 24px;border-radius:8px;font-weight:700;margin-top:10px;}
.btn:hover{background:var(--rosso-scuro);}
.map-embed{border-radius:10px;overflow:hidden;border:1px solid var(--crema-scuro);}
.map-embed iframe{display:block;}

/* Regions grid on homepage */
.regions-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:22px;}
.region-card{background:var(--bianco);border-radius:16px;overflow:hidden;box-shadow:var(--ombra);border:1px solid var(--crema-scuro);transition:transform .25s ease,box-shadow .25s ease;}
.region-card:hover{transform:translateY(-6px);box-shadow:0 16px 30px rgba(43,35,32,0.16);}
.region-card .content{padding:20px;}
.region-card-header{height:120px;display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden;}
.region-card-header:before{content:"";position:absolute;inset:0;background-image:radial-gradient(rgba(255,255,255,.18) 2px, transparent 2px);background-size:16px 16px;opacity:.5;}
.region-icon{font-size:2.6rem;filter:drop-shadow(0 3px 4px rgba(0,0,0,.25));position:relative;z-index:1;}
.region-color-1{background:linear-gradient(135deg,#7a1f2b,#a33042);}
.region-color-2{background:linear-gradient(135deg,#5c3a21,#8a5a34);}
.region-color-3{background:linear-gradient(135deg,#8a6d1f,#c9a24b);}
.region-color-4{background:linear-gradient(135deg,#591620,#7a1f2b);}
.region-color-5{background:linear-gradient(135deg,#3d2b1f,#6b4a33);}
.region-color-6{background:linear-gradient(135deg,#9c2b3a,#c9a24b);}

/* Footer */
.site-footer{background:var(--rosso-scuro);color:var(--crema-scuro);padding:44px 0 0;margin-top:60px;}
.footer-inner{display:flex;flex-wrap:wrap;gap:40px;padding-bottom:32px;}
.footer-col{flex:1;min-width:220px;}
.footer-col h4{color:var(--oro);margin-bottom:12px;font-size:1rem;}
.footer-col a{display:block;color:var(--crema-scuro);padding:4px 0;}
.footer-col a:hover{color:var(--oro);}
.footer-logo{margin-bottom:12px;color:var(--crema);}
.footer-bottom{background:var(--rosso-scuro);border-top:1px solid rgba(255,255,255,.1);text-align:center;padding:16px 0;font-size:.85rem;color:var(--crema-scuro);}

/* Static page */
.static-page{padding:56px 0;max-width:800px;margin:0 auto;}
.static-page h2{margin-bottom:16px;}
.static-page p{margin-bottom:12px;color:var(--testo);}

/* Admin */
.admin-body{background:#f0efec;font-family:'Inter',sans-serif;}
.admin-wrap{display:flex;min-height:100vh;}
.admin-sidebar{width:230px;background:var(--rosso-scuro);color:var(--crema);padding:24px 0;flex-shrink:0;}
.admin-sidebar a{display:block;padding:12px 24px;color:var(--crema-scuro);}
.admin-sidebar a:hover,.admin-sidebar a.active{background:var(--rosso);color:var(--bianco);}
.admin-sidebar .brand{padding:0 24px 20px;font-family:'Playfair Display',serif;font-size:1.2rem;font-weight:700;border-bottom:1px solid rgba(255,255,255,.15);margin-bottom:10px;}
.admin-content{flex:1;padding:30px;}
.admin-table{width:100%;border-collapse:collapse;background:var(--bianco);border-radius:10px;overflow:hidden;box-shadow:var(--ombra);}
.admin-table th,.admin-table td{padding:12px 14px;text-align:left;border-bottom:1px solid #eee;font-size:.9rem;}
.admin-table th{background:var(--crema-scuro);color:var(--rosso-scuro);}
.admin-form input,.admin-form select,.admin-form textarea{width:100%;padding:10px 12px;border:1px solid #ddd;border-radius:6px;margin-bottom:14px;font-family:inherit;font-size:.95rem;}
.admin-form label{font-weight:600;display:block;margin-bottom:4px;font-size:.9rem;}
.btn-admin{background:var(--rosso);color:#fff;border:none;padding:10px 22px;border-radius:6px;font-weight:600;cursor:pointer;}
.btn-admin:hover{background:var(--rosso-scuro);}
.btn-danger{background:#b3392c;}
.login-box{max-width:380px;margin:80px auto;background:#fff;padding:36px;border-radius:14px;box-shadow:var(--ombra);}
.alert{padding:12px 16px;border-radius:8px;margin-bottom:16px;font-size:.9rem;}
.alert-error{background:#fbe1e1;color:#a4272c;}
.alert-success{background:#e2f3e5;color:#256b30;}
.pagination{display:flex;gap:6px;justify-content:center;margin-top:30px;flex-wrap:wrap;}
.pagination a,.pagination span{padding:8px 14px;border-radius:6px;background:var(--bianco);border:1px solid var(--crema-scuro);}
.pagination .active{background:var(--rosso);color:#fff;}

@media(max-width:700px){
  .admin-wrap{flex-direction:column;}
  .admin-sidebar{width:100%;display:flex;overflow-x:auto;padding:0;}
  .admin-sidebar .brand{display:none;}
  .admin-sidebar a{white-space:nowrap;}
  .hero h1{font-size:1.7rem;}
  .search-box{flex-direction:column;border-radius:14px;}
  .search-box button{padding:14px;}
}
