.elementor-kit-5{--e-global-color-primary:#000000;--e-global-color-secondary:#FFFFFF;--e-global-color-text:#000000;--e-global-color-accent:#000000;--e-global-color-2cea897:#AF9583;--e-global-color-8fbcfa6:#FBFBF9;--e-global-typography-primary-font-family:"Raleway";--e-global-typography-primary-font-weight:600;--e-global-typography-secondary-font-family:"Raleway";--e-global-typography-secondary-font-weight:400;--e-global-typography-text-font-family:"Raleway";--e-global-typography-text-font-weight:400;--e-global-typography-accent-font-family:"Raleway";--e-global-typography-accent-font-weight:500;--e-global-typography-a2601bf-font-family:"FreightBig Pro Book";--e-global-typography-a2601bf-font-size:82px;--e-global-typography-a2601bf-font-weight:400;--e-global-typography-a2601bf-text-transform:uppercase;--e-global-typography-a2601bf-line-height:1.1em;--e-global-typography-a2601bf-letter-spacing:0em;--e-global-typography-9c286b6-font-family:"FreightBig Pro Book";--e-global-typography-9c286b6-font-size:76px;--e-global-typography-9c286b6-font-weight:400;--e-global-typography-9c286b6-text-transform:uppercase;--e-global-typography-9c286b6-line-height:1.1em;--e-global-typography-9c286b6-letter-spacing:0em;--e-global-typography-f0a1645-font-family:"FreightBig Pro Book";--e-global-typography-f0a1645-font-size:58px;--e-global-typography-f0a1645-font-weight:400;--e-global-typography-f0a1645-text-transform:uppercase;--e-global-typography-f0a1645-line-height:1.1em;--e-global-typography-f0a1645-letter-spacing:0em;--e-global-typography-775c518-font-family:"Raleway";--e-global-typography-775c518-font-size:15px;--e-global-typography-775c518-font-weight:600;--e-global-typography-775c518-text-transform:uppercase;--e-global-typography-775c518-line-height:1.8em;--e-global-typography-775c518-letter-spacing:0.1em;--e-global-typography-b7f2455-font-family:"FreightBig Pro Book";--e-global-typography-b7f2455-font-size:76px;--e-global-typography-b7f2455-font-weight:400;--e-global-typography-b7f2455-text-transform:uppercase;--e-global-typography-b7f2455-line-height:1.1em;--e-global-typography-5a15fef-font-family:"FreightBig Pro Book";--e-global-typography-5a15fef-font-size:58px;--e-global-typography-5a15fef-font-weight:400;--e-global-typography-5a15fef-text-transform:capitalize;--e-global-typography-5a15fef-line-height:1.1em;--e-global-typography-5a15fef-letter-spacing:0em;--e-global-typography-08513b9-font-family:"FreightBig Pro Book";--e-global-typography-08513b9-font-size:56px;--e-global-typography-08513b9-font-weight:400;--e-global-typography-08513b9-text-transform:capitalize;--e-global-typography-08513b9-line-height:1.1em;--e-global-typography-08513b9-letter-spacing:0em;--e-global-typography-5e56699-font-family:"FreightBig Pro Book";--e-global-typography-5e56699-font-size:56px;--e-global-typography-5e56699-font-weight:400;--e-global-typography-5e56699-text-transform:uppercase;--e-global-typography-5e56699-line-height:1.1em;--e-global-typography-5e56699-letter-spacing:0em;--e-global-typography-b5f309b-font-family:"FreightBig Pro Book";--e-global-typography-b5f309b-font-size:47px;--e-global-typography-b5f309b-font-weight:400;--e-global-typography-b5f309b-text-transform:uppercase;--e-global-typography-b5f309b-line-height:1.1em;--e-global-typography-b5f309b-letter-spacing:0em;--e-global-typography-04266aa-font-family:"FreightBig Pro Book";--e-global-typography-04266aa-font-size:40px;--e-global-typography-04266aa-font-weight:400;--e-global-typography-04266aa-text-transform:capitalize;--e-global-typography-04266aa-line-height:1.1em;--e-global-typography-04266aa-letter-spacing:0em;--e-global-typography-8f9d72d-font-family:"Raleway";--e-global-typography-8f9d72d-font-size:17px;--e-global-typography-8f9d72d-font-weight:600;--e-global-typography-8f9d72d-text-transform:uppercase;--e-global-typography-8f9d72d-line-height:1.8em;--e-global-typography-8f9d72d-letter-spacing:0.1em;--e-global-typography-47de4fb-font-family:"Raleway";--e-global-typography-47de4fb-font-size:15px;--e-global-typography-47de4fb-font-weight:600;--e-global-typography-47de4fb-text-transform:uppercase;--e-global-typography-47de4fb-line-height:1.8em;--e-global-typography-47de4fb-letter-spacing:0.1em;--e-global-typography-b1ab80e-font-family:"Raleway";--e-global-typography-b1ab80e-font-size:15px;--e-global-typography-b1ab80e-font-weight:600;--e-global-typography-b1ab80e-text-transform:uppercase;--e-global-typography-b1ab80e-line-height:1.6em;--e-global-typography-b1ab80e-letter-spacing:0.1em;--e-global-typography-1424d30-font-family:"FreightBig Pro Book";--e-global-typography-1424d30-font-size:76px;--e-global-typography-1424d30-font-weight:400;--e-global-typography-1424d30-text-transform:uppercase;--e-global-typography-1424d30-line-height:1.1em;--e-global-typography-1424d30-letter-spacing:0em;--e-global-typography-4d402b8-font-family:"FreightBig Pro Book";--e-global-typography-4d402b8-font-size:47px;--e-global-typography-4d402b8-font-weight:400;--e-global-typography-4d402b8-text-transform:uppercase;--e-global-typography-4d402b8-line-height:1.1em;--e-global-typography-4d402b8-letter-spacing:0em;--e-global-typography-320ae04-font-family:"Raleway";--e-global-typography-320ae04-font-size:15px;--e-global-typography-320ae04-font-weight:600;--e-global-typography-320ae04-text-transform:uppercase;--e-global-typography-320ae04-line-height:1.8em;--e-global-typography-320ae04-letter-spacing:0.1em;--e-global-typography-6c1c38f-font-family:"FreightBig Pro Book";--e-global-typography-6c1c38f-font-size:65px;--e-global-typography-6c1c38f-font-weight:400;--e-global-typography-6c1c38f-text-transform:uppercase;--e-global-typography-6c1c38f-line-height:1.1em;--e-global-typography-6c1c38f-letter-spacing:0px;--e-global-typography-e2f3bb6-font-family:"Raleway";--e-global-typography-e2f3bb6-font-size:16px;--e-global-typography-e2f3bb6-font-weight:400;--e-global-typography-e2f3bb6-line-height:1.6em;--e-global-typography-e2f3bb6-letter-spacing:0em;--e-global-typography-5907d45-font-family:"Raleway";--e-global-typography-5907d45-font-size:16px;--e-global-typography-5907d45-font-weight:700;--e-global-typography-5907d45-line-height:1.6em;--e-global-typography-5907d45-letter-spacing:0em;--e-global-typography-d8d4545-font-family:"Raleway";--e-global-typography-d8d4545-font-size:15px;--e-global-typography-d8d4545-font-weight:600;--e-global-typography-d8d4545-text-transform:uppercase;--e-global-typography-d8d4545-line-height:1.8em;--e-global-typography-d8d4545-letter-spacing:0.1em;--e-global-typography-2afd9d6-font-family:"Raleway";--e-global-typography-2afd9d6-font-size:15px;--e-global-typography-2afd9d6-font-weight:600;--e-global-typography-2afd9d6-text-transform:uppercase;--e-global-typography-2afd9d6-line-height:1.6em;--e-global-typography-2afd9d6-letter-spacing:0.1em;--e-global-typography-7c4946a-font-family:"Raleway";--e-global-typography-7c4946a-font-size:15px;--e-global-typography-7c4946a-font-weight:600;--e-global-typography-7c4946a-text-transform:uppercase;--e-global-typography-7c4946a-line-height:1.8em;--e-global-typography-7c4946a-letter-spacing:0.1em;--e-global-typography-7f79c0d-font-family:"FreightBig Pro Book";--e-global-typography-7f79c0d-font-size:40px;--e-global-typography-7f79c0d-font-weight:400;--e-global-typography-7f79c0d-text-transform:none;--e-global-typography-7f79c0d-line-height:1.1em;--e-global-typography-7f79c0d-letter-spacing:0em;--e-global-typography-882cf67-font-family:"Raleway";--e-global-typography-882cf67-font-size:21px;--e-global-typography-882cf67-font-weight:600;--e-global-typography-882cf67-text-transform:uppercase;--e-global-typography-882cf67-line-height:1.6em;--e-global-typography-882cf67-letter-spacing:0.1em;background-color:var( --e-global-color-8fbcfa6 );color:var( --e-global-color-primary );font-family:"Raleway", Sans-serif;font-size:16px;font-weight:400;line-height:1.6em;letter-spacing:0em;}.elementor-kit-5 button,.elementor-kit-5 input[type="button"],.elementor-kit-5 input[type="submit"],.elementor-kit-5 .elementor-button{background-color:var( --e-global-color-secondary );font-family:"Raleway", Sans-serif;font-size:15px;font-weight:600;text-transform:uppercase;line-height:1.8em;letter-spacing:0.1em;color:var( --e-global-color-primary );border-style:solid;border-width:1px 1px 1px 1px;border-color:var( --e-global-color-primary );border-radius:0px 0px 0px 0px;padding:10px 20px 10px 20px;}.elementor-kit-5 button:hover,.elementor-kit-5 button:focus,.elementor-kit-5 input[type="button"]:hover,.elementor-kit-5 input[type="button"]:focus,.elementor-kit-5 input[type="submit"]:hover,.elementor-kit-5 input[type="submit"]:focus,.elementor-kit-5 .elementor-button:hover,.elementor-kit-5 .elementor-button:focus{background-color:var( --e-global-color-secondary );color:#AF9583;}.elementor-kit-5 e-page-transition{background-color:#FFBC7D;}.elementor-kit-5 p{margin-block-end:0px;}.elementor-kit-5 a{color:var( --e-global-color-primary );}.elementor-kit-5 a:hover{color:var( --e-global-color-primary );}.elementor-kit-5 h1{color:var( --e-global-color-primary );font-family:"FreightBig Pro Book", Sans-serif;font-size:82px;font-weight:400;text-transform:uppercase;line-height:1.1em;letter-spacing:0em;}.elementor-kit-5 h2{color:var( --e-global-color-primary );font-family:"FreightBig Pro Book", Sans-serif;font-size:58px;font-weight:400;text-transform:uppercase;line-height:1.1em;letter-spacing:0em;}.elementor-kit-5 h3{color:#000000;font-family:"FreightBig Pro Book", Sans-serif;font-size:47px;font-weight:400;line-height:1.1em;letter-spacing:0em;}.elementor-kit-5 h4{color:var( --e-global-color-primary );font-family:"FreightBig Pro Book", Sans-serif;}.elementor-kit-5 h5{color:var( --e-global-color-primary );font-family:"FreightBig Pro Book", Sans-serif;}.elementor-kit-5 h6{color:var( --e-global-color-primary );font-family:"FreightBig Pro Book", Sans-serif;}.elementor-section.elementor-section-boxed > .elementor-container{max-width:1200px;}.e-con{--container-max-width:1200px;--container-default-padding-top:0px;--container-default-padding-right:0px;--container-default-padding-bottom:0px;--container-default-padding-left:0px;}.elementor-widget:not(:last-child){margin-block-end:20px;}.elementor-element{--widgets-spacing:20px 20px;--widgets-spacing-row:20px;--widgets-spacing-column:20px;}{}h1.entry-title{display:var(--page-title-display);}.elementor-lightbox{background-color:rgba(12, 12, 12, 0.96);}.site-header{padding-inline-end:0px;padding-inline-start:0px;}@media(max-width:1366px){.elementor-kit-5{--e-global-typography-a2601bf-font-size:72px;--e-global-typography-a2601bf-line-height:1.1em;--e-global-typography-a2601bf-letter-spacing:0em;--e-global-typography-9c286b6-font-size:68px;--e-global-typography-f0a1645-font-size:52px;--e-global-typography-775c518-font-size:15px;--e-global-typography-b7f2455-font-size:68px;--e-global-typography-5a15fef-font-size:50px;--e-global-typography-08513b9-font-size:52px;--e-global-typography-5e56699-font-size:52px;--e-global-typography-b5f309b-font-size:44px;--e-global-typography-04266aa-font-size:38px;--e-global-typography-8f9d72d-font-size:17px;--e-global-typography-47de4fb-font-size:15px;--e-global-typography-b1ab80e-font-size:15px;--e-global-typography-1424d30-font-size:68px;--e-global-typography-4d402b8-font-size:44px;--e-global-typography-320ae04-font-size:15px;--e-global-typography-6c1c38f-font-size:58px;--e-global-typography-e2f3bb6-font-size:16px;--e-global-typography-5907d45-font-size:16px;--e-global-typography-d8d4545-font-size:15px;--e-global-typography-2afd9d6-font-size:15px;--e-global-typography-7c4946a-font-size:15px;--e-global-typography-7f79c0d-font-size:36px;--e-global-typography-882cf67-font-size:20px;font-size:16px;}.elementor-kit-5 h1{font-size:72px;}.elementor-kit-5 h2{font-size:50px;}.elementor-kit-5 h3{font-size:44px;}.elementor-kit-5 button,.elementor-kit-5 input[type="button"],.elementor-kit-5 input[type="submit"],.elementor-kit-5 .elementor-button{font-size:15px;}}@media(max-width:1024px){.elementor-kit-5{--e-global-typography-a2601bf-font-size:56px;--e-global-typography-9c286b6-font-size:54px;--e-global-typography-f0a1645-font-size:40px;--e-global-typography-775c518-font-size:14px;--e-global-typography-b7f2455-font-size:52px;--e-global-typography-5a15fef-font-size:42px;--e-global-typography-08513b9-font-size:42px;--e-global-typography-5e56699-font-size:40px;--e-global-typography-b5f309b-font-size:36px;--e-global-typography-04266aa-font-size:32px;--e-global-typography-8f9d72d-font-size:15px;--e-global-typography-47de4fb-font-size:14px;--e-global-typography-b1ab80e-font-size:14px;--e-global-typography-1424d30-font-size:52px;--e-global-typography-4d402b8-font-size:36px;--e-global-typography-320ae04-font-size:14px;--e-global-typography-6c1c38f-font-size:46px;--e-global-typography-e2f3bb6-font-size:16px;--e-global-typography-5907d45-font-size:16px;--e-global-typography-d8d4545-font-size:14px;--e-global-typography-2afd9d6-font-size:14px;--e-global-typography-7c4946a-font-size:14px;--e-global-typography-7f79c0d-font-size:30px;--e-global-typography-882cf67-font-size:18px;font-size:16px;}.elementor-kit-5 h1{font-size:56px;}.elementor-kit-5 h2{font-size:42px;}.elementor-kit-5 h3{font-size:36px;}.elementor-kit-5 button,.elementor-kit-5 input[type="button"],.elementor-kit-5 input[type="submit"],.elementor-kit-5 .elementor-button{font-size:14px;}.elementor-section.elementor-section-boxed > .elementor-container{max-width:1024px;}.e-con{--container-max-width:1024px;}}@media(max-width:767px){.elementor-kit-5{--e-global-typography-a2601bf-font-size:40px;--e-global-typography-a2601bf-line-height:1.2em;--e-global-typography-9c286b6-font-size:40px;--e-global-typography-f0a1645-font-size:34px;--e-global-typography-775c518-font-size:13px;--e-global-typography-b7f2455-font-size:38px;--e-global-typography-5a15fef-font-size:34px;--e-global-typography-08513b9-font-size:34px;--e-global-typography-5e56699-font-size:32px;--e-global-typography-b5f309b-font-size:30px;--e-global-typography-04266aa-font-size:28px;--e-global-typography-8f9d72d-font-size:14px;--e-global-typography-47de4fb-font-size:13px;--e-global-typography-47de4fb-line-height:1.8em;--e-global-typography-b1ab80e-font-size:13px;--e-global-typography-b1ab80e-line-height:1.8em;--e-global-typography-1424d30-font-size:38px;--e-global-typography-4d402b8-font-size:30px;--e-global-typography-320ae04-font-size:13px;--e-global-typography-6c1c38f-font-size:36px;--e-global-typography-e2f3bb6-font-size:16px;--e-global-typography-5907d45-font-size:16px;--e-global-typography-d8d4545-font-size:13px;--e-global-typography-2afd9d6-font-size:13px;--e-global-typography-7c4946a-font-size:14px;--e-global-typography-7f79c0d-font-size:26px;--e-global-typography-882cf67-font-size:16px;font-size:16px;}.elementor-kit-5 h1{font-size:40px;}.elementor-kit-5 h2{font-size:34px;}.elementor-kit-5 h3{font-size:30px;}.elementor-kit-5 button,.elementor-kit-5 input[type="button"],.elementor-kit-5 input[type="submit"],.elementor-kit-5 .elementor-button{font-size:14px;}.elementor-section.elementor-section-boxed > .elementor-container{max-width:767px;}.e-con{--container-max-width:767px;--container-default-padding-top:0px;--container-default-padding-right:0px;--container-default-padding-bottom:0px;--container-default-padding-left:0px;}}/* Start custom CSS *//* =====================================================================
   Sabrina Scolari Photography - global refinements
   Lives in: Elementor > Site Settings > Custom CSS
   Site-wide rules only. Section-specific spacing belongs in that
   element's own Elementor settings so it stays editable in the panel.
   ===================================================================== */

/* ---- Type: balanced wrapping ---------------------------------------- */
/* Headlines break into even lines instead of leaving one word alone. */
h1, h2, h3, h4, h5, h6,
.elementor-heading-title {
  text-wrap: balance;
}

/* Body copy avoids a single word on its last line. */
.elementor-widget-text-editor,
.elementor-widget-text-editor p {
  text-wrap: pretty;
}

/* ---- Spacing rhythm ---------------------------------------------------- */
/* Content stacks use a 24px container gap. A button that follows copy gets
   8px more so every CTA sits 32px below its text, on every page. */
.e-con > .elementor-widget-text-editor + .elementor-widget-button,
.e-con > .elementor-widget-text-editor + .e-con:has(> .elementor-widget-button) {
  margin-block-start: 8px;
}

/* ---- Photo pairs on phones (class: ssp-photo-pair) ------------------ */
/* Desktop/tablet collages use absolutely positioned, offset images. On
   phones they become two equal columns inside the 20px gutters, with the
   second photo dropped 32px for the same editorial stagger. */
@media (max-width: 767px) {
  .elementor .ssp-photo-pair {
    margin-bottom: 0 !important; /* cancels older negative-margin fixes */
    column-gap: 16px !important;
  }
  .elementor .ssp-photo-pair > .elementor-widget-image {
    position: relative !important;
    inset: auto !important;
    transform: none !important;
    width: calc(50% - 8px) !important;
    max-width: none !important;
    height: auto !important;
    min-height: 0 !important;
    aspect-ratio: auto !important; /* the photo sets the shape, not the wrapper */
    margin: 0 !important;
    align-self: flex-start !important;
  }
  .elementor .ssp-photo-pair > .elementor-widget-image > .elementor-widget-container {
    height: auto !important;
    display: block !important;
    margin: 0 !important;  /* cancels old offsets set on the inner wrapper */
    padding: 0 !important;
  }
  .elementor .ssp-photo-pair > .elementor-widget-image ~ .elementor-widget-image {
    margin-top: 32px !important;
  }
  .elementor .ssp-photo-pair > .elementor-widget-image img {
    width: 100% !important;
    max-width: 100% !important;
    height: auto !important;
    aspect-ratio: 4 / 5;
    object-fit: cover;
  }
}

/* ---- Press / "featured by" logo strips (class: ssp-logo-row) ---------- */
/* Desktop keeps its single row. Smaller screens get an even, centred grid;
   max height + max width give round badges and wide wordmarks equal weight. */
@media (max-width: 1024px) {
  .elementor .ssp-logo-row {
    flex-wrap: wrap !important;
    justify-content: center !important;
    align-items: center !important;
    gap: 32px 40px !important;
  }
  .elementor .ssp-logo-row > .elementor-widget-image {
    width: auto !important;
    flex: 0 0 auto !important;
    margin: 0 !important;
  }
  .elementor .ssp-logo-row > .elementor-widget-image img {
    width: auto !important;
    height: auto !important;
    max-height: 52px !important;
    max-width: 150px !important;
    object-fit: contain;
  }
}
@media (max-width: 767px) {
  .elementor .ssp-logo-row {
    display: grid !important;
    grid-template-columns: repeat(2, 1fr);
    justify-items: center;
    gap: 32px 24px !important;
    width: 100% !important;
    padding: 0 20px !important;
  }
  .elementor .ssp-logo-row > .elementor-widget-image img {
    max-height: 46px !important;
    max-width: 136px !important;
  }
}

/* ---- Gallery card captions ([ssp_gallery_details] shortcode) ---------- */
/* Same two-line treatment as the Weddings page grid: venue, then place. */
.ssp-gd {
  display: block;
}
.ssp-gd__venue,
.ssp-gd__loc {
  display: block;
  font-family: "Raleway", sans-serif;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  line-height: 1.4;
  text-wrap: balance; /* narrow phone cards: "Newport, / Rhode Island" */
}
.ssp-gd__venue {
  font-size: 13px;
  color: #1a1a1a;
}
.ssp-gd__loc {
  font-size: 12px;
  color: #6b6862; /* 5.3:1 on the page background */
}
.ssp-gd__venue + .ssp-gd__loc {
  margin-top: 4px;
}
@media (max-width: 1024px) {
  .ssp-gd__venue,
  .ssp-gd__loc { font-size: 12px; }
}
@media (max-width: 767px) {
  .ssp-gd__venue,
  .ssp-gd__loc { font-size: 11px; letter-spacing: 0.08em; }
  .ssp-gd__venue + .ssp-gd__loc { margin-top: 2px; }
}

/* ---- Testimonial sliders (class: ssp-testimonials) ------------------- */
/* Thin divider between the prev/next arrows. Centered under the quote on
   desktop/tablet; on phones the arrows sit left, aligned with the text.
   (Selector is heavier than usual so it wins over the older per-page rules
   in Simple Custom CSS; those can be deleted.) */
html body .elementor .elementor-element.ssp-testimonials::after {
  content: "";
  position: absolute;
  left: 50% !important;
  bottom: 18px !important;
  transform: translateX(-50%);
  width: 1px;
  height: 40px;
  background-color: #000;
  z-index: 10;
}
@media (max-width: 767px) {
  html body .elementor .elementor-element.ssp-testimonials::after {
    left: 50px !important; /* midpoint between the arrows (nudged 8px left to align with the text) */
  }
}

/* ---- Tap targets -------------------------------------------------------- */
/* Popup close (x): 48px hit area; negative margin keeps the icon in place. */
.elementor-popup-modal .dialog-close-button {
  padding: 14px;
  margin: -14px;
}
/* Small social icons in the footer and burger menu: invisible 10px halo
   so they're easy to tap without changing the layout. */
[data-elementor-type="footer"] .elementor-widget-icon .elementor-icon,
[data-elementor-type="popup"] .elementor-widget-icon .elementor-icon {
  position: relative;
}
[data-elementor-type="footer"] .elementor-widget-icon .elementor-icon::after,
[data-elementor-type="popup"] .elementor-widget-icon .elementor-icon::after {
  content: "";
  position: absolute;
  inset: -10px;
}

/* =====================================================================
   Moved from the old "Simple Custom CSS & JS" snippet (de-duplicated).
   Element-ID .elementor-kit-5s are kept where Elementor generates the markup.
   ===================================================================== */

/* ---- Header: desktop menus, hover underline --------------------------- */
#menu-1-9afca4a .elementor-item,
#menu-1-06f89a3 .elementor-item {
  position: relative;
  text-decoration: none !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
  margin-left: 30px;
  margin-right: 30px;
}
#menu-1-9afca4a .elementor-item::after,
#menu-1-06f89a3 .elementor-item::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: 0 !important;
  width: 0;
  height: 1px;
  background-color: #000;
  transition: none;
  transform: translateY(-5px);
}
#menu-1-9afca4a .elementor-item:hover::after,
#menu-1-06f89a3 .elementor-item:hover::after {
  width: 100%;
}

