/* ==========================================================================
   Bøgeholdt Montage — finishing layer over the native Divi 5 modules.
   Edit this file to tweak the polish; the layout itself is editable in Divi.
   ========================================================================== */

:root{
  --dark:#202721; --cream:#f6f4ef; --card:#fffefb; --prim:#294c62; --primh:#203e51;
  --accent:#b88d63; --wood:#7e5a3b; --sand:#e8e3d8; --border:#d9d6cc; --muted:#657069;
}

/* Kill white margin-collapse bands between sections */
body,#page-container,#et-main-area,.et-l--body,.et-l--post{ background-color:var(--cream); }
body{ font-family:'DM Sans',-apple-system,Segoe UI,Roboto,sans-serif; color:var(--dark); }

/* ---------- Typography ---------- */
.rb-h1{ font-family:'Fraunces',Georgia,serif; font-weight:600;
  font-size:clamp(2.7rem,5.3vw,4.7rem); line-height:1.0; letter-spacing:-.03em;
  color:var(--dark); margin:.1em 0 .05em; }
.rb-h1 em{ font-style:italic; font-weight:400; color:var(--wood); }
.rb-h2, h2.rb-h2, .rb-h2 .et_pb_heading_container h2{ font-family:'Fraunces',Georgia,serif !important;
  font-weight:600; font-size:clamp(2rem,3.6vw,3.05rem); line-height:1.05; letter-spacing:-.02em; }
.et_pb_heading.rb-h2 h1,.et_pb_heading.rb-h2 h2{ font-family:'Fraunces',Georgia,serif; font-weight:600;
  font-size:clamp(2rem,3.6vw,3.05rem); line-height:1.05; letter-spacing:-.02em; color:var(--dark); }
.rb-center h2, .rb-center{ text-align:center; }
.rb-lead{ font-size:1.16rem; line-height:1.75; color:var(--muted); max-width:36rem; margin:.6em 0; }
.rb-eyebrow{ text-transform:uppercase; letter-spacing:.18em; font-size:.72rem; font-weight:700;
  color:var(--prim); margin:0 0 .2em; display:flex; align-items:center; gap:.6em; }
.rb-eyebrow:before{ content:''; width:28px; height:2px; background:currentColor; display:inline-block; }

/* ---------- Buttons (pill) ---------- */
.et_pb_button{ border-radius:999px !important; padding:15px 28px !important; font-weight:600 !important;
  font-size:1rem !important; letter-spacing:0 !important; transition:.25s !important; }
.et_pb_button:not(.rb-navphone):after,.et_pb_button:not(.rb-navphone):before{ display:none !important; }
.rb-btnrow .et_pb_button_module_wrapper{ display:inline-block; vertical-align:top;
  margin:8px 12px 8px 0; }
