/*
Theme Name: Capture the Moment V1
Theme URI: https://fotos.michaelmilbert.de/
Author: Michael Milbert / CtM
Description: Schlankes Block-Theme für Capture the Moment – Hochzeitsfotografie & Film.
Version: 0.3.69
Requires at least: 6.7
Requires PHP: 8.1
Text Domain: ctm
*/

:root {
  --ctm-header-height: 86px;
  --ctm-gutter: clamp(20px, 4vw, 64px);
}

/* Consistent keyboard focus across navigation, links, forms and accordions. */
:where(a,button,input,select,textarea,summary):focus-visible {
  outline: 3px solid currentColor;
  outline-offset: 3px;
}

/* === CtM 0.3.54 Impressum === */
.ctm-legal-page{background:#f7f5f0;color:#20201e}.ctm-legal-kicker{font-size:.72rem;letter-spacing:.15em;text-transform:uppercase}.ctm-legal-hero{padding:clamp(7rem,14vw,13rem) clamp(1.35rem,7vw,8rem) clamp(5rem,9vw,8rem);border-bottom:1px solid #d9d6cf}.ctm-legal-hero>*,.ctm-legal-content>*{width:min(100%,1200px);margin-inline:auto}.ctm-legal-hero h1{font-size:clamp(4rem,10vw,9rem);line-height:.92;margin:.16em 0}.ctm-legal-hero>p:last-child{max-width:42ch;font-family:var(--wp--preset--font-family--editorial);font-size:clamp(1.35rem,2.5vw,2.25rem);line-height:1.25}.ctm-legal-content{padding:clamp(5rem,10vw,9rem) clamp(1.35rem,7vw,8rem)}.ctm-legal-grid{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;background:#d9d6cf;padding:1px;margin-bottom:clamp(4rem,8vw,7rem)}.ctm-legal-grid>.ctm-legal-card{margin-block-start:0!important;height:100%;box-sizing:border-box}.ctm-legal-card{background:#fff;padding:clamp(2rem,4vw,4rem)}.ctm-legal-card h2,.ctm-legal-section h2{font-size:clamp(2rem,4vw,3.5rem);margin-top:0}.ctm-legal-card p{margin-bottom:0}.ctm-legal-card a{text-decoration:underline}.ctm-legal-section{max-width:760px!important;margin:0 0 clamp(3rem,6vw,5rem)!important}.ctm-legal-section p{line-height:1.75}.ctm-legal-note{padding-top:2rem;border-top:1px solid #d9d6cf;color:#686762;font-size:.9rem}@media(max-width:700px){.ctm-legal-hero{padding-top:6rem}.ctm-legal-grid{grid-template-columns:1fr}.ctm-legal-content{padding-top:4rem}}

/* === CtM 0.3.55 Datenschutz === */
.ctm-privacy-summary{background:#ebe8e1;padding:clamp(2rem,4vw,4rem);margin-bottom:clamp(4rem,8vw,7rem)}.ctm-privacy-summary h2{font-size:clamp(2rem,4vw,3.5rem);margin-top:0}.ctm-privacy-summary ul{padding-left:1.2rem;margin-bottom:0}.ctm-privacy-summary li{margin:.65rem 0}.ctm-privacy-section{max-width:860px!important;margin:0 0 clamp(3.5rem,7vw,6rem)!important;padding-bottom:clamp(3.5rem,7vw,6rem);border-bottom:1px solid #d9d6cf}.ctm-privacy-section h2{font-size:clamp(2.2rem,4.5vw,4rem);margin-top:0}.ctm-privacy-section h3{font-family:var(--wp--preset--font-family--brand);font-size:.78rem;letter-spacing:.13em;text-transform:uppercase;margin-top:2.5rem}.ctm-privacy-section p,.ctm-privacy-section li{line-height:1.75}.ctm-privacy-section a{text-decoration:underline}.ctm-privacy-section:last-of-type{border-bottom:0}

/* === CtM 0.3.56 AGB === */
.ctm-terms-intro{background:#1c1c1a;color:#f7f5f0;padding:clamp(3rem,6vw,6rem);margin-bottom:clamp(4rem,8vw,7rem)}.ctm-terms-intro h2{font-size:clamp(2rem,4vw,3.5rem);max-width:16ch;margin-top:0}.ctm-terms-intro p{max-width:62ch}.ctm-terms-section{display:grid!important;grid-template-columns:minmax(90px,.25fr) minmax(0,1fr);gap:clamp(1.5rem,5vw,6rem);max-width:1000px!important;margin:0 0 clamp(3.5rem,7vw,6rem)!important;padding-bottom:clamp(3.5rem,7vw,6rem);border-bottom:1px solid #d9d6cf}.ctm-terms-number{font-size:.72rem;letter-spacing:.15em;color:#686762}.ctm-terms-copy h2{font-size:clamp(2.2rem,4.5vw,4rem);margin-top:0}.ctm-terms-copy p,.ctm-terms-copy li{line-height:1.75}.ctm-terms-copy li{margin:.55rem 0}.ctm-terms-section:last-of-type{border-bottom:0}@media(max-width:600px){.ctm-terms-section{grid-template-columns:1fr;gap:.6rem}.ctm-terms-number{margin-bottom:0}.ctm-terms-copy h2{margin-top:0}}

/* === CtM 0.3.57 Cookie-Einstellungen === */
.ctm-cookie-status{background:#1c1c1a;color:#f7f5f0;padding:clamp(3rem,6vw,6rem);margin-bottom:clamp(4rem,8vw,7rem)}.ctm-cookie-status-badge{display:inline-block;border:1px solid #77746d;padding:.55rem .75rem;font-size:.7rem;line-height:1;letter-spacing:.14em;text-transform:uppercase}.ctm-cookie-status h2{font-size:clamp(2.4rem,5vw,4.8rem);max-width:15ch;margin:.45em 0}.ctm-cookie-status>p:last-child{max-width:62ch}.ctm-cookie-table{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;background:#d9d6cf;padding:1px;margin-bottom:clamp(4rem,8vw,7rem)}.ctm-cookie-card{background:#fff;padding:clamp(2rem,4vw,4rem)}.ctm-cookie-card h2{font-size:clamp(1.8rem,3vw,2.8rem);margin-top:0}.ctm-cookie-card p{line-height:1.7}.ctm-cookie-label{font-size:.7rem;letter-spacing:.14em;text-transform:uppercase;color:#686762}.ctm-cookie-info{max-width:820px!important;margin:0!important}.ctm-cookie-info h2{font-size:clamp(2.2rem,4.5vw,4rem)}.ctm-cookie-info p{line-height:1.75}.ctm-cookie-info a{text-decoration:underline}@media(max-width:800px){.ctm-cookie-table{grid-template-columns:1fr}}

/* === CtM 0.3.35 Infos === */
.ctm-info-page{background:#f7f5f0;color:#20201e}.ctm-info-kicker,.ctm-info-number{font-family:var(--wp--preset--font-family--brand);font-size:.72rem;letter-spacing:.15em;text-transform:uppercase}.ctm-info-hero{min-height:92svh;display:flex;align-items:flex-end;color:#fff;background-color:#1c1c1a;background-image:linear-gradient(180deg,rgba(15,15,14,.05) 10%,rgba(15,15,14,.72) 100%),url("assets/images/weddings/annika-sohayb/20250906_Hochzeit_FARBE_331.jpg");background-size:cover;background-position:center}.ctm-info-hero-copy{width:min(100%,1400px);margin-inline:auto;padding:clamp(2rem,6vw,6rem)}.ctm-info-hero h1{font-size:clamp(3.8rem,8vw,8rem);line-height:.94;max-width:11ch;margin:.12em 0}.ctm-info-hero-copy>p:last-child{font-family:var(--wp--preset--font-family--editorial);font-size:clamp(1.4rem,2.5vw,2.3rem);max-width:38ch}.ctm-info-intro{padding:clamp(6rem,11vw,11rem) clamp(1.35rem,7vw,8rem)}.ctm-info-intro h2,.ctm-info-faq h2{font-size:clamp(3rem,6vw,6rem);line-height:1;max-width:15ch}.ctm-info-intro>p:last-child{max-width:62ch}.ctm-info-steps{display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr));background:#d9d6cf;gap:1px;padding:1px}.ctm-info-step{background:#fff;padding:clamp(2.25rem,4vw,4.5rem)}.ctm-info-step h3{font-family:var(--wp--preset--font-family--editorial);font-size:clamp(2rem,3vw,3.2rem);font-weight:400}.ctm-info-number{color:#8e8b84}.ctm-info-split{display:grid!important;grid-template-columns:1.08fr .92fr;min-height:88svh;background:#1c1c1a;color:#f7f5f0}.ctm-info-image{margin:0;height:100%}.ctm-info-image img{width:100%;height:100%;object-fit:cover}.ctm-info-split-copy{align-self:center;padding:clamp(3rem,7vw,8rem)}.ctm-info-split h2,.ctm-info-security h2,.ctm-info-included h2,.ctm-info-cta h2{font-size:clamp(3rem,6vw,6rem);line-height:1}.ctm-info-split-copy a,.ctm-info-cta a{color:inherit}.ctm-info-security{padding:clamp(7rem,13vw,13rem) clamp(1.35rem,7vw,8rem);text-align:center}.ctm-info-security h2{max-width:15ch;margin-inline:auto}.ctm-info-security>p:last-child{max-width:62ch;margin-inline:auto}.ctm-info-included{display:grid!important;grid-template-columns:1fr 1fr;gap:clamp(3rem,8vw,10rem);padding:clamp(6rem,10vw,10rem) clamp(1.35rem,7vw,8rem);background:#ebe8e1}.ctm-info-list p{border-top:1px solid #bdb9b0;padding:1.15rem 0;margin:0}.ctm-info-list p:last-child{border-bottom:1px solid #bdb9b0}.ctm-info-faq{padding:clamp(7rem,12vw,12rem) clamp(1.35rem,7vw,8rem)}.ctm-info-faq>.wp-block-details{border-top:1px solid #bdb9b0;padding:1.5rem 0;margin:0}.ctm-info-faq>.wp-block-details:last-child{border-bottom:1px solid #bdb9b0}.ctm-info-faq summary{font-family:var(--wp--preset--font-family--editorial);font-size:clamp(1.5rem,2.4vw,2.3rem);cursor:pointer}.ctm-info-faq details p{max-width:65ch;padding:.75rem 0 0}.ctm-info-cta{background:#1c1c1a;color:#f7f5f0;text-align:center;padding:clamp(7rem,12vw,12rem) 1.35rem}.ctm-info-cta h2{max-width:14ch;margin-inline:auto}.ctm-info-cta p{max-width:52ch;margin-inline:auto}@media(max-width:900px){.ctm-info-steps{grid-template-columns:repeat(2,minmax(0,1fr))}.ctm-info-split,.ctm-info-included{grid-template-columns:1fr}.ctm-info-image{height:auto;aspect-ratio:4/5}}@media(max-width:600px){.ctm-info-hero{min-height:78svh;background-position:58% center}.ctm-info-hero-copy{padding:2rem 1.35rem}.ctm-info-steps{grid-template-columns:1fr}.ctm-info-step{padding:2.5rem 1.35rem}.ctm-info-split-copy,.ctm-info-included{padding:4rem 1.35rem}}

/* === CtM 0.3.22 Über Michael === */
.ctm-about-kicker{font-size:.72rem;letter-spacing:.13em;text-transform:uppercase}.ctm-about-hero{position:relative;min-height:92svh;display:flex;align-items:flex-end;overflow:hidden;color:#fff;background:#171715}.ctm-about-hero:after{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(180deg,rgba(0,0,0,.05) 25%,rgba(0,0,0,.78) 100%)}.ctm-about-hero-image,.ctm-about-hero-image img{position:absolute;inset:0;width:100%;height:100%;margin:0;object-fit:cover;object-position:50% 30%}.ctm-about-hero-copy{position:relative;z-index:2;width:min(100%,1400px);margin-inline:auto;padding:clamp(2rem,6vw,6rem)}.ctm-about-hero-copy h1{font-size:clamp(4rem,9vw,8rem);margin:.1em 0}.ctm-about-hero-copy>p:last-child{font-family:var(--wp--preset--font-family--editorial);font-size:clamp(1.5rem,3vw,2.6rem);max-width:28ch}.ctm-about-intro,.ctm-about-presence{gap:clamp(2.5rem,7vw,8rem);align-items:center;padding:clamp(5rem,10vw,10rem) clamp(1.4rem,5vw,5rem)}.ctm-about-intro h2,.ctm-about-presence h2{font-size:clamp(2.7rem,5.5vw,5.2rem);max-width:13ch}.ctm-about-intro p,.ctm-about-presence p{max-width:60ch}.ctm-about-working img,.ctm-about-presence img{width:100%;height:clamp(520px,65vw,850px);object-fit:cover}.ctm-about-quote{background:#1c1c1a;color:#f7f5f0;padding:clamp(6rem,12vw,12rem) clamp(1.4rem,8vw,9rem)}.ctm-about-quote h2{font-size:clamp(3rem,7vw,6.5rem);max-width:18ch}.ctm-about-presence{padding-bottom:clamp(6rem,12vw,12rem)}
@media(max-width:700px){.ctm-about-hero{min-height:72svh}.ctm-about-hero-copy{padding:2rem 1.35rem}.ctm-about-intro,.ctm-about-presence{grid-template-columns:1fr!important;padding:4.5rem 1.35rem}.ctm-about-working img,.ctm-about-presence img{height:auto;aspect-ratio:4/5}.ctm-about-presence figure{order:2}.ctm-about-presence>.wp-block-group{order:1}}

/* CtM 0.3.28: reliable About hero preview in the Site Editor. */
.ctm-about-hero{background-color:#171715;background-image:url("assets/images/ueber-michael-v0327/IMG-20230626-WA0001-edited.jpg");background-size:cover;background-position:50% 30%;background-repeat:no-repeat}
.ctm-review-card-other{background:#efede7}

/* === CtM 0.3.31 Reviews === */
.ctm-reviews-hero{position:relative;min-height:92svh;display:flex;align-items:flex-end;color:#fff;background-color:#171715;background-image:linear-gradient(180deg,rgba(17,17,15,.08) 20%,rgba(17,17,15,.68) 100%),url("assets/images/weddings/20250621_HOCHZEIT_FARBE_424.jpg");background-size:cover;background-position:center;background-repeat:no-repeat}
.ctm-reviews-kicker{font-size:.72rem;letter-spacing:.14em;text-transform:uppercase}.ctm-reviews-hero-copy{width:min(100%,1400px);margin-inline:auto;padding:clamp(2rem,6vw,6rem)}.ctm-reviews-hero h1{font-size:clamp(4rem,9vw,8.5rem);max-width:12ch;margin:.12em 0}.ctm-reviews-hero-copy>p:last-child{font-family:var(--wp--preset--font-family--editorial);font-size:clamp(1.5rem,3vw,2.6rem);max-width:35ch}.ctm-reviews-intro{padding:clamp(6rem,12vw,11rem) clamp(1.35rem,7vw,8rem)}.ctm-reviews-intro h2{font-size:clamp(3rem,6vw,6rem);max-width:16ch}.ctm-reviews-intro>p:last-child{max-width:65ch}.ctm-review-feature{gap:clamp(2.5rem,7vw,8rem);align-items:center;padding:clamp(2rem,6vw,6rem)}.ctm-review-feature figure{margin:0;height:clamp(550px,72vw,920px)}.ctm-review-feature img{width:100%;height:100%;object-fit:cover}.ctm-review-copy blockquote{border:0;padding:0;margin:0}.ctm-review-copy blockquote p{font-family:var(--wp--preset--font-family--editorial);font-size:clamp(2rem,4vw,4rem);line-height:1.1}.ctm-review-copy cite,.ctm-review-card cite{font-family:var(--wp--preset--font-family--brand);font-size:.78rem;font-style:normal;letter-spacing:.12em;text-transform:uppercase}.ctm-review-stars{font-family:var(--wp--preset--font-family--brand)!important;font-size:.8rem!important;letter-spacing:.24em}.ctm-reviews-wall{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;max-width:none!important;background:#d9d6cf;padding:1px}.ctm-review-card{background:#f7f5f0;border:0;margin:0;padding:clamp(3rem,7vw,7rem)}.ctm-review-card>p:not(.ctm-review-stars){font-family:var(--wp--preset--font-family--editorial);font-size:clamp(1.8rem,3.3vw,3.2rem);line-height:1.12}.ctm-review-feature-reverse h2{font-size:clamp(2.8rem,5.5vw,5.5rem);max-width:13ch}.ctm-reviews-google{text-align:center;padding:clamp(7rem,12vw,12rem) 1.35rem}.ctm-reviews-google h2{font-size:clamp(3rem,6vw,6rem);max-width:15ch;margin-inline:auto}.ctm-reviews-google p{max-width:52ch;margin-inline:auto}.ctm-reviews-google .wp-block-buttons,.ctm-reviews-cta .wp-block-buttons{justify-content:center;margin-top:2rem}.ctm-reviews-cta{background:#1c1c1a;color:#f7f5f0;text-align:center;padding:clamp(7rem,12vw,12rem) 1.35rem}.ctm-reviews-cta h2{font-size:clamp(3rem,7vw,6.5rem);max-width:14ch;margin-inline:auto}.ctm-reviews-cta p{max-width:52ch;margin-inline:auto}.ctm-reviews-cta .wp-block-button__link{background:#f7f5f0!important;color:#20201e!important}@media(max-width:700px){.ctm-reviews-hero{min-height:78svh!important}.ctm-reviews-hero-copy{padding:2rem 1.35rem}.ctm-reviews-wall{grid-template-columns:1fr}.ctm-review-feature{grid-template-columns:1fr!important;padding:1.35rem}.ctm-review-feature figure{height:auto;aspect-ratio:4/5}.ctm-review-feature-reverse>.wp-block-group{order:2}.ctm-review-feature-reverse>figure{order:1}}
.ctm-about-cta{background:#1c1c1a;color:#f7f5f0;text-align:center;padding:clamp(5rem,10vw,9rem) 1.35rem}.ctm-about-cta h2{font-size:clamp(2.8rem,6vw,5.5rem);max-width:15ch;margin-inline:auto}.ctm-about-cta p{max-width:52ch;margin-inline:auto}.ctm-about-cta .wp-block-buttons{justify-content:center;margin-top:2rem}.ctm-about-cta .wp-block-button__link{background:#f7f5f0!important;color:#20201e!important;border:1px solid #f7f5f0!important}

/* === CtM 0.3.21 Locations / Villa Girmes === */
.ctm-location-kicker{font-size:.72rem;letter-spacing:.13em;text-transform:uppercase}.ctm-location-intro{padding:clamp(7rem,12vw,11rem) clamp(1.4rem,6vw,7rem) clamp(4rem,7vw,7rem)}.ctm-location-intro h1{max-width:14ch;font-size:clamp(3.2rem,7vw,6.8rem)}.ctm-location-intro>p:last-child{max-width:62ch}.ctm-location-feature,.ctm-villa-hero{position:relative;min-height:85svh;display:flex;align-items:flex-end;overflow:hidden;color:#fff}.ctm-villa-hero{min-height:92svh}.ctm-location-feature:after,.ctm-villa-hero:after{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(180deg,rgba(0,0,0,.05) 30%,rgba(0,0,0,.72) 100%)}.ctm-location-feature-image,.ctm-location-feature-image img,.ctm-villa-hero-image,.ctm-villa-hero-image img{position:absolute;inset:0;width:100%;height:100%;margin:0;object-fit:cover}.ctm-location-feature-copy,.ctm-villa-hero-copy{position:relative;z-index:2;width:min(100%,1400px);margin-inline:auto;padding:clamp(2rem,6vw,6rem)}.ctm-location-feature-copy h2{font-size:clamp(3.6rem,8vw,8rem);margin:.15em 0}.ctm-location-feature-copy p{max-width:54ch}.ctm-location-feature-copy a{color:#fff}.ctm-villa-hero-copy h1{font-size:clamp(4.3rem,10vw,9rem);margin:.1em 0}.ctm-villa-hero-copy>p:last-child{font-family:var(--wp--preset--font-family--editorial);font-size:clamp(1.6rem,3vw,2.7rem);max-width:24ch}.ctm-villa-story,.ctm-villa-facts{padding:clamp(5rem,10vw,10rem) clamp(1.4rem,5vw,5rem)}.ctm-villa-story h2,.ctm-villa-facts h2{max-width:16ch;font-size:clamp(2.8rem,6vw,5.5rem)}.ctm-villa-story>p:not(.ctm-location-kicker){max-width:66ch}.ctm-villa-gallery{gap:clamp(.5rem,1.2vw,1rem);padding-inline:clamp(.5rem,2vw,2rem)}.ctm-villa-gallery figure{margin:0;height:clamp(330px,48vw,720px)}.ctm-villa-gallery img{width:100%;height:100%;object-fit:cover}.ctm-villa-night{position:relative;min-height:85svh;display:flex;align-items:flex-end;overflow:hidden;color:#fff;background:#111}.ctm-villa-night:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 35%,rgba(0,0,0,.78))}.ctm-villa-night figure,.ctm-villa-night img{position:absolute;inset:0;width:100%;height:100%;margin:0;object-fit:cover}.ctm-villa-night-copy{position:relative;z-index:2;width:min(100%,1400px);margin-inline:auto;padding:clamp(2rem,6vw,6rem)}.ctm-villa-night-copy h2{max-width:13ch;font-size:clamp(3rem,7vw,6.5rem)}.ctm-villa-night-copy p{max-width:55ch}.ctm-villa-facts ul{max-width:62ch;padding-left:1.2em}.ctm-villa-facts li{margin:.7em 0}
@media(max-width:700px){.ctm-location-feature,.ctm-villa-hero{min-height:72svh}.ctm-location-feature-copy,.ctm-villa-hero-copy,.ctm-villa-night-copy{padding:2rem 1.35rem}.ctm-villa-gallery{grid-template-columns:1fr!important}.ctm-villa-gallery figure{height:120vw;max-height:620px}.ctm-villa-night{min-height:70svh}}
html { scroll-behavior: smooth; }
body { text-rendering: optimizeLegibility; }
a { text-underline-offset: .18em; }
body { overflow-x: clip; }

/* Wedding overview */
.ctm-weddings-overview {
  background: var(--wp--preset--color--paper, #f7f5f0);
  color: var(--wp--preset--color--ink, #20201e);
}
.ctm-weddings-overview-intro {
  box-sizing: border-box;
  min-height: 58svh;
  display: flex;
  align-items: flex-end;
  padding: clamp(5rem, 10vh, 8rem) var(--ctm-gutter) clamp(4rem, 8vh, 6rem) !important;
}
.ctm-weddings-overview-intro > * { width: min(100%, 1400px); margin-inline: auto !important; }
.ctm-weddings-overview-kicker,
.ctm-weddings-card-number,
.ctm-weddings-card-couple {
  margin: 0;
  font-size: .72rem;
  line-height: 1.4;
  letter-spacing: .16em;
  text-transform: uppercase;
}
.ctm-weddings-overview-intro h1 {
  max-width: 12ch;
  margin: .8rem 0 1.2rem;
  font-size: clamp(3.4rem, 8vw, 8rem);
  line-height: .9;
  text-wrap: balance;
}
.ctm-weddings-overview-lead { max-width: 660px; font-size: clamp(1.05rem, 1.6vw, 1.35rem); }
.ctm-weddings-grid {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 2px;
  background: var(--wp--preset--color--ink, #20201e);
}
.ctm-weddings-card.wp-block-cover {
  min-height: 76svh;
  padding: 0;
  align-items: flex-end;
}
.ctm-weddings-card:first-child,
.ctm-weddings-card:last-child { grid-column: 1 / -1; min-height: 92svh; }
.ctm-weddings-card .wp-block-cover__background {
  opacity: 1 !important;
  background: linear-gradient(180deg, rgba(20,20,18,.02) 32%, rgba(20,20,18,.78) 100%) !important;
}
.ctm-weddings-card .wp-block-cover__inner-container { width: 100%; }
.ctm-weddings-card-copy {
  box-sizing: border-box;
  width: 100%;
  padding: clamp(2rem, 5vw, 4.5rem) !important;
}
.ctm-weddings-card-number { opacity: .72; margin-bottom: .6rem; }
.ctm-weddings-card-couple { font-weight: 600; }
.ctm-weddings-card h2 {
  max-width: 11ch;
  margin: .5rem 0 1.2rem;
  font-size: clamp(2.4rem, 4.6vw, 5.2rem);
  line-height: .94;
  text-wrap: balance;
}
.ctm-weddings-card a { color: inherit; }
.ctm-weddings-card-link {
  display: inline-block;
  padding-bottom: .35rem;
  border-bottom: 1px solid rgba(247,245,240,.65);
  font-size: .72rem;
  letter-spacing: .12em;
  text-transform: uppercase;
}
.ctm-weddings-overview-cta {
  padding: clamp(5rem, 12vw, 10rem) var(--ctm-gutter) !important;
  text-align: center;
}
.ctm-weddings-overview-cta h2 { font-size: clamp(2.5rem, 5vw, 5rem); line-height: .95; }
@media (max-width: 760px) {
  .ctm-weddings-overview-intro {
    min-height: 0;
    padding: clamp(4rem, 12vw, 5rem) var(--ctm-gutter) clamp(4rem, 11vw, 4.75rem) !important;
  }
  .ctm-weddings-grid { grid-template-columns: 1fr; }
  .ctm-weddings-card:first-child,
  .ctm-weddings-card:last-child { grid-column: auto; }
  .ctm-weddings-card.wp-block-cover,
  .ctm-weddings-card:first-child,
  .ctm-weddings-card:last-child { min-height: 78svh; }
}

/* Foto & Film page */
.ctm-media-page { background:#1c1c1a; color:#f7f5f0; }
.ctm-media-hero { position:relative; min-height:92svh; display:flex; align-items:flex-end; overflow:hidden; }
.ctm-media-hero::after { content:""; position:absolute; inset:0; z-index:1; background:linear-gradient(180deg,rgba(20,20,18,.04) 25%,rgba(20,20,18,.86) 100%); pointer-events:none; }
.ctm-media-hero-image { position:absolute; inset:0; width:100%; height:100%; margin:0; }
.ctm-media-hero-image img { width:100%; height:100%; object-fit:cover; object-position:50% 50%; }
.ctm-media-hero-copy {
  position:relative;
  z-index:2;
  box-sizing:border-box;
  width:min(100%,1400px);
  margin-inline:auto;
  padding:clamp(3rem,7vw,6rem) var(--ctm-gutter) clamp(5rem,11vh,9rem) !important;
}
.ctm-media-kicker { margin:0; font-size:.72rem; letter-spacing:.16em; text-transform:uppercase; }
.ctm-media-hero h1 { max-width:12ch; margin:.65rem 0 1rem; font-size:clamp(3.4rem,7.2vw,7.6rem); line-height:.9; }
.ctm-media-hero-lead { max-width:650px; font-size:clamp(1.05rem,1.6vw,1.35rem); }
.ctm-media-intro { padding:clamp(5rem,12vw,10rem) var(--ctm-gutter) !important; }
.ctm-media-intro-grid { display:grid !important; grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr); gap:clamp(3rem,9vw,10rem); align-items:start; }
.ctm-media-intro h2,.ctm-media-chapter h2,.ctm-media-combination h2 { font-size:clamp(2.8rem,5.5vw,6rem); line-height:.92; }
.ctm-media-intro-copy { max-width:640px; font-size:clamp(1.05rem,1.35vw,1.25rem); }
.ctm-media-chapter { min-height:82svh; display:flex; align-items:flex-end; padding:clamp(3rem,7vw,6rem) var(--ctm-gutter) !important; }
.ctm-media-chapter-photo { background:#f7f5f0; color:#20201e; }
.ctm-media-chapter-film { background:#262624; }
.ctm-media-chapter-grid { width:min(100%,1400px); margin-inline:auto !important; display:grid !important; grid-template-columns:1.1fr .9fr; gap:clamp(3rem,8vw,9rem); align-items:end; }
.ctm-media-chapter-image img { width:100%; max-height:72svh; object-fit:cover; }
.ctm-media-chapter-copy { max-width:580px; padding-bottom:clamp(1rem,4vw,4rem); }
.ctm-media-feature-list { margin-top:2rem; padding-top:1.5rem; border-top:1px solid currentColor; }
.ctm-media-feature-list p { margin:.6rem 0; }
.ctm-media-combination { padding:clamp(6rem,14vw,12rem) var(--ctm-gutter) !important; text-align:center; }
.ctm-media-combination > * { max-width:950px !important; }
.ctm-media-combination p { max-width:680px; margin-inline:auto; }
.ctm-media-cta { background:#f7f5f0; color:#20201e; padding:clamp(5rem,12vw,10rem) var(--ctm-gutter) !important; text-align:center; }
.ctm-media-cta h2 { font-size:clamp(2.7rem,5vw,5.5rem); line-height:.94; }
@media (max-width:800px) {
  .ctm-media-intro-grid,.ctm-media-chapter-grid { grid-template-columns:1fr; }
  .ctm-media-chapter { min-height:auto; }
  .ctm-media-chapter-film .ctm-media-chapter-image { order:2; }
}
.wp-site-blocks { overflow: visible; }

/* Einzelreportage – Annika & Sohayb */
.ctm-wedding-detail { background:#f7f5f0; }
.ctm-story-cover { min-height:calc(100svh - var(--ctm-header-height)); }
.ctm-story-cover .wp-block-cover__background { background:linear-gradient(180deg,rgba(0,0,0,.02) 35%,rgba(0,0,0,.64) 100%)!important; opacity:1!important; }
.ctm-story-cover-copy { width:min(1380px,100%); margin:0 auto; padding:clamp(28px,5vw,72px); align-self:flex-end; }
.ctm-story-kicker,.ctm-story-meta { font-family:var(--wp--preset--font-family--brand); font-size:.72rem; font-weight:600; letter-spacing:.13em; text-transform:uppercase; }
.ctm-story-cover h1 { max-width:10ch; margin:.15em 0; font-size:clamp(3.4rem,8vw,8.2rem); line-height:.82; color:#fff; }
.ctm-story-intro { padding:clamp(72px,11vw,150px) var(--ctm-gutter); }
.ctm-story-intro-inner { max-width:920px; margin:0 auto; text-align:center; }
.ctm-story-intro h2 { font-size:clamp(2.8rem,6vw,5.5rem); margin:.2em auto .4em; }
.ctm-story-intro p:not(.ctm-story-kicker) { max-width:700px; margin-inline:auto; font-size:clamp(1.1rem,1.6vw,1.35rem); }
.ctm-story-gallery { padding:0 var(--ctm-gutter) clamp(80px,10vw,150px); }
.ctm-story-gallery > * { margin-block:clamp(20px,4vw,64px); }
.ctm-story-gallery figure { margin-top:0; margin-bottom:0; overflow:hidden; background:#ece9e2; }
.ctm-story-gallery img { width:100%; height:100%; object-fit:cover; display:block; }
.ctm-story-wide img { aspect-ratio:16/9; }
.ctm-story-pair { gap:clamp(16px,3vw,48px); align-items:stretch!important; }
.ctm-story-pair figure,.ctm-story-pair .wp-block-image { height:100%; }
.ctm-story-pair img { aspect-ratio:4/5; }
.ctm-story-pair--portrait img { aspect-ratio:2/3; }
.ctm-story-quote { max-width:980px; padding:clamp(70px,10vw,140px) 0; margin-inline:auto!important; text-align:center; }
.ctm-story-quote p { font-family:var(--wp--preset--font-family--editorial); font-size:clamp(2.5rem,5.8vw,5.4rem); line-height:.95; }
.ctm-story-finale { position:relative; }
.ctm-story-finale img { aspect-ratio:16/10; }
.ctm-story-back { padding:0 var(--ctm-gutter) clamp(70px,9vw,120px); text-align:center; }
@media(max-width:700px){
  .ctm-story-cover { min-height:82svh; }
  .ctm-story-cover h1 { font-size:clamp(3.2rem,18vw,5.3rem); }
  .ctm-story-gallery { padding-inline:14px; }
  .ctm-story-pair { gap:14px; }
  .ctm-story-pair:not(.is-not-stacked-on-mobile) { display:grid; grid-template-columns:1fr; }
  .ctm-story-wide img,.ctm-story-finale img { aspect-ratio:4/5; }
}

/* Header */
.ctm-header {
  position: sticky;
  top: 0;
  z-index: 100;
  min-height: var(--ctm-header-height);
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
}
.admin-bar .ctm-header { top: 32px; }
.ctm-brand-link { display: inline-flex; align-items: center; flex: 0 0 auto; line-height: 0; }
.ctm-brand-link .ctm-logo { display: block; height: auto; }
.ctm-logo-desktop { width: clamp(220px, 23vw, 320px); max-height: 42px; }
.ctm-logo-mobile { display: none !important; width: 118px; max-height: 30px; }
.ctm-header-actions { margin-left: auto; }
.ctm-header .wp-block-navigation { margin: 0; }
.ctm-header .wp-block-navigation-item__content { white-space: nowrap; }
.ctm-header-cta .wp-block-button__link { white-space: nowrap; }


/* WordPress mobile navigation overlay must escape the page/hero stacking context. */
.ctm-header .wp-block-navigation__responsive-container.is-menu-open {
  position: fixed !important;
  inset: 0 !important;
  width: 100vw !important;
  max-width: none !important;
  height: 100dvh !important;
  z-index: 999999 !important;
  background: var(--wp--preset--color--paper) !important;
  color: var(--wp--preset--color--ink) !important;
  padding: clamp(5rem, 12vw, 7rem) var(--ctm-gutter) 2rem !important;
  overflow-y: auto !important;
}
.ctm-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content {
  align-items: flex-start !important;
  justify-content: flex-start !important;
  gap: 1.25rem !important;
  width: 100% !important;
}
.ctm-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container {
  align-items: flex-start !important;
  gap: .95rem !important;
  width: 100% !important;
}
.ctm-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item {
  width: 100% !important;
}
.ctm-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content {
  display: block !important;
  width: 100% !important;
  padding: .55rem 0 !important;
  font-size: clamp(1.15rem, 4vw, 1.6rem) !important;
  letter-spacing: .04em !important;
}
.ctm-header .wp-block-navigation__responsive-container-close {
  top: 1.35rem !important;
  right: var(--ctm-gutter) !important;
  z-index: 1000000 !important;
}
.admin-bar .ctm-header .wp-block-navigation__responsive-container.is-menu-open {
  top: 32px !important;
  height: calc(100dvh - 32px) !important;
}
@media (max-width: 782px) {
  .admin-bar .ctm-header .wp-block-navigation__responsive-container.is-menu-open {
    top: 46px !important;
    height: calc(100dvh - 46px) !important;
  }
}

/* Hero */
.ctm-hero {
  min-height: min(820px, calc(100svh - var(--ctm-header-height)));
  display: flex;
  align-items: center;
  position: relative;
  isolation: isolate;
}
.ctm-hero .wp-block-cover__image-background {
  object-position: 58% 50%;
}
.ctm-hero::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 0;
  background: linear-gradient(
    90deg,
    rgba(247,245,240,.98) 0%,
    rgba(247,245,240,.94) 23%,
    rgba(247,245,240,.72) 41%,
    rgba(247,245,240,.22) 60%,
    rgba(247,245,240,0) 76%
  );
  pointer-events: none;
}
.ctm-hero > .wp-block-cover__inner-container { position: relative; z-index: 1; width: 100%; }
.ctm-hero-content { width: min(100%, 1400px); }
.ctm-hero-copy { max-width: 660px; }
.ctm-hero h1 {
  max-width: 12.5ch;
  text-wrap: balance;
  margin-bottom: 1.25rem;
}
.ctm-hero .ctm-hero-subline { margin-top: 0; color: var(--wp--preset--color--ink); }
.ctm-button-outline .wp-block-button__link { background: transparent !important; border: 1px solid currentColor; }
.ctm-button-outline-light .wp-block-button__link { background: rgba(247,245,240,.2) !important; border: 1px solid currentColor; }

.ctm-dark { background: var(--wp--preset--color--dark); color: var(--wp--preset--color--paper); }
.ctm-section { padding-block: clamp(4.5rem, 9vw, 9rem); }
.ctm-reading { max-width: 720px; }
.ctm-footer { border-top: 1px solid var(--wp--preset--color--line); }
.ctm-footer .ctm-logo-desktop { width: clamp(190px, 22vw, 280px); max-height: 38px; }
.ctm-footer .ctm-logo-mobile { width: 112px; max-height: 30px; }

/* Tablet: keep CTA visible, collapse navigation earlier. */
@media (max-width: 1120px) {
  .ctm-header { --ctm-header-height: 78px; }
  .ctm-logo-desktop { width: clamp(190px, 24vw, 255px); max-height: 36px; }
  .ctm-header .wp-block-navigation__responsive-container-open { display: flex !important; }
  .ctm-header .wp-block-navigation__responsive-container:not(.is-menu-open) { display: none !important; }
  .ctm-header .wp-block-navigation__responsive-container.is-menu-open { display: flex !important; }
  .ctm-hero { min-height: 72svh; }
  .ctm-hero .wp-block-cover__image-background { object-position: 64% 50%; }
  .ctm-hero::after {
    background: linear-gradient(90deg, rgba(247,245,240,.98) 0%, rgba(247,245,240,.92) 32%, rgba(247,245,240,.60) 54%, rgba(247,245,240,.08) 78%);
  }
  .ctm-hero-copy { max-width: 610px; }
  .ctm-hero h1 { max-width: 14ch; }
}

/* Mobile: compact brand + CTA, crop around couple, keep copy readable. */
@media (max-width: 700px) {
  :root { --ctm-header-height: 70px; }
  .admin-bar .ctm-header { top: 46px; }
  .ctm-header { min-height: var(--ctm-header-height); }
  .ctm-logo-desktop { display: none !important; }
  .ctm-logo-mobile { display: block !important; width: 118px; max-height: 30px; }
  .ctm-footer .ctm-logo-desktop { display: none !important; }
  .ctm-footer .ctm-logo-mobile { display: block !important; width: 112px; max-height: 30px; }
  .ctm-header-cta .wp-block-button__link { padding: .72rem .85rem; font-size: .68rem; }
  .ctm-header-actions { gap: .4rem !important; }
  .ctm-hero {
    min-height: 78svh;
    align-items: end;
  }
  .ctm-hero .wp-block-cover__image-background { object-position: 68% 50%; }
  .ctm-hero::after {
    background: linear-gradient(0deg, rgba(247,245,240,.99) 0%, rgba(247,245,240,.94) 34%, rgba(247,245,240,.62) 55%, rgba(247,245,240,.06) 78%);
  }
  .ctm-hero-copy { max-width: 100%; }
  .ctm-hero h1 { max-width: 11.5ch; }
  .ctm-hero .wp-block-buttons { gap: .65rem; }
}

@media (max-width: 420px) {
  .ctm-logo-mobile { width: 106px; }
  .ctm-header-cta { display: none; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after {
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .01ms !important;
  }
}


/* === CtM V1.3 responsive refinements === */

/* Keep the page fully locked while the native navigation overlay is open. */
html.has-modal-open,
html.has-modal-open body,
body:has(.ctm-header .wp-block-navigation__responsive-container.is-menu-open) {
  overflow: hidden !important;
  overscroll-behavior: none;
}

/* Native mobile menu: stronger vertical rhythm and a clear inquiry CTA. */
.ctm-mobile-menu-cta { display: none; }
.ctm-header .wp-block-navigation__responsive-container.is-menu-open {
  min-height: 100dvh !important;
  overscroll-behavior: contain;
}
.ctm-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content {
  min-height: 100% !important;
  padding-top: clamp(1rem, 4vh, 3rem) !important;
}
.ctm-header .wp-block-navigation__responsive-container.is-menu-open .ctm-mobile-menu-cta {
  display: block !important;
  margin-top: clamp(1.1rem, 4vh, 2.2rem) !important;
  width: auto !important;
}
.ctm-header .wp-block-navigation__responsive-container.is-menu-open .ctm-mobile-menu-cta .wp-block-navigation-item__content {
  display: inline-flex !important;
  width: auto !important;
  border: 1px solid currentColor;
  padding: .95rem 1.25rem !important;
  font-size: .78rem !important;
  letter-spacing: .08em !important;
  text-transform: uppercase;
}

/* Make sure the separate header CTA remains visible on tablet. */
@media (min-width: 701px) and (max-width: 1120px) {
  .ctm-header-actions > .wp-block-buttons,
  .ctm-header-cta {
    display: flex !important;
    flex: 0 0 auto !important;
  }
  .ctm-header-actions { gap: .8rem !important; }
}

/* Mobile hero: intentionally not a shrunken desktop hero. */
@media (max-width: 700px) {
  .ctm-hero {
    min-height: 68svh;
    align-items: flex-end;
  }
  .ctm-hero .wp-block-cover__image-background {
    object-position: 66% 42%;
  }
  .ctm-hero::after {
    background:
      linear-gradient(0deg,
        rgba(247,245,240,.99) 0%,
        rgba(247,245,240,.96) 31%,
        rgba(247,245,240,.72) 48%,
        rgba(247,245,240,.18) 70%,
        rgba(247,245,240,0) 88%),
      linear-gradient(90deg,
        rgba(247,245,240,.38) 0%,
        rgba(247,245,240,.08) 48%,
        rgba(247,245,240,0) 76%);
  }
  .ctm-hero-content {
    padding-top: 2.4rem !important;
    padding-bottom: 2.6rem !important;
  }
  .ctm-hero h1 {
    max-width: 10.2ch;
    font-size: clamp(2.55rem, 10.8vw, 3.3rem) !important;
    line-height: .98 !important;
    margin-bottom: 1rem;
  }
  .ctm-hero .ctm-hero-subline {
    font-size: .98rem;
    line-height: 1.45;
    max-width: 27rem;
  }
  .ctm-hero .wp-block-buttons {
    margin-top: 1.25rem;
    gap: .6rem;
    align-items: stretch;
  }
  .ctm-hero .wp-block-button {
    width: auto;
  }
  .ctm-hero .wp-block-button__link {
    padding: .82rem 1rem;
    font-size: .7rem;
  }
}

/* CtM 0.3.36: continuous desktop dividers around the four info steps. */
@media(min-width:901px){.ctm-info-steps{background:#fff!important;gap:0!important;padding:0!important;border-top:18px solid #d9d6cf;border-bottom:18px solid #d9d6cf}.ctm-info-step{border-right:1px solid #d9d6cf}.ctm-info-step:last-child{border-right:0}}

/* === CtM 0.3.40 Inquiry === */
.ctm-inquiry-page{background:#f7f5f0;color:#20201e}.ctm-inquiry-kicker{font-family:var(--wp--preset--font-family--brand);font-size:.72rem;letter-spacing:.15em;text-transform:uppercase}.ctm-inquiry-hero{min-height:92svh;display:flex;align-items:flex-end;color:#fff;background-color:#1c1c1a;background-image:linear-gradient(180deg,rgba(15,15,14,.08) 10%,rgba(15,15,14,.74) 100%),url("assets/images/weddings/annika-sohayb/20250906_Hochzeit_FARBE_1446.jpg");background-size:cover;background-position:center}.ctm-inquiry-hero-copy{width:min(100%,1400px);margin-inline:auto;padding:clamp(2rem,6vw,6rem)}.ctm-inquiry-hero h1{font-size:clamp(3.5rem,7.5vw,7.6rem);line-height:.94;max-width:15ch;margin:.12em 0}.ctm-inquiry-hero-copy>p:last-child{font-family:var(--wp--preset--font-family--editorial);font-size:clamp(1.35rem,2.5vw,2.2rem);max-width:42ch}.ctm-inquiry-intro{padding:clamp(6rem,11vw,11rem) clamp(1.35rem,7vw,8rem)}.ctm-inquiry-intro h2,.ctm-inquiry-form-heading h2,.ctm-inquiry-next h2{font-size:clamp(3rem,6vw,6rem);line-height:1;max-width:15ch}.ctm-inquiry-intro>p:last-child{max-width:62ch}.ctm-inquiry-form-section{display:grid!important;grid-template-columns:.8fr 1.2fr;gap:clamp(3rem,8vw,10rem);padding:clamp(5rem,9vw,9rem) clamp(1.35rem,7vw,8rem);background:#ebe8e1}.ctm-inquiry-form{max-width:900px}.ctm-inquiry-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 1.5rem}.ctm-inquiry-form p{margin:0 0 1.4rem}.ctm-inquiry-form label{display:block;font-family:var(--wp--preset--font-family--brand);font-size:.76rem;letter-spacing:.09em;text-transform:uppercase}.ctm-inquiry-form input:not([type=checkbox]),.ctm-inquiry-form select,.ctm-inquiry-form textarea{display:block;width:100%;box-sizing:border-box;border:0;border-bottom:1px solid #8e8b84;border-radius:0;background:transparent;color:#20201e;font:inherit;padding:.85rem .1rem}.ctm-inquiry-form input:focus,.ctm-inquiry-form select:focus,.ctm-inquiry-form textarea:focus{outline:2px solid #20201e;outline-offset:3px}.ctm-inquiry-form textarea{border:1px solid #8e8b84;margin-top:.75rem;padding:1rem;resize:vertical}.ctm-inquiry-form button{border:1px solid #20201e;background:#20201e;color:#fff;font-family:var(--wp--preset--font-family--brand);font-size:.78rem;letter-spacing:.1em;text-transform:uppercase;padding:1.15rem 1.8rem;cursor:pointer}.ctm-inquiry-form button:hover{background:transparent;color:#20201e}.ctm-inquiry-consent label{font-family:inherit;font-size:.9rem;letter-spacing:0;text-transform:none;line-height:1.5}.ctm-inquiry-consent input{margin-right:.55rem}.ctm-inquiry-alternative{font-size:.9rem}.ctm-inquiry-trap{position:absolute!important;left:-10000px!important;width:1px!important;height:1px!important;overflow:hidden!important}.ctm-inquiry-message{padding:1.25rem;margin-bottom:2rem;border:1px solid}.ctm-inquiry-success{background:#e5eee3;border-color:#80917c}.ctm-inquiry-error{background:#f5e4df;border-color:#a36d60}.ctm-inquiry-next{display:grid!important;grid-template-columns:1fr 1fr;gap:clamp(3rem,8vw,10rem);padding:clamp(7rem,12vw,12rem) clamp(1.35rem,7vw,8rem);background:#1c1c1a;color:#f7f5f0}.ctm-inquiry-next-steps p{border-top:1px solid #686762;padding:1.4rem 0;margin:0}.ctm-inquiry-next-steps p:last-child{border-bottom:1px solid #686762}@media(max-width:850px){.ctm-inquiry-form-section,.ctm-inquiry-next{grid-template-columns:1fr}.ctm-inquiry-grid{grid-template-columns:1fr}}@media(max-width:600px){.ctm-inquiry-hero{min-height:78svh;background-position:58% center}.ctm-inquiry-hero-copy{padding:2rem 1.35rem}.ctm-inquiry-form-section{padding:4rem 1.35rem}}

/* CtM 0.3.41: centered inquiry form. */
.ctm-inquiry-form-section{display:block!important}.ctm-inquiry-form-heading,.ctm-inquiry-form{width:min(100%,980px);max-width:980px;margin-inline:auto}.ctm-inquiry-form-heading{margin-bottom:clamp(3rem,6vw,5.5rem)}

/* === CtM 0.3.43 Feedback === */
.ctm-feedback-page{background:#f7f5f0;color:#20201e}.ctm-feedback-kicker{font-family:var(--wp--preset--font-family--brand);font-size:.72rem;letter-spacing:.15em;text-transform:uppercase}.ctm-feedback-hero{min-height:88svh;display:flex;align-items:flex-end;color:#fff;background-color:#1c1c1a;background-image:linear-gradient(180deg,rgba(15,15,14,.08) 10%,rgba(15,15,14,.76) 100%),url("assets/images/weddings/jule-marcel/20250621_HOCHZEIT_FARBE_433.jpg");background-size:cover;background-position:center}.ctm-feedback-hero-copy{width:min(100%,1400px);margin-inline:auto;padding:clamp(2rem,6vw,6rem)}.ctm-feedback-hero h1{font-size:clamp(3.5rem,7.5vw,7.5rem);line-height:.94;max-width:13ch;margin:.12em 0}.ctm-feedback-hero-copy>p:last-child{font-family:var(--wp--preset--font-family--editorial);font-size:clamp(1.35rem,2.5vw,2.2rem);max-width:42ch}.ctm-feedback-intro{padding:clamp(6rem,11vw,11rem) clamp(1.35rem,7vw,8rem)}.ctm-feedback-intro h2,.ctm-feedback-form-heading h2,.ctm-feedback-note h2{font-size:clamp(3rem,6vw,6rem);line-height:1;max-width:15ch}.ctm-feedback-intro>p:last-child{max-width:62ch}.ctm-feedback-form-section{display:block!important;padding:clamp(5rem,9vw,9rem) clamp(1.35rem,7vw,8rem);background:#ebe8e1}.ctm-feedback-form-heading,.ctm-feedback-form{width:min(100%,980px);max-width:980px;margin-inline:auto}.ctm-feedback-form-heading{margin-bottom:clamp(3rem,6vw,5.5rem)}.ctm-feedback-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 1.5rem}.ctm-feedback-form p{margin:0 0 1.4rem}.ctm-feedback-form label{display:block;font-family:var(--wp--preset--font-family--brand);font-size:.76rem;letter-spacing:.09em;text-transform:uppercase}.ctm-feedback-form input:not([type=checkbox]),.ctm-feedback-form select,.ctm-feedback-form textarea{display:block;width:100%;box-sizing:border-box;border:0;border-bottom:1px solid #8e8b84;border-radius:0;background:transparent;color:#20201e;font:inherit;padding:.85rem .1rem}.ctm-feedback-form input:focus,.ctm-feedback-form select:focus,.ctm-feedback-form textarea:focus{outline:2px solid #20201e;outline-offset:3px}.ctm-feedback-form textarea{border:1px solid #8e8b84;margin-top:.75rem;padding:1rem;resize:vertical}.ctm-feedback-form button{border:1px solid #20201e;background:#20201e;color:#fff;font-family:var(--wp--preset--font-family--brand);font-size:.78rem;letter-spacing:.1em;text-transform:uppercase;padding:1.15rem 1.8rem;cursor:pointer}.ctm-feedback-form button:hover{background:transparent;color:#20201e}.ctm-feedback-check label{font-family:inherit;font-size:.9rem;letter-spacing:0;text-transform:none;line-height:1.5}.ctm-feedback-check input{margin-right:.55rem}.ctm-feedback-trap{position:absolute!important;left:-10000px!important;width:1px!important;height:1px!important;overflow:hidden!important}.ctm-feedback-message{padding:1.25rem;margin-bottom:2rem;border:1px solid}.ctm-feedback-success{background:#e5eee3;border-color:#80917c}.ctm-feedback-error{background:#f5e4df;border-color:#a36d60}.ctm-feedback-note{background:#1c1c1a;color:#f7f5f0;text-align:center;padding:clamp(7rem,12vw,12rem) 1.35rem}.ctm-feedback-note h2{margin-inline:auto}.ctm-feedback-note>p:last-child{max-width:62ch;margin-inline:auto}@media(max-width:700px){.ctm-feedback-grid{grid-template-columns:1fr}.ctm-feedback-hero{min-height:76svh;background-position:55% center}.ctm-feedback-hero-copy{padding:2rem 1.35rem}.ctm-feedback-form-section{padding:4rem 1.35rem}}

/* CtM 0.3.53: equal stacked actions in the reviews Google section. */
.ctm-reviews-google .wp-block-buttons {
  flex-direction: column;
  align-items: center;
  gap: .75rem;
}
.ctm-reviews-google .wp-block-button {
  width: min(100%, 390px);
}
.ctm-reviews-google .wp-block-button__link {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  min-height: 54px;
  box-sizing: border-box;
  padding: .9rem 1.2rem;
  white-space: normal;
  text-align: center;
  background: var(--wp--preset--color--ink, #20201e) !important;
  color: var(--wp--preset--color--paper, #f7f5f0) !important;
  border: 1px solid var(--wp--preset--color--ink, #20201e) !important;
  transition: background-color .2s ease, color .2s ease, border-color .2s ease;
}
.ctm-reviews-google .wp-block-button__link:hover,
.ctm-reviews-google .wp-block-button__link:focus-visible {
  background: var(--wp--preset--color--paper, #f7f5f0) !important;
  color: var(--wp--preset--color--ink, #20201e) !important;
  border-color: #9b9993 !important;
}

@media (max-width: 480px) {
  .ctm-header .wp-block-navigation__responsive-container.is-menu-open {
    padding-top: 4.5rem !important;
  }
  .ctm-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container {
    gap: .45rem !important;
  }
  .ctm-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content {
    font-size: 1.18rem !important;
    padding: .5rem 0 !important;
  }
  .ctm-hero {
    min-height: 64svh;
  }
  .ctm-hero .wp-block-cover__image-background {
    object-position: 64% 38%;
  }
  .ctm-hero h1 {
    max-width: 9.6ch;
    font-size: clamp(2.35rem, 10.7vw, 2.95rem) !important;
  }
  .ctm-hero .wp-block-buttons {
    flex-direction: column;
    align-items: flex-start;
  }
  .ctm-hero .wp-block-button__link {
    min-width: 0;
  }
}


/* === CtM V1.4 content + mobile menu refinement === */

/* Keep the inquiry action visible on short phone viewports. */
@media (max-width: 700px) {
  .ctm-header .wp-block-navigation__responsive-container.is-menu-open {
    position: fixed !important;
    inset: 0 !important;
    height: 100dvh !important;
    min-height: 100dvh !important;
    overflow-y: auto !important;
    padding-bottom: calc(6.5rem + env(safe-area-inset-bottom)) !important;
  }
  .ctm-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content {
    min-height: auto !important;
    height: auto !important;
    padding-bottom: 2rem !important;
  }
  .ctm-header .wp-block-navigation__responsive-container.is-menu-open .ctm-mobile-menu-cta {
    display: block !important;
    position: fixed !important;
    left: var(--ctm-gutter) !important;
    bottom: calc(1.25rem + env(safe-area-inset-bottom)) !important;
    z-index: 1000001 !important;
    margin: 0 !important;
  }
  .ctm-header .wp-block-navigation__responsive-container.is-menu-open .ctm-mobile-menu-cta .wp-block-navigation-item__content {
    background: var(--wp--preset--color--ink) !important;
    color: var(--wp--preset--color--paper) !important;
    border-color: var(--wp--preset--color--ink) !important;
    padding: .9rem 1.15rem !important;
  }
}

/* Positioning section: editorial image + restrained copy. */
.ctm-positioning {
  padding-block: clamp(5rem, 10vw, 10rem);
}
.ctm-positioning-grid {
  gap: clamp(2.5rem, 6vw, 7rem) !important;
  align-items: center !important;
}
.ctm-positioning-copy {
  max-width: 690px;
}
.ctm-positioning-copy h2 {
  max-width: 15ch;
  text-wrap: balance;
  margin-top: 0;
  margin-bottom: clamp(1.5rem, 3vw, 2.4rem);
}
.ctm-positioning-copy p {
  max-width: 62ch;
  line-height: 1.72;
}
.ctm-positioning-copy p + p {
  margin-top: 1.05rem;
}
.ctm-positioning-kicker {
  margin-top: 1.6rem !important;
  font-size: .78rem;
  line-height: 1.5 !important;
  letter-spacing: .13em;
  text-transform: uppercase;
}
.ctm-positioning-media {
  position: relative;
}
.ctm-positioning-media img {
  width: 100%;
  aspect-ratio: 4 / 5;
  object-fit: cover;
  object-position: 50% 50%;
  display: block;
}
.ctm-positioning-media::after {
  content: "";
  position: absolute;
  inset: auto -1.3rem -1.3rem 1.3rem;
  height: 42%;
  border: 1px solid var(--wp--preset--color--line);
  z-index: -1;
}

@media (max-width: 900px) {
  .ctm-positioning-grid {
    grid-template-columns: 1fr !important;
  }
  .ctm-positioning-media {
    max-width: 720px;
  }
  .ctm-positioning-media img {
    aspect-ratio: 3 / 2;
  }
  .ctm-positioning-copy h2 {
    max-width: 18ch;
  }
}

@media (max-width: 600px) {
  .ctm-positioning {
    padding-block: 4.6rem 5.4rem;
  }
  .ctm-positioning-grid {
    gap: 2.4rem !important;
  }
  .ctm-positioning-media img {
    aspect-ratio: 4 / 5;
    object-position: 48% 50%;
  }
  .ctm-positioning-media::after {
    inset: auto -.6rem -.6rem .6rem;
  }
  .ctm-positioning-copy h2 {
    max-width: 13ch;
  }
}

/* === CtM V2.0: editable full-screen wedding stories === */
.ctm-wedding-stories {
  background: var(--wp--preset--color--ink, #20201e);
  color: var(--wp--preset--color--paper, #f7f5f0);
}
.ctm-wedding-stories-intro {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip: rect(0 0 0 0);
  clip-path: inset(50%);
  white-space: nowrap;
}
.ctm-wedding-hero {
  position: relative;
  isolation: isolate;
  min-height: 100svh;
  overflow: hidden;
  display: flex;
  align-items: flex-end;
}
.ctm-wedding-hero-image {
  position: absolute;
  inset: 0;
  z-index: -2;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: var(--ctm-position-desktop, 50% 50%);
  display: block;
}
.ctm-wedding-hero.wp-block-cover {
  padding: 0;
  min-height: 100svh;
  align-items: flex-end;
}
.ctm-wedding-hero.wp-block-cover .wp-block-cover__image-background {
  object-fit: cover;
}
.ctm-wedding-hero.wp-block-cover .wp-block-cover__inner-container {
  width: 100%;
}
.ctm-wedding-hero.wp-block-cover .wp-block-cover__background {
  opacity: 1 !important;
  background: linear-gradient(180deg, rgba(20,20,18,.02) 35%, rgba(20,20,18,.72) 100%) !important;
}
.ctm-wedding-hero-shade {
  position: absolute;
  inset: 0;
  z-index: -1;
  background:
    linear-gradient(180deg, rgba(20,20,18,.04) 35%, rgba(20,20,18,.76) 100%),
    linear-gradient(90deg, rgba(20,20,18,.30) 0%, transparent 48%);
}
.ctm-wedding-hero-copy {
  width: min(100%, 1400px);
  margin-inline: auto;
  box-sizing: border-box;
  padding: clamp(2rem, 5vw, 5rem) var(--ctm-gutter) clamp(5.5rem, 10vh, 9rem) !important;
  text-shadow: 0 2px 22px rgba(0,0,0,.28);
}
.ctm-wedding-hero-copy > * {
  width: min(100%, 690px);
  margin-left: 0 !important;
  margin-right: auto !important;
}
.ctm-wedding-hero-number,
.ctm-wedding-hero-couple {
  margin: 0;
  font-size: .72rem;
  line-height: 1.4;
  letter-spacing: .16em;
  text-transform: uppercase;
}
.ctm-wedding-hero-number { opacity: .72; margin-bottom: .7rem; }
.ctm-wedding-hero-couple { font-weight: 500; }
.ctm-wedding-hero h3 {
  color: inherit;
  max-width: 13ch;
  margin: .55rem 0 1.2rem;
  font-size: clamp(2.8rem, 6vw, 6.5rem);
  line-height: .92;
  text-wrap: balance;
}
.ctm-wedding-hero-link,
.ctm-wedding-stories-outro a {
  color: inherit;
  font-size: .72rem;
  letter-spacing: .12em;
  text-transform: uppercase;
}
.ctm-wedding-hero-link {
  display: inline-flex;
  gap: .65rem;
  align-items: center;
  padding-bottom: .35rem;
  border-bottom: 1px solid rgba(247,245,240,.65);
}
.ctm-wedding-hero-link:hover,
.ctm-wedding-hero-link:focus-visible { border-color: currentColor; }
.ctm-wedding-stories-outro {
  min-height: 34svh;
  display: grid;
  place-items: center;
  padding: 4rem var(--ctm-gutter);
}

/* Desktop composition follows the subject of each selected photograph. */
@media (min-width: 901px) {
  .ctm-wedding-stories > .ctm-wedding-hero:nth-of-type(1) .ctm-wedding-hero-copy {
    padding-left: clamp(8rem, 26vw, 34rem);
  }
  .ctm-wedding-stories > .ctm-wedding-hero:nth-of-type(2) .ctm-wedding-hero-copy {
    padding-left: var(--ctm-gutter) !important;
    padding-right: var(--ctm-gutter) !important;
  }
  .ctm-wedding-stories > .ctm-wedding-hero:nth-of-type(2) .ctm-wedding-hero-copy > * {
    width: min(100%, 570px);
    margin-left: auto !important;
    margin-right: 0 !important;
  }
  .ctm-wedding-stories > .ctm-wedding-hero:nth-of-type(3) .ctm-wedding-hero-copy {
    padding-left: clamp(5rem, 10vw, 13rem);
  }
  .ctm-wedding-stories > .ctm-wedding-hero:nth-of-type(4) .wp-block-cover__background {
    background: linear-gradient(180deg, rgba(20,20,18,.03) 25%, rgba(20,20,18,.84) 100%) !important;
  }
  .ctm-wedding-stories > .ctm-wedding-hero:nth-of-type(5) .ctm-wedding-hero-copy {
    padding-left: var(--ctm-gutter) !important;
    padding-right: var(--ctm-gutter) !important;
  }
  .ctm-wedding-stories > .ctm-wedding-hero:nth-of-type(5) .ctm-wedding-hero-copy > * {
    width: min(100%, 610px);
    margin-left: auto !important;
    margin-right: 0 !important;
  }
  .ctm-wedding-stories > .ctm-wedding-hero:nth-of-type(6) .ctm-wedding-hero-copy {
    padding-left: clamp(5rem, 9vw, 12rem);
  }
  .ctm-wedding-stories > .ctm-wedding-hero:nth-of-type(6) .ctm-wedding-hero-copy > * {
    width: min(100%, 560px);
  }
  .ctm-wedding-stories > .ctm-wedding-hero:nth-of-type(2) h3,
  .ctm-wedding-stories > .ctm-wedding-hero:nth-of-type(6) h3 {
    font-size: clamp(2.7rem, 5.2vw, 5.7rem);
  }
}

@media (max-width: 700px) {
  .ctm-wedding-hero { min-height: 88svh; }
  .ctm-wedding-hero.wp-block-cover { min-height: 88svh !important; }
  .ctm-wedding-hero-image { object-position: var(--ctm-position-mobile, 50% 50%); }
  .ctm-wedding-hero-shade {
    background: linear-gradient(180deg, rgba(20,20,18,.02) 32%, rgba(20,20,18,.84) 100%);
  }
  .ctm-wedding-hero-copy { padding-bottom: clamp(3.4rem, 12vw, 5rem); }
  .ctm-wedding-hero h3 {
    max-width: 10ch;
    font-size: clamp(2.55rem, 12vw, 4rem);
  }
}


/* === CtM V1.5 mobile story rhythm + Foto & Film section === */

/* Mobile-only media clone lets the narrative alternate text → image → text. */
.ctm-positioning-mobile-media { display: none; }

@media (max-width: 600px) {
  .ctm-positioning-copy h2 {
    max-width: 12ch;
    font-size: clamp(2.65rem, 11.4vw, 3.35rem) !important;
    line-height: .98 !important;
    margin-bottom: 1.35rem;
  }
  .ctm-positioning-copy p {
    font-size: 1rem;
    line-height: 1.62;
  }
  .ctm-positioning-copy > p:first-of-type {
    margin-bottom: 1.35rem;
  }
  .ctm-positioning-mobile-media {
    display: block;
    position: relative;
    margin: 1.45rem 0 1.55rem;
  }
  .ctm-positioning-mobile-media img {
    display: block;
    width: 100%;
    aspect-ratio: 3 / 2;
    object-fit: cover;
    object-position: 50% 50%;
  }
  .ctm-positioning-mobile-media::after {
    content: "";
    position: absolute;
    inset: auto -.45rem -.45rem .45rem;
    height: 38%;
    border: 1px solid var(--wp--preset--color--line);
    z-index: -1;
  }
  .ctm-positioning-grid > .wp-block-column:last-child {
    display: none;
  }
  .ctm-positioning-kicker {
    margin-top: 1.35rem !important;
    font-size: .72rem;
    letter-spacing: .115em;
  }
}

/* Foto & Film: one of the few deliberately dark, cinematic sections. */
.ctm-photo-film {
  padding-block: clamp(5.5rem, 10vw, 9rem);
  background: var(--wp--preset--color--dark);
  color: var(--wp--preset--color--paper);
}
.ctm-photo-film-grid {
  gap: clamp(2.75rem, 6vw, 6.5rem) !important;
  align-items: center !important;
}
.ctm-photo-film-media {
  position: relative;
  overflow: hidden;
  min-height: 420px;
}
.ctm-photo-film-media img {
  width: 100%;
  aspect-ratio: 16 / 10;
  object-fit: cover;
  object-position: 50% 50%;
  display: block;
  filter: saturate(.9) contrast(1.02);
}
.ctm-photo-film-media::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(0,0,0,.02), rgba(0,0,0,.28));
  pointer-events: none;
}
.ctm-photo-film-play {
  position: absolute;
  z-index: 2;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  width: 76px;
  height: 76px;
  border: 1px solid rgba(247,245,240,.82);
  border-radius: 999px;
  display: grid;
  place-items: center;
  color: var(--wp--preset--color--paper);
  background: rgba(28,28,26,.24);
  backdrop-filter: blur(4px);
  -webkit-backdrop-filter: blur(4px);
}
.ctm-photo-film-play::before {
  content: "";
  width: 0;
  height: 0;
  border-top: 10px solid transparent;
  border-bottom: 10px solid transparent;
  border-left: 16px solid currentColor;
  margin-left: 4px;
}
.ctm-photo-film-copy { max-width: 520px; }
.ctm-photo-film-eyebrow {
  margin: 0 0 1.1rem;
  font-size: .72rem;
  letter-spacing: .14em;
  text-transform: uppercase;
  opacity: .82;
}
.ctm-photo-film h2 {
  color: inherit;
  max-width: 12ch;
  text-wrap: balance;
  margin: 0 0 1.35rem;
}
.ctm-photo-film-copy p:not(.ctm-photo-film-eyebrow) {
  color: inherit;
  opacity: .9;
  line-height: 1.72;
}
.ctm-photo-film-actions { margin-top: 2rem; }
.ctm-photo-film .wp-block-button__link {
  border-color: rgba(247,245,240,.85) !important;
  color: var(--wp--preset--color--paper) !important;
}

@media (max-width: 900px) {
  .ctm-photo-film-grid { gap: 2.5rem !important; }
  .ctm-photo-film-media { min-height: 0; }
  .ctm-photo-film-copy { max-width: 680px; }
}

@media (max-width: 600px) {
  .ctm-photo-film { padding-block: 4.8rem 5.2rem; }
  .ctm-photo-film-grid { gap: 2rem !important; }
  .ctm-photo-film-media img { aspect-ratio: 4 / 5; }
  .ctm-photo-film-play { width: 62px; height: 62px; }
  .ctm-photo-film-play::before {
    border-top-width: 8px;
    border-bottom-width: 8px;
    border-left-width: 13px;
  }
  .ctm-photo-film h2 {
    font-size: clamp(2.55rem, 11vw, 3.15rem) !important;
    line-height: .98 !important;
  }
}


/* === CtM V1.6 robust responsive ordering === */
/* The content order now follows the DOM on mobile; desktop is composed with grid areas. */
.ctm-positioning-layout {
  display: grid;
  grid-template-columns: minmax(0, 46%) minmax(0, 54%);
  grid-template-areas:
    "title media"
    "intro media"
    "outro media"
    "kicker media";
  column-gap: clamp(2.5rem, 6vw, 7rem);
  align-items: center;
}
.ctm-positioning-title { grid-area: title; max-width: 15ch; text-wrap: balance; margin: 0 0 clamp(1.4rem, 2.5vw, 2rem); }
.ctm-positioning-intro { grid-area: intro; }
.ctm-positioning-media { grid-area: media; align-self: center; }
.ctm-positioning-outro { grid-area: outro; }
.ctm-positioning-kicker { grid-area: kicker; }
.ctm-positioning-intro,
.ctm-positioning-outro { max-width: 62ch; line-height: 1.72; }
.ctm-positioning-outro { margin-top: 1.05rem; }

/* The old clone is no longer used. */
.ctm-positioning-mobile-media { display: none !important; }

.ctm-photo-film-layout {
  display: grid;
  grid-template-columns: minmax(0, 58%) minmax(0, 42%);
  grid-template-areas:
    "media eyebrow"
    "media title"
    "media description"
    "media actions";
  column-gap: clamp(2.75rem, 6vw, 6.5rem);
  align-items: center;
}
.ctm-photo-film-eyebrow { grid-area: eyebrow; align-self: end; }
.ctm-photo-film-title { grid-area: title; }
.ctm-photo-film-media { grid-area: media; align-self: center; }
.ctm-photo-film-description { grid-area: description; }
.ctm-photo-film-actions { grid-area: actions; align-self: start; }
.ctm-photo-film-title { color: inherit; max-width: 12ch; text-wrap: balance; margin: 0 0 1.35rem; }
.ctm-photo-film-description { color: inherit; opacity: .9; line-height: 1.72; }

@media (max-width: 900px) {
  .ctm-positioning-layout {
    grid-template-columns: 1fr;
    grid-template-areas: "title" "intro" "media" "outro" "kicker";
    row-gap: 0;
  }
  .ctm-positioning-title { max-width: 18ch; }
  .ctm-positioning-media { max-width: 720px; margin: 1.8rem 0 1.9rem; }
  .ctm-positioning-media img { aspect-ratio: 3 / 2; }

  .ctm-photo-film-layout {
    grid-template-columns: 1fr;
    grid-template-areas: "eyebrow" "title" "media" "description" "actions";
  }
  .ctm-photo-film-media { margin: 1.5rem 0 1.75rem; }
  .ctm-photo-film-description { max-width: 680px; }
}

@media (max-width: 600px) {
  /* Reduce the large empty transition after the hero on small screens. */
  .ctm-hero { min-height: 56svh; }
  .ctm-hero-content { padding-bottom: 1.8rem !important; }
  .ctm-positioning { padding-block: 3.2rem 4.5rem; }
  .ctm-positioning-title {
    max-width: 12.5ch;
    font-size: clamp(2.35rem, 10vw, 2.95rem) !important;
    line-height: .98 !important;
    margin-bottom: 1.2rem;
  }
  .ctm-positioning-intro,
  .ctm-positioning-outro { font-size: .98rem; line-height: 1.58; }
  .ctm-positioning-media { margin: 1.25rem 0 1.45rem; max-width: none; }
  .ctm-positioning-media img {
    aspect-ratio: 3 / 2;
    object-fit: cover;
    object-position: 50% 50%;
  }
  .ctm-positioning-media::after { inset: auto -.45rem -.45rem .45rem; }
  .ctm-positioning-outro { margin-top: 0; }
  .ctm-positioning-kicker { margin-top: 1.2rem !important; }

  .ctm-photo-film { padding-block: 4.4rem 4.8rem; }
  .ctm-photo-film-layout { display: grid; }
  .ctm-photo-film-eyebrow { margin-bottom: .9rem; }
  .ctm-photo-film-title {
    font-size: clamp(2.35rem, 10.2vw, 3rem) !important;
    line-height: .98 !important;
    margin-bottom: 0;
  }
  .ctm-photo-film-media { margin: 1.4rem 0 1.5rem; }
  .ctm-photo-film-media img { aspect-ratio: 4 / 5; }
  .ctm-photo-film-description { font-size: .98rem; line-height: 1.62; }
  .ctm-photo-film-actions { margin-top: 1.55rem; }
}

@media (max-width: 420px) {
  .ctm-hero { min-height: 54svh; }
  .ctm-positioning { padding-top: 2.8rem; }
  .ctm-positioning-title { font-size: clamp(2.2rem, 10.5vw, 2.75rem) !important; }
}


/* === CtM V1.7: deterministic mobile story markup + compact hero handoff === */
.ctm-positioning-mobile { display: none; }

@media (max-width: 600px) {
  /* The Cover block carries an inline 760px min-height, so mobile must override it explicitly. */
  .ctm-hero {
    min-height: clamp(560px, 67svh, 650px) !important;
  }
  .ctm-hero-content {
    padding-top: 1.75rem !important;
    padding-bottom: 1.5rem !important;
  }

  /* Use dedicated mobile markup instead of relying on CSS re-ordering. */
  .ctm-positioning-desktop { display: none !important; }
  .ctm-positioning-mobile {
    display: block !important;
    padding-top: 4.25rem;
    padding-bottom: 4.6rem;
  }
  .ctm-positioning-mobile .ctm-positioning-title {
    max-width: 12.5ch;
    margin: 0 0 1.35rem;
  }
  .ctm-positioning-mobile .ctm-positioning-intro,
  .ctm-positioning-mobile .ctm-positioning-outro {
    font-size: .98rem;
    line-height: 1.58;
    max-width: 100%;
  }
  .ctm-positioning-mobile .ctm-positioning-intro { margin-bottom: 1.4rem; }
  .ctm-positioning-mobile .ctm-positioning-media {
    margin: 0 0 1.55rem;
    max-width: none;
  }
  .ctm-positioning-mobile .ctm-positioning-media img {
    width: 100%;
    aspect-ratio: 3 / 2;
    object-fit: cover;
    object-position: 50% 50%;
    display: block;
  }
  .ctm-positioning-mobile .ctm-positioning-outro { margin: 0; }
  .ctm-positioning-mobile .ctm-positioning-kicker {
    margin-top: 1.25rem !important;
    font-size: .72rem;
    line-height: 1.5 !important;
    letter-spacing: .115em;
  }
}

@media (max-width: 420px) {
  .ctm-hero { min-height: 550px !important; }
  .ctm-positioning-mobile { padding-top: 3.75rem; }
}


/* === CtM V1.8 brand + hero CTA === */
/* New responsive brand marks: long desktop/tablet logo, compact mobile logo. */
.ctm-brand-link .ctm-logo { flex: 0 0 auto; }

/* === CtM V1.9 hero CTA interaction + equal mobile widths === */
/*
 * The two hero actions use the same inverse interaction language:
 * dark -> light on hover/focus, light -> dark on hover/focus.
 * A fixed border on both states prevents any layout shift.
 */
.ctm-hero .wp-block-button .wp-block-button__link {
  background: var(--wp--preset--color--ink, #20201E) !important;
  color: var(--wp--preset--color--paper, #F7F5F0) !important;
  border: 1px solid var(--wp--preset--color--ink, #20201E) !important;
  transition: background-color .2s ease, color .2s ease, border-color .2s ease;
}
.ctm-hero .wp-block-button .wp-block-button__link:hover,
.ctm-hero .wp-block-button .wp-block-button__link:focus-visible {
  background: var(--wp--preset--color--paper, #F7F5F0) !important;
  color: var(--wp--preset--color--ink, #20201E) !important;
  border-color: #9B9993 !important;
}

/* Phone layout: stack both CTAs and give them exactly the same width/height. */
@media (max-width: 600px) {
  .ctm-hero .wp-block-buttons {
    display: flex !important;
    flex-direction: column !important;
    align-items: stretch !important;
    width: 100% !important;
    max-width: 100% !important;
    gap: .65rem !important;
  }
  .ctm-hero .wp-block-button {
    width: 100% !important;
    max-width: 100% !important;
  }
  .ctm-hero .wp-block-button__link {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 100% !important;
    min-height: 52px;
    box-sizing: border-box;
    text-align: center;
    white-space: nowrap;
  }
}