/* ---- Burger menu popup: white rule under each link -------------------- */
.elementor-element-850ae22 .elementor-nav-menu > li > a {
  border-bottom: 2px solid #fff;
}

/* ---- Footer copyright links ------------------------------------------- */
.footer-copyright a:hover {
  text-decoration: underline !important;
  cursor: pointer !important;
}

/* ---- Home hero: five-image crossfade (#slide-1 ... #slide-5) ---------- */
/* A new photo every 2.5s (the old site's 2s plus half a second), each fading in
   over 1.3s like the old site. The incoming photo fades in ON TOP of the outgoing
   one, which stays solid until it is covered, so the frame never washes out
   mid-fade. Cycle: 5 slides x 2.5s = 12.5s.
   The first photo is simply there when the page opens (not animated) and holds
   for 3s, so it is seen for a moment after it loads; its own fade-in joins the
   cycle after slide 5. */
#slide-1, #slide-2, #slide-3, #slide-4, #slide-5 {
  position: absolute !important;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  min-height: 0 !important;
  opacity: 0;
  background-position: center center !important;
  animation: ssp-hero-fade 12.5s infinite;
}
#slide-1 { opacity: 1; z-index: 0; animation-delay: 13s; }
#slide-2 { animation-delay: 3s; }
#slide-3 { animation-delay: 5.5s; }
#slide-4 { animation-delay: 8s; }
#slide-5 { animation-delay: 10.5s; }
@keyframes ssp-hero-fade {
  0%     { opacity: 0; z-index: 2; animation-timing-function: ease-in-out; }
  10.4%  { opacity: 1; z-index: 2; }
  19.99% { opacity: 1; z-index: 2; }
  20%    { opacity: 1; z-index: 1; }
  30.4%  { opacity: 1; z-index: 1; }
  30.41% { opacity: 0; z-index: 1; }
  100%   { opacity: 0; z-index: 1; }
}
@media (prefers-reduced-motion: reduce) {
  #slide-1, #slide-2, #slide-3, #slide-4, #slide-5 { animation: none; }
}
/* Size: the full screen on desktop and laptop (the header floats over it), like
   the old site; square on portrait tablets; 90% of the width on phones. Photos
   are centred, so people are never cut off at the waist on tall/wide screens. */
