/* Elementor wrapper adaptations. All visual styles stay inside the imported page. */
body.solness-canvas-page { background:#fafaf9; }
.solness-page {
  width:100%; max-width:none; min-width:0;
  --widgets-spacing:0px; --widgets-spacing-row:0px; --widgets-spacing-column:0px;
  --container-widget-width:100%; --container-widget-flex-grow:0;
  --padding-top:0px; --padding-right:0px; --padding-bottom:0px; --padding-left:0px;
  --gap:0px; gap:0;
}
.solness-page .e-con { --padding-top:0px; --padding-right:0px; --padding-bottom:0px; --padding-left:0px; --gap:0px; --container-widget-width:100%; min-width:0; }
.solness-page .elementor-widget { min-width:0; margin-block-end:0; }
.solness-page .elementor-widget-text-editor { color:inherit; font-family:"futura-100-book","futura-100",sans-serif; }
.solness-page .elementor-widget-heading .elementor-heading-title { color:inherit; }
.solness-page .elementor-widget-text-editor p + p { margin-top:18px; }
.solness-page .elementor-widget-text-editor p:last-child { margin-bottom:0; }
.solness-page .elementor-widget-image img { vertical-align:middle; }
/* Spacing belongs to the widget wrapper. Elementor resets inner headings and
   last paragraphs, and its zero widget gap must not erase the design rhythm. */
.solness-page .elementor-widget-divider.rule { border:0; margin-block:0 clamp(24px,3vw,40px); }
.solness-page .elementor-widget-heading.section-title { margin-block-end:clamp(28px,3vw,44px); }
.solness-page .elementor-widget-heading.section-title .elementor-heading-title { margin-block:0; }
.solness-page .site-footer .wrap > .elementor-widget-heading { margin-block-end:clamp(28px,4vw,50px); }
.solness-page .site-footer .wrap > .elementor-widget-heading .elementor-heading-title { margin-block:0; }
.solness-page .rule .elementor-divider { padding:0; }
.solness-page .rule .elementor-divider-separator { border-block-start:1px solid var(--rule); width:100%; }
.solness-page .site-footer .rule .elementor-divider-separator { border-color:var(--night-rule); }
.solness-page .elementor-button {
  display:inline-flex; align-items:center; justify-content:center; min-height:44px;
  font-family:"futura-100",sans-serif; font-size:14px; font-weight:600; line-height:1.15;
  padding:14px 26px; border-radius:999px; border:1px solid var(--ink);
  background:var(--ink); color:#fff; white-space:normal; text-align:center;
  transition:background .2s,color .2s; text-decoration:none;
}
.solness-page .elementor-button:hover { background:#000; border-color:#000; color:#fff; }
.solness-page .ghost .elementor-button { background:transparent; color:var(--ink); }
.solness-page .ghost .elementor-button:hover { background:var(--ink); color:#fff; }
.solness-page .light .elementor-button { background:#fff; color:var(--ink); border-color:#fff; }
.solness-page .purchase-pending .elementor-button { opacity:.45; cursor:default; }
.solness-page .elementor-widget-button { width:auto; max-width:100%; }
.solness-page .hero-actions, .solness-page .actions { display:flex; flex-direction:row; flex-wrap:wrap; gap:10px; width:auto; }
.solness-page .hero-foot { grid-template-columns:minmax(0,1fr) auto; }
.solness-page .card .elementor-widget-button, .solness-page .split .elementor-widget-button { margin-top:26px; align-self:start; }
.solness-page .card > .elementor-widget-image { margin-top:auto; }
.solness-page .hero-media .elementor-widget-container { overflow:hidden; border-radius:inherit; }
.solness-page .statement-text { display:flex; flex-direction:column; gap:0; }
.solness-page .statement-text > .elementor-widget-text-editor:not(:last-child) { margin-bottom:20px; }
.solness-page .statement-text p { margin:0; }
.solness-page .card .meta p { font-family:"futura-100",sans-serif; font-size:15px; color:var(--ink-soft); }
.solness-page .card > .meta { margin-bottom:14px; }
.solness-page .gallery > .elementor-widget-image, .solness-page .foot-gallery > .elementor-widget-image { border-radius:var(--radius); overflow:hidden; }
.solness-page .gallery .elementor-widget-image a, .solness-page .foot-gallery .elementor-widget-image a { width:100%; }
.solness-page .gallery-head .elementor-widget-text-editor { margin-block-end:22px; }
.solness-page .gallery-head .elementor-widget-text-editor p { margin-block-end:0; }
.solness-page .contact-intro { margin-block-end:30px; }
.solness-page .awards { margin-top:36px; }
.solness-page .site-footer .foot-cols .elementor-widget-text-editor { color:#d9d5d1; }
.solness-page .foot-cols .elementor-widget-text-editor li { margin-bottom:8px; }
.solness-page .foot-cols a { overflow-wrap:anywhere; }
.solness-page .foot-bottom { flex-direction:row; }
.solness-page .foot-bottom .elementor-widget-text-editor { width:auto; font-size:12.5px; color:#b9b3ad; }
.solness-page .social-pending { display:none; }
.solness-page .book .book-cover { width:100%; max-width:420px; justify-self:center; }
.solness-page .book .placeholder { min-height:0; width:100%; padding:24px; }
.solness-page .book-placeholder-text { text-align:center; }
.solness-page .book > .e-con:not(.book-cover) > .elementor-widget-text-editor { margin-block-end:18px; }
.solness-page .book > .e-con:not(.book-cover) > .elementor-widget-text-editor.price { margin-block-end:22px; }
.solness-page .book .elementor-widget-text-editor.price p { font-family:"futura-100",sans-serif; font-size:22px; }
.solness-page .book .book-placeholder-text p { margin:0; font-size:18px; }
.solness-page .ex-date-label.elementor-widget { margin-block-end:6px; }
.solness-page .ex-date-label p { font-size:14px; color:var(--ink-soft); margin-bottom:0; }
.solness-page .ex-date-value .elementor-heading-title { font-size:clamp(22px,2.6vw,34px); line-height:1.2; font-weight:300; }
.solness-page .ex-date { gap:0; }
/* Native Elementor Basic Gallery: the media picker retains captions and ordering. */
.solness-page .ex-gallery-widget .gallery { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px; margin:0; }
.solness-page .ex-gallery-widget .gallery-item { display:block; width:100%; max-width:none; float:none; margin:0; padding:0; background:transparent; overflow:visible; }
.solness-page .ex-gallery-widget .gallery-icon a { display:block; border-radius:var(--radius); overflow:hidden; }
.solness-page .ex-gallery-widget .gallery-icon img { width:100%; height:auto; aspect-ratio:3/2; object-fit:cover; border:0; }
.solness-page .ex-gallery-widget .gallery-caption { display:block; text-align:left; font-family:"futura-100-book",sans-serif; font-size:13.5px; line-height:1.5; color:var(--ink-soft); margin:0; padding:10px 2px 0; }
.solness-page .ex-gallery-widget .gallery br { display:none; }
.solness-page .ex-gallery-widget .gallery:has(> .gallery-item:only-of-type) { grid-template-columns:1fr; }
.solness-page .ex-gallery-widget .gallery:has(> .gallery-item:nth-of-type(2):last-of-type), .solness-page .ex-gallery-widget .gallery:has(> .gallery-item:nth-of-type(4):last-of-type) { grid-template-columns:repeat(2,minmax(0,1fr)); }
/* The page owns its header; the existing Astra header and menus are untouched. */
.solness-page .nav { flex-direction:row; flex-wrap:nowrap; gap:24px; min-height:76px; height:auto; }
.solness-page .brand { width:auto; flex-shrink:0; }
.solness-page .brand .elementor-heading-title { font-size:21px; font-weight:400; white-space:nowrap; }
.solness-page .menu { flex:1 1 auto; width:auto; margin-left:16px; }
.solness-page .menu-links .elementor-icon-list-items { display:flex; flex-wrap:nowrap; gap:20px; align-items:center; margin:0; padding:0; list-style:none; }
.solness-page .menu-links .elementor-icon-list-item { margin:0; padding:0; width:auto; }
.solness-page .menu-links .elementor-icon-list-icon { display:none; }
.solness-page .menu-links .elementor-icon-list-text { padding:0; font-family:"futura-100",sans-serif; font-size:14px; line-height:1.4; color:var(--ink); }
.solness-page .menu a { display:block; padding-block:12px; border:0; opacity:1; }
.solness-page .menu a:hover .elementor-icon-list-text { text-decoration:underline; text-underline-offset:5px; }
.solness-page .header-contact { flex:0 0 auto; }
.solness-page .menu-toggle { display:none; margin-left:auto; }
.solness-page .menu-toggle .elementor-button { background:transparent; color:var(--ink); border:1px solid var(--rule); padding:10px 18px; }
body.admin-bar .solness-page .site-header { top:32px; }
.solness-page .menu-close { display:none; }
.solness-menu-overlay { position:fixed; inset:0; z-index:9000; background:rgba(0,0,0,.45); border:0; }
.solness-menu-overlay[hidden] { display:none; }
.solness-page .site-header.is-menu-open { z-index:9001; }
/* Match the native Pro form's generated-selector specificity without !important
   or page IDs. Keep the original underlined fields and a 20px / 22px rhythm. */
.solness-page .elementor-widget-form.solness-contact-form .elementor-form .elementor-form-fields-wrapper { margin:0 -10px -22px; }
.solness-page .elementor-widget-form.solness-contact-form .elementor-form .elementor-field-group { padding-inline:10px; margin-block-end:22px; }
.solness-page .elementor-widget-form.solness-contact-form .elementor-form .elementor-field-label { font-family:"futura-100",sans-serif; color:var(--ink); font-size:14px; line-height:1.4; margin-bottom:6px; }
.solness-page .elementor-widget-form.solness-contact-form .elementor-form .elementor-field-group .elementor-field-textual {
  width:100%; min-width:0; min-height:44px; background:transparent; border:0; border-bottom:1px solid var(--rule);
  border-radius:0; padding:10px 0; font-family:"futura-100-book",sans-serif; font-size:16px; line-height:1.5;
  color:var(--ink); box-shadow:none;
}
.solness-page .elementor-widget-form.solness-contact-form .elementor-form .elementor-field-group textarea.elementor-field-textual { min-height:120px; resize:vertical; }
.solness-page .elementor-widget-form.solness-contact-form .elementor-form .elementor-field-group .elementor-field-textual:focus { border-bottom-color:var(--ink); }
.solness-page .solness-contact-form .elementor-field-textual::placeholder { color:var(--ink-soft); opacity:1; }
.solness-page .solness-contact-form .elementor-field-type-submit { justify-content:flex-start; }
.solness-page .solness-contact-form .elementor-message { font-family:"futura-100-book",sans-serif; line-height:1.5; }
.solness-page .contact-email { margin-top:20px; }
.solness-page .contact-email a { text-decoration:underline; overflow-wrap:anywhere; }
/* Tablet/mobile are local CSS breakpoints; no Elementor site settings are changed. */
@media(max-width:1180px) {
  .solness-page .nav { justify-content:space-between; }
  .solness-page .header-contact { display:none; }
  .solness-page .menu-toggle { display:block; }
  .solness-page .menu {
    display:none; position:fixed; top:0; right:0; bottom:0; width:min(86vw,380px); height:100dvh;
    margin:0; padding:76px 28px 32px; overflow-y:auto; background:var(--night); color:#fff;
    z-index:9002; flex-direction:column; justify-content:flex-start; align-items:stretch;
  }
  .solness-page .menu.is-open { display:flex; }
  .solness-page .menu-links .elementor-icon-list-items { flex-direction:column; align-items:stretch; gap:0; }
  .solness-page .menu-links .elementor-icon-list-item { width:100%; }
  .solness-page .menu a { padding:13px 0; border-bottom:1px solid var(--night-rule); }
  .solness-page .menu-links .elementor-icon-list-text { color:#fff; font-size:24px; font-weight:300; white-space:normal; }
  .solness-page .menu-close { display:block; position:absolute; top:16px; right:20px; padding:10px; border:1px solid var(--night-rule); border-radius:6px; color:#fff; background:transparent; min-height:44px; font:400 14px "futura-100",sans-serif; }
}
@media(max-width:960px) {
  .solness-page .hero-foot { grid-template-columns:1fr; }
  .solness-page .ex-gallery-widget .gallery { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .solness-page .hero-actions { justify-content:flex-start; }
  .solness-page .book .book-cover { justify-self:start; }
}
@media(max-width:782px) { body.admin-bar .solness-page .site-header { top:46px; } }
@media(max-width:720px) {
  .solness-page .hero-actions { width:100%; }
  .solness-page .hero-actions .elementor-widget-button { flex:1 1 140px; }
  .solness-page .hero-actions .elementor-button { width:100%; }
  .solness-page .card .elementor-button { padding-inline:20px; }
  .solness-page .elementor-widget-form.solness-contact-form .elementor-form .elementor-field-group { width:100%; }
}
@media(max-width:600px) { body.admin-bar .solness-page .site-header { top:0; } }
@media(max-width:480px) {
  .solness-page .ex-gallery-widget .gallery, .solness-page .ex-gallery-widget .gallery:has(> .gallery-item:nth-of-type(2):last-of-type), .solness-page .ex-gallery-widget .gallery:has(> .gallery-item:nth-of-type(4):last-of-type) { grid-template-columns:1fr; }
  .solness-page .nav { gap:12px; }
}
@media(prefers-reduced-motion:reduce) { .solness-page .elementor-button { transition:none; } }
/* Keep the navigation editable inside the Elementor editor without trapping focus. */
body.elementor-editor-active .solness-page .menu-close { pointer-events:none; }
