/* ============================================================
   CASATO LICITRA — Camere (griglia card + pagina singola)
   ============================================================ */
:root{
  --ivory:#f4f0e8;--ivory-2:#ece6da;--ink:#20263a;--blu:#263a68;--blu-d:#1b2a4e;
  --rosso:#9e3a2d;--oro:#c39b4a;
  --serif:'Fraunces',serif;--disp:'Fraunces',serif;--sans:'Poppins',sans-serif;
}

/* ---------- griglia card [camere_grid] ---------- */
.cam-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;max-width:1380px;margin:0 auto}
.cam-card{position:relative;display:flex;align-items:flex-end;min-height:440px;background-size:cover;background-position:center;overflow:hidden;text-decoration:none;color:#fff;transition:transform .5s ease}
.cam-card::after{content:'';position:absolute;inset:0;background:linear-gradient(rgba(18,24,40,.05) 40%,rgba(18,24,40,.78));transition:background .5s}
.cam-card:hover{transform:translateY(-6px)}
.cam-frame{position:absolute;inset:14px;border:1px solid rgba(195,155,74,.45);z-index:2;pointer-events:none}
.cam-body{position:relative;z-index:3;padding:30px;display:block;width:100%}
.cam-card .cam-size{display:block;font-family:var(--sans);font-size:11px;letter-spacing:.35em;text-transform:uppercase;color:var(--oro);margin-bottom:8px}
.cam-name{display:block;font-family:var(--serif);font-weight:400;font-size:29px;line-height:1.2;color:#fff}
.cam-btn{display:inline-block;margin-top:16px;font-family:var(--sans);font-size:10.5px;letter-spacing:.3em;text-transform:uppercase;color:var(--ivory);border-bottom:1px solid var(--oro);padding-bottom:5px;transition:letter-spacing .4s}
.cam-card:hover .cam-btn{letter-spacing:.42em}
@media(max-width:1100px){.cam-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:700px){.cam-grid{grid-template-columns:1fr}.cam-card{min-height:380px}}

/* full-bleed: la pagina camera esce dal contenitore boxed di Astra */
body.single-camera .site-content .ast-container{max-width:100%!important;padding:0!important;margin:0!important}
body.single-camera #primary,body.single-camera .site-main,body.single-camera .entry-content{margin:0!important;padding:0!important;max-width:100%!important}
body.single-camera .site,body.single-camera .site-content{background:var(--ivory)}

/* ---------- pagina singola: hero editoriale ---------- */
.cs .cs-rv{opacity:0;transform:translateY(40px);transition:opacity 1s ease,transform 1s ease}
.cs .cs-rv.on{opacity:1;transform:none}

.cs-hero{position:relative;min-height:60vh;background:var(--ivory);display:flex;align-items:center;justify-content:center;text-align:center;overflow:hidden;padding:70px 24px 50px}
.cs-hero-tx{position:relative;z-index:2;max-width:1300px}
.cs-title{font-family:var(--disp);font-weight:400;font-size:clamp(46px,9vw,150px);line-height:1;text-transform:uppercase;letter-spacing:.04em;color:var(--ink);margin:26px 0 18px}
.cs-size{font-size:12px;letter-spacing:.4em;text-transform:uppercase;color:var(--oro);margin:0}
.cs-hi{position:absolute;width:clamp(120px,13vw,220px);aspect-ratio:1/1;padding:6px;background:#fff;box-shadow:0 18px 40px rgba(20,29,51,.16);will-change:transform;transform:rotate(var(--rot,0deg))}
.cs-hi img{width:100%;height:100%;object-fit:cover;display:block}
.cs-hi1{--rot:-8deg;top:10%;left:12%;z-index:1}
.cs-hi2{--rot:7deg;top:8%;right:13%;z-index:3}
.cs-hi3{--rot:-5deg;bottom:9%;left:8%;z-index:3}
.cs-hi4{--rot:6deg;bottom:7%;right:10%;z-index:1}
.cs-cue{position:absolute;bottom:28px;left:50%;transform:translateX(-50%);font-size:10px;letter-spacing:.4em;text-transform:uppercase;color:var(--ink);opacity:.6;z-index:2}
.cs-cue::after{content:'';display:block;width:1px;height:44px;background:var(--oro);margin:10px auto 0}

/* intro */
.cs-intro{max-width:880px;margin:0 auto;padding:60px 24px 70px;text-align:center}
.cs-lead{font-family:var(--serif);font-size:clamp(24px,2.6vw,34px);font-weight:300;line-height:1.5;color:var(--ink);margin:0 0 26px}
.cs-intro .cs-desc{font-size:16px;color:#4d5265;max-width:620px;margin:0 auto}
.cs-intro .cs-desc p{margin:0 0 1em}

/* impressioni */
.cs-impress{position:relative;background:var(--blu-d);padding:150px 4vw 90px;overflow:hidden}
.cs-imp-title{position:absolute;top:44px;left:0;right:0;text-align:center;font-family:var(--disp);font-weight:400;font-size:clamp(40px,8.5vw,130px);letter-spacing:.05em;text-transform:uppercase;color:var(--ivory);z-index:3;pointer-events:none;line-height:1}
.cs-imp-grid{display:grid;grid-template-columns:1fr 1.15fr;gap:26px;max-width:1420px;margin:0 auto;position:relative;z-index:2}
.cs-imp-im{overflow:hidden}
.cs-imp-im img{width:100%;height:64vh;object-fit:cover;display:block;transition:transform 1s ease}
.cs-imp-im:hover img{transform:scale(1.04)}
.cs-imp-more{display:grid;grid-template-columns:repeat(3,1fr);gap:26px;max-width:1420px;margin:26px auto 0;position:relative;z-index:2}
.cs-imp-more a{display:block;overflow:hidden}
.cs-imp-more img{width:100%;height:300px;object-fit:cover;display:block;transition:transform .9s ease}
.cs-imp-more a:hover img{transform:scale(1.05)}

/* servizi a icone */
.cs-serv{max-width:1180px;margin:0 auto;padding:130px 24px 110px;text-align:center}
.cs-h2{font-family:var(--serif);font-weight:300;font-size:clamp(30px,4vw,52px);line-height:1.25;color:var(--ink);margin:20px 0 60px}
.cs-h2 i{color:var(--rosso)}
.cs-serv-grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,1fr);gap:48px 28px;text-align:center}
.cs-serv-grid li{display:flex;flex-direction:column;align-items:center;gap:18px;font-size:15px;color:var(--ink);letter-spacing:.02em}
.cs-serv-grid svg{width:74px;height:74px;padding:22px;box-sizing:border-box;border-radius:50%;background:var(--blu);color:var(--ivory);border:1px solid rgba(195,155,74,.45);box-shadow:0 14px 30px rgba(27,42,78,.16);transition:transform .4s ease,background .4s ease,color .4s ease}
.cs-serv-grid li:hover svg{background:var(--oro);color:var(--blu-d);transform:translateY(-6px)}
@media(max-width:1000px){.cs-serv-grid{grid-template-columns:repeat(3,1fr);gap:40px 24px}}
@media(max-width:620px){.cs-serv-grid{grid-template-columns:repeat(2,1fr)}}

/* esperienze blur-hover */
.cs-exp{background:var(--ivory-2);padding:120px 4vw 130px;text-align:center}
.cs-exp-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:34px;max-width:1380px;margin:30px auto 0}
.cs-exp-card{display:block;text-decoration:none;text-align:left}
.cs-exp-im{display:block;overflow:hidden}
.cs-exp-im img{width:100%;height:52vh;min-height:340px;object-fit:cover;display:block;transition:filter .6s ease,transform .8s ease}
.cs-exp-grid:hover .cs-exp-im img{filter:blur(7px) saturate(.9)}
.cs-exp-grid .cs-exp-card:hover .cs-exp-im img{filter:none;transform:scale(1.03)}
.cs-exp-name{display:block;font-family:var(--serif);font-weight:400;font-size:30px;color:var(--ink);margin-top:22px}
.cs-exp-desc{display:block;font-size:13.5px;color:#4d5265;margin-top:6px}

@media(max-width:1000px){
  .cs-hi1,.cs-hi4{display:none}
  .cs-serv-grid{grid-template-columns:repeat(2,1fr)}
  .cs-exp-grid{grid-template-columns:1fr;gap:40px}
  .cs-exp-im img{height:44vh}
  .cs-imp-grid{grid-template-columns:1fr}
  .cs-imp-im img{height:44vh}
  .cs-imp-more{grid-template-columns:1fr 1fr}
  .cs-imp-title{position:static;margin-bottom:36px;mix-blend-mode:normal}
}

/* ---------- pagina singola ---------- */
.cam-single{background:var(--ivory);color:var(--ink);font-family:var(--sans);font-weight:300;line-height:1.7}
.cam-kicker{font-size:11px;letter-spacing:.5em;text-transform:uppercase;color:var(--oro);margin:0}
.cam-kicker::before{content:'✦  ';color:var(--rosso)}

.cam-hero{position:relative;min-height:72vh;display:flex;align-items:flex-end;background-size:cover;background-position:center;color:#fff}
.cam-hero::after{content:'';position:absolute;inset:0;background:linear-gradient(rgba(20,26,44,.25),rgba(18,24,40,.7))}
.cam-hero-frame{position:absolute;inset:22px;border:1px solid rgba(195,155,74,.5);z-index:2;pointer-events:none}
.cam-hero-inner{position:relative;z-index:3;padding:0 8vw 9vh;max-width:900px}
.cam-hero-inner .cam-kicker{color:var(--oro)}
.cam-hero-inner h1{font-family:var(--disp);font-weight:400;font-size:clamp(32px,4.6vw,64px);line-height:1.15;text-transform:uppercase;letter-spacing:.06em;color:#fff;margin:18px 0 10px}
.cam-hero-inner .cam-size{font-size:12px;letter-spacing:.35em;text-transform:uppercase;color:var(--oro);margin:0}

.cam-content{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:6vw;max-width:1280px;margin:0 auto;padding:110px 24px 40px}
.cam-desc{font-family:var(--serif);font-size:21px;line-height:1.75;color:#39405a}
.cam-desc p{margin:0 0 1em}
.cam-servizi h2,.cam-gallery h2,.cam-cta h2{font-family:var(--serif);font-weight:300;color:var(--ink)}
.cam-servizi h2{font-size:30px;margin:0 0 26px}
.cam-servizi ul{list-style:none;margin:0;padding:0}
.cam-servizi li{display:flex;align-items:baseline;gap:14px;padding:13px 0;border-bottom:1px solid rgba(195,155,74,.35);font-size:15px}
.cam-servizi li span{color:var(--rosso);font-size:13px}

.cam-gallery{max-width:1280px;margin:0 auto;padding:40px 24px 90px}
.cam-gallery h2{font-size:34px;margin:0 0 34px}
.cam-gal-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.cam-gal-grid a{display:block;overflow:hidden}
.cam-gal-grid img{width:100%;height:320px;object-fit:cover;display:block;transition:transform .8s ease}
.cam-gal-grid a:hover img{transform:scale(1.06)}

.cam-cta{background:var(--blu-d);color:var(--ivory);text-align:center;padding:110px 24px}
.cam-cta h2{font-family:var(--disp);font-weight:400;font-size:clamp(24px,3vw,40px);text-transform:uppercase;letter-spacing:.06em;color:var(--ivory);margin:22px auto 36px}
.cam-btn-solid{display:inline-block;border:1px solid var(--oro);color:var(--ivory);padding:14px 36px;font-size:11px;letter-spacing:.28em;text-transform:uppercase;text-decoration:none;transition:all .4s}
.cam-btn-solid:hover{background:var(--oro);color:var(--blu-d)}
.cam-back{margin-top:34px}
.cam-back a{color:#aab1c5;font-size:12px;letter-spacing:.15em;text-decoration:none}
.cam-back a:hover{color:#fff}

@media(max-width:900px){
  .cam-content{grid-template-columns:1fr;gap:50px;padding-top:70px}
  .cam-gal-grid{grid-template-columns:repeat(2,1fr)}
  .cam-gal-grid img{height:240px}
}
@media(max-width:600px){.cam-gal-grid{grid-template-columns:1fr}}

/* ============================================================
   FINE-TUNING TIPOGRAFICO — Fraunces/Poppins (uniformato)
   ============================================================ */
.cam-single{font-size:15px;line-height:1.8}
.cam-kicker{letter-spacing:.32em}
.cs-cue{letter-spacing:.32em}
/* hero editoriale */
.cs-title{letter-spacing:.01em;line-height:1.05;margin:22px 0 16px}
.cs-size{letter-spacing:.3em}
/* intro */
.cs-intro{padding:100px 24px}
.cs-lead{line-height:1.55}
.cs-intro .cs-desc{line-height:1.85}
/* impressioni */
.cs-imp-title{letter-spacing:.08em}
.cs-imp-more{margin-top:24px}
/* servizi */
.cs-serv{padding:120px 24px 100px}
.cs-h2{line-height:1.3;margin:18px 0 54px}
.cs-serv-grid{gap:30px 36px}
.cs-serv-grid li{line-height:1.55}
/* esperienze */
.cs-exp{padding:110px 4vw 120px}
.cs-exp-name{line-height:1.25;margin-top:20px}
.cs-exp-desc{line-height:1.7}
/* card griglia */
.cam-name{line-height:1.25}
.cam-card .cam-size{letter-spacing:.28em}
.cam-btn{letter-spacing:.24em}
/* cta */
.cam-cta{padding:110px 24px}
.cam-cta h2{letter-spacing:.02em;line-height:1.3}
.cam-btn-solid{letter-spacing:.22em}
.cam-back a{letter-spacing:.12em}

/* stella del blasone al posto di "✦" */
.cam-kicker::before{content:'';display:inline-block;width:10px;height:10px;margin-right:9px;vertical-align:-1px;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%239e3a2d' d='M24 12L14.2 12.9 17 17 12.9 14.2 12 24 11.1 14.2 7 17 9.8 12.9 0 12 9.8 11.1 7 7 11.1 9.8 12 0 12.9 9.8 17 7 14.2 11.1Z'/%3E%3C/svg%3E") center/contain no-repeat}

/* ============ pagina camera: centratura full-bleed + slider impressioni ============ */
.cam-single{width:100vw;margin-left:calc(50% - 50vw);overflow-x:clip;background:var(--ivory)}
.cam-single section{width:100%}

/* slider impressioni */
.cs-impress{padding:150px 4vw 110px}
.cs-slider{max-width:1420px;margin:0 auto;position:relative;z-index:2}
.cs-sl-stage{position:relative;height:70vh;min-height:420px;overflow:hidden}
.cs-sl-stage img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block;opacity:0;transition:opacity .9s ease}
.cs-sl-stage img.cur{opacity:1}
.cs-sl-frame{position:absolute;inset:18px;border:1px solid rgba(195,155,74,.6);z-index:3;pointer-events:none}
.cs-sl-ui{display:flex;justify-content:space-between;align-items:center;margin-top:26px}
.cs-sl-count{font-family:var(--serif);font-style:italic;font-size:18px;color:var(--oro);margin:0}
.cs-sl-count b{font-weight:400;font-size:38px;font-style:normal;color:var(--ivory)}
.cs-sl-nav{display:flex;gap:14px}
.cs-sl-btn{-webkit-appearance:none;appearance:none;border-radius:0;width:54px;height:54px;border:1px solid rgba(195,155,74,.6);background:transparent;color:var(--ivory);font-size:20px;cursor:pointer;transition:all .35s;display:flex;align-items:center;justify-content:center;line-height:1}
.cs-sl-btn:hover{background:var(--oro);color:var(--blu-d);border-color:var(--oro)}
@media(max-width:1000px){.cs-sl-stage{height:48vh}.cs-impress{padding:120px 5vw 90px}}

/* ============ slider impressioni: carosello centrato con peek laterale ============ */
.cs-impress{padding-left:0!important;padding-right:0!important}
.cs-slider{max-width:none;margin:0}
.cs-sl-viewport{overflow:hidden;position:relative;width:100%}
.cs-sl-track{display:flex;gap:26px;will-change:transform;transition:transform .85s cubic-bezier(.22,1,.36,1)}
.cs-slide{flex:0 0 min(66vw,1040px);height:66vh;min-height:400px;position:relative;margin:0;overflow:hidden;opacity:.35;transform:scale(.965);transition:opacity .8s ease,transform .8s ease;cursor:pointer}
.cs-slide img{width:100%;height:100%;object-fit:cover;display:block}
.cs-slide::after{content:'';position:absolute;inset:16px;border:1px solid rgba(195,155,74,.6);pointer-events:none;opacity:0;transition:opacity .6s;z-index:2}
.cs-slide.cur{opacity:1;transform:none;cursor:default}
.cs-slide.cur::after{opacity:1}
.cs-slide img{transform-origin:52% 46%}
.cs-slide.cur img{animation:csKen 8s ease-out forwards}
@keyframes csKen{from{transform:scale(1) translate(0,0)}to{transform:scale(1.1) translate(1.2%,-1.4%)}}
@media(prefers-reduced-motion:reduce){.cs-slide.cur img{animation:none}}
.cs-sl-ui{max-width:1420px;margin:28px auto 0;padding:0 4vw}
@media(max-width:1000px){.cs-slide{flex-basis:82vw;height:48vh}.cs-sl-track{gap:16px}}

/* hero camera: titolo sopra le foto e in rosso */
.cs-hero-tx{z-index:6}
.cs-title{color:var(--rosso)}
/* e non esce piu' dai bordi */
.cs-title{font-size:clamp(40px,7.5vw,120px);overflow-wrap:break-word}
.cs-hero-tx{max-width:92vw}
