
:root{
  --bg:#f7f2eb;--paper:#fffaf4;--ink:#231f1b;--muted:#75695f;
  --line:#ded0c2;--accent:#9b765c;--dark:#241f1b;--max:1280px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--ink);font-family:"Manrope",sans-serif;line-height:1.78}
img{display:block;width:100%;object-fit:cover}
a{color:inherit;text-decoration:none}
.site-header{
  position:sticky;top:0;z-index:30;display:grid;
  grid-template-columns:minmax(220px,290px) 1fr auto;gap:28px;align-items:center;
  min-height:78px;padding:10px 4.5vw;background:rgba(255,250,244,.95);
  border-bottom:1px solid rgba(222,208,194,.8);backdrop-filter:blur(14px)
}
.brand{display:flex;flex-direction:column;line-height:1}
.brand-name{font-family:"Cormorant Garamond",serif;font-size:30px}
.brand-subtitle{margin-top:6px;color:var(--accent);font-size:8px;letter-spacing:.2em;text-transform:uppercase}
.site-header nav{display:flex;justify-content:center;gap:clamp(16px,2vw,29px);font-size:10px;letter-spacing:.13em;text-transform:uppercase}
.site-header nav a{padding:10px 0;border-bottom:1px solid transparent}
.site-header nav a:hover,.site-header nav a.active{border-color:var(--accent)}
.header-cta{padding:13px 18px;background:var(--accent);color:white;font-size:10px;letter-spacing:.09em;text-transform:uppercase}
.menu-toggle{display:none;border:0;background:none;font:inherit;letter-spacing:.12em;text-transform:uppercase}
.mobile-menu{display:none}
.article-hero{position:relative;min-height:680px;display:flex;align-items:flex-end;overflow:hidden}
:is(.article-hero > img, .article-hero > picture img){position:absolute;inset:0;height:100%;object-position:center 42%}
.hero-shade{position:absolute;inset:0;background:linear-gradient(0deg,rgba(20,17,15,.82),rgba(20,17,15,.08) 70%)}
.hero-content{position:relative;z-index:2;width:min(980px,88%);margin:0 auto;padding:100px 0 68px;color:white;text-align:center}
.eyebrow{margin:0 0 14px;color:var(--accent);font-size:10px;font-weight:600;letter-spacing:.18em;text-transform:uppercase}
.eyebrow.light{color:rgba(255,255,255,.78)}
h1,h2,h3{font-family:"Cormorant Garamond",serif;font-weight:500;line-height:1.04}
h1{margin:0 auto 23px;max-width:980px;font-size:clamp(50px,6.3vw,94px);letter-spacing:-.035em}
.hero-lead{max-width:700px;margin:0 auto;color:rgba(255,255,255,.84);font-size:17px}
.article-meta{display:flex;justify-content:center;gap:26px;margin-top:28px;color:rgba(255,255,255,.64);font-size:10px;letter-spacing:.14em;text-transform:uppercase}
.article-shell{width:min(var(--max),88vw);margin:0 auto;padding:90px 0 120px;display:grid;grid-template-columns:240px minmax(0,820px);justify-content:center;gap:75px;align-items:start}
.article-sidebar{position:sticky;top:115px;padding:26px;border:1px solid var(--line);background:rgba(255,250,244,.62)}
.sidebar-label{margin:0 0 16px;color:var(--accent);font-size:10px;letter-spacing:.15em;text-transform:uppercase}
.article-sidebar>a{display:block;padding:10px 0;border-bottom:1px solid var(--line);font-size:12px;line-height:1.35}
.sidebar-note{margin-top:28px;padding:22px 0 4px;border-top:1px solid var(--line);color:var(--ink)}
.sidebar-note span{display:block;color:var(--accent);font-size:9px;font-weight:600;letter-spacing:.13em;line-height:1.45;text-transform:uppercase}
.sidebar-note p{margin:10px 0 14px;color:var(--muted);font-family:"Cormorant Garamond",serif;font-size:22px;line-height:1.12}
.sidebar-note a{display:inline-flex!important;align-items:center;gap:8px;padding:0!important;border:0!important;color:var(--ink);font-size:9px!important;font-weight:600;letter-spacing:.1em;line-height:1.4;text-transform:uppercase}
.sidebar-note a b{font-size:14px;font-weight:400}
.article-content{min-width:0}
.article-content>p,.article-content>ul{max-width:760px;margin-left:auto;margin-right:auto}
.article-content p{font-size:17px;color:var(--muted)}
.article-content .wedding-article-lead{margin-top:0;font-family:"Cormorant Garamond",serif;font-size:31px;line-height:1.3;color:var(--ink)}
.article-content h2{max-width:760px;margin:72px auto 22px;font-size:clamp(36px,4vw,53px)}
.article-content ul{padding-left:24px;color:var(--muted);font-size:17px}
.article-content figure{margin:54px 0}
.article-content figure img{aspect-ratio:16/10}
.article-content figcaption{margin-top:12px;color:var(--muted);font-size:12px;font-style:italic}
.article-content .wedding-article-image-pair{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin:55px 0}
.article-content .wedding-article-image-pair figure{margin:0}
.article-content .wedding-article-image-pair img{aspect-ratio:4/5}
.wedding-price-highlight{max-width:760px;margin:32px auto;padding:28px;text-align:center;border:1px solid var(--line);background:var(--paper)}
.wedding-price-highlight span{display:block;color:var(--accent);font-size:10px;letter-spacing:.16em;text-transform:uppercase}
.wedding-price-highlight strong{display:block;font-family:"Cormorant Garamond",serif;font-size:64px;font-weight:500;line-height:1}
.related{width:min(var(--max),88vw);margin:0 auto;padding:0 0 110px}
.section-title{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:24px;margin-bottom:35px}
.section-title span{height:1px;background:var(--line)}
.section-title h2{margin:0;font-size:18px;letter-spacing:.08em;text-transform:uppercase}
.related-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.related-grid img{aspect-ratio:16/10;margin-bottom:18px}
.related-grid h3{margin:0;font-size:28px}
.final-cta{position:relative;min-height:410px;display:grid;place-items:center;overflow:hidden}
:is(.final-cta > img, .final-cta > picture img){position:absolute;inset:0;height:100%}
.cta-shade{position:absolute;inset:0;background:rgba(34,27,23,.63)}
.cta-copy{position:relative;z-index:2;width:min(780px,88%);text-align:center;color:white}
.cta-copy h2{margin:0 0 14px;font-size:clamp(42px,5vw,70px)}
.cta-copy>p:not(.eyebrow){color:rgba(255,255,255,.78)}
.cta-actions{display:flex;justify-content:center;gap:14px;flex-wrap:wrap;margin-top:25px}
.cta-actions a{padding:13px 23px;font-size:10px;letter-spacing:.1em;text-transform:uppercase}
.cta-actions .primary{background:white;color:var(--ink)}
.cta-actions .secondary{border:1px solid white}
.site-footer{padding:58px 6vw 25px;background:var(--dark);color:rgba(255,255,255,.76)}
.footer-grid{width:min(var(--max),100%);margin:0 auto;display:grid;grid-template-columns:1.2fr .65fr .8fr .8fr .55fr;gap:38px}
.footer-brand{margin:0;font-family:"Cormorant Garamond",serif;font-size:30px;color:white}
.footer-subtitle{margin:4px 0 18px;color:#c7a891;font-size:9px;letter-spacing:.18em;text-transform:uppercase}
.footer-grid>div>p:last-child{max-width:300px;color:rgba(255,255,255,.55);font-size:12px}
.footer-col h3{margin:0 0 14px;color:#c7a891;font-family:"Manrope",sans-serif;font-size:10px;letter-spacing:.14em;text-transform:uppercase}
.footer-col a,.footer-col button{display:block;margin:0 0 9px;padding:0;border:0;background:none;color:rgba(255,255,255,.72);font:inherit;font-size:12px;text-align:left}
.footer-photo img{height:170px;aspect-ratio:3/4}
.footer-bottom{width:min(var(--max),100%);margin:42px auto 0;padding-top:19px;display:flex;justify-content:space-between;gap:18px;border-top:1px solid rgba(255,255,255,.12);color:rgba(255,255,255,.45);font-size:11px}
@media(max-width:1050px){
  .site-header{grid-template-columns:230px 1fr}.header-cta{display:none}
  .article-shell{grid-template-columns:190px minmax(0,720px);gap:45px}
  .footer-grid{grid-template-columns:1.2fr repeat(3,.8fr)}.footer-photo{display:none}
}
@media(max-width:860px){
  .site-header{display:flex;justify-content:space-between}
  .site-header .desktop-navigation{display:none!important}
  .menu-toggle{
    display:block;
    min-height:44px;
    padding:12px 0 12px 18px;
    border-left:1px solid rgba(35,31,27,.22);
    color:var(--ink);
    cursor:pointer;
    font:500 9px/1 "Manrope",sans-serif;
    letter-spacing:.20em;
  }
}
@media(max-width:820px){
  .article-hero{min-height:610px}
  .article-shell{display:block;width:88vw;padding:65px 0 85px}
  .article-sidebar{display:none}
  .article-content .wedding-article-image-pair{grid-template-columns:1fr}
  .related-grid{grid-template-columns:1fr}
  .footer-grid{grid-template-columns:1fr 1fr}
}
@media(max-width:560px){
  .site-header{min-height:65px;padding-inline:5vw}.brand-name{font-size:25px}
  .article-hero{min-height:580px}:is(.article-hero > img, .article-hero > picture img){object-position:60% center}
  .hero-content{padding-bottom:45px}.hero-lead{font-size:15px}
  .article-meta{gap:13px;flex-wrap:wrap}
  .article-content p,.article-content ul{font-size:16px}
  .article-content .wedding-article-lead{font-size:27px}
  .article-content h2{margin-top:58px;font-size:37px}
  .article-content figure{margin:40px 0}
  .wedding-price-highlight strong{font-size:55px}
  .related{width:90vw;padding-bottom:75px}
  .section-title{gap:12px}.section-title h2{font-size:14px}
  .cta-actions{flex-direction:column}.cta-actions a{width:100%}
  .footer-grid{grid-template-columns:1fr}.footer-bottom{flex-direction:column}
}

.sidebar-callout{
  margin-top:28px;
  padding-top:24px;
  border-top:1px solid var(--line);
}
.sidebar-callout-label{
  display:block;
  margin-bottom:9px;
  color:var(--accent);
  font-size:9px;
  letter-spacing:.16em;
  text-transform:uppercase;
}
.sidebar-callout p{
  margin:0 0 13px;
  color:var(--muted);
  font-family:"Cormorant Garamond",serif;
  font-size:22px;
  line-height:1.16;
}
.sidebar-callout a{
  display:inline-flex;
  gap:9px;
  align-items:center;
  font-size:10px;
  letter-spacing:.08em;
  text-transform:uppercase;
}

.article-faq{
  margin:70px 0 20px;
  padding-top:34px;
  border-top:1px solid var(--line);
}
.article-faq > h2{
  margin-top:8px;
}
.faq-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:18px;
  margin-top:26px;
}
.faq-grid article{
  padding:24px;
  background:#f3eee8;
}
.faq-grid h3{
  margin:0 0 10px;
  font-family:"Cormorant Garamond",serif;
  font-size:24px;
  font-weight:500;
}
.faq-grid article{
  font-size:14px;
  line-height:1.7;
}
@media (max-width:700px){
  .faq-grid{grid-template-columns:1fr;}
}

/* Correzioni articolo: fotografie distribuite e formati originali rispettati */
.article-content .article-image{
  margin:38px 0 54px;
}
.article-content .article-image img{
  display:block;
  width:100%;
  height:auto;
  object-fit:contain;
}
.article-content .article-image.portrait{
  max-width:620px;
  margin-left:auto;
  margin-right:auto;
}
.article-content .article-image.portrait img{
  width:auto;
  max-width:100%;
  max-height:820px;
  margin:0 auto;
}
.article-content .article-image.landscape{
  max-width:none;
}
.opening-quotes{
  margin:34px 0 42px;
  padding:22px 26px;
  border-left:2px solid var(--accent);
  background:#f4efe9;
}
.opening-quotes p{
  margin:4px 0;
  font-family:"Cormorant Garamond",serif;
  font-size:25px;
  line-height:1.28;
}
@media (max-width:700px){
  .article-content .article-image.portrait{
    max-width:88%;
  }
  .article-content .article-image{
    margin:30px 0 42px;
  }
}

/* Header e footer uniformati alla pagina Guide */
.brand {
  display: block;
  line-height: normal;
}
.brand img {
  display: block;
  width: min(270px, 100%);
  height: auto;
  object-fit: contain;
}
.site-footer .footer-logo,
.site-footer .footer-brand img,
.site-footer img[alt="Emanuele Baldanzi Wedding Photographer"] {
  display: block;
  width: 270px;
  max-width: 100%;
  height: auto;
  margin-bottom: 18px;
  filter: invert(1);
  opacity: .92 !important;
  object-fit: contain;
}
@media (max-width: 820px) {
  .brand img { width: 220px; }
}
@media (max-width: 560px) {
  .brand img { width: 190px; }
}


/* Articoli correlati interamente cliccabili */
.related-grid > .related-card {
  display: block;
  color: inherit;
}
.related-grid > .related-card article {
  height: 100%;
  cursor: pointer;
  transition: transform .25s ease;
}
.related-grid > .related-card:hover article { transform: translateY(-4px); }
.related-grid > .related-card:focus-visible {
  outline: 2px solid var(--accent);
  outline-offset: 5px;
}

/* Fotografie verticali valorizzate su smartphone */
.article-content figure.portrait {
  width: min(100%, 650px);
  margin-left: auto;
  margin-right: auto;
}
.article-content figure.portrait img {
  width: 100%;
  height: auto;
  aspect-ratio: auto !important;
  object-fit: contain;
}
@media(max-width:820px){
  .article-content figure.portrait {
    width: 100%;
    max-width: none;
  }
  .article-content figure.portrait img {
    width: 100%;
    height: auto;
    max-height: none;
  }
}

/* R7 - menu mobile fullscreen uniforme a Home, Portfolio e Guide */
html.menu-open,
body.menu-open {
  overflow: hidden !important;
  overscroll-behavior: none;
}

@media (max-width: 860px) {
  .mobile-menu {
    position: fixed;
    inset: 0;
    z-index: 5000;
    display: flex;
    min-width: 0;
    min-height: 100vh;
    min-height: 100dvh;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: clamp(10px, 2.8vh, 18px);
    padding: max(92px, calc(72px + env(safe-area-inset-top))) max(24px, env(safe-area-inset-right)) max(38px, env(safe-area-inset-bottom)) max(24px, env(safe-area-inset-left));
    overflow-x: hidden;
    overflow-y: auto;
    overscroll-behavior: contain;
    -webkit-overflow-scrolling: touch;
    background: #201d1a;
    color: #fffaf4;
    visibility: hidden;
    opacity: 0;
    pointer-events: none;
    transform: translate3d(0,-100%,0);
    transition: transform .65s cubic-bezier(.77,0,.18,1), opacity .3s ease, visibility 0s linear .65s;
  }
  .mobile-menu.open {
    visibility: visible;
    opacity: 1;
    pointer-events: auto;
    transform: translate3d(0,0,0);
    transition: transform .65s cubic-bezier(.77,0,.18,1), opacity .3s ease, visibility 0s linear 0s;
  }
  .mobile-menu .mobile-brand {
    position: absolute;
    top: max(20px, env(safe-area-inset-top));
    left: max(22px, env(safe-area-inset-left));
    width: min(230px, 60vw);
    padding: 0;
  }
  .mobile-menu .mobile-brand img {
    display: block;
    width: 100%;
    height: auto;
    object-fit: contain;
    filter: invert(1);
  }
  .mobile-menu .close {
    position: absolute;
    top: max(25px, calc(env(safe-area-inset-top) + 5px));
    right: max(22px, env(safe-area-inset-right));
    padding: 8px 0 8px 12px;
    border: 0;
    background: transparent;
    color: #fffaf4;
    cursor: pointer;
    font: 500 9px/1 "Manrope",sans-serif;
    letter-spacing: .20em;
    text-transform: uppercase;
  }
  .mobile-menu > a:not(.mobile-brand) {
    display: block;
    margin: 0;
    padding: 0;
    color: #fffaf4;
    font-family: "Cormorant Garamond",Georgia,serif;
    font-size: clamp(34px,10.2vw,46px);
    font-weight: 500;
    line-height: .95;
    letter-spacing: -.02em;
    text-align: center;
  }
  .mobile-menu > a:not(.mobile-brand):hover,
  .mobile-menu > a:not(.mobile-brand):focus-visible,
  .mobile-menu > a.active {
    color: #c9b9aa;
  }
  .mobile-menu > a.active { font-style: italic; }
  .menu-toggle:focus-visible,
  .mobile-menu .close:focus-visible,
  .mobile-menu a:focus-visible {
    outline: 1px solid currentColor;
    outline-offset: 5px;
  }
}

@media (max-width: 390px) {
  .mobile-menu > a:not(.mobile-brand) {
    font-size: clamp(32px,9.8vw,42px);
  }
}

@media (max-width: 860px) and (max-height: 620px) {
  .mobile-menu {
    justify-content: flex-start;
    gap: 10px;
    padding-top: max(82px, calc(66px + env(safe-area-inset-top)));
  }
  .mobile-menu > a:not(.mobile-brand) {
    font-size: clamp(27px,7vw,35px);
  }
}

@media (prefers-reduced-motion: reduce) {
  .mobile-menu,
  .mobile-menu.open {
    transition: none !important;
  }
}

@media(max-width:560px){
  .article-content figure.portrait {
    width: calc(100vw - 10vw);
    margin-left: 50%;
    margin-right: 0;
    transform: translateX(-50%);
  }
}

/* Responsive image wrappers */
picture{display:contents}

/* R5 - immagini degli articoli e anteprime correlate su smartphone */
.article-content figure.article-image {
  width: 100%;
  max-width: 100%;
  margin-left: auto;
  margin-right: auto;
  transform: none;
}
.article-content figure.article-image > picture {
  display: block;
  width: 100%;
}
.article-content figure.article-image img {
  display: block;
  width: 100% !important;
  max-width: 100%;
  height: auto !important;
  max-height: none;
  margin: 0;
  aspect-ratio: auto !important;
  object-fit: contain;
}
.article-content figure.article-image.portrait {
  width: min(100%, 620px);
}

/* Due immagini coerenti nello stesso passaggio: affiancate su desktop,
   a tutta larghezza e senza deformazioni su smartphone. */
.article-content figure.article-image-pair {
  width: 100%;
  max-width: 100%;
  margin: 55px 0;
}
.article-content .article-image-pair-grid {
  display: grid;
  grid-template-columns: minmax(0, .82fr) minmax(0, 1.18fr);
  gap: 16px;
  height: clamp(430px, 52vw, 650px);
}
.article-content .article-image-pair-grid picture {
  display: block;
  width: 100%;
  height: 100%;
  overflow: hidden;
  background: #f3eee7;
}
.article-content .article-image-pair-grid img {
  display: block;
  width: 100% !important;
  height: 100% !important;
  margin: 0;
  aspect-ratio: auto !important;
  object-fit: cover;
  object-position: center;
}

@media (max-width: 820px) {
  .article-content figure.article-image-pair {
    margin: 42px 0;
  }
  .article-content .article-image-pair-grid {
    grid-template-columns: 1fr;
    height: auto;
    gap: 12px;
  }
  .article-content .article-image-pair-grid picture {
    height: auto;
    overflow: visible;
  }
  .article-content .article-image-pair-grid img {
    width: 100% !important;
    height: auto !important;
    object-fit: contain;
  }
}

.related-grid > .related-card {
  min-width: 0;
}
.related-grid > .related-card picture {
  display: block;
  width: 100%;
  aspect-ratio: 16 / 10;
  margin-bottom: 18px;
  overflow: hidden;
}
.related-grid > .related-card img {
  display: block;
  width: 100%;
  height: 100% !important;
  max-height: none;
  margin: 0;
  aspect-ratio: auto !important;
  object-fit: cover;
  object-position: center;
}

@media (max-width: 820px) {
  .article-content {
    width: 100%;
    max-width: 100%;
    min-width: 0;
  }
  .article-content figure.article-image,
  .article-content figure.article-image.portrait,
  .article-content figure.article-image.landscape {
    width: 100%;
    max-width: 100%;
    margin-left: auto;
    margin-right: auto;
    transform: none;
  }
}

/* R6 - stessa geometria anche per la guida prezzi, che usa classi legacy */
.article-content > figure.wedding-article-image {
  width: 100%;
  max-width: 100%;
  margin-left: auto;
  margin-right: auto;
  transform: none;
}
.article-content > figure.wedding-article-image > picture {
  display: block;
  width: 100%;
}
.article-content > figure.wedding-article-image img {
  display: block;
  width: 100% !important;
  max-width: 100%;
  height: auto !important;
  max-height: none;
  margin: 0;
  aspect-ratio: auto !important;
  object-fit: contain;
}
.article-content > figure.wedding-article-image-soft {
  width: min(100%, 620px);
}

/* La coppia di immagini resta una griglia uniforme, senza stiramenti. */
.article-content .wedding-article-image-pair > figure > picture {
  display: block;
  width: 100%;
  aspect-ratio: 4 / 5;
  overflow: hidden;
}
.article-content .wedding-article-image-pair > figure img {
  width: 100% !important;
  height: 100% !important;
  margin: 0;
  aspect-ratio: auto !important;
  object-fit: cover;
  object-position: center;
}

@media (max-width: 820px) {
  .article-content > figure.wedding-article-image,
  .article-content > figure.wedding-article-image-wide,
  .article-content > figure.wedding-article-image-soft {
    width: 100%;
    max-width: 100%;
    margin-left: auto;
    margin-right: auto;
    transform: none;
  }
}