#hero-section,
#hero-section > .e-con-inner {
  position: relative;
  min-height: 0 !important;
  height: min(100svh, 100vw) !important;
}
@media (max-width: 767px) {
  #hero-section,
  #hero-section > .e-con-inner {
    height: 90vw !important;
  }
}

/* ---- Weddings hero (tablet): square crop on the first photo ------------ */
.elementor-element-560cf4f .elementor-widget-container img {
  aspect-ratio: 1 / 1;
}

/* ---- Forms: message box keeps its designed height ---------------------- */
.elementor-field-type-textarea textarea {
  resize: none;
}

/* ---- Header menu button --------------------------------------------- */
/* The whole black box is the tap target, and the icon sits in its centre. */
.ssp-menu-toggle > .elementor-widget-icon {
  position: absolute !important;
  inset: 0;
  margin: 0 !important;
}
.ssp-menu-toggle .elementor-widget-container,
.ssp-menu-toggle .elementor-icon-wrapper,
.ssp-menu-toggle .elementor-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 100%;
}
/* Optical centre: the black header bar runs into the top of the box, so the
   icon sits a few px below the box's true middle. */
.ssp-menu-toggle .elementor-icon {
  box-sizing: border-box;
  padding-top: var(--ssp-menu-nudge, 6px);
}

