@property --tw-space-y-reverse { syntax: "*"; inherits: false; initial-value: 0; }
@property --tw-border-style    { syntax: "*"; inherits: false; initial-value: solid; }
@property --tw-font-weight     { syntax: "*"; inherits: false; }
@property --tw-tracking        { syntax: "*"; inherits: false; }
@property --tw-shadow          { syntax: "*"; inherits: false; initial-value: 0 0 #0000; }
@property --tw-shadow-color    { syntax: "*"; inherits: false; }
@property --tw-shadow-alpha    { syntax: "<percentage>"; inherits: false; initial-value: 100%; }
@property --tw-inset-shadow    { syntax: "*"; inherits: false; initial-value: 0 0 #0000; }
@property --tw-inset-shadow-color { syntax: "*"; inherits: false; }
@property --tw-inset-shadow-alpha { syntax: "<percentage>"; inherits: false; initial-value: 100%; }
@property --tw-ring-color      { syntax: "*"; inherits: false; }
@property --tw-ring-shadow     { syntax: "*"; inherits: false; initial-value: 0 0 #0000; }
@property --tw-inset-ring-color { syntax: "*"; inherits: false; }
@property --tw-inset-ring-shadow { syntax: "*"; inherits: false; initial-value: 0 0 #0000; }
@property --tw-ring-inset      { syntax: "*"; inherits: false; }
@property --tw-ring-offset-width { syntax: "<length>"; inherits: false; initial-value: 0; }
@property --tw-ring-offset-color { syntax: "*"; inherits: false; initial-value: #fff; }
@property --tw-ring-offset-shadow { syntax: "*"; inherits: false; initial-value: 0 0 #0000; }
@property --tw-blur            { syntax: "*"; inherits: false; }
@property --tw-brightness      { syntax: "*"; inherits: false; }
@property --tw-contrast        { syntax: "*"; inherits: false; }
@property --tw-grayscale       { syntax: "*"; inherits: false; }
@property --tw-hue-rotate      { syntax: "*"; inherits: false; }
@property --tw-invert          { syntax: "*"; inherits: false; }
@property --tw-opacity         { syntax: "*"; inherits: false; }
@property --tw-saturate        { syntax: "*"; inherits: false; }
@property --tw-sepia           { syntax: "*"; inherits: false; }
@property --tw-drop-shadow     { syntax: "*"; inherits: false; }
@property --tw-drop-shadow-color { syntax: "*"; inherits: false; }
@property --tw-drop-shadow-alpha { syntax: "<percentage>"; inherits: false; initial-value: 100%; }
@property --tw-drop-shadow-size  { syntax: "*"; inherits: false; }
@property --tw-duration        { syntax: "*"; inherits: false; }
@property --tw-scale-x         { syntax: "*"; inherits: false; initial-value: 1; }
@property --tw-scale-y         { syntax: "*"; inherits: false; initial-value: 1; }
@property --tw-scale-z         { syntax: "*"; inherits: false; initial-value: 1; }

/* Base reset */
*,*::before,*::after,::backdrop{ box-sizing:border-box; border:0 solid; margin:0; padding:0; }
::file-selector-button{ box-sizing:border-box; border:0 solid; margin:0; padding:0; }
html,:host{
  -webkit-text-size-adjust:100%; tab-size:4; line-height:1.5;
  font-family: var(--default-font-family, ui-sans-serif, system-ui, sans-serif,
    "Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji");
  -webkit-tap-highlight-color: transparent;
}
body{ background-color:var(--background); color:var(--foreground); }
hr{ height:0; color:inherit; border-top-width:1px; }
abbr:where([title]){ text-decoration: underline dotted; }
h1,h2,h3,h4,h5,h6{ font-size:inherit; font-weight:inherit; }
a{ color:inherit; text-decoration:inherit; }
b,strong{ font-weight:bolder; }
code,kbd,samp,pre{
  font-family:var(--default-mono-font-family, ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas,"Liberation Mono","Courier New",monospace);
  font-size:1em;
}
small{ font-size:80%; }
sub,sup{ vertical-align:baseline; font-size:75%; line-height:0; position:relative; }
sub{ bottom:-.25em; } sup{ top:-.5em; }
table{ text-indent:0; border-color:inherit; border-collapse:collapse; }
ol,ul,menu{ list-style:none; }
img,svg,video,canvas,audio,iframe,embed,object{ display:block; }
img,video{ max-width:100%; height:auto; }
button,input,select,optgroup,textarea{
  font:inherit; color:inherit; background:transparent; border-radius:0; letter-spacing:inherit;
}
::-webkit-search-decoration{ -webkit-appearance:none; }
[hidden]:where(:not([hidden="until-found"])) { display:none !important; }
*{ border-color:var(--border); outline-color:var(--ring); }

/* Utilities (le classi usate dall'HTML) */
.hidden{ display:none !important; }

.flex{ display:flex; }
.grid{ display:grid; }
.inline-block{ display:inline-block; }
.flex-wrap{ flex-wrap:wrap; }
.items-center{ align-items:center; }
.justify-between{
  justify-content:space-between;
  margin-bottom: 50px;
}
.self-end{ align-self:flex-end; }

.mx-auto{ margin-inline:auto; }
.mt-2{ margin-top: calc(var(--spacing)*2); }
.mb-2{ margin-bottom: calc(var(--spacing)*2); }
.mb-4{ margin-bottom: calc(var(--spacing)*4); }
.mb-6{ margin-bottom: calc(var(--spacing)*6); }
.mb-8{ margin-bottom: calc(var(--spacing)*8); }
.mb-16{ margin-bottom: calc(var(--spacing)*16); }

.gap-2{ gap: calc(var(--spacing)*2); }
.gap-3{ gap: calc(var(--spacing)*3); }
.gap-6{ gap: calc(var(--spacing)*6); }
.gap-8{ gap: calc(var(--spacing)*8); }

.size-4{ width: calc(var(--spacing)*4); height: calc(var(--spacing)*4); }
.size-10{ width: calc(var(--spacing)*10); height: calc(var(--spacing)*10); }
.size-50{ width: calc(var(--spacing)*50); height: calc(var(--spacing)*50); }

.h-3{ height: calc(var(--spacing)*3); }
.w-3{ width: calc(var(--spacing)*3); }
.w-fit{ width: fit-content; }
.min-h-svh{ min-height: 100svh; }
.max-w-xl{ max-width: var(--container-xl); }

.p-4{ padding: calc(var(--spacing)*4); }
.px-6{ padding-inline: calc(var(--spacing)*6); }
.py-16{ padding-block: calc(var(--spacing)*16); }

.text-sm{ font-size:var(--text-sm); line-height:var(--text-sm--line-height); }
.text-base\/relaxed{ font-size:var(--text-base); line-height:var(--leading-relaxed); }
.text-lg{ font-size:var(--text-lg); line-height:var(--text-lg--line-height); }
.text-2xl{ font-size:var(--text-2xl); line-height:var(--text-2xl--line-height); }
.text-3xl\/snug{ font-size:var(--text-3xl); line-height:var(--leading-snug); }
.text-4xl\/snug{ font-size:var(--text-4xl); line-height:var(--leading-snug); }

.font-mono{ font-family: var(--default-mono-font-family); }
.font-semibold{ font-weight: var(--font-weight-semibold); }
.font-bold{ font-weight: var(--font-weight-bold); }

.tracking-tight{ letter-spacing: var(--tracking-tight); }

.text-gray-600{ color: var(--color-gray-600); }
.text-gray-900{ color: var(--color-gray-900); }
.text-muted-foreground{ color: var(--muted-foreground); }

.rounded-full{ border-radius: 3.40282e38px; }
.rounded-lg{ border-radius: var(--radius); }

.bg-background{ background-color: var(--background); }
.bg-gray-50{ background-color: var(--color-gray-50); }
.bg-white{ background-color: var(--color-white); }

.antialiased{ -webkit-font-smoothing:antialiased; -moz-osx-font-smoothing:grayscale; }

.transition-all{
  transition-property: all;
  transition-duration: var(--default-transition-duration);
  transition-timing-function: var(--default-transition-timing-function);
}
.transition-colors{
  transition-property: color, background-color, border-color, outline-color, text-decoration-color, fill, stroke;
  transition-duration: var(--default-transition-duration);
  transition-timing-function: var(--default-transition-timing-function);
}
.duration-200{ transition-duration: .2s; }

.shadow-lg{
  --tw-shadow: 0 10px 15px -3px #0000001a, 0 4px 6px -4px #0000001a;
  box-shadow: var(--tw-shadow);
}

@media (hover:hover){
  .hover\:scale-110:hover{ scale: 110% 110%; }
}

/* nav-link */
.nav-link{ transition: color .2s ease, opacity .2s ease, text-shadow .2s ease; }
.nav-link[data-state="active"]{
  color: var(--brand);
  text-shadow: 0 0 .35rem color-mix(in oklab, var(--brand) 30%, transparent);
  opacity: 1;
}
.nav-link[data-state="inactive"]{ color: var(--muted-foreground); opacity:.65; }
.nav-link[data-state="inactive"]:hover{ color: var(--foreground); opacity:1; }

/* Footer link + icona posizione */
.footer-link{
  color: var(--foreground);
  text-decoration: none;
  transition: color .2s ease, text-shadow .2s ease, opacity .2s ease;
}
.footer-link:hover{
  color: var(--brand);
  text-shadow: 0 0 .35rem color-mix(in oklab, var(--brand) 30%, transparent);
}
.loc{ display:inline-flex; align-items:center; gap:6px; }
.pin{ width:16px; height:16px; object-fit:contain; image-rendering:crisp-edges; }