@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;450;500;600;700&family=Libre+Caslon+Display&display=swap');
:root{--ink:#253c49;--muted:#68716e;--cream:#f7f5ef;--sand:#e9e5da;--gold:#aa8961;--blue:#234958}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:110px}body{margin:0;background:var(--cream);color:var(--ink);font-family:'DM Sans',sans-serif;font-size:16px;line-height:1.7}a{color:inherit;text-decoration:none}button,input,textarea,select{font:inherit}button,a,input,select,textarea{ -webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible,summary:focus-visible{outline:3px solid var(--gold);outline-offset:5px}header{height:106px;padding:18px 5.2%;display:flex;align-items:center;justify-content:space-between;background:#f7f5eff5;position:sticky;top:0;z-index:10;border-bottom:1px solid #deded3;backdrop-filter:blur(12px)}.brand{display:flex;align-items:center;gap:14px}.brand img{height:62px;width:62px;object-fit:contain}.brand span{font-size:10px;letter-spacing:2.5px;line-height:1.5}.brand strong{display:block;font:27px Georgia,serif;letter-spacing:3px}nav{display:flex;align-items:center;gap:31px;font-size:13px}nav a:hover,.text-link:hover{color:var(--gold)}.button{display:inline-flex;justify-content:center;align-items:center;padding:15px 27px;background:var(--blue);color:white;border:1px solid var(--blue);border-radius:30px;font-size:13px;font-weight:500;cursor:pointer;transition:.2s}.button:hover{background:#163643;color:#fff;transform:translateY(-2px)}.button.small{padding:11px 21px}#menu{display:none}.hero{display:grid;grid-template-columns:1.06fr 1fr;min-height:705px;padding:36px 5.2% 52px;gap:6%}.hero-copy{padding:57px 0 20px}.eyebrow{font-size:10px;font-weight:600;letter-spacing:2.1px;line-height:1.7;color:#7f806f;margin:0 0 25px}h1,h2,h3,p{margin-top:0}h1,h2{font-family:'Libre Caslon Display',Georgia,serif;font-weight:400;letter-spacing:-1.4px;line-height:1.05}h1{font-size:clamp(46px,4.5vw,72px);margin-bottom:26px}h1 em{font-style:normal;color:#8b795e}h2{font-size:clamp(40px,3.8vw,57px);margin-bottom:30px}.lead{max-width:450px;font-size:15px;color:var(--muted);margin-bottom:30px}.hero-image{position:relative;min-height:605px;overflow:hidden;border-radius:100px 8px 8px 8px}.hero-image>img{position:absolute;inset:0;height:100%;width:100%;object-fit:cover;object-position:center 60%}.image-caption{position:absolute;bottom:25px;left:25px;background:#f7f5efee;padding:18px 27px;border-radius:5px;font-family:Georgia,serif;font-size:16px;line-height:1.4}.hero-note{display:flex;align-items:center;gap:12px;margin-top:45px;font-size:10px;color:var(--muted)}.line{width:30px;height:1px;background:var(--gold)}.audience{display:flex;align-items:center;justify-content:center;gap:45px;background:var(--sand);padding:26px}.audience span{font-size:9px;letter-spacing:2px;color:var(--muted)}.audience p{margin:0;font-family:Georgia,serif;font-size:20px}.audience i{height:4px;width:4px;border-radius:50%;background:var(--gold)}.section{padding:105px 8%}.about{display:grid;grid-template-columns:.88fr 1fr;gap:11%;align-items:center}.portrait{max-width:440px}.portrait img{width:100%;height:540px;object-fit:cover;border-radius:8px 8px 80px 8px;display:block}.portrait span{font-size:9px;letter-spacing:2px;display:block;margin-top:19px;color:var(--muted)}.about-copy p:not(.eyebrow){font-size:14px;color:var(--muted)}.text-link{display:inline-block;font-size:12px;padding-bottom:5px;border-bottom:1px solid var(--gold)}.about .text-link{margin-top:12px}.practice{background:#eeeee7}.section-heading{display:grid;grid-template-columns:1.1fr 1fr;gap:14%;align-items:end;margin-bottom:42px}.section-heading h2{margin-bottom:0}.section-heading>p{font-size:14px;color:var(--muted);margin:0 0 5px}.areas{border-top:1px solid #cccec4}details{border-bottom:1px solid #cccec4;padding:24px 0}summary{list-style:none;display:flex;align-items:center;cursor:pointer;gap:30px}summary::-webkit-details-marker{display:none}.num{font-size:11px;color:#8b795e}h3{font-family:'Libre Caslon Display',Georgia,serif;font-weight:400;font-size:30px;line-height:1.2;margin:0}summary .plus{margin-left:auto;font-size:26px;color:#8b795e;font-weight:400}details[open] .plus{transform:rotate(45deg)}details p{max-width:720px;margin:17px 0 0 47px;font-size:14px;color:var(--muted)}.practice-note{margin:30px 0 0;font-size:12px;color:var(--muted)}.method{background:var(--ink);color:var(--cream)}.method .eyebrow{color:#c9b99e}.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:48px;margin-top:54px}.steps article{border-top:1px solid #607078;padding-top:22px}.steps span{font-size:10px;letter-spacing:1.5px;color:#c9b99e}.steps h3{font-size:27px;margin:19px 0 15px}.steps p{font-size:13px;color:#c3cccc;margin:0}.gallery{display:grid;grid-template-columns:.8fr 1.2fr;gap:25px}.gallery img{height:460px;width:100%;object-fit:cover;border-radius:8px}.gallery img:nth-child(2){object-position:70%}.address-line{display:flex;justify-content:space-between;align-items:center;margin-top:24px}.address-line span{font-size:10px;letter-spacing:1.6px}.contact{background:#e9e5da;display:grid;grid-template-columns:.85fr 1.15fr;gap:9%}.contact-intro>p:not(.eyebrow){font-size:14px;color:var(--muted);max-width:360px}.contact-data{margin-top:45px;display:flex;flex-direction:column;align-items:flex-start}.contact-data span{font-size:9px;letter-spacing:1.7px;color:var(--muted);margin:20px 0 6px}.contact-data a,.contact-data p{font-size:16px}.contact-data .email{font-size:14px;overflow-wrap:anywhere}form{background:var(--cream);border-radius:12px;padding:35px}form h3{font-size:30px}.form-intro{font-size:11px;color:var(--muted);margin:8px 0 23px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:19px 16px}label{display:block;font-size:11px;color:var(--ink)}input,select,textarea{display:block;width:100%;min-width:0;padding:12px 11px;border:1px solid #d7d8cd;border-radius:5px;background:#fffefa;color:var(--ink);font-size:12px;margin-top:7px;outline:none}input:focus,select:focus,textarea:focus{border-color:var(--blue);box-shadow:0 0 0 2px #23495820}form>label{margin-top:20px}.form-note{font-size:10px;color:var(--muted);margin:19px 0}form .button{width:100%}#form-status{font-size:12px;margin:14px 0 0}footer{padding:50px 8% 25px;display:grid;grid-template-columns:1fr 1fr auto;gap:30px;font-size:12px}footer .footer-title{font-family:Georgia,serif;font-size:21px}footer p{margin:8px 0;color:var(--muted)}footer>a{align-self:center;font-size:11px}footer small{grid-column:1/-1;border-top:1px solid #deded3;padding-top:20px;font-size:10px;color:var(--muted)}@media(min-width:1600px){body{max-width:1800px;margin:auto}}@media(max-width:1000px){nav{gap:16px}header{padding:15px 4%}.hero{gap:4%;padding:25px 4% 35px}.hero-copy{padding-top:35px}.hero-image{min-height:550px}.section{padding:75px 6%}.about{gap:7%}.contact{gap:5%}.portrait img{height:490px}.audience{gap:25px}.contact-data .email{font-size:12px}}@media(max-width:760px){html{scroll-padding-top:90px}header{height:84px}.brand img{width:46px;height:46px}.brand strong{font-size:21px}.brand span{font-size:8px}#menu{display:block;border:1px solid #babeb6;background:none;padding:7px 14px;border-radius:20px;color:var(--ink);font-size:12px}nav{display:none;position:absolute;top:84px;left:0;right:0;background:var(--cream);padding:24px;box-shadow:0 12px 20px #253c4910;align-items:stretch}nav.open{display:flex;flex-direction:column;gap:20px}.hero{grid-template-columns:1fr;padding:22px 6% 32px;gap:28px}.hero-copy{padding:20px 0 0}h1{font-size:51px;max-width:540px}.eyebrow{font-size:9px;margin-bottom:18px}.hero-note{margin-top:27px}.hero-image{min-height:480px;border-top-left-radius:70px}.hero-image>img{object-position:center 57%}.audience{gap:13px;flex-wrap:wrap;padding:24px 6%}.audience span{width:100%;text-align:center}.audience p{font-size:15px}.section{padding:65px 6%}.about{grid-template-columns:1fr;gap:34px}.portrait{max-width:none}.portrait img{height:470px;object-position:50% 40%}.about-copy{order:-1}.section-heading{grid-template-columns:1fr;gap:20px;margin-bottom:30px}h2{font-size:44px}.steps{grid-template-columns:1fr;gap:30px;margin-top:32px}.steps h3{margin:13px 0}.gallery{gap:15px;grid-template-columns:1fr}.gallery img{height:350px}.gallery img:nth-child(2){height:260px}.address-line{align-items:flex-start;gap:18px;flex-direction:column}.contact{grid-template-columns:1fr;gap:35px}.contact-data{margin-top:10px}.contact-data .email{font-size:14px}form{padding:25px 20px}.form-grid{gap:18px 12px}summary{gap:16px}summary h3{font-size:25px}details p{margin-left:30px}footer{grid-template-columns:1fr;gap:16px;padding:35px 6% 25px}footer small{grid-column:auto}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}
/* Multipage editorial layout */
.skip{position:absolute;left:20px;top:-100px;z-index:30;padding:12px;background:white}.skip:focus{top:15px}nav a[aria-current=page]:not(.button){color:#8b795e;border-bottom:1px solid var(--gold)}h2 em{font-style:italic;color:#8b795e}nav{gap:23px}.opening-hero{min-height:670px;padding:72px 8% 32px;background:linear-gradient(90deg,#f7f5effa 0%,#f7f5eff0 34%,#f7f5ef90 57%,#f7f5ef08 90%),url('assets/facciata.webp') center/cover}.opening-content{max-width:600px}.opening-hero h1{font-size:clamp(60px,5.6vw,84px);line-height:1.06;margin-bottom:27px}.opening-hero h1 em{font-style:italic}.opening-hero .lead{max-width:430px}.hero-actions{display:flex;align-items:center;gap:28px}.hero-location{border-top:1px solid #253c4930;max-width:450px;display:flex;justify-content:space-between;padding-top:18px;margin:50px 0 0;font-size:9px;letter-spacing:1.6px}.hero-location span{letter-spacing:.5px}.home-about .portrait img{height:460px}.home-areas{background:#eeeee7}.area-links{display:grid;grid-template-columns:repeat(3,1fr);gap:0;border-top:1px solid #cbd0c6}.area-link{padding:28px 27px 28px 0;border-bottom:1px solid #cbd0c6;display:flex;flex-direction:column;align-items:flex-start;transition:background .2s}.area-link:not(:nth-child(3n+1)){padding-left:27px;border-left:1px solid #cbd0c6}.area-link h3{font-size:29px;margin:18px 0 15px}.area-link p{font-size:13px;color:var(--muted);margin-bottom:22px}.read-more{font-size:11px;border-bottom:1px solid var(--gold);padding-bottom:3px;margin-top:auto}.area-link:hover{background:#e6e7de}.studio-teaser{display:grid;grid-template-columns:1fr 1fr;gap:12%;align-items:center}.studio-teaser img{width:100%;height:475px;object-fit:cover;border-radius:9px 70px 9px 9px}.studio-teaser p:not(.eyebrow){font-size:14px;color:var(--muted)}.page-cta{padding:60px 8%;background:var(--ink);color:var(--cream);display:flex;align-items:center;justify-content:space-between;gap:30px}.page-cta h2{font-size:43px;margin:0}.page-cta .eyebrow{color:#c9b99e;margin-bottom:15px}.page-cta .button{background:var(--cream);color:var(--ink);flex-shrink:0}.footer-nav{display:grid;grid-template-columns:1fr 1fr;gap:8px 24px}.page-intro{padding:32px 8% 65px;background:#eeeee7;border-bottom:1px solid #deded3}.breadcrumbs{font-size:10px;color:var(--muted);margin-bottom:45px}.breadcrumbs a{border-bottom:1px solid #c6c9bd}.page-intro h1{font-size:clamp(49px,5vw,72px);max-width:950px}.page-intro h1 em{font-style:italic}.page-lead{max-width:650px;font-size:15px;color:var(--muted);margin:0}.area-overview{padding-top:60px}.detail-layout{display:grid;grid-template-columns:1fr 290px;gap:12%;align-items:start}.detail-layout article>p{font-size:15px;color:var(--muted)}.detail-layout article>h3{margin:35px 0 18px}.detail-layout aside{background:var(--sand);padding:28px;border-radius:8px}.detail-layout aside>a:not(.button){display:block;font-size:12px;padding:13px 0;border-bottom:1px solid #cbd0c6}.detail-layout aside>a[aria-current=page]{color:#8b795e;font-weight:600}.detail-layout aside .button{margin-top:24px;padding:12px 19px;width:100%}.service-list{list-style:none;padding:0;margin:0 0 35px}.service-list li{padding:14px 0;border-bottom:1px solid #d9dcd1;font-size:14px}.service-list li::before{content:'•';color:var(--gold);margin-right:14px}.contact{grid-template-columns:.85fr 1.15fr}@media(max-width:1100px){nav{gap:14px;font-size:12px}.brand{gap:9px}.brand strong{font-size:23px}.detail-layout{gap:6%}}@media(max-width:760px){.opening-hero{padding:50px 6% 30px;min-height:620px;background:linear-gradient(90deg,#f7f5eff5,#f7f5efb8),url('assets/facciata.webp') 65% center/cover}.opening-hero h1{font-size:58px}.hero-actions{align-items:flex-start;flex-direction:column;gap:20px}.hero-location{margin-top:38px;font-size:8px}.area-links{grid-template-columns:1fr}.area-link,.area-link:not(:nth-child(3n+1)){padding:24px 0;border-left:0}.area-link h3{margin:12px 0}.area-link p{margin-bottom:16px}.studio-teaser{grid-template-columns:1fr;gap:28px}.studio-teaser img{height:410px}.page-cta{padding:45px 6%;align-items:flex-start;flex-direction:column}.page-cta h2{font-size:36px}.page-intro{padding:25px 6% 45px}.page-intro h1{font-size:47px;overflow-wrap:break-word}.breadcrumbs{margin-bottom:35px}.detail-layout{grid-template-columns:1fr;gap:35px}.contact{grid-template-columns:1fr}.footer-nav{max-width:300px}.home-about .portrait img{height:430px}}@media(max-width:380px){.opening-hero h1{font-size:49px}.brand strong{font-size:20px}}
/* Readable body copy and discreet title-band photography */
.lead,.page-lead{font-size:17px}
.about-copy p:not(.eyebrow),.section-heading>p,.studio-teaser p:not(.eyebrow),.contact-intro>p:not(.eyebrow),details p,.detail-layout article>p{font-size:16px}
.area-link p,.steps p{font-size:15px}
.practice-note{font-size:14px}
.service-list li{font-size:16px}
label{font-size:13px}input,select,textarea{font-size:14px}
.form-intro,.form-note{font-size:12px}
.page-intro{position:relative;isolation:isolate;overflow:hidden;background:#eeeee7}
.page-intro::before{content:'';position:absolute;inset:0;z-index:-2;background-image:url('assets/banner-libri.webp');background-size:cover;background-position:center 59%;opacity:.17;filter:saturate(.55)}
.page-intro::after{content:'';position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,#eeeee7d9 0%,#eeeee780 46%,#eeeee700 100%)}
.page-intro.banner-studio::before,.page-intro.banner-sala::before{background-image:url('assets/sala.webp');background-position:center 44%;opacity:.14}
.page-intro.banner-sala::before{background-position:center 65%}
@media(max-width:760px){.lead,.page-lead{font-size:16px}.page-intro::before{background-position:67% center;opacity:.13}.page-intro::after{background:linear-gradient(90deg,#eeeee7bf,#eeeee740)}}
/* Larger reading and action text, clearer banner photographs */
.lead,.page-lead{font-size:19px}
.about-copy p:not(.eyebrow),.section-heading>p,.studio-teaser p:not(.eyebrow),.contact-intro>p:not(.eyebrow),details p,.detail-layout article>p,.service-list li{font-size:18px;line-height:1.75}
.area-link p,.steps p{font-size:17px;line-height:1.75}
.practice-note{font-size:16px}
.button,.text-link,.read-more{font-size:16px;font-weight:500}
.text-link,.read-more{padding-top:7px;padding-bottom:7px}
.button{padding:16px 28px}.button.small{font-size:14px;padding:12px 21px}
nav{font-size:14px}
.detail-layout aside>a:not(.button){font-size:15px}
label{font-size:15px}input,select,textarea{font-size:16px}
.form-intro,.form-note,#form-status{font-size:14px}
.contact-data .email{font-size:16px}
.eyebrow{font-size:12px}.breadcrumbs{font-size:12px}
footer{font-size:14px}footer small{font-size:12px}
.page-intro::before{opacity:.30;filter:saturate(.65)}
.page-intro.banner-studio::before,.page-intro.banner-sala::before{opacity:.27}
.page-intro::after{background:linear-gradient(90deg,#eeeee7d9 0%,#eeeee770 46%,#eeeee700 100%)}
@media(max-width:1100px) and (min-width:761px){nav{font-size:13px;gap:12px}.button.small{font-size:13px;padding:11px 15px}}
@media(max-width:760px){.lead,.page-lead{font-size:18px}.eyebrow{font-size:11px}.page-intro::before{opacity:.25}.page-intro.banner-studio::before,.page-intro.banner-sala::before{opacity:.24}.page-intro::after{background:linear-gradient(90deg,#eeeee7bf,#eeeee740)}nav{font-size:16px}.button.small{font-size:16px}}
/* Distinct title photography */
.page-intro.banner-archi::before{background-image:url('assets/banner-archi.webp');background-position:center 50%}
.page-intro.banner-penna::before{background-image:url('assets/banner-penna.webp');background-position:center 62%}

/* Mobile layout: audience on one line and consistently aligned contact fields. */
@media (max-width: 760px) {
  .audience {
    display: grid;
    grid-template-columns: max-content 4px max-content 4px max-content;
    justify-content: center;
    align-items: center;
    column-gap: clamp(5px, 1.6vw, 12px);
    row-gap: 12px;
    padding: 24px 4%;
  }
  .audience > span { grid-column: 1 / -1; width: auto; }
  .audience > p {
    font-size: clamp(11px, 3.3vw, 18px);
    line-height: 1.5;
    white-space: nowrap;
  }
  .audience > i { margin: 0; }
  .contact > *, #booking, #booking label { min-width: 0; }
  #booking { width: 100%; padding: 28px 20px; }
  #booking .form-grid { grid-template-columns: minmax(0, 1fr); gap: 20px; }
  #booking label { width: 100%; font-size: 16px; line-height: 1.5; }
  #booking input, #booking select, #booking textarea {
    box-sizing: border-box;
    width: 100%;
    max-width: 100%;
    min-width: 0;
    margin-top: 8px;
    padding: 12px;
    font-size: 16px;
    line-height: 1.5;
    border-radius: 8px;
  }
  #booking input, #booking select { height: 52px; }
  #booking input[type="date"] { appearance: none; -webkit-appearance: none; }
  #booking input[type="date"]::-webkit-date-and-time-value { text-align: left; }
  #booking textarea { min-height: 144px; resize: vertical; }
  #booking h3 { font-size: clamp(28px, 7.5vw, 36px); line-height: 1.15; }
  #booking .button { white-space: normal; padding: 14px 16px; }
  .contact-data { width: 100%; align-items: stretch; }
  .contact-data a, .contact-data p { max-width: 100%; overflow-wrap: anywhere; }
}