/* ---------- Photo lightbox (every pop-up: galleries + in-page images) ---------- */
/* Keep photos clear of the prev / next arrows so the arrows never sit on a photo. */
@media (min-width: 768px) {
  .elementor-lightbox .swiper .elementor-lightbox-item { padding-left: 90px; padding-right: 90px; }
}
@media (min-width: 1025px) {
  .elementor-lightbox .swiper .elementor-lightbox-item { padding-left: 120px; padding-right: 120px; }
}
/* Phones: arrows overlap the photo, so give them a soft shadow to stay readable on light images. */
.elementor-lightbox .elementor-swiper-button svg { filter: drop-shadow(0 0 3px rgba(0, 0, 0, 0.6)); }

/* ---------- Portraits hero (page 1211) ---------- */
/* Desktop, like the old site: the hero fills the screen and starts behind the header, so the
   washed-out sky runs straight into the logo and menu; the photo is fixed (set on the container)
   and the text scrolls over it. The header is 144px tall at every desktop size. */
@media (min-width: 1025px) {
  body.page-id-1211 .elementor-location-header { position: relative; z-index: 3; }
  .elementor-1211 .elementor-element.elementor-element-9a6e5e2 { margin-top: -144px; padding-top: 144px; min-height: 100vh; }
}
/* Phones: text sits on the plain background and the couple photo shows below it at full
   strength (.ssp-hero-photo, a phone-only container), instead of a faint photo behind the words. */
