/*
Theme Name: SmithCD Web Smithy
Theme URI: https://smithcd.com
Author: Smith Consulting & Design, LLC
Author URI: https://smithcd.com
Description: Custom coded theme for Smith Consulting & Design, LLC (The Web Smithy) -- pixel-for-pixel match of the approved HTML mockup.
Version: 1.0
Requires at least: 6.0
Requires PHP: 7.4
Text Domain: smithcd-web-smithy
*/

/* ==========================================================================
   Smith Consulting & Design, LLC — The Web Smithy
   Clean, corporate-trustworthy theme — balanced navy / logo-blue / amber
   ========================================================================== */

:root{
  --max-width:1400px;
  --bg:#f7f4ee;          /* light leather page background */
  --bg-card:#ffffff;     /* card/panel background */
  --bg-card-alt:#f0eee8; /* nested cards, inputs */
  --navy:#242424;        /* heading text, near-black like the reference screenshot */
  --navy-deep:#242424;   /* dark nav bar / footer, matches reference top bar */
  --blue:#2B628F;        /* primary accent, exact swatch blue */
  --blue-bright:#3f7fae;
  --blue-deep:#1f4d70;
  --blue-pale:rgba(43,98,143,0.10);
  --cyan:#9CF5F9;        /* exact swatch aqua, used for accents on dark surfaces */
  --amber:#BA2727;       /* exact swatch red, used for CTAs / bold accents */
  --amber-bright:#d13a3a;
  --text:#242424;
  --text-mute:#4a4a4a;
  --text-dim:#666666;
  --border:rgba(36,36,36,0.12);

  --radius:8px;
  --shadow-soft:0 10px 26px rgba(36,36,36,0.10);
  --shadow-deep:0 20px 46px rgba(36,36,36,0.16);

  --font-display:Georgia, 'Times New Roman', serif;
  --font-body:'Segoe UI', Tahoma, Arial, sans-serif;
}

*{ box-sizing:border-box; }
html,body{ margin:0; padding:0; min-height:100%; }

body{
  font-family:var(--font-body);
  color:var(--text-mute);
  background-color:var(--bg);
  background-image:
    radial-gradient(ellipse 900px 500px at 10% -5%, rgba(43,98,143,0.05), transparent 60%),
    radial-gradient(ellipse 800px 500px at 100% 10%, rgba(186,39,39,0.04), transparent 55%),
    linear-gradient(rgba(255,255,255,0.42), rgba(255,255,255,0.42)),
    url("assets/leather-light.jpg");
  background-attachment:fixed, fixed, fixed, fixed;
  background-repeat:no-repeat, no-repeat, no-repeat, repeat;
  background-size:cover, cover, cover, 900px 506px;
}

a{ color:var(--blue); text-decoration:none; transition:color .2s ease; }
a:hover{ color:var(--amber); }
img{ max-width:100%; display:block; }

/* ---------------------------------------------------------------
   Trust bar — thin strip above header, reinforces integrity fast
   --------------------------------------------------------------- */
