
:root{--navy:#17212e;--blue:#83b4c6;--text:#5d6575;--line:#b8d9e4;--light:#f4f5f6}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;color:var(--text);font-family:Georgia,"Times New Roman",serif;font-size:16px;line-height:1.55;background:#fff}
a{color:#5f7882;text-decoration:none}a:hover{color:#17212e;text-decoration:underline}
.site-header{border-top:3px solid var(--line);background:#fff;text-align:center}
.brand{padding:18px 12px 13px;display:flex;flex-direction:column;align-items:center;color:#53617a;line-height:1.25}
.brand img{width:46px;height:48px;object-fit:contain;margin-bottom:5px}
.brand .role{font-size:16px;font-weight:bold}
.brand .name{font-size:20px;font-weight:bold}
.brand .subtitle{font-size:16px;font-weight:bold;margin-top:6px}
.nav{display:flex;justify-content:center;align-items:center;gap:30px;padding:22px 16px 25px;font-weight:bold;color:#253957}
.nav a{color:#253957;white-space:nowrap}
.nav .dropdown{position:relative;display:flex;align-items:center}
.dropdown-menu{display:none;position:absolute;z-index:20;top:100%;left:0;min-width:230px;text-align:left;background:white;padding:8px 0;box-shadow:0 4px 12px #0002}
.dropdown:hover .dropdown-menu,.dropdown:focus-within .dropdown-menu{display:block}
.dropdown-menu a{display:block;padding:8px 14px}
.banner{height:66px;background:#111b29 url("assets/breadcrumb4.png") center center/cover no-repeat;border:3px solid #222b36;outline:1px solid #87939b;outline-offset:-7px}
.hero{height:410px;background:#b8b8a4 url("assets/hero-studio.jpg") center center/cover no-repeat;position:relative}
.hero:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,#0001,#0000)}
.quote{max-width:900px;margin:0 auto;padding:46px 22px 70px;text-align:center;font-size:20px;line-height:1.15;color:#58647b}
.quote em{display:block;text-align:right;font-size:15px;margin:8px 8% 0}
.container{width:min(1060px,calc(100% - 44px));margin:0 auto}
.page-content{padding:48px 0 76px;min-height:420px}
h1{font-size:20px;color:#30435f;font-weight:bold;margin:0 0 28px;text-transform:uppercase}
h2,h3{color:#425571;font-size:17px}
article p{margin:0 0 10px;text-align:justify}
article img{max-width:100%;height:auto}
.article-image-right{float:right;width:min(280px,38%);margin:4px 0 18px 25px;border:2px solid #d6d0b8;padding:2px}
.contact-grid{display:grid;grid-template-columns:1fr 1.2fr .8fr;gap:55px;padding:18px 0 35px}
.contact-grid h3{font-size:16px;margin:0 0 6px}
.contact-grid p{margin:0 0 22px}
.contact-photo{width:100%;border:2px solid #bba68a;padding:2px}
.map-placeholder{height:330px;background:#e3e7e4;display:flex;align-items:center;justify-content:center;text-align:center;color:#58636c;border-top:2px solid #c5d9df;border-bottom:2px solid #c5d9df}
.map-placeholder span{background:#fff;padding:16px 22px;box-shadow:0 2px 12px #0002}
.site-footer .addresses{background:#d1d1d1;text-align:center;padding:10px 12px;border-top:3px solid #b7d9e4;color:#637587;font-size:14px;line-height:1.5}
.site-footer .copyright{background:#151e2b;border-top:5px solid #83b4c6;color:#eee;text-align:center;padding:20px 12px;font-size:12px;font-weight:bold}
.social{display:flex;justify-content:flex-end;gap:12px;margin-top:30px}
.social span{width:26px;height:26px;background:#f5f6f7;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font: bold 12px Arial;color:#52647a}
.home-map{height:340px}
@media(max-width:700px){
 .brand{padding-top:14px;padding-bottom:12px}
 .brand .name{font-size:17px}
 .nav-shell{position:relative;display:flex;justify-content:flex-end;align-items:center;padding:8px 16px 12px}
 .nav-toggle{display:inline-flex;align-items:center;justify-content:center;gap:8px;background:transparent;border:1px solid #cbd4dc;border-radius:4px;color:#253957;padding:8px 10px;font: bold 14px Georgia,"Times New Roman",serif;cursor:pointer}
 .hamburger-icon{width:19px;display:inline-flex;flex-direction:column;gap:4px}
 .hamburger-icon span{display:block;height:2px;width:19px;background:#253957}
 .nav{display:none;position:absolute;z-index:30;left:0;right:0;top:100%;padding:8px 16px 14px;flex-direction:column;align-items:stretch;gap:0;background:#fff;border-top:1px solid #e2e6e9;box-shadow:0 6px 12px #0001}
 .nav.is-open{display:flex}
 .nav>a,.nav .dropdown>a{display:flex;align-items:center;justify-content:center;padding:10px 8px;font-size:15px}
 .nav .dropdown{display:flex;flex-direction:column}
 .dropdown-menu{display:none;position:static;min-width:0;width:100%;box-shadow:none;text-align:center;padding:0 0 5px;background:#f8f9fa}
 .dropdown.is-open .dropdown-menu{display:block}
 .dropdown-menu a{padding:9px 12px;white-space:normal}
 .banner{height:52px}.hero{height:280px;background-position:right center}
 .quote{padding:32px 18px 42px;font-size:17px}
 .container{width:calc(100% - 32px)}.page-content{padding:32px 0 48px}
 .contact-grid{grid-template-columns:1fr;gap:18px}.contact-photo{max-width:300px}
 .article-image-right{width:42%;margin-left:14px}
 .map-placeholder{height:240px}
 .site-footer .addresses{padding:10px 12px;line-height:1.25;font-size:13px}
 .site-footer .addresses .address-line{display:block;margin:1px 0}
 .site-footer .copyright{line-height:1.3;padding:16px 10px}
}

/* Caret alignment */
.nav .dropdown > a { display:inline-flex; align-items:center; gap:6px; line-height:1.2; }
.nav .dropdown > a::after { content:""; width:0; height:0; border-left:4px solid transparent; border-right:4px solid transparent; border-top:5px solid currentColor; display:inline-block; vertical-align:middle; transform:translateY(1px); }

.map-embed { width:100%; height:400px; border-top:2px solid #c5d9df; border-bottom:2px solid #c5d9df; background:#e7e7e7; }
.map-embed iframe { width:100%; height:100%; border:0; display:block; }
.home-map { height:340px; }
@media(max-width:700px){ .map-embed{height:300px;} .home-map{height:280px;} }


/* Responsive navigation - final overrides */
.nav-toggle { display: none !important; }
.nav-shell { display: block; }
.site-footer .addresses .address-line { display: block; line-height: 1.25; margin: 2px 0; }

@media (max-width: 900px) {
  .nav-shell {
    display: flex;
    position: relative;
    justify-content: center;
    align-items: center;
    padding: 8px 16px 12px;
  }
  .nav-toggle {
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    gap: 8px;
    min-height: 40px;
    background: #fff;
    border: 1px solid #cbd4dc;
    border-radius: 4px;
    color: #253957;
    padding: 8px 12px;
    font: bold 14px Georgia, "Times New Roman", serif;
    cursor: pointer;
    position: relative;
    z-index: 31;
  }
  .hamburger-icon {
    width: 19px;
    display: inline-flex;
    flex-direction: column;
    gap: 4px;
  }
  .hamburger-icon span {
    display: block;
    height: 2px;
    width: 19px;
    background: #253957;
  }
  .nav {
    display: none !important;
    position: absolute;
    z-index: 30;
    left: 0;
    right: 0;
    top: 100%;
    flex-direction: column;
    align-items: stretch;
    gap: 0;
    padding: 8px 16px 14px;
    background: #fff;
    border-top: 1px solid #e2e6e9;
    box-shadow: 0 6px 12px #0001;
  }
  .nav.is-open { display: flex !important; }
  .nav > a, .nav .dropdown > a {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 10px 8px;
    font-size: 15px;
  }
  .nav .dropdown { display: flex; flex-direction: column; }
  .nav .dropdown-menu {
    display: none;
    position: static;
    min-width: 0;
    width: 100%;
    box-shadow: none;
    text-align: center;
    padding: 0 0 5px;
    background: #f8f9fa;
  }
  .nav .dropdown.is-open .dropdown-menu { display: block; }
  .nav .dropdown-menu a { padding: 9px 12px; white-space: normal; }
  .hero { background-position: right center; }
  .site-footer .addresses { text-align: center; line-height: 1.2; }
  .site-footer .addresses .address-line { display: block; line-height: 1.2; margin: 2px 0; }
}

/* Simple cookie notice, visually matching the original banner */
.cookie-banner[hidden]{display:none!important}
.cookie-banner{position:fixed;z-index:1000;left:0;right:0;bottom:0;background:rgba(104,164,190,.88);color:#fff;text-align:center;padding:10px 16px 12px;font-size:14px;line-height:1.35;box-shadow:0 -1px 5px #0002}
.cookie-banner p{margin:0 0 5px}
.cookie-banner a{color:#fff;text-decoration:underline;font-style:italic}
.cookie-banner button{margin-top:4px;border:0;border-radius:2px;background:#8e969c;color:#fff;padding:5px 22px;font:inherit;cursor:pointer}
@media(max-width:700px){.cookie-banner{font-size:12px;padding:9px 10px 10px}.cookie-banner p{margin-bottom:4px}}

/* OpenStreetMap / Leaflet map */
.osm-map{width:100%;margin:0}
.osm-map-canvas{width:100%;height:360px;min-height:280px;background:#e8edf0;position:relative}
.map-loading{margin:0;padding:24px;text-align:center;color:#253957}
.map-loading a{color:#253957;text-decoration:underline}
@media(max-width:700px){.osm-map-canvas{height:280px;min-height:240px}}

/* MapLibre + Waymorphic OSM vector map */
.osm-map{width:100%;margin:0}
.osm-map-canvas{width:100%;height:360px;min-height:280px;background:#e8edf0;position:relative;overflow:hidden}
.osm-map-canvas .map-loading{margin:0;padding:24px;text-align:center;color:#253957}
.map-popup{font-family:Georgia,"Times New Roman",serif;color:#53617a;line-height:1.45;text-align:center}
.map-popup strong{font-size:14px}
.map-popup em{font-size:12px}
@media(max-width:700px){.osm-map-canvas{height:280px;min-height:240px}}

/* Contenuti recuperati: liste e articoli */
.content-intro{max-width:900px;margin:0 auto 26px;color:#53617a;line-height:1.65}
.content-list{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
.content-list li{margin:0;padding:18px 20px;background:#f5f6f7;border-left:3px solid #8bb7c7;line-height:1.5}
.content-list a{color:#30435f;font-weight:bold;text-decoration:none}
.content-list a:hover{text-decoration:underline;color:#2878b8}
.article-meta{color:#6f7b8c;font-size:13px;margin:-16px 0 24px}
.article-body{line-height:1.7;color:#53617a;overflow-wrap:anywhere}
.article-body p{margin:0 0 14px;text-align:justify}
.article-body img{max-width:100%;height:auto}
.article-body iframe{max-width:100%}
.article-body table{max-width:100%;border-collapse:collapse}
.article-body td,.article-body th{padding:6px;border:1px solid #ddd}
.content-links{display:flex;gap:14px;flex-wrap:wrap;margin:26px 0 0}
.content-links a{display:inline-block;background:#f0f3f5;padding:12px 16px;color:#30435f;text-decoration:none;border:1px solid #d9e0e5}
@media(max-width:700px){.content-list{grid-template-columns:1fr}.article-body p{text-align:left}}