.ssp-hero-photo { width: 100%; aspect-ratio: 6 / 5; min-height: 0 !important; }
@media (max-width: 767px) {
  .elementor-1211 .elementor-element.elementor-element-9a6e5e2 { background-image: none !important; }
  .elementor-1211 .elementor-element.elementor-element-9a6e5e2::before { display: none !important; }
}

/* ---------- Portraits page: middle sections keep their 1440px layout ---------- */
/* Couples / Branding / Editorial / Family were full-width with photos sized in vw, so above
   1440px they spread out and the photos grew; below it, photos pushed past the window edge.
   They now sit in a centred box: 1440px on big screens (same scale and staggering on a 27"
   as on a laptop, like the old site) and never closer than ~40px to the window edge, where
   the box crops any photo that reaches past it. */
@media (min-width: 768px) {
  .elementor-1211 .elementor-element.elementor-element-e8925fa,
  .elementor-1211 .elementor-element.elementor-element-0e50e58,
  .elementor-1211 .elementor-element.elementor-element-f40fb84,
  .elementor-1211 .elementor-element.elementor-element-3d5e9f8 {
    max-width: min(1440px, calc(100vw - 2 * var(--ssp-gutter)));
    margin-left: auto;
    margin-right: auto;
    overflow: hidden;
  }
}
@media (min-width: 1441px) {
  .elementor-1211 .elementor-element.elementor-element-88cd25e,
  .elementor-1211 .elementor-element.elementor-element-80ebe2c { --width: 518px; width: 518px; }
}