.trust-bar{
  background:var(--navy-deep);
  color:#c7d3de;
  font-size:0.82rem;
  padding:8px 0;
}
.trust-bar-inner{
  max-width:var(--max-width); margin:0 auto; padding:0 28px;
  display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:8px;
}
.trust-bar a{ color:#c7d3de; }
.trust-bar a:hover{ color:#fff; }
.trust-bar .stars{ color:var(--amber-bright); }

/* ---------------------------------------------------------------
   Header / Navigation
   --------------------------------------------------------------- */
header.site-header{
  position:sticky; top:0; z-index:100;
  background:rgba(36,36,36,0.98);
  border-bottom:1px solid rgba(255,255,255,0.08);
  box-shadow:0 2px 10px rgba(0,0,0,0.18);
}
.header-inner{
  max-width:var(--max-width); margin:0 auto;
  display:flex; align-items:center; justify-content:space-between;
  padding:12px 28px;
}
.brand img{ height:52px; width:auto; }

nav.main-nav ul{ list-style:none; display:flex; gap:2px; margin:0; padding:0; }
nav.main-nav > ul > li{ position:relative; }

nav.main-nav a{
  display:block; padding:10px 15px;
  color:#f0eee8; font-weight:600; font-size:0.86rem;
  text-transform:uppercase; letter-spacing:0.05em;
  border-radius:4px;
  transition:background .2s ease, color .2s ease;
}
nav.main-nav a:hover, nav.main-nav li:hover > a{
  background:rgba(255,255,255,0.08);
  color:var(--cyan);
}

nav.main-nav .dropdown{
  display:none; position:absolute; top:100%; left:0; min-width:240px;
  background:#2f2f2f; border:1px solid rgba(255,255,255,0.1);
  border-radius:0 0 8px 8px; box-shadow:var(--shadow-deep); padding:8px 0;
}
nav.main-nav li:hover .dropdown{ display:block; }
nav.main-nav .dropdown a{
  padding:10px 18px; font-size:0.85rem; font-weight:500; border-radius:0;
  text-transform:none; letter-spacing:normal;
  color:#e2e0da;
}
nav.main-nav .dropdown a:hover{ color:var(--cyan); background:rgba(255,255,255,0.06); }

.call-btn{
  background:transparent !important;
  color:#f0eee8 !important;
  padding:9px 20px !important;
  border-radius:0 !important;
  border:1.5px solid rgba(255,255,255,0.5) !important;
  font-weight:700;
  box-shadow:none !important;
}
.call-btn:hover{ border-color:var(--cyan) !important; color:var(--cyan) !important; background:rgba(255,255,255,0.06) !important; }

/* mobile hamburger toggle -- hidden on desktop, shown under 900px */
.mobile-menu-toggle{
  display:none; flex-direction:column; justify-content:center; gap:5px;
  width:38px; height:34px; background:none; border:none; cursor:pointer; padding:0;
}
.mobile-menu-toggle span{ display:block; width:100%; height:2px; background:#f0eee8; border-radius:2px; transition:transform .2s ease, opacity .2s ease; }
.mobile-menu-toggle.open span:nth-child(1){ transform:translateY(7px) rotate(45deg); }
.mobile-menu-toggle.open span:nth-child(2){ opacity:0; }
.mobile-menu-toggle.open span:nth-child(3){ transform:translateY(-7px) rotate(-45deg); }

/* ---------------------------------------------------------------
   Hero
   --------------------------------------------------------------- */
.hero{
  position:relative;
  padding:110px 0 130px;
  overflow:hidden;
  background:#242424;
  isolation:isolate;
}
.hero::before{
  content:"";
  position:absolute; inset:0;
  background-image:url('../../uploads/2026/09/homepage_9-opt.webp');
  background-size:cover;
  background-position:center 40%;
  opacity:0.62;
  z-index:0;
  transform:scale(1.02);
}
.hero::after{
  content:"";
  position:absolute; inset:0;
  background:
    linear-gradient(100deg, rgba(36,36,36,0.92) 0%, rgba(36,36,36,0.78) 28%, rgba(36,36,36,0.35) 52%, rgba(36,36,36,0.12) 72%, rgba(36,36,36,0.28) 100%),
    linear-gradient(180deg, rgba(36,36,36,0.1) 0%, rgba(36,36,36,0.45) 100%);
  z-index:0;
}
.hero-inner{
  position:relative; z-index:2;
  max-width:var(--max-width); margin:0 auto;
  padding:0 28px;
}
.hero-inner > div:first-child{ max-width:640px; }


.hero.hero-bradenton::before{ background-image:url('../../uploads/2026/09/image-2-opt.webp'); }
.hero.hero-clearwater::before{ background-image:url('../../uploads/2026/09/image-8-opt.webp'); }
.hero.hero-lakeland::before{ background-image:url('../../uploads/2026/09/image-9-opt.webp'); }
.hero.hero-sarasota::before{ background-image:url('../../uploads/2026/09/image-10-opt.webp'); }
.hero.hero-st-petersburg::before{ background-image:url('../../uploads/2026/09/image-4-opt.webp'); }
.hero.hero-tampa::before{ background-image:url('../../uploads/2026/09/image-6-opt.webp'); }
.hero.hero-website-design::before{ background-image:url('../../uploads/2026/09/image-3-opt.webp'); background-position:center 80%; }
.hero-inner.has-graphic{ display:grid; grid-template-columns:1.1fr 0.9fr; gap:36px; align-items:center; }
.hero-inner.has-graphic > div:first-child{ max-width:640px; }
.hero-graphic-wrap{ display:flex; justify-content:center; align-items:center; }
.hero-graphic-wrap img{ width:100%; max-width:460px; border-radius:12px; box-shadow:0 20px 46px rgba(0,0,0,0.45); }
.hero-graphic-wrap.faded img{ opacity:0.35; -webkit-mask-image:radial-gradient(ellipse at center, #000 55%, transparent 85%); mask-image:radial-gradient(ellipse at center, #000 55%, transparent 85%); box-shadow:none; }
@media (max-width:900px){ .hero-inner.has-graphic{ grid-template-columns:1fr; } .hero-graphic-wrap{ margin-top:24px; } .hero-graphic-wrap img{ max-width:340px; } }

.hero-eyebrow{
  display:inline-flex; align-items:center; gap:10px;
  color:var(--cyan);
  text-transform:uppercase; letter-spacing:0.14em; font-size:0.76rem; font-weight:700;
  margin-bottom:16px;
}
.hero-eyebrow::before{ content:""; width:24px; height:2px; background:var(--cyan); }

.hero h1{
  font-family:var(--font-display); font-weight:700;
  font-size:clamp(2rem, 4vw, 3.1rem);
  line-height:1.15; margin:0 0 20px; color:#ffffff;
  text-shadow:0 2px 18px rgba(0,0,0,0.35);
}
.hero h1 .accent{ color:var(--cyan); }

.hero p.lead{
  font-size:1.12rem; max-width:560px;
  color:#dbe6ee; line-height:1.7; margin-bottom:28px;
}

.hero-cta{ display:flex; gap:14px; flex-wrap:wrap; }
.hero .btn-primary{ background:var(--blue); box-shadow:0 8px 20px rgba(0,0,0,0.35); }
.hero .btn-primary:hover{ background:var(--blue-bright); }
.hero .btn-outline{ color:#fff !important; border-color:rgba(255,255,255,0.55); }
.hero .btn-outline:hover{ border-color:var(--cyan); color:var(--cyan) !important; background:rgba(255,255,255,0.08); }

.btn{
  display:inline-block; padding:13px 30px; border-radius:2px;
  font-weight:700; font-size:0.86rem;
  text-transform:uppercase; letter-spacing:0.05em;
  transition:transform .2s ease, box-shadow .2s ease, background .2s ease, color .2s ease;
  border:1.5px solid transparent;
}
.btn:hover{ transform:translateY(-2px); }
.btn-primary{
  background:var(--navy);
  color:#fff !important;
  box-shadow:0 8px 18px rgba(36,36,36,0.22);
}
.btn-primary:hover{ background:var(--blue); }
.btn-outline{
  background:transparent;
  color:var(--navy) !important;
  border-color:var(--navy);
  box-shadow:none;
}
.btn-outline:hover{ border-color:var(--blue); color:var(--blue) !important; background:rgba(43,98,143,0.06); }

/* ---------------------------------------------------------------
   Stat strip
   --------------------------------------------------------------- */
.stat-strip{ max-width:var(--max-width); margin:0 auto; padding:0 28px; position:relative; z-index:3; }
.stat-strip-inner{
  display:grid; grid-template-columns:repeat(2, 1fr);
  background:var(--bg-card);
  border:1px solid var(--border);
  border-radius:var(--radius);
  box-shadow:var(--shadow-soft);
  transform:translateY(-30px);
}
.stat{ text-align:center; padding:22px 12px; border-right:1px solid var(--border); border-bottom:1px solid var(--border); }
.stat:nth-child(2n){ border-right:none; }
.stat:nth-last-child(-n+2){ border-bottom:none; }
.stat-num{ display:block; font-family:var(--font-display); font-weight:800; font-size:1.6rem; color:var(--blue); }
.stat-num small{ font-size:0.85rem; color:var(--text-dim); font-weight:400; }
.stat-label{ display:block; font-size:0.72rem; text-transform:uppercase; letter-spacing:0.05em; color:var(--text-dim); margin-top:6px; }

/* ---------------------------------------------------------------
   How We Help — simple 3-step trust section
   --------------------------------------------------------------- */
.steps{
  display:grid; grid-template-columns:repeat(3, 1fr); gap:24px; margin:2.4em 0;
}
.step{
  text-align:center; padding:8px 10px;
}
.step-num{
  width:46px; height:46px; border-radius:50%;
  background:var(--blue-pale); color:var(--blue);
  display:flex; align-items:center; justify-content:center;
  font-family:var(--font-display); font-weight:800; font-size:1.2rem;
  margin:0 auto 14px;
  border:2px solid var(--blue);
}
.step h3{ font-family:var(--font-display); color:var(--navy); font-size:1.08rem; margin:0 0 8px; }
.step p{ font-size:0.92rem; margin:0; }

/* ---------------------------------------------------------------
   Content sections
   --------------------------------------------------------------- */
main{ position:relative; z-index:1; }
.section{ max-width:var(--max-width); margin:0 auto; padding:44px 28px 56px; }
.section-narrow{ max-width:860px; }

h1.page-title{
  font-family:var(--font-display); font-weight:700; font-size:2rem;
  color:var(--navy); border-bottom:1px solid var(--border);
  padding-bottom:18px; margin-top:0;
}

h2{
  font-family:var(--font-display); font-weight:700; font-size:1.55rem;
  color:var(--navy);
  margin-top:0; margin-bottom:0.65em;
  position:relative; padding-left:18px;
}
h2::before{
  content:""; position:absolute; left:0; top:0.15em; bottom:0.15em; width:4px;
  background:linear-gradient(180deg, var(--blue), var(--amber));
  border-radius:2px;
}

p{ line-height:1.78; color:var(--text-mute); margin:0 0 1.15em; font-size:1.02rem; }
strong{ color:var(--navy); }

.content-text ul:not(.styled-list){ padding-left:0; list-style:none; margin:0 0 1.15em; }
.content-text ul:not(.styled-list) li{
  padding:9px 0 9px 28px; position:relative;
  border-bottom:1px solid var(--border);
  color:var(--text-mute); line-height:1.6;
}
.content-text ul:not(.styled-list) li::before{
  content:"\2713"; position:absolute; left:0; top:9px; color:var(--blue); font-weight:700;
}

/* ---------------------------------------------------------------
   Flowing image + text sections (replaces the old boxed panel)
   --------------------------------------------------------------- */
.content-section{ padding:54px 0; }
/* alt-bg sections get their tech background image set inline per-section
   (see build.py tech_bg_style) so consecutive sections don't repeat the
   same image; this just supplies the darker text theme on top of it. */
.content-section.alt-bg{
  border-top:1px solid rgba(255,255,255,0.1); border-bottom:1px solid rgba(255,255,255,0.1);
  color:#dbe6ee;
}
.content-section.alt-bg h2{ color:#ffffff; }
.content-section.alt-bg h2::before{ background:linear-gradient(180deg, var(--cyan), var(--amber)); }
.content-section.alt-bg p{ color:#cfe0ea; }
.content-section.alt-bg strong{ color:#ffffff; }
.content-section.alt-bg .content-text ul:not(.styled-list) li{
  color:#cfe0ea; border-bottom:1px solid rgba(255,255,255,0.14);
}
.content-section.alt-bg .content-text ul:not(.styled-list) li::before{ color:var(--cyan); }
.content-section.alt-bg .card, .content-section.alt-bg .tier-card{
  background:rgba(255,255,255,0.06); border-color:rgba(255,255,255,0.16);
}
.content-section.alt-bg .card h3, .content-section.alt-bg .tier-card h3{ color:#fff; border-color:rgba(255,255,255,0.14); }
.content-section.alt-bg .card p, .content-section.alt-bg .tier-card ul li{ color:#cfe0ea; }
.content-section.alt-bg table.pricing th, .content-section.alt-bg table.pricing td{ color:#dbe6ee; border-color:rgba(255,255,255,0.16); }
.content-section.alt-bg table.pricing th{ background:rgba(255,255,255,0.08); color:#fff; }
.content-section.alt-bg a{ color:var(--cyan); }
.content-section.alt-bg .faq-item summary{ color:#fff; }
.content-section.alt-bg .faq-item{ border-color:rgba(255,255,255,0.14); }
.content-section.intro-section{ padding-top:36px; }

.content-section-inner{
  max-width:var(--max-width); margin:0 auto; padding:0 28px;
}
.content-row{
  display:grid; grid-template-columns:0.9fr 1.1fr; gap:48px; align-items:center;
}
.content-row.reverse{ grid-template-columns:1.1fr 0.9fr; }
.content-row.reverse .content-media{ order:2; }
.content-row.text-only{ grid-template-columns:1fr; max-width:var(--max-width); }
.content-row.stacked{ grid-template-columns:1fr; gap:28px; }
.content-row.stacked .content-media.wide{ aspect-ratio:16/9; overflow:hidden; border-radius:var(--radius); box-shadow:var(--shadow-soft); }
.content-row.stacked .content-media.wide img{ width:100%; height:100%; object-fit:cover; border-radius:var(--radius); }
.content-row.stacked .content-text{ max-width:var(--max-width); }

.content-media.sixteen-nine{ aspect-ratio:16/9; overflow:hidden; }
.content-media.sixteen-nine img{ width:100%; height:100%; object-fit:cover; }

.content-row.two-col{ grid-template-columns:1fr 1fr; gap:48px; align-items:start; }
@media (max-width:900px){ .content-row.two-col{ grid-template-columns:1fr; } }

.content-media img{ border-radius:var(--radius); box-shadow:var(--shadow-soft); width:100%; }
.content-text p:last-child{ margin-bottom:0; }

@media (max-width:900px){
  .content-row, .content-row.reverse{ grid-template-columns:1fr; }
  .content-row.reverse .content-media{ order:0; }
}

table.pricing{ width:100%; border-collapse:collapse; margin:1.6em 0; }
table.pricing th, table.pricing td{
  padding:13px 15px; border:1px solid var(--border); text-align:left; color:var(--text-mute);
}
table.pricing th{
  background:var(--blue-pale); color:var(--navy);
  text-transform:uppercase; font-size:0.8rem; letter-spacing:0.03em;
}

.card-grid{ display:grid; grid-template-columns:repeat(3, 1fr); gap:20px; margin:2.2em 0; }
@media (max-width:900px){ .card-grid{ grid-template-columns:repeat(2, 1fr); } }
@media (max-width:600px){ .card-grid{ grid-template-columns:1fr; } }
.card-grid.cols-4{ grid-template-columns:repeat(4, 1fr); }
.card-grid.cols-3{ grid-template-columns:repeat(3, 1fr); }
.card-grid.cols-2{ grid-template-columns:repeat(2, 1fr); max-width:var(--max-width); margin-left:auto; margin-right:auto; }
.card-grid.cols-5{ grid-template-columns:repeat(5, 1fr); max-width:var(--max-width); margin-left:auto; margin-right:auto; }
.card-grid.centered .card{ text-align:center; }
.card-grid.centered .card-icon{ margin-left:auto; margin-right:auto; font-size:1.3rem; }
.card-grid.cols-3, .card-grid.cols-2{ margin-top:20px; }
.card-grid.cols-3:first-child, .card-grid.cols-2:first-child{ margin-top:0; }
@media (max-width:1100px){ .card-grid.cols-4, .card-grid.cols-5{ grid-template-columns:repeat(3, 1fr); } }
@media (max-width:900px){ .card-grid.cols-4, .card-grid.cols-5{ grid-template-columns:repeat(2, 1fr); } }
@media (max-width:600px){ .card-grid.cols-4, .card-grid.cols-2, .card-grid.cols-3, .card-grid.cols-5{ grid-template-columns:1fr; } }
.card{
  display:block;
  background:var(--bg-card-alt);
  border:1px solid var(--border);
  border-radius:var(--radius);
  padding:26px;
  transition:transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}
a.card, a.card:hover{ color:inherit; text-decoration:none; }
a.card h3{ color:var(--navy); }
a.card p{ color:var(--text-mute); }
.card:hover{ transform:translateY(-3px); border-color:var(--blue); box-shadow:var(--shadow-soft); }
.card h3{
  font-family:var(--font-display); color:var(--navy); margin-top:0; font-size:1.1rem;
  border-bottom:1px solid var(--border); padding-bottom:10px;
}
.card p{ font-size:0.94rem; margin-bottom:0; }
.card-icon{
  width:38px; height:38px; border-radius:50%;
  background:var(--blue-pale); color:var(--blue);
  display:flex; align-items:center; justify-content:center;
  font-weight:800; font-size:1rem; margin-bottom:14px;
  border:2px solid var(--blue);
}

/* Placeholder container where the reseller-program plugin will embed
   its own dedicated server plan/pricing widget. */
.reseller-embed{
  border:2px dashed var(--blue); border-radius:var(--radius);
  background:var(--blue-pale); padding:34px 28px; margin:1.6em 0; text-align:center;
}
.reseller-embed-note{
  margin:0; font-weight:700; color:var(--blue); font-size:0.95rem;
}

/* Our Work / portfolio page: simple 3-column grid of project cards */
.portfolio-grid{
  display:grid; grid-template-columns:repeat(3, 1fr); gap:24px;
  max-width:var(--max-width); margin:0 auto;
}
.portfolio-card{
  display:block; background:var(--bg-card); border:1px solid var(--border);
  border-radius:var(--radius); overflow:hidden; box-shadow:var(--shadow-soft);
  transition:transform .2s ease, box-shadow .2s ease;
}
a.portfolio-card:hover{ transform:translateY(-4px); box-shadow:var(--shadow-deep); }
.portfolio-card-media{ aspect-ratio:1/1; overflow:hidden; background:var(--bg-card-alt); padding: 20px 28px; }
.portfolio-card-media img{ width:100%; height:100%; object-fit:contain; }
.portfolio-card-body{ padding:18px 20px; }
.portfolio-card-body h3{
  font-family:var(--font-display); color:var(--navy); font-size:1.05rem; margin:0 0 6px;
}
.portfolio-card-body p{ font-size:0.9rem; margin:0; color:var(--text-mute); }
@media (max-width:900px){ .portfolio-grid{ grid-template-columns:repeat(2, 1fr); } }
@media (max-width:600px){ .portfolio-grid{ grid-template-columns:1fr; } }

.tier-grid{ display:grid; grid-template-columns:repeat(3, 1fr); gap:20px; margin:2.2em 0; }
@media (max-width:900px){ .tier-grid{ grid-template-columns:repeat(2, 1fr); } }
@media (max-width:600px){ .tier-grid{ grid-template-columns:1fr; } }
.tier-card{
  background:var(--bg-card-alt); border:1px solid var(--border); border-radius:var(--radius);
  padding:26px 22px; text-align:center; position:relative;
}
.tier-card.featured{ border-color:var(--amber); box-shadow:var(--shadow-soft); transform:translateY(-6px); }
.tier-card .badge{
  position:absolute; top:-12px; left:50%; transform:translateX(-50%);
  background:var(--amber); color:#fff; font-size:0.68rem; font-weight:700;
  padding:4px 12px; border-radius:20px; text-transform:uppercase; letter-spacing:0.05em;
}
.tier-card h3{ font-family:var(--font-display); color:var(--navy); margin:6px 0 4px; }
.tier-price{ font-size:1.9rem; font-weight:800; color:var(--blue); margin:8px 0; }
.tier-price span{ font-size:0.86rem; color:var(--text-dim); font-weight:400; }
.tier-card ul{ list-style:none; padding:0; margin:16px 0 0; text-align:left; font-size:0.87rem; }
.tier-card ul li{ padding:6px 0; border-bottom:1px solid var(--border); color:var(--text-mute); }

/* split layout */
.split-layout{ display:grid; grid-template-columns:1.1fr 0.9fr; gap:36px; align-items:center; margin:2em 0; }
.split-layout.reverse{ grid-template-columns:0.9fr 1.1fr; }
.split-layout.reverse .split-media{ order:2; }
.split-media{
  background:var(--blue-pale);
  border:1px solid var(--border);
  border-radius:var(--radius);
  padding:16px;
}
.split-media img{ border-radius:6px; }
.split-text p:last-child{ margin-bottom:0; }

/* FAQ accordion */
.faq-accordion{ margin:1.6em 0; border-top:1px solid var(--border); }
.faq-item{
  border-bottom:1px solid var(--border);
  padding:4px 0;
}
.faq-item summary{
  cursor:pointer;
  list-style:none;
  padding:16px 30px 16px 0;
  font-weight:700;
  color:var(--navy);
  font-family:var(--font-display);
  font-size:1.02rem;
  position:relative;
}
.faq-item summary::-webkit-details-marker{ display:none; }
.faq-item summary::after{
  content:"+";
  position:absolute; right:4px; top:50%; transform:translateY(-50%);
  color:var(--blue); font-size:1.3rem; font-weight:700;
  transition:transform .2s ease;
}
.faq-item[open] summary::after{ content:"\2212"; }
.faq-item[open] summary{ color:var(--blue); }
.faq-item p{ padding:0 30px 16px 0; margin:0; }

/* callout / testimonial */
.callout{
  border-left:4px solid var(--amber);
  background:rgba(186,39,39,0.08);
  border-radius:0 8px 8px 0;
  padding:22px 28px;
  margin:1.8em 0;
  font-family:var(--font-display);
  font-size:1.08rem;
  color:var(--navy);
  font-style:italic;
}
.callout cite{
  display:block; margin-top:10px; font-style:normal; font-size:0.85rem; color:var(--text-dim);
}

/* Call to action band */
.cta-band{
  background:
    linear-gradient(rgba(36,36,36,0.80), rgba(36,36,36,0.80)),
    url("assets/leather-light.jpg");
  background-size:cover, 900px 506px;
  background-repeat:no-repeat, repeat;
  text-align:center; padding:56px 28px;
}
/* fade-in-on-scroll, applied via script.js (assets/script.js) */
.fade-section{ opacity:0; transform:translateY(26px); transition:opacity .7s ease, transform .7s ease; }
.fade-section.is-visible{ opacity:1; transform:none; }

/* smaller mid-page call-to-action banners, sprinkled between sections */
.cta-banner{
  background:linear-gradient(135deg, var(--blue), var(--blue-deep));
  padding:30px 28px; border-top:1px solid rgba(255,255,255,0.12); border-bottom:1px solid rgba(255,255,255,0.12);
}
.cta-banner-inner{
  max-width:var(--max-width); margin:0 auto;
  display:flex; align-items:center; justify-content:space-between; gap:24px; flex-wrap:wrap;
}
.cta-banner h3{ color:#fff; font-family:var(--font-display); font-size:1.2rem; margin:0 0 4px; }
.cta-banner p{ color:#dcebf5; margin:0; font-size:0.94rem; }
.cta-banner .btn-primary{ background:#fff; color:var(--blue) !important; box-shadow:none; }
.cta-banner .btn-primary:hover{ background:var(--cyan); }
.cta-banner .btn-outline{ color:#fff !important; border-color:rgba(255,255,255,0.6); }
.cta-banner .btn-outline:hover{ border-color:var(--cyan); color:var(--cyan) !important; background:rgba(255,255,255,0.08); }

.cta-band h2{ padding-left:0; display:inline-block; color:#fff; }
.cta-band h2::before{ display:none; }
.cta-band p.lead{ color:#d8d8d8 !important; }
.cta-band .btn-outline{ color:#fff !important; border-color:rgba(255,255,255,0.6); }
.cta-band .btn-outline:hover{ border-color:var(--cyan); color:var(--cyan) !important; background:rgba(255,255,255,0.06); }
.cta-band .btn-primary{ background:var(--blue); }
.cta-band .btn-primary:hover{ background:var(--blue-bright); }

/* ---------------------------------------------------------------
   Footer
   --------------------------------------------------------------- */
footer.site-footer{
  background:var(--navy-deep);
  padding:50px 28px 24px;
  color:#9fb0c0;
}
.footer-inner{
  max-width:var(--max-width); margin:0 auto;
  display:grid; grid-template-columns:1.4fr 1fr 1fr 1fr; gap:32px;
}
.footer-inner h4{
  color:#fff; font-family:var(--font-display); font-size:0.98rem;
  margin:0 0 14px; letter-spacing:0.03em;
}
.footer-inner ul{ list-style:none; padding:0; margin:0; }
.footer-inner li{ margin-bottom:9px; font-size:0.9rem; }
.footer-inner a{ color:#9fb0c0; }
.footer-inner a:hover{ color:var(--amber-bright); }
.footer-inner p{ color:#c7d3de; }
.footer-brand img{ height:42px; margin-bottom:16px; }
.social-row{ display:flex; gap:12px; margin-top:16px; }
.social-row a{
  display:flex; align-items:center; justify-content:center;
  width:34px; height:34px; border:1px solid rgba(255,255,255,0.18); border-radius:50%; font-size:0.8rem;
}
.social-row a:hover{ border-color:var(--amber-bright); color:var(--amber-bright); }
.footer-bottom{
  max-width:var(--max-width); margin:34px auto 0; padding-top:20px;
  border-top:1px solid rgba(255,255,255,0.08);
  font-size:0.82rem; text-align:center; color:#5c6b78;
}

/* ---------------------------------------------------------------
   Responsive
   --------------------------------------------------------------- */
@media (max-width:900px){
  .footer-inner{ grid-template-columns:1fr 1fr; }
  .steps{ grid-template-columns:1fr; }
  .hero-inner{ grid-template-columns:1fr; }
  .hero-graphic-wrap{ order:-1; }
  .hero-graphic-wrap img{ max-width:260px; }
  .cta-banner-inner{ flex-direction:column; text-align:center; }

  .mobile-menu-toggle{ display:flex; }

  nav.main-nav{
    display:block;
    position:absolute; top:100%; left:0; right:0;
    max-height:0; overflow:hidden;
    background:#242424; border-top:1px solid rgba(255,255,255,0.1);
    box-shadow:0 12px 20px rgba(0,0,0,0.3);
    transition:max-height .25s ease;
  }
  nav.main-nav.open{ max-height:80vh; overflow-y:auto; }
  nav.main-nav ul{ display:block; padding:10px 0; }
  nav.main-nav > ul > li{ position:static; }
  nav.main-nav a{ padding:13px 28px; border-radius:0; }
  nav.main-nav .dropdown{
    display:block; position:static; box-shadow:none; border:none;
    background:rgba(255,255,255,0.04); min-width:0; padding:0;
  }
  nav.main-nav .dropdown a{ padding:11px 28px 11px 42px; }
  .call-btn{ margin:10px 28px; display:inline-block; }
}
@media (max-width:800px){
  .split-layout, .split-layout.reverse{ grid-template-columns:1fr; }
  .split-layout.reverse .split-media{ order:0; }
  .stat-strip-inner{ grid-template-columns:1fr 1fr; }
  .stat{ border-bottom:1px solid var(--border); }
}
@media (max-width:600px){
  .footer-inner{ grid-template-columns:1fr; }
}


/* Mini feature list (icon rows) */
.mini-feature-list{ display:flex; flex-direction:column; gap:16px; margin-top:22px; }
.mini-feature{ display:flex; align-items:flex-start; gap:14px; }
.mini-feature-icon{
  flex-shrink:0; width:38px; height:38px; display:flex; align-items:center; justify-content:center;
  background:var(--bg-card-alt); border:1px solid var(--border); border-radius:50%;
  font-size:1.1rem; color:var(--blue);
}
.mini-feature-body strong{ display:block; font-family:var(--font-display); color:var(--navy); font-size:0.98rem; margin-bottom:2px; }
.mini-feature-body p{ font-size:0.88rem; color:var(--text-mute); margin:0; }


/* Sitemap link-card grid */
.sitemap-grid{ display:grid; grid-template-columns:repeat(4, 1fr); gap:20px; margin:1.6em 0 2.4em; }
@media (max-width:900px){ .sitemap-grid{ grid-template-columns:repeat(2, 1fr); gap:16px; } }
@media (max-width:480px){ .sitemap-grid{ gap:12px; } }
.sitemap-card{ display:flex; flex-direction:column; }
.sitemap-card:hover{ border-color:var(--blue); }
.sitemap-card h3{ font-size:0.98rem; margin:2px 0 6px; }
.sitemap-card p{ font-size:0.82rem; color:var(--text-mute); margin:0; line-height:1.45; }
.sitemap-group-heading{ margin:2.4em 0 0.2em; }
.sitemap-group-heading:first-child{ margin-top:0; }


/* Care tier images (Subscriptions page) */
.card-grid.tier-cards .card{ text-align:center; display:flex; flex-direction:column; align-items:center; }
.card-grid.tier-cards .tier-img{ display:block; width:100%; max-width:180px; height:auto; aspect-ratio:1/1; border-radius:14px; margin:0 auto 16px; background:#fff; }
.card-grid.tier-cards .card h3{ width:100%; }

.hero.hero-subscriptions::before{ background-image:url('../../uploads/2026/09/image-5-opt.webp'); }

.hero.hero-ai-gbp::before{ background-image:url('../../uploads/2026/09/image-1-opt.webp'); }

.hero-graphic-wrap.hero-graphic-gbp img{ max-width:400px; height:auto; }
@media (max-width:900px){ .hero-graphic-wrap.hero-graphic-gbp img{ max-width:300px; } }


/* Additional Areas: services grid, 4 across on desktop, 2 across on tablet and mobile */
.card-grid.services-4up{ grid-template-columns:repeat(4, 1fr); }
@media (max-width:900px){ .card-grid.services-4up{ grid-template-columns:repeat(2, 1fr); } }
@media (max-width:600px){ .card-grid.services-4up{ grid-template-columns:repeat(2, 1fr); gap:12px; } .card-grid.services-4up .card{ padding:16px 14px; } .card-grid.services-4up .card h3{ font-size:0.95rem; } .card-grid.services-4up .card p{ font-size:0.85rem; } }


/* Website Management hero: full-bleed office photo (real <img> with srcset + alt) */
.hero.hero-webmaster{ background:#14181e; }
.hero.hero-webmaster::before{ display:none; }
.hero.hero-webmaster .hero-bg-img{
  position:absolute; inset:0; width:100%; height:100%;
  object-fit:cover; object-position:62% center;
  z-index:0; max-width:none; border-radius:0;
  filter:saturate(1.06) contrast(1.04);
}
.hero.hero-webmaster::after{
  background:
    linear-gradient(100deg, rgba(20,24,30,0.95) 0%, rgba(20,24,30,0.86) 30%, rgba(20,24,30,0.48) 52%, rgba(20,24,30,0.10) 75%, rgba(20,24,30,0.22) 100%),
    radial-gradient(ellipse 60% 70% at 78% 42%, rgba(63,127,174,0.20), transparent 70%),
    linear-gradient(180deg, rgba(20,24,30,0) 55%, rgba(20,24,30,0.60) 100%);
}
.hero.hero-webmaster .hero-inner{ padding-top:20px; padding-bottom:20px; }
@media (max-width:900px){
  .hero.hero-webmaster .hero-bg-img{ object-position:70% center; }
  .hero.hero-webmaster::after{
    background:
      linear-gradient(180deg, rgba(20,24,30,0.78) 0%, rgba(20,24,30,0.70) 55%, rgba(20,24,30,0.88) 100%);
  }
}


/* ==========================================================
   Hub Client reseller pricing table ([thc] shortcode)
   Scoped to #reseller-server-plans so plugin markup matches the theme.
   ========================================================== */
#reseller-server-plans.reseller-embed{
  border:0; background:none; padding:0; margin:2em 0 0; text-align:left;
}
#reseller-server-plans .thc-block-pricing,
#reseller-server-plans .thc-block-pricing *{ font-family:var(--font-body); }
#reseller-server-plans .thc-block-pricing{ background:none; }
#reseller-server-plans .thc-block-pricing__items{
  display:grid; grid-template-columns:repeat(3, minmax(0,1fr));
  gap:26px; margin:0;
}
#reseller-server-plans .thc-block-pricing__item{
  width:auto; max-width:none; margin:0;
  display:flex; flex-direction:column;
  background:var(--bg-card);
  border:1px solid var(--border); border-top:3px solid var(--blue);
  border-radius:var(--radius);
  box-shadow:var(--shadow-soft);
  padding:30px 26px 26px;
  transition:transform .2s ease, box-shadow .2s ease;
}
#reseller-server-plans .thc-block-pricing__item:hover{
  transform:translateY(-3px); box-shadow:var(--shadow-deep);
}
#reseller-server-plans .thc-block-pricing__item_cta{ margin-top:auto; }

/* Heading: drop the theme's accent bar, use the display face */
#reseller-server-plans .thc-block-pricing h2{
  font-family:var(--font-display); font-size:1.45rem; line-height:1.15;
  color:var(--text); padding:0; margin:14px 0 8px; text-align:center;
}
#reseller-server-plans .thc-block-pricing h2::before{ display:none; }
#reseller-server-plans .thc-block-pricing__item_data .thc-sui-text{
  color:var(--text-mute); font-size:.95rem; line-height:1.55; text-align:center;
}

/* Price */
#reseller-server-plans .thc-sui-box{
  width:auto; margin:18px 0 14px !important;
  background:var(--blue-pale); border-radius:var(--radius);
  padding:12px 14px; text-align:center;
}
#reseller-server-plans .thc-sui-box__container{ width:auto; }
#reseller-server-plans .thc-sui-box .thc-sui-text{
  margin:0; color:var(--blue-deep); font-weight:700; font-size:1.02rem;
}

/* Order button: match the site's primary button */
#reseller-server-plans .sui-button{
  width:100%; justify-content:center;
  background:var(--blue) !important; color:#fff !important;
  border:0; border-radius:2px;
  padding:13px 20px; min-height:0; height:auto;
  font-size:.86rem; font-weight:700; text-transform:uppercase; letter-spacing:.05em;
  box-shadow:none; transition:background .2s ease;
}
#reseller-server-plans .sui-button:hover,
#reseller-server-plans .sui-button:focus-visible{ background:var(--blue-deep) !important; }
#reseller-server-plans .sui-button:focus-visible{ outline:2px solid var(--blue-bright); outline-offset:2px; }

/* Feature list: remove the theme's duplicate checkmark */
#reseller-server-plans .thc-block-pricing-features_items{ margin:18px 0 0; padding:0; }
#reseller-server-plans .thc-block-pricing-features_item{
  padding:9px 0; border-bottom:1px solid var(--border); list-style:none;
}
#reseller-server-plans .thc-block-pricing-features_item:last-child{ border-bottom:0; }
#reseller-server-plans .thc-block-pricing-features_item::before{ display:none; content:none; }
#reseller-server-plans .thc-block-pricing-features_item svg{ color:var(--blue); fill:currentColor; flex-shrink:0; }
#reseller-server-plans .thc-block-pricing-features_item .thc-sui-text{
  color:var(--text); font-weight:600; font-size:.9rem;
}

@media (max-width:1024px){
  #reseller-server-plans .thc-block-pricing__items{ grid-template-columns:repeat(2, minmax(0,1fr)); }
}
@media (max-width:640px){
  #reseller-server-plans .thc-block-pricing__items{ grid-template-columns:1fr; gap:20px; }
}
@media (prefers-reduced-motion:reduce){
  #reseller-server-plans .thc-block-pricing__item{ transition:none; }
  #reseller-server-plans .thc-block-pricing__item:hover{ transform:none; }
}

/* ==========================================================
   Hub Client domain search ([thc module='domain-reseller-widget'])
   ========================================================== */
.domain-section{ background:var(--bg-card-alt); }
#reseller-domain-search.reseller-embed{
  border:1px solid var(--border); border-top:3px solid var(--blue);
  border-radius:var(--radius); background:var(--bg-card);
  box-shadow:var(--shadow-soft);
  padding:34px 32px; margin:1.8em 0 0; text-align:left;
}
#reseller-domain-search .thc-domain-lookup,
#reseller-domain-search .thc-domain-lookup *{ font-family:var(--font-body); }
#reseller-domain-search .thc-domain-lookup{ background:none; display:block; }

/* Search bar */
#reseller-domain-search .thc-domain-lookup-search{
  display:flex; align-items:stretch; width:100%; max-width:720px; margin:0 auto; gap:0;
}
#reseller-domain-search .thc-domain-lookup-search > *{ box-sizing:border-box; margin:0; }
#reseller-domain-search .thc-domain-lookup-search__input{
  flex:1 1 auto !important; width:auto !important; min-width:0; height:auto;
  padding:14px 18px; line-height:1.4; font-size:1rem;
  color:var(--text) !important; background:#fff !important;
  border:1px solid rgba(36,36,36,0.25); border-right:0;
  border-radius:2px 0 0 2px; box-shadow:none;
}
#reseller-domain-search .thc-domain-lookup-search__input::placeholder{ color:var(--text-dim) !important; }
#reseller-domain-search .thc-domain-lookup-search__input:focus{
  outline:none; border-color:var(--blue); box-shadow:0 0 0 3px var(--blue-pale);
}
#reseller-domain-search .thc-domain-lookup-search__btn{
  flex:0 0 auto !important; width:auto !important; height:auto; padding:0 28px;
  display:inline-flex; align-items:center; justify-content:center; white-space:nowrap;
  background:var(--blue) !important; color:#fff !important;
  border:0; border-radius:0 2px 2px 0; cursor:pointer;
  font-size:.86rem; font-weight:700; text-transform:uppercase; letter-spacing:.05em;
  transition:background .2s ease;
}
#reseller-domain-search .thc-domain-lookup-search__btn *{ color:#fff !important; }
#reseller-domain-search .thc-domain-lookup-search__btn:hover,
#reseller-domain-search .thc-domain-lookup-search__btn:focus-visible{ background:var(--blue-deep) !important; }
#reseller-domain-search .thc-domain-lookup-search__btn:focus-visible{ outline:2px solid var(--blue-bright); outline-offset:2px; }

/* Results */
#reseller-domain-search .thc-domain-lookup-result{ max-width:720px; margin:28px auto 0; }
#reseller-domain-search .thc-domain-lookup-result__item + .thc-domain-lookup-result__item{ margin-top:26px; }
#reseller-domain-search .thc-domain-lookup-result__item-header{
  font-family:var(--font-display); font-size:1.2rem; font-weight:700;
  color:var(--text); text-align:left; padding:0 0 10px; margin:0;
  border-bottom:2px solid var(--blue);
}
#reseller-domain-search ul.thc-domain-lookup-list{ margin:0; padding:0; }
#reseller-domain-search .thc-domain-lookup-list__item{
  display:flex; align-items:center; justify-content:space-between; gap:16px;
  padding:12px 4px; margin:0; list-style:none;
  border-bottom:1px solid var(--border); color:var(--text);
}
#reseller-domain-search .thc-domain-lookup-list__item::before{ display:none; content:none; }
#reseller-domain-search .thc-domain-lookup-list__item:hover{ background:var(--blue-pale); }
#reseller-domain-search .thc-domain-lookup-list__item-title{
  font-weight:600; color:var(--text); overflow-wrap:anywhere;
}
#reseller-domain-search .thc-domain-lookup-list__item-actions{
  display:flex; align-items:center; gap:16px; flex-shrink:0;
}
#reseller-domain-search .thc-domain-lookup-list__item-actions > span{
  font-weight:700; color:var(--blue-deep); font-variant-numeric:tabular-nums;
}
#reseller-domain-search .thc-domain-lookup-buy-btn{
  background:transparent !important; color:var(--blue) !important;
  border:1.5px solid var(--blue) !important; border-radius:2px;
  padding:7px 16px; cursor:pointer;
  font-size:.78rem; font-weight:700; text-transform:uppercase; letter-spacing:.05em;
  transition:background .2s ease, color .2s ease;
}
#reseller-domain-search .thc-domain-lookup-buy-btn:hover,
#reseller-domain-search .thc-domain-lookup-buy-btn:focus-visible{
  background:var(--blue) !important; color:#fff !important;
}
#reseller-domain-search .thc-domain-lookup-result__item-footer{ text-align:center; padding-top:16px; }
#reseller-domain-search .thc-domain-lookup-result__load-more{
  display:inline-flex; align-items:center; gap:6px;
  color:var(--blue) !important; font-weight:700; text-decoration:none; cursor:pointer;
}
#reseller-domain-search .thc-domain-lookup-result__load-more svg{ fill:currentColor; }
#reseller-domain-search .thc-domain-lookup-result__load-more:hover{ color:var(--blue-deep) !important; text-decoration:underline; }

@media (max-width:640px){
  #reseller-domain-search.reseller-embed{ padding:24px 18px; }
  #reseller-domain-search .thc-domain-lookup-search{ flex-direction:column; gap:10px; }
  #reseller-domain-search .thc-domain-lookup-search__input{ border-right:1px solid rgba(36,36,36,0.25); border-radius:2px; }
  #reseller-domain-search .thc-domain-lookup-search__btn{ padding:14px 20px; border-radius:2px; }
  #reseller-domain-search .thc-domain-lookup-list__item{ flex-wrap:wrap; }
}

/* In-copy links: make body links recognisable as links */
.content-text p a, .faq-item p a{ text-decoration:underline; text-decoration-thickness:1px; text-underline-offset:3px; }
.card h3 a{ color:inherit; text-decoration:none; }
.card h3 a::after{ content:' \2192'; font-family:var(--font-body); font-size:.85em; color:var(--blue); opacity:.7; }
.card h3 a:hover{ color:var(--blue); }
.content-section.alt-bg .card h3 a::after{ color:var(--cyan); }
.content-section.alt-bg .card h3 a:hover{ color:var(--cyan); }


/* Riverview & Apollo Beach heroes */
.hero.hero-riverview::before{ background-image:url('../../uploads/2026/09/homepage_4-opt.webp'); }
.hero.hero-apollo-beach::before{ background-image:url('../../uploads/2026/09/image-opt.webp'); }

.content-text li a{ text-decoration:underline; text-decoration-thickness:1px; text-underline-offset:3px; }

/* Additional Areas: portrait communities image, cropped to sit beside the text */
.content-media img.img-communities{ width:100%; height:auto; aspect-ratio:9/10; object-fit:cover; object-position:center 4%; }
.content-media img.img-standard{ width:100%; height:auto; aspect-ratio:6/5; object-fit:cover; object-position:center top; }
.content-media img.img-family{ width:100%; height:auto; aspect-ratio:1/1; object-fit:cover; object-position:center top; }

/* ===== Legal pages (privacy, terms, policies) ===== */
.legal-doc{ max-width:var(--max-width); }
.legal-doc .legal-updated{ color:var(--text-mute); font-size:0.95rem; }
.legal-doc h2{ font-size:1.3rem; margin-top:1.8em; }
.legal-doc h3{ font-size:1.05rem; margin:1.2em 0 0.4em; color:var(--navy); }
.legal-doc p, .legal-doc li{ line-height:1.7; }
.content-text .legal-doc ul{ list-style:disc; padding-left:1.4em; margin:0 0 1.15em; }
.content-text .legal-doc ul li{ padding:3px 0; border-bottom:none; color:var(--text); }
.content-text .legal-doc ul li::before{ content:none; }
/* Footer legal links (contrast meets WCAG AA on dark footer) */
.footer-bottom{ color:#b3bcc4; }
.footer-legal{ list-style:none; margin:0 0 10px; padding:0; display:flex; flex-wrap:wrap; justify-content:center; gap:6px 18px; }
.footer-legal a{ color:#d6dde3; text-decoration:underline; text-underline-offset:3px; }
.footer-legal a:hover, .footer-legal a:focus{ color:#fff; }
.legal-note{ font-size:0.88rem; line-height:1.6; margin-top:14px; }
.legal-note a{ text-decoration:underline; text-underline-offset:3px; }

/* ===== Accessibility (WCAG 2.1 AA) ===== */
.skip-link{ position:absolute; left:12px; top:-60px; z-index:10000; background:#fff; color:#111; padding:10px 16px; border:2px solid var(--blue); border-radius:4px; font-weight:600; text-decoration:none; }
.skip-link:focus{ top:12px; }
main:focus{ outline:none; }
a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible, summary:focus-visible, [tabindex]:not([tabindex="-1"]):focus-visible{ outline:3px solid var(--blue-bright); outline-offset:2px; }
.site-footer a:focus-visible, .trust-bar a:focus-visible, nav.main-nav a:focus-visible{ outline-color:var(--cyan); }
nav.main-nav li:focus-within .dropdown{ display:block; }
.footer-inner h2.footer-heading{ color:#fff; font-family:var(--font-display); font-size:0.98rem; font-weight:700; margin:0 0 14px; padding-left:0; letter-spacing:0.03em; }
.footer-inner h2.footer-heading::before{ content:none; }
@media (prefers-reduced-motion:reduce){
  .fade-section{ opacity:1; transform:none; transition:none; }
  *{ scroll-behavior:auto !important; }
}
/* ===== Forminator forms (contact + proposal) ===== */
#main-content .forminator-ui.forminator-custom-form{
  background:var(--bg-card); border:1px solid var(--border); border-radius:var(--radius);
  box-shadow:var(--shadow-soft); padding:32px 32px 28px; margin-top:22px; position:relative;
  font-family:var(--font-body); color:var(--text);
}
#main-content .forminator-ui.forminator-custom-form::before{
  content:""; position:absolute; left:0; right:0; top:0; height:4px; border-radius:var(--radius) var(--radius) 0 0;
  background:linear-gradient(90deg, var(--blue), var(--amber));
}
#main-content .forminator-custom-form .forminator-row{ display:flex; flex-wrap:wrap; gap:0 20px; margin:0 0 20px; }
#main-content .forminator-custom-form .forminator-row-last{ margin-bottom:0; }
#main-content .forminator-custom-form .forminator-col{ flex:1 1 0; min-width:0; padding:0; }
#main-content .forminator-custom-form .forminator-col-12{ flex-basis:100%; }
#main-content .forminator-custom-form .forminator-label{
  display:block; margin:0 0 7px; font-size:0.86rem; font-weight:600; letter-spacing:0.01em; color:var(--navy);
}
#main-content .forminator-custom-form .forminator-required{ color:var(--amber); margin-left:2px; }
#main-content .forminator-custom-form .forminator-input,
#main-content .forminator-custom-form .forminator-textarea,
#main-content .forminator-custom-form select{
  width:100% !important; max-width:none; box-sizing:border-box; display:block;
  padding:12px 14px; font:inherit; font-size:1rem; line-height:1.4; color:var(--text);
  background:#fbfaf7; border:1px solid rgba(36,36,36,0.22); border-radius:4px;
  transition:border-color .15s ease, box-shadow .15s ease, background .15s ease;
}
#main-content .forminator-custom-form .forminator-textarea{ min-height:150px; resize:vertical; }
#main-content .forminator-custom-form .forminator-input::placeholder,
#main-content .forminator-custom-form .forminator-textarea::placeholder{ color:var(--text-dim); }
#main-content .forminator-custom-form .forminator-input:hover,
#main-content .forminator-custom-form .forminator-textarea:hover{ border-color:rgba(36,36,36,0.38); }
#main-content .forminator-custom-form .forminator-input:focus,
#main-content .forminator-custom-form .forminator-textarea:focus,
#main-content .forminator-custom-form select:focus{
  outline:none; background:#fff; border-color:var(--blue); box-shadow:0 0 0 3px rgba(43,98,143,0.22);
}
#main-content .forminator-custom-form .forminator-description{ font-size:0.82rem; color:var(--text-mute); margin-top:6px; }
/* consent checkbox: the visible sentence is the label */
#main-content .forminator-custom-form .forminator-field-gdprcheckbox > .forminator-field > .forminator-label{
  position:absolute !important; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap;
}
#main-content .forminator-custom-form .forminator-checkbox{
  display:flex; align-items:flex-start; gap:12px; cursor:pointer; position:relative;
  padding:14px 16px; background:var(--bg-card-alt); border-radius:4px;
  font-size:0.92rem; line-height:1.55; color:var(--text-mute);
}
#main-content .forminator-custom-form .forminator-checkbox input{ position:absolute; opacity:0; width:20px; height:20px; margin:0; left:16px; top:15px; }
#main-content .forminator-custom-form .forminator-checkbox-box{
  flex:0 0 20px; width:20px; height:20px; margin-top:1px; border:1.5px solid rgba(36,36,36,0.45); border-radius:3px;
  background:#fff; display:flex; align-items:center; justify-content:center; transition:background .15s ease, border-color .15s ease;
}
#main-content .forminator-custom-form .forminator-checkbox input:checked + .forminator-checkbox-box{ background:var(--blue); border-color:var(--blue); }
#main-content .forminator-custom-form .forminator-checkbox input:checked + .forminator-checkbox-box::after{
  content:""; width:6px; height:11px; border:solid #fff; border-width:0 2px 2px 0; transform:rotate(45deg) translate(-1px,-1px);
}
#main-content .forminator-custom-form .forminator-checkbox input:focus-visible + .forminator-checkbox-box{ outline:3px solid var(--blue-bright); outline-offset:2px; }
#main-content .forminator-custom-form .forminator-checkbox a{ color:var(--blue); text-decoration:underline; text-underline-offset:3px; }
/* submit matches .btn.btn-primary */
#main-content .forminator-custom-form .forminator-button-submit{
  display:inline-flex; align-items:center; gap:10px; cursor:pointer;
  padding:14px 34px; border:1.5px solid transparent; border-radius:2px;
  background:var(--navy); color:#fff; font-family:var(--font-body); font-weight:700; font-size:0.86rem;
  text-transform:uppercase; letter-spacing:0.05em; box-shadow:0 8px 18px rgba(36,36,36,0.22);
  transition:transform .2s ease, background .2s ease, box-shadow .2s ease;
}
#main-content .forminator-custom-form .forminator-button-submit:hover{ background:var(--blue); transform:translateY(-2px); }
#main-content .forminator-custom-form .forminator-button-submit:active{ transform:translateY(0); box-shadow:0 4px 10px rgba(36,36,36,0.2); }
#main-content .forminator-custom-form .forminator-button-submit:focus-visible{ outline:3px solid var(--blue-bright); outline-offset:3px; }
/* validation + responses */
#main-content .forminator-custom-form .forminator-has_error .forminator-input,
#main-content .forminator-custom-form .forminator-has_error .forminator-textarea{ border-color:var(--amber); box-shadow:0 0 0 3px rgba(186,39,39,0.14); }
#main-content .forminator-custom-form .forminator-has_error .forminator-checkbox{ box-shadow:inset 0 0 0 1.5px var(--amber); }
#main-content .forminator-custom-form .forminator-error-message{ display:block; margin-top:6px; font-size:0.84rem; font-weight:600; color:var(--amber); }
#main-content .forminator-custom-form .forminator-response-message:not([aria-hidden="true"]){
  margin:0 0 20px; padding:14px 16px; border-radius:4px; font-size:0.95rem; line-height:1.5;
}
#main-content .forminator-custom-form .forminator-response-message.forminator-success{ background:rgba(43,98,143,0.10); border-left:4px solid var(--blue); color:var(--text); }
#main-content .forminator-custom-form .forminator-response-message.forminator-error{ background:rgba(186,39,39,0.08); border-left:4px solid var(--amber); color:var(--text); }
#main-content .forminator-custom-form .forminator-response-message p{ margin:0; }
#main-content .forminator-custom-form + .forminator-edit-module, .forminator-edit-module{ display:inline-block; margin-top:10px; font-size:0.8rem; }
@media (max-width:640px){
  #main-content .forminator-ui.forminator-custom-form{ padding:24px 18px 20px; }
  #main-content .forminator-custom-form .forminator-row{ flex-direction:column; gap:20px; }
  #main-content .forminator-custom-form .forminator-button-submit{ width:100%; justify-content:center; }
}
#main-content .content-text .forminator-response-message ul{ margin:6px 0 0; padding:0; list-style:none; }
#main-content .content-text .forminator-response-message ul li{ padding:2px 0; border:none; color:var(--text); font-size:0.9rem; }
#main-content .content-text .forminator-response-message ul li::before{ content:none; }
#main-content .forminator-ui.forminator-custom-form > .forminator-row-last{ margin-bottom:0; }
#main-content .forminator-ui.forminator-custom-form > *:last-child{ margin-bottom:0; }
/* ===== Proposal page ===== */
.proposal-layout{ display:grid; grid-template-columns:minmax(260px, 340px) minmax(0, 1fr); gap:56px; align-items:start; }
.proposal-aside{ position:sticky; top:110px; }
.proposal-aside h2{ font-size:1.35rem; }
.proposal-steps{ list-style:none; counter-reset:step; margin:0 0 28px; padding:0; }
.proposal-steps li{ counter-increment:step; position:relative; padding:0 0 22px 52px; line-height:1.6; color:var(--text-mute); }
.proposal-steps li strong{ display:block; color:var(--navy); font-size:1rem; margin-bottom:2px; }
.proposal-steps li::before{
  content:counter(step); position:absolute; left:0; top:0; width:36px; height:36px; border-radius:50%;
  display:flex; align-items:center; justify-content:center; font-family:var(--font-display); font-weight:700;
  color:#fff; background:var(--blue);
}
.proposal-steps li:not(:last-child)::after{ content:""; position:absolute; left:17px; top:42px; bottom:6px; width:2px; background:var(--border); }
.proposal-contact{ padding:20px 22px; background:var(--bg-card-alt); border-left:4px solid var(--amber); border-radius:4px; }
.proposal-contact h3{ font-size:1.02rem; margin:0 0 6px; color:var(--navy); }
.proposal-contact p{ margin:0 0 8px; color:var(--text-mute); line-height:1.6; }
.proposal-contact p:last-child{ margin-bottom:0; }
.proposal-contact a{ color:var(--blue); font-weight:600; text-decoration:underline; text-underline-offset:3px; }
.proposal-form{ max-width:none; }
@media (max-width:960px){
  .proposal-layout{ grid-template-columns:1fr; gap:36px; }
  .proposal-aside{ position:static; }
}

