@font-face { font-family:"Material Symbols Rounded"; src:url("assets/material-symbols-rounded.woff2") format("woff2"); font-style:normal; font-weight:400; font-display:swap; }
@font-face { font-family:"Dimora Script"; src:url("assets/wp-content/uploads/elementor/google-fonts/fonts/niconne-w8gah2qvrug1_rtfnqyn2q.woff2") format("woff2"); font-style:normal; font-weight:400; font-display:swap; }
:root { --green:#023047; --green-dark:#012536; --gold:#ffb703; --wine:#023047; --paper:#f7f7f5; --white:#fff; --ink:#191b18; --muted:#54595f; --line:#d7dce0; --max:1180px; --ui:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif; --display:var(--ui); --brand-script:"Dimora Script","Brush Script MT",cursive; --sans:var(--ui); }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; color:var(--ink); background:var(--paper); font:400 1rem/1.65 var(--sans); }
img { display:block; max-width:100%; }
a { color:inherit; text-underline-offset:.25em; }
button { font:inherit; }
.material-symbols-rounded { flex:none; font-family:"Material Symbols Rounded"; font-size:1.25em; font-style:normal; font-weight:400; line-height:1; letter-spacing:0; text-transform:none; white-space:nowrap; word-wrap:normal; direction:ltr; font-feature-settings:"liga"; -webkit-font-feature-settings:"liga"; -webkit-font-smoothing:antialiased; }
:focus-visible { outline:3px solid var(--gold); outline-offset:3px; }
.skip { position:fixed; z-index:50; top:.5rem; left:.5rem; padding:.7rem 1rem; background:var(--white); transform:translateY(-150%); }
.skip:focus { transform:none; }
.topbar { padding:.35rem max(1rem, calc((100% - var(--max))/2)); background:var(--green-dark); color:#f1f5f7; text-align:right; font-size:.72rem; }
.topbar a { display:inline-flex; align-items:center; gap:.35rem; margin-left:1rem; text-decoration:none; }
.site-header { position:sticky; z-index:20; top:0; min-height:86px; display:flex; align-items:center; justify-content:space-between; gap:2rem; padding:.5rem max(1rem, calc((100% - var(--max))/2)); background:rgba(255,255,255,.96); border-bottom:1px solid var(--line); backdrop-filter:blur(10px); }
.brand { display:flex; align-items:center; text-decoration:none; }
.brand-logo { width:auto; height:70px; }
.mobile-menu-toggle { display:none; }
.site-header nav { display:flex; align-items:center; gap:clamp(1rem,2vw,2rem); }
.site-header nav a { position:relative; text-decoration:none; font-size:.86rem; }
.site-header nav a > .material-symbols-rounded { display:none; }
.site-header nav a::after { content:""; position:absolute; right:0; bottom:-.45rem; left:0; height:2px; background:var(--gold); transform:scaleX(0); transition:transform .25s ease; }
.site-header nav a:hover::after,.site-header nav a[aria-current="page"]::after { transform:scaleX(1); }
.button { width:max-content; max-width:100%; min-height:48px; display:inline-flex; align-items:center; justify-content:center; gap:.55rem; padding:.7rem 1.25rem; border:1px solid var(--gold); border-radius:6px; background:var(--gold); box-shadow:0 6px 16px rgba(2,48,71,.16); color:var(--green); font-size:.88rem; font-weight:700; line-height:1.15; text-align:center; text-decoration:none; white-space:nowrap; cursor:pointer; transition:background .2s ease,box-shadow .2s ease,transform .2s ease; }
.button .material-symbols-rounded { font-size:1.2rem; }
.button:hover { background:#e5a500; box-shadow:0 9px 22px rgba(2,48,71,.22); transform:translateY(-2px); }
.button:active { box-shadow:0 3px 9px rgba(2,48,71,.18); transform:translateY(0); }
.button-light { border-color:rgba(255,255,255,.72); background:var(--white); color:var(--green-dark); }
.button-light:hover { border-color:var(--gold); background:var(--gold); }
.hero { min-height:min(680px,calc(100svh - 102px)); position:relative; display:flex; align-items:center; overflow:hidden; color:var(--white); }
.hero > img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.hero::after { content:""; position:absolute; inset:0; background:linear-gradient(90deg,rgba(2,35,49,.9),rgba(2,35,49,.28) 72%); }
.hero-copy { position:relative; z-index:1; width:min(var(--max),calc(100% - 2rem)); margin:auto; }
.eyebrow { margin:0 0 .65rem; color:#765000; font-size:.7rem; font-weight:700; letter-spacing:.12em; text-transform:uppercase; }
.hero .eyebrow,.page-hero .eyebrow,.territory .eyebrow,.map-section .eyebrow,.cta .eyebrow { color:#ffd45a; }
h1,h2,h3 { margin:0; font-family:var(--display); letter-spacing:0; }
h1 { font-weight:700; line-height:1.12; }
h2,h3 { font-weight:500; line-height:1.18; }
h1 { max-width:850px; font-size:clamp(3.2rem,7vw,6.5rem); }
h2 { font-size:clamp(1.9rem,3vw,3rem); }
h3 { font-size:1.4rem; }
.hero h1 { font-family:var(--brand-script); font-weight:400; line-height:.92; }
.hero-copy,.page-hero-copy { text-shadow:0 2px 12px rgba(0,0,0,.58); }
.hero-copy > p:not(.eyebrow) { max-width:650px; margin:1rem 0 1.5rem; font-size:clamp(1rem,2vw,1.22rem); }
.hero-actions { display:flex; flex-wrap:wrap; gap:.8rem; align-items:center; }
.hero-actions .button,.hero-actions .button:hover,.hero-actions .button:active { box-shadow:none; text-shadow:none; }
.hero-actions > a:not(.button) { font-weight:700; }
.section { width:min(var(--max),calc(100% - 2rem)); margin-inline:auto; padding-block:clamp(3rem,5vw,5rem); }
main > .section + .section { padding-top:clamp(1.5rem,2.5vw,2.5rem); }
.section-label { display:flex; align-items:center; gap:1rem; margin-bottom:2rem; color:var(--green); }
.section-label::before,.section-label::after { content:""; height:1px; flex:1; background:var(--line); }
.section-label span { font-family:var(--brand-script); font-size:clamp(1.3rem,1.7vw,1.6rem); font-weight:400; line-height:1; }
.intro-grid { display:grid; grid-template-columns:1.2fr .8fr; gap:clamp(2rem,7vw,7rem); align-items:center; }
.intro-copy > p { max-width:680px; }
.info-columns { display:grid; grid-template-columns:repeat(3,1fr); gap:1rem; margin-top:2rem; }
.info-columns article { padding:1.35rem; background:var(--white); border-top:3px solid var(--gold); }
.info-columns .material-symbols-rounded,.contact-strip .material-symbols-rounded { display:inline-grid; width:42px; height:42px; margin-bottom:1rem; place-items:center; border-radius:50%; background:#fff4cf; color:var(--green); font-size:1.4rem; }
.info-columns p { margin-bottom:0; font-size:.9rem; }
.portrait { width:100%; height:600px; object-fit:cover; }
.section-head { display:flex; justify-content:space-between; align-items:end; gap:3rem; margin-bottom:2rem; }
.section-head > p { max-width:440px; margin:0; }
section[aria-labelledby="trails-title"] .section-head { align-items:flex-start; }
.room-preview { display:grid; grid-template-columns:repeat(5,1fr); gap:.75rem; }
.room-preview a { position:relative; min-height:380px; overflow:hidden; color:var(--white); text-decoration:none; }
.room-preview img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; transition:transform .4s ease; }
.room-preview a::after { content:""; position:absolute; inset:45% 0 0; background:linear-gradient(transparent,rgba(15,28,22,.88)); }
.room-preview a:hover img { transform:scale(1.04); }
.room-preview div { position:absolute; z-index:1; right:1rem; bottom:1rem; left:1rem; }
.room-preview p { margin:.3rem 0 0; font-size:.75rem; }
.territory { display:grid; grid-template-columns:1fr 1fr; min-height:560px; background:var(--green-dark); color:var(--white); }
.territory img { width:100%; height:100%; object-fit:cover; }
.territory-copy { display:flex; flex-direction:column; justify-content:center; align-items:flex-start; padding:clamp(2rem,6vw,6rem); }
.reviews { display:grid; grid-template-columns:1fr 1fr; gap:1rem; }
.reviews figure { margin:0; padding:2rem; background:var(--white); border-left:4px solid var(--gold); }
.stars { color:var(--gold); letter-spacing:.15em; }
.reviews blockquote { margin:1rem 0; font:400 1.35rem/1.4 var(--display); }
.reviews figcaption { display:flex; align-items:center; gap:.8rem; color:var(--muted); font-size:.8rem; }
.reviews figcaption img { width:52px; height:52px; flex:none; border:2px solid var(--gold); border-radius:50%; object-fit:cover; }
.reviews figcaption strong,.reviews figcaption small { display:block; }
.reviews figcaption strong { color:var(--green); font-size:.9rem; }
.reviews figcaption small { margin-top:.1rem; font-size:.72rem; }
.page-hero { min-height:420px; position:relative; display:flex; align-items:center; overflow:hidden; color:var(--white); }
.page-hero > img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.page-hero::after { content:""; position:absolute; inset:0; background:linear-gradient(90deg,rgba(2,35,49,.92),rgba(2,35,49,.32) 72%); }
.page-hero-copy { position:relative; z-index:1; width:min(var(--max),calc(100% - 2rem)); min-height:230px; margin-inline:auto; padding:1.25rem 0 0; }
.page-hero h1 { font-size:clamp(2.8rem,5vw,4.75rem); font-weight:500; line-height:1.08; }
.page-hero p:not(.eyebrow) { max-width:650px; }
.page-hero--itinerari > img { object-position:center 58%; }
.page-hero--contatti > img { object-position:center 52%; transform:scaleX(-1); }
.page-hero--itinerari::after,.page-hero--contatti::after { background:linear-gradient(90deg,rgba(2,35,49,.95) 0%,rgba(2,35,49,.68) 46%,rgba(2,35,49,.18) 78%); }
.album-nav { position:sticky; z-index:10; top:86px; overflow-x:auto; display:flex; gap:.4rem; padding:.7rem max(1rem,calc((100% - var(--max))/2)); background:var(--white); border-bottom:1px solid var(--line); }
.album-nav a { flex:none; padding:.5rem .8rem; border:1px solid var(--line); text-decoration:none; font-size:.78rem; }
.album-nav a:hover { background:var(--green); color:var(--white); }
.album-list { display:grid; gap:1.5rem; }
.album { scroll-margin-top:140px; display:grid; grid-template-columns:.65fr 1.35fr; gap:1rem; padding:1rem; background:var(--white); border:1px solid var(--line); }
.album-summary { display:flex; flex-direction:column; justify-content:center; align-items:flex-start; padding:1.5rem; }
.album-summary p { color:var(--muted); }
.album-thumbs { display:grid; grid-template-columns:2fr 1fr 1fr; grid-template-rows:260px 150px; gap:.5rem; }
.album-thumbs button { position:relative; overflow:hidden; padding:0; border:0; background:#d7dce0; cursor:pointer; }
.album-thumbs button:first-child { grid-row:1/3; }
.album-thumbs button:nth-child(n+4) { display:none; }
.album-thumbs img { width:100%; height:100%; object-fit:cover; transition:transform .3s ease; }
.album-thumbs button:hover img { transform:scale(1.04); }
.album-count { position:absolute; right:.5rem; bottom:.5rem; padding:.3rem .5rem; background:rgba(20,39,31,.84); color:var(--white); font-size:.7rem; }
.lightbox { width:min(1200px,calc(100% - 1rem)); height:min(850px,calc(100vh - 1rem)); padding:0; border:0; background:#101412; color:var(--white); }
.lightbox::backdrop { background:rgba(5,8,6,.92); }
.lightbox-head { position:absolute; z-index:2; top:0; right:0; left:0; display:flex; justify-content:space-between; align-items:center; padding:1rem; background:linear-gradient(rgba(0,0,0,.7),transparent); }
.lightbox-head h2 { font-size:1.6rem; }
.lightbox-head button,.lightbox-controls button { width:48px; height:48px; display:grid; place-items:center; padding:0; border:1px solid rgba(255,255,255,.55); border-radius:50%; background:rgba(2,48,71,.72); box-shadow:0 6px 18px rgba(0,0,0,.3); color:var(--white); cursor:pointer; backdrop-filter:blur(8px); transition:background .2s ease,transform .2s ease; }
.lightbox-head button:hover,.lightbox-controls button:hover { background:var(--gold); color:var(--green); transform:scale(1.06); }
.lightbox-stage { width:100%; height:100%; display:grid; place-items:center; }
.lightbox-stage img { max-width:100%; max-height:100%; object-fit:contain; }
.lightbox-controls { position:absolute; top:50%; right:1rem; left:1rem; display:flex; justify-content:space-between; transform:translateY(-50%); }
.lightbox-caption { position:absolute; right:0; bottom:0; left:0; padding:1rem; background:linear-gradient(transparent,rgba(0,0,0,.75)); text-align:center; }
.trail-intro { display:grid; grid-template-columns:1fr 1fr; gap:4rem; }
.trail-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:1rem; }
.trail-card { overflow:hidden; background:var(--white); border:1px solid var(--line); }
.trail-card img { width:100%; height:auto; aspect-ratio:500/599; object-fit:contain; background:#eef1ed; }
.trail-copy { padding:1.35rem; }
.trail-meta { display:flex; gap:.4rem; margin-bottom:.9rem; }
.trail-meta span { padding:.25rem .55rem; background:#e8f0f4; color:var(--green-dark); font-size:.68rem; font-weight:700; }
.guide-grid { display:grid; grid-template-columns:1fr 1fr; gap:1rem; }
.guide { display:grid; grid-template-columns:220px 1fr; background:var(--white); border:1px solid var(--line); }
.guide img { width:100%; height:100%; min-height:350px; object-fit:cover; }
.guide:first-child img { object-position:68% center; }
.guide div { padding:1.4rem; }
.contact-strip { display:grid; grid-template-columns:repeat(3,1fr); gap:1rem; }
.contact-strip article { padding:1.5rem; background:var(--white); border:1px solid var(--line); }
.tabs { display:grid; grid-template-columns:220px 1fr; gap:2rem; align-items:start; }
.tab-list { display:grid; gap:.4rem; }
.tab-list button { min-height:48px; padding:.75rem 1rem; border:1px solid var(--line); border-radius:6px; background:var(--white); color:var(--green); font-size:.88rem; font-weight:700; line-height:1.15; text-align:left; white-space:nowrap; cursor:pointer; transition:border-color .2s ease,background .2s ease,box-shadow .2s ease,transform .2s ease; }
.tab-list button:hover { border-color:var(--gold); box-shadow:0 5px 14px rgba(2,48,71,.1); transform:translateX(2px); }
.tab-list button[aria-selected="true"] { border-color:var(--green); background:var(--green); box-shadow:0 6px 16px rgba(2,48,71,.2); color:var(--white); }
.tab-panel { display:grid; grid-template-columns:1fr 1fr; gap:.75rem; }
.tab-panel[hidden] { display:none; }
.answer { padding:1.25rem; background:var(--white); border:1px solid var(--line); }
.answer h3 { font-size:1.2rem; }
.answer h3::before { content:"help"; display:inline-block; margin-right:.45rem; color:var(--gold); font-family:"Material Symbols Rounded"; font-size:1.15em; line-height:1; vertical-align:-.12em; font-feature-settings:"liga"; }
.tab-list button { display:flex; align-items:center; gap:.5rem; }
.message-title { display:flex; align-items:flex-start; gap:.65rem; }
.message-title > .material-symbols-rounded { margin-top:.12em; color:var(--gold); font-size:.85em; }
.map-section { display:grid; grid-template-columns:.8fr 1.2fr; background:var(--green-dark); color:var(--white); }
.map-section img { width:100%; height:540px; object-fit:cover; }
.map-copy { display:flex; flex-direction:column; justify-content:center; align-items:flex-start; padding:clamp(2rem,6vw,6rem); }
.cta { display:flex; align-items:center; justify-content:space-between; gap:3rem; padding:clamp(3rem,6vw,5rem) max(1rem,calc((100% - var(--max))/2)); background:var(--wine); color:var(--white); }
.cta h2 { max-width:800px; }
.site-footer { display:grid; grid-template-columns:1.4fr repeat(3,1fr); gap:2.5rem; padding:3.5rem max(1rem,calc((100% - var(--max))/2)); background:#011f2d; color:#e4edf1; font-size:.82rem; }
.site-footer strong { display:block; margin-bottom:.7rem; color:var(--white); font-family:var(--display); font-size:1.1rem; }
.site-footer address { display:grid; align-content:start; font-style:normal; }
.site-footer p { margin:0; }
.site-footer a { min-height:28px; display:inline-flex; align-items:center; }
.mobile-cta { display:none; }
.reveal { opacity:0; transform:translateY(20px); transition:opacity .55s ease,transform .55s ease; }
.reveal.visible { opacity:1; transform:none; }
@media(max-width:900px){body{padding-bottom:80px}.topbar{display:none}.site-header{min-height:68px;padding:.4rem 1rem;gap:1rem}.site-header>.button{display:none}.brand{gap:.65rem;color:var(--green);font-family:var(--display);font-size:1rem;font-weight:700}.brand::after{content:"Dimora Garau";white-space:nowrap}.brand-logo{content:url("assets/wp-content/uploads/2022/04/cropped-favicon-192x192.png");width:48px;height:48px;border-radius:6px}.mobile-menu-toggle{width:46px;height:46px;display:grid;place-items:center;margin-left:auto;padding:0;border:1px solid var(--line);border-radius:6px;background:var(--white);box-shadow:0 4px 12px rgba(2,48,71,.1);color:var(--green);cursor:pointer}.mobile-menu-toggle:hover,.mobile-menu-toggle[aria-expanded="true"]{border-color:var(--gold);background:var(--gold)}.site-header nav{position:absolute;z-index:25;top:calc(100% + 1px);right:0;left:0;display:grid;gap:.35rem;padding:.75rem 1rem 1rem;background:rgba(255,255,255,.98);border-bottom:1px solid var(--line);box-shadow:0 16px 28px rgba(2,48,71,.16);opacity:0;visibility:hidden;transform:translateY(-8px);transition:opacity .2s ease,transform .2s ease,visibility .2s}.site-header.menu-open nav{opacity:1;visibility:visible;transform:none}.site-header nav a{display:flex;align-items:center;gap:.75rem;min-height:50px;padding:.7rem .85rem;border-radius:6px;color:var(--green);font-size:.95rem;font-weight:700}.site-header nav a:hover{background:#e8f0f4}.site-header nav a[aria-current="page"]{background:var(--green);color:var(--white)}.site-header nav a::after{display:none}.site-header nav a>.material-symbols-rounded{display:inline-block;color:var(--gold);font-size:1.35rem}.hero{min-height:650px}.intro-grid,.territory,.trail-intro,.map-section{grid-template-columns:1fr}.portrait{height:480px}.room-preview{grid-template-columns:1fr 1fr}.room-preview a{min-height:340px}.room-preview a:last-child{grid-column:1/-1}.album{grid-template-columns:1fr}.album-summary{padding:1rem}.trail-grid,.contact-strip{grid-template-columns:1fr}.guide-grid{grid-template-columns:1fr}.tabs{grid-template-columns:1fr}.tab-list{grid-template-columns:repeat(3,1fr)}.tab-list button{justify-content:center;text-align:center}.site-footer{grid-template-columns:1fr 1fr}.mobile-cta{position:fixed;z-index:30;right:12px;bottom:12px;left:12px;min-height:56px;display:flex;align-items:center;justify-content:center;padding:.7rem 1.2rem;border:1px solid #ffd04f;border-radius:6px;background:var(--gold);box-shadow:0 10px 28px rgba(2,48,71,.3);color:var(--green);font-size:.9rem;font-weight:700;line-height:1.1;text-align:center;text-decoration:none;white-space:nowrap}}
@media(max-width:900px){.brand-logo{display:none;content:normal}.brand::before{content:"";width:48px;height:48px;flex:none;border-radius:6px;background:url("assets/wp-content/uploads/2022/04/cropped-favicon-192x192.png") center/cover no-repeat}}
@media(max-width:560px){.hero::after,.page-hero::after,.page-hero--itinerari::after,.page-hero--contatti::after{background:linear-gradient(0deg,rgba(2,35,49,.98) 0%,rgba(2,35,49,.78) 52%,rgba(2,35,49,.2) 100%)}.page-hero-copy{min-height:270px;padding-top:2rem}.page-hero--itinerari > img{object-position:62% center}.page-hero--contatti > img{object-position:58% center}.info-columns,.room-preview,.reviews,.tab-panel{grid-template-columns:1fr}.room-preview a:last-child{grid-column:auto}.section-head,.cta{display:block}.section-head>p{margin-top:1rem}.album-nav{top:68px}.album-thumbs{grid-template-columns:1fr 1fr;grid-template-rows:250px 130px}.album-thumbs button:first-child{grid-column:1/3;grid-row:auto}.guide{grid-template-columns:1fr}.guide img{height:350px}.tab-list{grid-template-columns:1fr}.tab-list button{justify-content:flex-start}.cta .button{width:100%;margin-top:1.5rem}.site-footer{grid-template-columns:1fr}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition-duration:.01ms!important}.reveal{opacity:1;transform:none}}