/* Same idea for two staggered photo pairs (Home, Weddings) whose second photo reached
   past the window edge on tablets: the section stays a gutter inside the window and
   crops there. Neither section has a background of its own, so nothing else changes. */
@media (min-width: 768px) {
  .elementor-78 .elementor-element.elementor-element-87af05b,
  .elementor-915 .elementor-element.elementor-element-6e0dd20 {
    max-width: calc(100vw - 2 * var(--ssp-gutter));
    margin-left: auto;
    margin-right: auto;
    overflow: hidden;
  }
}

/* ---- Side margins where content met the window edge --------------------- */
/* Two sections had no side padding, so on windows narrower than their content
   (About hero, 1200px; Weddings album grid, 99% wide) text sat against the edge.
   Only these get a gutter. Full-width sections (home hero, header, bands) stay
   edge to edge. --ssp-gutter is also used by the boxed photo sections above. */
:root { --ssp-gutter: 48px; }
@media (max-width: 1024px) { :root { --ssp-gutter: 32px; } }
@media (min-width: 768px) {
  .elementor-4157 .elementor-element.elementor-element-44e78ef,
  .elementor-915 .elementor-element.elementor-element-fb117a2 {
    padding-left: var(--ssp-gutter);
    padding-right: var(--ssp-gutter);
  }
}