/* Forminator: option lists (checkbox + radio), upload, descriptions */
#main-content .forminator-custom-form .forminator-field-checkbox .forminator-label,
#main-content .forminator-custom-form .forminator-field-radio .forminator-label{ margin-bottom:10px; }
#main-content .forminator-custom-form .forminator-field-checkbox .forminator-checkbox,
#main-content .forminator-custom-form .forminator-radio{
  display:flex; align-items:center; gap:12px; position:relative; cursor:pointer;
  margin:0 0 8px; padding:13px 16px; background:#fbfaf7; border:1px solid rgba(36,36,36,0.18); border-radius:4px;
  font-size:0.95rem; line-height:1.45; color:var(--text); transition:border-color .15s ease, background .15s ease;
}
#main-content .forminator-custom-form .forminator-field-checkbox .forminator-checkbox:hover,
#main-content .forminator-custom-form .forminator-radio:hover{ border-color:rgba(36,36,36,0.38); }
#main-content .forminator-custom-form .forminator-field-checkbox .forminator-checkbox:has(input:checked),
#main-content .forminator-custom-form .forminator-radio:has(input:checked){ border-color:var(--blue); background:rgba(43,98,143,0.06); }
#main-content .forminator-custom-form .forminator-field-checkbox .forminator-checkbox input,
#main-content .forminator-custom-form .forminator-radio input{ position:absolute; opacity:0; width:20px; height:20px; margin:0; left:16px; top:50%; transform:translateY(-50%); }
#main-content .forminator-custom-form .forminator-field-checkbox .forminator-checkbox-box{ margin-top:0; }
#main-content .forminator-custom-form .forminator-radio-bullet{
  flex:0 0 20px; width:20px; height:20px; border:1.5px solid rgba(36,36,36,0.45); border-radius:50%; background:#fff;
  display:flex; align-items:center; justify-content:center; transition:border-color .15s ease;
}
#main-content .forminator-custom-form .forminator-radio input:checked + .forminator-radio-bullet{ border-color:var(--blue); }
#main-content .forminator-custom-form .forminator-radio input:checked + .forminator-radio-bullet::after{ content:""; width:10px; height:10px; border-radius:50%; background:var(--blue); }
#main-content .forminator-custom-form .forminator-radio input:focus-visible + .forminator-radio-bullet{ outline:3px solid var(--blue-bright); outline-offset:2px; }
#main-content .forminator-custom-form .forminator-checkbox-label, #main-content .forminator-custom-form .forminator-radio-label{ flex:1; }
#main-content .forminator-custom-form .forminator-description{ display:block; }
/* file upload */
#main-content .forminator-custom-form .forminator-file-upload{
  display:flex; flex-wrap:wrap; align-items:center; gap:12px; padding:14px 16px;
  border:1.5px dashed rgba(36,36,36,0.28); border-radius:4px; background:#fbfaf7;
}
#main-content .forminator-custom-form .forminator-file-upload > input[type="file"]{ position:static; width:100%; height:auto; opacity:1; font:inherit; font-size:0.92rem; color:var(--text-mute); cursor:pointer; }
#main-content .forminator-custom-form .forminator-file-upload > input[type="file"]::file-selector-button{
  margin-right:14px; padding:9px 18px; cursor:pointer; border:1.5px solid var(--navy); border-radius:2px; background:#fff;
  color:var(--navy); font-family:var(--font-body); font-weight:700; font-size:0.8rem; text-transform:uppercase; letter-spacing:0.05em;
  transition:background .15s ease, color .15s ease;
}
#main-content .forminator-custom-form .forminator-file-upload > input[type="file"]:hover::file-selector-button{ background:var(--navy); color:#fff; }
#main-content .forminator-custom-form .forminator-file-upload > input[type="file"]:focus-visible{ outline:3px solid var(--blue-bright); outline-offset:2px; }
#main-content .forminator-custom-form .forminator-file-upload .forminator-button-upload{
  display:inline-block; cursor:pointer; padding:9px 18px; border:1.5px solid var(--navy); border-radius:2px; background:#fff;
  color:var(--navy); font-weight:700; font-size:0.8rem; text-transform:uppercase; letter-spacing:0.05em;
}
#main-content .forminator-custom-form .forminator-file-upload .forminator-button-upload:hover{ background:var(--navy); color:#fff; }
#main-content .forminator-custom-form .forminator-file-upload > span{ font-size:0.9rem; color:var(--text-mute); }
#main-content .forminator-custom-form .forminator-button-delete{ background:none; border:none; color:var(--amber); cursor:pointer; font-size:0.85rem; }
@media (max-width:900px){
  #main-content .forminator-custom-form .forminator-row{ flex-direction:column; gap:20px; }
}