.et_pb_button[href^="tel"]{ background:var(--prim) !important; color:#fff !important; border:none !important; }
.et_pb_button[href^="tel"]:hover{ background:var(--primh) !important; }

/* ---------- Header / topbar ---------- */
.rb-topbar{ text-align:center; }
.rb-topbar-t{ color:#fff; font-size:.85rem; font-weight:500; margin:0; }
.rb-topbar-t:before{ content:'📍 '; }
.rb-header{ position:relative; z-index:20; }
.rb-header-row{ align-items:center !important; display:flex !important; }
.rb-header-row .et_pb_column{ margin-bottom:0 !important; display:flex; align-items:center; }
.rb-logo-col{ justify-content:flex-start; }
.rb-logo .et_pb_image_wrap img,.rb-logo img{ height:88px; width:auto; object-fit:contain; }
.rb-menu-col{ justify-content:center; }
.rb-phone-col{ justify-content:flex-end; }
.rb-menu.et_pb_menu, .rb-menu .et_pb_menu_inner_container{ justify-content:center !important; background:transparent !important; }
.rb-menu .et-menu li a{ color:var(--dark); font-weight:500; font-size:.98rem; }
.rb-menu .et-menu li a:hover{ color:var(--prim); }
.rb-navphone.et_pb_button{ background:var(--prim) !important; color:#fff !important; border:none !important; }
.rb-navphone .rb-ph{ display:inline-flex; width:18px; height:18px; margin-right:8px; vertical-align:-3px; color:#fff; }
.rb-navphone .rb-ph svg{ width:100%; height:100%; }
@media (min-width:981px){
  .rb-header-row .et_pb_column:first-child{ flex:1 1 auto; min-width:0; width:auto !important; }
  .rb-header-row .et_pb_column:nth-child(2){ flex:2 1 auto; width:auto !important; }
  .rb-header-row .et_pb_column:nth-child(3){ flex:1 1 auto; width:auto !important; }
}
body.admin-bar .rb-topbar{ } /* header is static; no admin-bar clash */

/* ---------- Hero ---------- */
.rb-hero-left{ justify-content:center; display:flex; flex-direction:column; }
.rb-hero-photo{ min-height:560px; border-radius:32px; overflow:hidden;
  background-size:cover !important; background-position:center !important; position:relative;
  display:flex; flex-direction:column; justify-content:flex-end; }
.rb-hero-photo:after{ content:''; position:absolute; left:0; right:0; bottom:0; height:45%;
  background:linear-gradient(to top,rgba(32,39,33,.6),transparent); z-index:1; }
.rb-hero-cap{ position:relative; z-index:2; padding:28px; display:flex; align-items:flex-end; justify-content:space-between; gap:16px; }
.rb-hero-hammer{ flex-shrink:0; width:48px; height:48px; border:1px solid rgba(255,255,255,.5);
  border-radius:999px; display:flex; align-items:center; justify-content:center; color:#fff; }
.rb-hero-hammer svg{ width:20px; height:20px; }
.rb-hero-eyebrow{ color:#f0d4b0; text-transform:uppercase; letter-spacing:.16em; font-size:.72rem;
  font-weight:700; margin:0 0 .3em; }
.rb-hero-cap-t{ color:#fff; font-family:'Fraunces',serif; font-size:1.5rem; line-height:1.25; margin:0; max-width:16em; }
.rb-rating{ display:inline-flex; align-items:center; gap:12px; background:#e9e6dd; padding:12px 16px;
  border-radius:14px; text-decoration:none; margin-top:14px; width:fit-content; }
.rb-rating:hover{ background:#e2dfd5; }
.rb-stars{ color:#ba834c; letter-spacing:2px; font-size:1rem; }
.rb-rating-txt{ color:var(--dark); font-size:.9rem; border-left:1px solid #c8c2b6; padding-left:12px; }
.rb-rating-txt .rb-muted{ color:var(--muted); }

/* ---------- Reviews band ---------- */
.rb-bigscore{ display:flex; align-items:flex-end; gap:14px; margin-top:8px; }
.rb-score{ font-family:'Fraunces',serif; font-size:4.5rem; line-height:.9; color:var(--dark); }
.rb-score-sub{ color:var(--muted); font-size:.9rem; padding-bottom:6px; }
.rb-score-sub strong{ color:var(--dark); }
.rb-stars-lg{ font-size:1.35rem; margin:8px 0; color:#b67a3e; }
.rb-badge{ display:inline-block; border:1px solid #c9b79e; background:#f4efe4; color:#4a493d;
  font-size:.75rem; font-weight:700; padding:7px 12px; border-radius:999px; }
.rb-reviews{ position:relative; overflow:hidden; }
.rb-reviews:after{ content:''; position:absolute; right:-70px; top:-90px; width:440px; height:440px;
  background:url(/wp-content/uploads/2026/08/11e58fc2-519a-4ae5-93eb-98494d78a954.jpg) no-repeat center/contain;
  opacity:.12; mix-blend-mode:multiply; pointer-events:none; z-index:0; }
.rb-reviews .et_pb_row{ position:relative; z-index:1; }
.rb-testi-grid{ display:grid; grid-template-columns:1fr 1fr; gap:1px; background:#cfc9bd;
  border-radius:18px; overflow:hidden; }
.rb-testi{ background:#f8f6f0; padding:28px; margin:0; display:flex; flex-direction:column;
  justify-content:space-between; }
.rb-testi-icon{ color:var(--accent); line-height:0; }
.rb-testi-icon svg{ width:26px; height:26px; }
.rb-testi-q{ font-family:'Fraunces',serif; font-size:1.18rem; line-height:1.5; color:var(--dark);
  margin:18px 0 16px; }
.rb-testi-n{ font-size:.85rem; font-weight:600; color:var(--muted); }
.rb-textlink .et_pb_button, .rb-textlink.et_pb_button{ background:transparent !important; color:var(--dark) !important;
  border:none !important; padding-left:0 !important; text-decoration:underline; text-decoration-color:var(--accent);
  text-underline-offset:5px; }

/* ---------- Projekter / DBR overlay cards ---------- */
#projekter .dbrcb-cases{ margin-top:8px; }
.dbrcb-filter{ display:flex; flex-wrap:wrap; gap:8px; margin-bottom:30px; justify-content:flex-start; }
.rb-textlink-inline{ display:inline-block; margin-top:34px; font-weight:700; color:var(--dark);
  text-decoration:underline; text-decoration-color:var(--accent); text-decoration-thickness:2px;
  text-underline-offset:4px; }
.dbrcb-filter-btn{ border:none; background:var(--sand); color:var(--muted); border-radius:999px;
  padding:9px 18px; font-weight:600; font-size:.9rem; cursor:pointer; transition:.2s; }
.dbrcb-filter-btn.is-active{ background:var(--dark); color:#fff; }
.dbrcb-layout-overlay .dbrcb-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:20px; }
.dbrcb-layout-overlay .dbrcb-card:first-child{ grid-column:span 1; }
.dbrcb-card{ position:relative; border-radius:20px; overflow:hidden; min-height:200px; background:#ddd; }
.dbrcb-card-link{ display:block; height:100%; color:#fff; text-decoration:none; }
.dbrcb-card-media{ position:absolute; inset:0; }
.dbrcb-card-media img{ width:100%; height:100%; object-fit:cover; transition:transform .7s; }
.dbrcb-card:hover .dbrcb-card-media img{ transform:scale(1.05); }
.dbrcb-card-body{ position:absolute; inset:0; display:flex; flex-direction:column; justify-content:flex-end;
  padding:26px; background:linear-gradient(to top,rgba(23,32,24,.82),rgba(23,32,24,.15) 55%,transparent); }
.dbrcb-card-label{ color:#f0d4b0; text-transform:uppercase; letter-spacing:.14em; font-size:.7rem;
  font-weight:700; margin:0 0 6px; }
.dbrcb-card-title{ font-family:'Fraunces',serif; font-size:1.5rem; line-height:1.15; margin:0 0 10px; color:#fff; }
.dbrcb-card-quote{ font-size:.9rem; line-height:1.4; color:rgba(255,255,255,.9); margin:0; }
.dbrcb-verified{ color:#f0d4b0; font-weight:700; font-size:.7rem; text-transform:uppercase; letter-spacing:.08em; white-space:nowrap; }
.dbrcb-card-arrow{ position:absolute; top:22px; right:22px; width:44px; height:44px; border-radius:999px;
  background:#fff; color:var(--dark); display:flex; align-items:center; justify-content:center; font-size:1.2rem; }
.dbrcb-card-excerpt{ font-size:.9rem; color:rgba(255,255,255,.9); margin:0; }
/* Clearer clickable cards: date + "Se billeder" CTA + hover-lift */
.dbrcb-card{ cursor:pointer; transition:transform .25s ease, box-shadow .25s ease; }
.dbrcb-card:hover{ transform:translateY(-4px); box-shadow:0 18px 40px rgba(23,32,24,.28); }
.dbrcb-layout-overlay .dbrcb-card-arrow{ display:none !important; }
.rb-card-date{ color:#f0d4b0; text-transform:none; letter-spacing:0; font-weight:600; }
.rb-card-cta{ display:inline-flex; align-items:center; gap:7px; align-self:flex-start; margin-top:13px;
  background:rgba(255,255,255,.16); color:#fff; font-weight:700; font-size:.82rem; padding:8px 15px;
  border-radius:999px; border:1px solid rgba(255,255,255,.4); transition:background .2s, color .2s; }
.dbrcb-card:hover .rb-card-cta{ background:#fff; color:var(--dark); border-color:#fff; }
/* Compact project cards: ~half the height + cleaner overview. The card height comes from the
   link's aspect-ratio (plugin default 4/5 portrait); overriding it to 8/5 landscape halves it.
   Quote/excerpt are hidden on the grid tiles (they still show in full inside the opened overlay)
   and the top padding is trimmed so the shorter card never clips the label/title. */
.rb-projekter .dbrcb-card-link{ aspect-ratio:8/5 !important; }
.rb-projekter .dbrcb-card-body{ padding:26px 22px 22px !important; }
.rb-projekter .dbrcb-card-quote,
.rb-projekter .dbrcb-card-excerpt,
.rb-projekter .dbrcb-verified{ display:none !important; }
.rb-projekter .dbrcb-card-title{ font-size:1.15rem !important; line-height:1.2; margin-bottom:6px;
  display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
.rb-projekter .rb-card-cta{ margin-top:11px; }

/* ---------- Om Anders (dark) ---------- */
#om-os{ color:#fff; }
.rb-om-photo{ position:relative; }
.rb-round-lg .et_pb_image_wrap img,.rb-round-lg img{ border-radius:28px; width:100%; aspect-ratio:4/5; object-fit:cover; }
.rb-years{ position:absolute; right:-6px; bottom:-18px; background:var(--accent); color:var(--dark);
  border-radius:18px; padding:18px 22px; max-width:190px; }
.rb-years-n{ font-family:'Fraunces',serif; font-size:2rem; display:block; line-height:1; }
.rb-years-t{ font-size:.85rem; font-weight:500; display:block; margin-top:6px; }
.rb-on-dark h2, .rb-on-dark .et_pb_heading_container h2, .rb-on-dark{ color:#fff !important; }
.rb-on-dark-muted{ color:rgba(255,255,255,.72) !important; }
.rb-checks{ list-style:none; padding:0; margin:18px 0 0; display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.rb-checks li{ display:flex; align-items:center; gap:10px; font-weight:500; font-size:.95rem; color:#fff; }
.rb-checks li:before{ content:'✓'; display:inline-flex; align-items:center; justify-content:center;
  width:24px; height:24px; border-radius:999px; background:rgba(255,255,255,.1); color:var(--accent); font-size:.8rem; }

/* ---------- Proces ---------- */
.rb-steps-row{ display:grid !important; grid-template-columns:repeat(6,1fr); gap:16px; }
.rb-steps-row > .et_pb_column{ width:auto !important; margin:0 !important; }
.rb-step-col{ position:relative; background:var(--card); border-radius:18px; padding:22px !important;
  box-shadow:0 12px 30px rgba(32,39,33,.05); margin-bottom:0 !important; min-height:130px; }
.rb-step-col:not(:last-child):after{ content:'›'; position:absolute; right:-13px; top:50%;
  transform:translateY(-50%); font-size:1.5rem; line-height:1; color:#5e665e; z-index:3; }
.rb-step-n{ font-weight:700; color:var(--accent); font-size:.9rem; }
.rb-step-t{ font-weight:600; font-size:1.02rem; margin:26px 0 0; }
@media (max-width:980px){ .rb-steps-row{ grid-template-columns:repeat(3,1fr);}
  .rb-step-col:nth-child(3n):after{ display:none; } }
@media (max-width:600px){ .rb-steps-row{ grid-template-columns:repeat(2,1fr);}
  .rb-step-col:after{ display:none; } }

/* ---------- Hvorfor ---------- */
.rb-why-grid{ display:grid; grid-template-columns:1fr 1fr; gap:30px 40px; }
.rb-why{ border-top:1px solid #bfcac4; padding-top:20px; }
.rb-why-i{ display:block; color:var(--prim); line-height:0; margin-bottom:14px; }
.rb-why-i svg{ width:26px; height:26px; }
.rb-why-t{ font-size:1.15rem; font-weight:700; margin:0 0 8px; }
.rb-why-d{ font-size:.95rem; line-height:1.55; color:var(--muted); margin:0; }
@media (max-width:600px){ .rb-why-grid{ grid-template-columns:1fr; } }

/* ---------- FAQ accordion ---------- */
.rb-faq.et_pb_accordion .et_pb_toggle{ background:transparent !important; border:none !important;
  border-bottom:1px solid var(--border) !important; box-shadow:none !important; padding:6px 0 !important; }
.rb-faq .et_pb_toggle_title{ font-family:'DM Sans',sans-serif !important; font-size:1.15rem !important;
  font-weight:600 !important; color:var(--dark) !important; padding:18px 40px 18px 0 !important; }
.rb-faq .et_pb_toggle_content{ color:var(--muted); line-height:1.65; padding-bottom:18px; }
.rb-faq .et_pb_toggle_open .et_pb_toggle_title:before,
.rb-faq .et_pb_toggle .et_pb_toggle_title:before{ color:var(--prim) !important; }

/* ---------- Kontakt ---------- */
#kontakt{ color:var(--dark); }
.rb-kontakt-h{ color:var(--dark); }
.rb-kontakt-lead{ color:#3f3023; line-height:1.6; max-width:24rem; }
.rb-kontakt-phone{ display:inline-flex; align-items:center; gap:10px; font-size:1.3rem; font-weight:700;
  color:var(--dark); text-decoration:none; margin-top:8px; }
.rb-kontakt-hours{ font-size:.9rem; color:#52351e; margin-top:12px; }
.rb-form.et_pb_contact_form_container, .rb-form .et_pb_contact{ background:var(--card); border-radius:22px; padding:30px; }
.rb-form .et_pb_contact_field{ padding:0 8px 14px 0 !important; }
.rb-form .et_pb_contact_field input, .rb-form textarea{
  background:#fbfaf7 !important; border:1px solid var(--border) !important; border-radius:12px !important;
  padding:13px 16px !important; font-size:1rem !important; color:var(--dark) !important; }
.rb-form .et_pb_contact_submit.et_pb_button{ background:var(--prim) !important; color:#fff !important;
  border:none !important; width:100%; }

/* ---------- Footer ---------- */
.rb-footer{ color:rgba(255,255,255,.7); }
.rb-logo-foot img{ height:56px; width:auto; filter:brightness(0) invert(1); }
.rb-foot-tag{ font-size:.9rem; margin-top:10px; }
.rb-award{ display:flex; align-items:center; gap:14px; border:1px solid rgba(255,255,255,.15);
  background:rgba(255,255,255,.08); border-radius:16px; padding:12px 18px 12px 12px; }
.rb-award img{ width:60px; height:60px; object-fit:contain; background:#fffefb; border-radius:12px; padding:4px; }
.rb-award-k{ color:var(--accent); font-size:.66rem; font-weight:700; text-transform:uppercase; letter-spacing:.14em; margin:0; }
.rb-award-t{ color:#fff; font-weight:600; font-size:.9rem; margin:4px 0 0; }
.rb-foot-links{ display:flex; gap:20px; }
.rb-foot-links a{ color:rgba(255,255,255,.7); text-decoration:none; font-size:.9rem; }
.rb-foot-links a:hover{ color:#fff; }
.rb-foot-cvr{ font-size:.85rem; margin-top:14px; }

/* ---------- Responsive ---------- */
@media (max-width:980px){
  .dbrcb-layout-overlay .dbrcb-grid{ grid-template-columns:1fr 1fr; }
  .dbrcb-layout-overlay .dbrcb-card:first-child{ grid-column:span 1; }
  .rb-hero-photo{ min-height:380px; }

  /* ---- Topbar: kill Divi's default row/column padding so it isn't tall ---- */
  .rb-topbar .et_pb_row, .rb-topbar .et_pb_column{ padding:0 !important; margin:0 !important; }

  /* ---- Mobile header: logo left, hamburger + phone icon right ----
     High-specificity selectors so they beat Divi's `.et_pb_row .et_pb_column{width:100%}` mobile rule. */
  body .rb-header-row.et_pb_row{ display:flex !important; flex-direction:row !important;
    flex-wrap:nowrap !important; align-items:center !important; gap:8px;
    padding-top:0 !important; padding-bottom:0 !important; }
  /* Topbar is decorative — drop it on mobile so the fixed header stays compact */
  .rb-topbar{ display:none !important; }
  .rb-header{ padding-top:8px !important; padding-bottom:8px !important; }
  body .rb-header-row.et_pb_row > .et_pb_column{ width:auto !important; max-width:none !important;
    margin:0 !important; padding:0 !important; }
  body .rb-header-row .rb-logo-col{ flex:1 1 auto !important; justify-content:flex-start !important;
    text-align:left !important; }
  body .rb-header-row .rb-logo-col .et_pb_image{ margin:0 !important; text-align:left !important; }
  body .rb-header-row .rb-logo-col .et_pb_image_wrap{ display:inline-block !important; }
  .rb-logo img, .rb-logo .et_pb_image_wrap img{ height:50px !important; width:auto !important; }
  body .rb-header-row .rb-menu-col{ flex:0 0 auto !important; justify-content:flex-end !important; }
  /* Phone icon-button removed on mobile — the full-screen menu has a prominent "Ring" CTA */
  body .rb-header-row .rb-phone-col{ display:none !important; }
  /* Divi's own mobile menu (hamburger lives inside .et_pb_menu__wrap — do NOT hide the wrap) */
  .rb-menu .et_mobile_nav_menu{ display:block !important; }
  .rb-menu .mobile_menu_bar:before{ color:var(--dark) !important; }
  .rb-menu .et_mobile_menu{ background:#fffefb !important; border-color:var(--border) !important;
    right:0; left:auto; width:75vw; max-width:320px; }
  .rb-menu .et_mobile_menu a{ color:var(--dark) !important; font-size:1rem !important; }

  /* ---- Reviews stack ---- */
  .rb-testi-grid{ grid-template-columns:1fr; }
  /* ---- Hero buttons: full width, no wrap ---- */
  .rb-btnrow .et_pb_button_module_wrapper{ display:block; margin:8px 0; }
  .rb-hero-left .et_pb_button{ display:block; text-align:center; white-space:nowrap; }
}
@media (max-width:600px){
  .dbrcb-layout-overlay .dbrcb-grid{ grid-template-columns:1fr; }
  .dbrcb-layout-overlay .dbrcb-card:first-child{ grid-column:span 1; }
  .rb-checks{ grid-template-columns:1fr; }
}

/* ---------- Projekt-overlay (modal) ---------- */
.rb-modal{ position:fixed; inset:0; z-index:100000; display:flex; align-items:flex-start;
  justify-content:center; padding:4vh 16px; opacity:0; transition:opacity .2s ease; }
.rb-modal[hidden]{ display:none !important; }  /* must not intercept clicks when closed */
.rb-modal.is-open{ opacity:1; }
.rb-modal-backdrop{ position:fixed; inset:0; background:rgba(23,32,24,.8); backdrop-filter:blur(3px);
  -webkit-backdrop-filter:blur(3px); }
.rb-modal-panel{ position:relative; z-index:1; width:100%; max-width:1000px; max-height:92vh;
  overflow-y:auto; -webkit-overflow-scrolling:touch; background:#fffefb; border-radius:24px;
  padding:32px clamp(20px,4vw,40px) 40px; box-shadow:0 30px 80px rgba(0,0,0,.4);
  transform:translateY(14px); transition:transform .22s ease; }
.rb-modal.is-open .rb-modal-panel{ transform:translateY(0); }
.rb-modal-close{ position:sticky; top:0; float:right; width:44px; height:44px; border:1px solid var(--border);
  border-radius:999px; background:#fffefb; color:var(--dark); font-size:1.5rem; line-height:1; cursor:pointer;
  display:flex; align-items:center; justify-content:center; z-index:2; margin:-8px -8px 0 0; }
.rb-modal-close:hover{ background:var(--muted); }
.rb-modal-cat{ text-transform:uppercase; letter-spacing:.14em; font-size:.72rem; font-weight:700;
  color:var(--prim); margin:0 0 6px; }
.rb-modal-title{ font-family:'Fraunces',Georgia,serif; font-size:clamp(1.6rem,4vw,2.4rem); line-height:1.1;
  color:var(--dark); margin:0 0 8px; }
.rb-modal-body{ color:var(--muted); line-height:1.7; }
.rb-modal-body p{ margin:0 0 12px; }
.rb-modal-loading{ padding:40px 0; text-align:center; color:var(--muted); }
.rb-modal-body .dbrcb-single-gallery{ grid-template-columns:repeat(3,1fr) !important; }
.rb-modal-body .dbrcb-single-meta{ display:none; }
@media (max-width:600px){
  .rb-modal{ padding:0; align-items:stretch; }
  .rb-modal-panel{ max-width:none; max-height:none; min-height:100vh; min-height:100svh;
    border-radius:0; padding:20px 18px calc(32px + env(safe-area-inset-bottom));
    padding-top:calc(18px + env(safe-area-inset-top)); }
  .rb-modal-body .dbrcb-single-gallery{ grid-template-columns:repeat(2,1fr) !important; }
}
/* lightbox above the modal + safe-area */
.rb-lb.dbrcb-lightbox{ z-index:100001; }
.rb-lb .dbrcb-lightbox-close{ top:calc(16px + env(safe-area-inset-top)); }

/* Modal gallery: force uniform square thumbnails */
.rb-modal-body .dbrcb-single-gallery .dbrcb-lb-item{ aspect-ratio:1 !important; height:auto !important; }
.rb-modal-body .dbrcb-single-gallery .dbrcb-lb-item img{ width:100% !important; height:100% !important; object-fit:cover !important; }

/* Contact form: full-width stacked fields on phones (Divi 5 flex-module form) */
@media (max-width:600px){
  .rb-form .et_pb_contact{ padding:0 !important; width:100% !important; }
  .rb-form .et_pb_contact_form.et_flex_module{ display:block !important; width:100% !important;
    grid-template-columns:1fr !important; }
  .rb-form .et_pb_contact_field{ width:100% !important; max-width:none !important; float:none !important;
    margin:0 0 12px 0 !important; padding:0 !important; grid-column:1 / -1 !important; }
  .rb-form .et_pb_contact_field input, .rb-form .et_pb_contact_field textarea{ width:100% !important; }
}

/* ==========================================================================
   Modern full-screen mobile menu (replaces Divi's default dropdown)
   ========================================================================== */
.et_mobile_menu{ display:none !important; }   /* hide Divi's built-in dropdown */

.rb-mobmenu{ position:fixed; inset:0; z-index:100002; display:flex; flex-direction:column;
  background:#202721; color:#fff; opacity:0; transition:opacity .28s ease;
  padding:calc(14px + env(safe-area-inset-top)) 22px calc(28px + env(safe-area-inset-bottom));
  overflow-y:auto; -webkit-overflow-scrolling:touch; }
.rb-mobmenu[hidden]{ display:none !important; }
.rb-mobmenu.is-open{ opacity:1; }

.rb-mobmenu-top{ display:flex; align-items:center; justify-content:space-between; gap:12px; }
.rb-mobmenu-close{ width:46px; height:46px; border:1px solid rgba(255,255,255,.25); border-radius:999px;
  background:transparent; color:#fff; display:flex; align-items:center; justify-content:center; cursor:pointer;
  transition:.2s; }
.rb-mobmenu-close:hover{ background:rgba(255,255,255,.1); }
.rb-mobmenu-close svg{ width:22px; height:22px; }
.rb-mobmenu-logo{ height:54px; width:auto; filter:brightness(0) invert(1); }
.rb-mobmenu-spacer{ width:46px; }

.rb-mobmenu-nav{ flex:1 1 auto; display:flex; flex-direction:column; align-items:center;
  justify-content:center; gap:6px; padding:24px 0; }
.rb-mobmenu-nav a{ font-family:'Fraunces',Georgia,serif; font-size:2rem; font-weight:500; color:#fff;
  text-decoration:none; padding:12px 8px; letter-spacing:.01em; position:relative; transition:color .2s;
  opacity:0; transform:translateY(14px); }
.rb-mobmenu.is-open .rb-mobmenu-nav a{ animation:rbmm-in .5s cubic-bezier(.2,.7,.3,1) forwards;
  animation-delay:calc(.08s * var(--i) + .12s); }
@keyframes rbmm-in{ to{ opacity:1; transform:translateY(0); } }
.rb-mobmenu-nav a:hover,.rb-mobmenu-nav a:active{ color:#d9b487; }
.rb-mobmenu-nav a:after{ content:''; position:absolute; left:50%; bottom:6px; width:0; height:2px;
  background:#d9b487; transition:width .25s ease, left .25s ease; }
.rb-mobmenu-nav a:hover:after{ width:60%; left:20%; }

.rb-mobmenu-foot{ text-align:center; border-top:1px solid rgba(255,255,255,.12); padding-top:22px; }
.rb-mobmenu-call{ display:inline-flex; align-items:center; justify-content:center; gap:10px;
  background:#d9b487; color:#202721; font-weight:700; font-size:1.05rem; text-decoration:none;
  padding:15px 26px; border-radius:999px; width:100%; max-width:340px; transition:.2s; }
.rb-mobmenu-call:hover{ background:#c9a271; }
.rb-mobmenu-call svg{ width:19px; height:19px; }
.rb-mobmenu-meta{ margin:16px 0 0; font-size:.82rem; color:rgba(255,255,255,.6); letter-spacing:.03em; }
.rb-mobmenu-meta:first-letter{ } /* keep stars inline */
.rb-mobmenu-meta2{ margin-top:6px; }

/* ==========================================================================
   Fixed header — all widths (site.js measures it → --rb-header-h + body padding)
   ========================================================================== */
html{ scroll-behavior:smooth; }   /* smooth anchor scrolling */
.et-l--header{ position:fixed !important; top:0; left:0; right:0; z-index:1000;
  box-shadow:0 2px 14px rgba(32,39,33,.06); }
body.admin-bar .et-l--header{ top:32px; }
@media (max-width:782px){ body.admin-bar .et-l--header{ top:46px; } }
.et_pb_section[id]{ scroll-margin-top:calc(var(--rb-header-h, 120px) + 8px); }
/* Compact the header at all widths: strip Divi's default section/row/column padding */
.rb-topbar .et_pb_row, .rb-topbar .et_pb_column{ padding:0 !important; margin:0 !important; }
.rb-header{ padding-top:12px !important; padding-bottom:12px !important; }
body .rb-header-row.et_pb_row{ padding-top:0 !important; padding-bottom:0 !important; }
body .rb-header-row.et_pb_row > .et_pb_column{ padding-top:0 !important; padding-bottom:0 !important; }
@media (min-width:981px){ .rb-logo .et_pb_image_wrap img, .rb-logo img{ height:60px; } }

/* Footer credit line */
.rb-foot-credit-row{ margin-top:22px !important; }
.rb-foot-credit-row .et_pb_column{ margin-bottom:0 !important; }
.rb-foot-credit{ border-top:1px solid rgba(255,255,255,.12); padding-top:18px; margin:0;
  text-align:center; font-size:.82rem; color:rgba(255,255,255,.55); }
.rb-foot-credit a{ color:rgba(255,255,255,.75); text-decoration:underline;
  text-decoration-color:var(--accent); text-underline-offset:3px; }
.rb-foot-credit a:hover{ color:#fff; }