/* ---- About: areas served, one centred line with small map pins ---------- */
.ssp-areas {
  list-style: none;
  margin: 0 auto;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 14px 40px;
  font-size: 13px;
  font-weight: 500;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  line-height: 1.4;
  color: var(--e-global-color-text, #1a1a1a);
}
.ssp-areas li {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  white-space: nowrap;
}
.ssp-areas__pin {
  width: 13px;
  height: 16px;
  flex: none;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.3;
  stroke-linejoin: round;
  opacity: 0.75;
  margin-top: -2px;
}
@media (max-width: 767px) {
  .ssp-areas { gap: 12px 24px; font-size: 12px; letter-spacing: 0.14em; }
}

/* ---- Text between two floating photos (.ssp-side-photos) --------------- */
/* Home, Weddings (x2), Galleries, Portraits. The photos hang outside a 1000px text
   column at fixed offsets, so on windows narrower than ~1550px they ran off the
   page. Now: at full size they sit exactly as designed; as the window narrows they
   stop 32px from its edge, shrink with it (21% of the window at most, same crop),
   and the text column narrows so nothing overlaps. Phones/tablets keep their own
   stacked layout. Per photo: designed width, proportions, and offset outside the
   column (--x, the left or right value at full size). */
@media (min-width: 1025px) {
  .ssp-side-photos > .elementor-widget-image {
    width: min(var(--w), 21vw) !important;
    max-width: none !important;
  }
  .ssp-side-photos > .elementor-widget-image img {
    width: 100% !important;
    height: auto !important;
    aspect-ratio: var(--ar);
  }
  .ssp-side-photos > .elementor-element-3815ec0,
  .ssp-side-photos > .elementor-element-c72ead2,
  .ssp-side-photos > .elementor-element-71394af,
  .ssp-side-photos > .elementor-element-40f2002,
  .ssp-side-photos > .elementor-element-d292414 { left: max(var(--x), calc(32px - (100vw - 100%) / 2)) !important; right: auto !important; }
  .ssp-side-photos > .elementor-element-dc0b461,
  .ssp-side-photos > .elementor-element-1c5c9d9,
  .ssp-side-photos > .elementor-element-aff43ee,
  .ssp-side-photos > .elementor-element-f8f1345,
  .ssp-side-photos > .elementor-element-6c8a26b { right: max(var(--x), calc(32px - (100vw - 100%) / 2)) !important; left: auto !important; }
  .ssp-side-photos > .elementor-widget:not(.elementor-widget-image) {
    max-width: min(100%, calc(100vw - 2 * (56px + 21vw))) !important;
  }
}
.elementor-element-3815ec0 { --w: 327px; --ar: 327 / 490; --x: -250px; }
.elementor-element-dc0b461 { --w: 302px; --ar: 302 / 453; --x: -250px; }
.elementor-element-c72ead2 { --w: 370px; --ar: 370 / 437; --x: -267px; }
.elementor-element-1c5c9d9 { --w: 383px; --ar: 383 / 569; --x: -270px; }
.elementor-element-71394af { --w: 331px; --ar: 331 / 437; --x: -230px; }
.elementor-element-aff43ee { --w: 332px; --ar: 332 / 438; --x: -270px; }
.elementor-element-40f2002, .elementor-element-d292414 { --w: 370px; --ar: 370 / 514; --x: -200px; }
.elementor-element-f8f1345, .elementor-element-6c8a26b { --w: 383px; --ar: 383 / 466; --x: -230px; }

/* ---- Privacy policy (and any other long legal text: .ssp-legal) -------- */
.elementor-widget.ssp-legal { max-width: 760px !important; width: 100%; margin-left: auto; margin-right: auto; }
.ssp-legal p { margin: 0 0 16px; }
.ssp-legal h1 { font-size: clamp(40px, 5vw, 58px); line-height: 1.1; margin: 0 0 24px; }
.ssp-legal h2 { font-size: clamp(24px, 2.4vw, 30px); line-height: 1.25; margin: 48px 0 14px; }
.ssp-legal h3 { font-size: 15px; font-family: inherit; font-weight: 600; letter-spacing: 0.12em; text-transform: uppercase; margin: 28px 0 10px; }
.ssp-legal p, .ssp-legal li { font-size: 16px; line-height: 1.75; }
.ssp-legal ul { margin: 0 0 18px; padding-left: 1.2em; }
.ssp-legal li { margin-bottom: 6px; }
.ssp-legal a { text-decoration: underline; text-underline-offset: 3px; }

/* ---- Footer map: black-and-white, warmed to the site's off-white ---------- */
/* Google's default blues/greens/red pin were the only bright colour in the footer.
   It eases back to colour on hover, so it still reads as a live map. */
.elementor-element-6cb9eb4 iframe {
  filter: grayscale(1) sepia(0.12) contrast(1.04) brightness(1.02);
  transition: filter 0.6s ease;
}
.elementor-element-6cb9eb4:hover iframe,
.elementor-element-6cb9eb4:focus-within iframe {
  filter: grayscale(0.1) sepia(0) contrast(1) brightness(1);
}
@media (prefers-reduced-motion: reduce) {
  .elementor-element-6cb9eb4 iframe { transition: none; }
}

/* ---- Inquire: phone / email / address, then a nudge down to the form -------- */
.ssp-contact {
  padding-top: 10px;
  font-size: 15px;
  font-weight: 600;
  letter-spacing: 0.12em;
  line-height: 1.6;
  text-transform: uppercase;
  color: var(--e-global-color-text, #1a1a1a);
}
.ssp-contact .ssp-contact__item { display: block; margin: 0 0 8px !important; color: inherit; text-decoration: none; }
a.ssp-contact__item:hover, a.ssp-contact__item:focus-visible { text-decoration: underline; text-underline-offset: 4px; }
.ssp-contact .ssp-contact__rule { border: 0; border-top: 1px solid currentColor; margin: 18px 0 20px !important; opacity: 1; }
.ssp-contact .ssp-contact__title {
  margin: 0 0 10px !important;
  font-family: var(--e-global-typography-04266aa-font-family, inherit), serif;
  font-size: 30px;
  font-weight: 400;
  line-height: 1.2;
  letter-spacing: 0;
  text-transform: none;
  color: inherit;
}
.ssp-contact__cta {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  color: inherit;
  text-decoration: none;
}
.ssp-contact__cta span { text-decoration: underline; text-underline-offset: 5px; text-decoration-thickness: 1px; }
.ssp-contact__arrow {
  width: 12px;
  height: 20px;
  flex: none;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.4;
  stroke-linecap: round;
  stroke-linejoin: round;
  transition: transform 0.3s ease;
}
.ssp-contact__cta:hover .ssp-contact__arrow,
.ssp-contact__cta:focus-visible .ssp-contact__arrow { transform: translateY(4px); }
@media (max-width: 767px) {
  .ssp-contact { font-size: 14px; letter-spacing: 0.1em; }
  .ssp-contact .ssp-contact__title { font-size: 26px; }
}
@media (prefers-reduced-motion: reduce) {
  .ssp-contact__arrow { transition: none; }
}

/* ---- First-screen fade-ins start with the first paint ------------------
   These elements use Elementor's "fade in" entrance animation, which keeps an element
   hidden until Elementor's script has loaded and run. They all sit in the first screen
   (the header logo on every inner page, page headings, hero photos, the gallery grid),
   so that wait was the slowest part of every page load. Same fade, same length, same
   delays, but run by CSS from the very first paint. The declarations apply to the element
   in every state (!important), so the fade does not start over when the script catches up. */
@keyframes ssp-first-fade { from { opacity: 0; } to { opacity: 1; } }
.elementor-110 .elementor-element.elementor-element-5055bff,   /* header logo, all inner pages */
.elementor-4174 .elementor-element.elementor-element-6a61367,  /* Galleries: heading */
.elementor-4174 .elementor-element.elementor-element-93f110a,  /* Galleries: grid */
.elementor-1970 .elementor-element.elementor-element-a405fb6,  /* Inquire: photos */
.elementor-1970 .elementor-element.elementor-element-d791cbf,
.elementor-1211 .elementor-element.elementor-element-c5cf898,  /* Portraits: heading */
.elementor-915 .elementor-element.elementor-element-560cf4f,   /* Weddings: photos (phone) */
.elementor-915 .elementor-element.elementor-element-61440ff,
.elementor-915 .elementor-element.elementor-element-c72ead2,   /* Weddings: photos (desktop) */
.elementor-915 .elementor-element.elementor-element-1c5c9d9,
.elementor-915 .elementor-element.elementor-element-7660954 {  /* Weddings: heading */
  visibility: visible !important;
  animation: ssp-first-fade 1.25s both !important;
}
.elementor-4174 .elementor-element.elementor-element-6a61367,
.elementor-4174 .elementor-element.elementor-element-93f110a,
.elementor-1970 .elementor-element.elementor-element-d791cbf,
.elementor-1211 .elementor-element.elementor-element-c5cf898 { animation-delay: .3s !important; }
.elementor-1970 .elementor-element.elementor-element-a405fb6 { animation-delay: .2s !important; }
/* Home: these two photos are in the first screen on phones only. */
@media (max-width: 767px) {
  .elementor-78 .elementor-element.elementor-element-6403159,
  .elementor-78 .elementor-element.elementor-element-0c1e872 {
    visibility: visible !important;
    animation: ssp-first-fade 1.25s both !important;
  }
  .elementor-78 .elementor-element.elementor-element-6403159 { animation-delay: .5s !important; }
  .elementor-78 .elementor-element.elementor-element-0c1e872 { animation-delay: .6s !important; }
}
@media (prefers-reduced-motion: reduce) {
  .elementor-110 .elementor-element.elementor-element-5055bff,
  .elementor-4174 .elementor-element.elementor-element-6a61367,
  .elementor-4174 .elementor-element.elementor-element-93f110a,
  .elementor-1970 .elementor-element.elementor-element-a405fb6,
  .elementor-1970 .elementor-element.elementor-element-d791cbf,
  .elementor-1211 .elementor-element.elementor-element-c5cf898,
  .elementor-915 .elementor-element.elementor-element-560cf4f,
  .elementor-915 .elementor-element.elementor-element-61440ff,
  .elementor-915 .elementor-element.elementor-element-c72ead2,
  .elementor-915 .elementor-element.elementor-element-1c5c9d9,
  .elementor-915 .elementor-element.elementor-element-7660954,
  .elementor-78 .elementor-element.elementor-element-6403159,
  .elementor-78 .elementor-element.elementor-element-0c1e872 { animation: none !important; }
}/* End custom CSS */
/* Start Custom Fonts CSS */@font-face {
	font-family: 'FreightBig Pro Book';
	font-style: normal;
	font-weight: normal;
	font-display: auto;
	src: url('https://sabrinascolariphotography.com/wp-content/uploads/2026/04/FreightBig-Pro-Book.woff2') format('woff2');
}
/* End Custom Fonts CSS */