.elementor-kit-313{--e-global-color-primary:#1B4E7A;--e-global-color-secondary:#0F3254;--e-global-color-text:#333333;--e-global-color-accent:#C9A86A;--e-global-color-b939ebc:#FFFDF8;--e-global-color-958841d:#666666;--e-global-color-53827bc:#C9A86A;--e-global-color-18fe0bf:#009649;--e-global-color-ba21109:#E6F0F8;--e-global-color-17a761a:#F3E9D7;--e-global-color-2576c62:#7AAFD4;--e-global-color-81296ad:#FFFFFF;--e-global-color-7f87865:#C0392B;--e-global-typography-primary-font-family:"Playfair Display";--e-global-typography-primary-font-size:52px;--e-global-typography-primary-font-weight:700;--e-global-typography-primary-text-transform:none;--e-global-typography-primary-line-height:1.2em;--e-global-typography-primary-letter-spacing:0px;--e-global-typography-secondary-font-family:"Playfair Display";--e-global-typography-secondary-font-size:36px;--e-global-typography-secondary-font-weight:400;--e-global-typography-secondary-text-transform:none;--e-global-typography-secondary-line-height:1.3em;--e-global-typography-secondary-letter-spacing:0px;--e-global-typography-text-font-family:"Inter";--e-global-typography-text-font-size:16px;--e-global-typography-text-font-weight:400;--e-global-typography-text-text-transform:none;--e-global-typography-text-line-height:1.7em;--e-global-typography-text-letter-spacing:0px;--e-global-typography-accent-font-family:"Inter";--e-global-typography-accent-font-size:14px;--e-global-typography-accent-font-weight:600;--e-global-typography-accent-text-transform:none;--e-global-typography-accent-line-height:1.5em;--e-global-typography-accent-letter-spacing:0px;color:var( --e-global-color-text );font-family:var( --e-global-typography-text-font-family ), Sans-serif;font-size:var( --e-global-typography-text-font-size );font-weight:var( --e-global-typography-text-font-weight );text-transform:var( --e-global-typography-text-text-transform );line-height:var( --e-global-typography-text-line-height );letter-spacing:var( --e-global-typography-text-letter-spacing );}.elementor-kit-313 button,.elementor-kit-313 input[type="button"],.elementor-kit-313 input[type="submit"],.elementor-kit-313 .elementor-button{background-color:var( --e-global-color-primary );color:var( --e-global-color-b939ebc );border-radius:6px 6px 6px 6px;padding:14px 32px 14px 32px;}.elementor-kit-313 button:hover,.elementor-kit-313 button:focus,.elementor-kit-313 input[type="button"]:hover,.elementor-kit-313 input[type="button"]:focus,.elementor-kit-313 input[type="submit"]:hover,.elementor-kit-313 input[type="submit"]:focus,.elementor-kit-313 .elementor-button:hover,.elementor-kit-313 .elementor-button:focus{background-color:var( --e-global-color-accent );color:#FFFFFF;box-shadow:0px 0px 10px 0px rgba(0,0,0,0.5);}.elementor-kit-313 e-page-transition{background-color:#FFBC7D;}.elementor-kit-313 p{margin-block-end:1em;}.elementor-kit-313 a{color:#1B4E7A;font-family:"Inter", Sans-serif;font-size:14px;font-weight:600;text-transform:none;line-height:1.5em;letter-spacing:0px;}.elementor-kit-313 a:hover{color:var( --e-global-color-53827bc );font-family:"Inter", Sans-serif;font-size:14px;font-weight:600;text-transform:none;line-height:1.5em;letter-spacing:0px;}.elementor-kit-313 h1{color:var( --e-global-color-secondary );font-family:var( --e-global-typography-primary-font-family ), Sans-serif;font-size:var( --e-global-typography-primary-font-size );font-weight:var( --e-global-typography-primary-font-weight );text-transform:var( --e-global-typography-primary-text-transform );line-height:var( --e-global-typography-primary-line-height );letter-spacing:var( --e-global-typography-primary-letter-spacing );}.elementor-kit-313 h2{color:var( --e-global-color-secondary );font-family:var( --e-global-typography-primary-font-family ), Sans-serif;font-size:var( --e-global-typography-primary-font-size );font-weight:var( --e-global-typography-primary-font-weight );text-transform:var( --e-global-typography-primary-text-transform );line-height:var( --e-global-typography-primary-line-height );letter-spacing:var( --e-global-typography-primary-letter-spacing );}.elementor-kit-313 h3{color:var( --e-global-color-secondary );font-family:var( --e-global-typography-secondary-font-family ), Sans-serif;font-size:var( --e-global-typography-secondary-font-size );font-weight:var( --e-global-typography-secondary-font-weight );text-transform:var( --e-global-typography-secondary-text-transform );line-height:var( --e-global-typography-secondary-line-height );letter-spacing:var( --e-global-typography-secondary-letter-spacing );}.elementor-kit-313 h4{color:var( --e-global-color-secondary );font-family:"Inter", Sans-serif;font-size:16px;font-weight:400;text-transform:none;line-height:1.7em;letter-spacing:0px;}.elementor-kit-313 h5{color:var( --e-global-color-text );font-family:var( --e-global-typography-accent-font-family ), Sans-serif;font-size:var( --e-global-typography-accent-font-size );font-weight:var( --e-global-typography-accent-font-weight );text-transform:var( --e-global-typography-accent-text-transform );line-height:var( --e-global-typography-accent-line-height );letter-spacing:var( --e-global-typography-accent-letter-spacing );}.elementor-kit-313 h6{color:var( --e-global-color-accent );font-family:var( --e-global-typography-accent-font-family ), Sans-serif;font-size:var( --e-global-typography-accent-font-size );font-weight:var( --e-global-typography-accent-font-weight );text-transform:var( --e-global-typography-accent-text-transform );line-height:var( --e-global-typography-accent-line-height );letter-spacing:var( --e-global-typography-accent-letter-spacing );}.elementor-section.elementor-section-boxed > .elementor-container{max-width:1440px;}.e-con{--container-max-width:1440px;}.elementor-widget:not(:last-child){--kit-widget-spacing:20px;}.elementor-element{--widgets-spacing:20px 20px;--widgets-spacing-row:20px;--widgets-spacing-column:20px;}{}h1.entry-title{display:var(--page-title-display);}.site-header .site-branding{flex-direction:column;align-items:stretch;}.site-header{padding-inline-end:0px;padding-inline-start:0px;}.site-footer .site-branding{flex-direction:column;align-items:stretch;}@media(max-width:1024px){.elementor-kit-313{--e-global-typography-primary-font-size:40px;--e-global-typography-secondary-font-size:28px;--e-global-typography-text-font-size:16px;--e-global-typography-accent-font-size:14px;font-size:var( --e-global-typography-text-font-size );line-height:var( --e-global-typography-text-line-height );letter-spacing:var( --e-global-typography-text-letter-spacing );}.elementor-kit-313 a{font-size:16px;}.elementor-kit-313 a:hover{font-size:16px;}.elementor-kit-313 h1{font-size:var( --e-global-typography-primary-font-size );line-height:var( --e-global-typography-primary-line-height );letter-spacing:var( --e-global-typography-primary-letter-spacing );}.elementor-kit-313 h2{font-size:var( --e-global-typography-primary-font-size );line-height:var( --e-global-typography-primary-line-height );letter-spacing:var( --e-global-typography-primary-letter-spacing );}.elementor-kit-313 h3{font-size:var( --e-global-typography-secondary-font-size );line-height:var( --e-global-typography-secondary-line-height );letter-spacing:var( --e-global-typography-secondary-letter-spacing );}.elementor-kit-313 h4{font-size:18px;}.elementor-kit-313 h5{font-size:var( --e-global-typography-accent-font-size );line-height:var( --e-global-typography-accent-line-height );letter-spacing:var( --e-global-typography-accent-letter-spacing );}.elementor-kit-313 h6{font-size:var( --e-global-typography-accent-font-size );line-height:var( --e-global-typography-accent-line-height );letter-spacing:var( --e-global-typography-accent-letter-spacing );}.elementor-section.elementor-section-boxed > .elementor-container{max-width:1024px;}.e-con{--container-max-width:1024px;}}@media(max-width:767px){.elementor-kit-313{--e-global-typography-primary-font-size:32px;--e-global-typography-secondary-font-size:22px;--e-global-typography-text-font-size:15px;--e-global-typography-accent-font-size:13px;font-size:var( --e-global-typography-text-font-size );line-height:var( --e-global-typography-text-line-height );letter-spacing:var( --e-global-typography-text-letter-spacing );}.elementor-kit-313 a{font-size:15px;}.elementor-kit-313 a:hover{font-size:15px;}.elementor-kit-313 h1{font-size:var( --e-global-typography-primary-font-size );line-height:var( --e-global-typography-primary-line-height );letter-spacing:var( --e-global-typography-primary-letter-spacing );}.elementor-kit-313 h2{font-size:var( --e-global-typography-primary-font-size );line-height:var( --e-global-typography-primary-line-height );letter-spacing:var( --e-global-typography-primary-letter-spacing );}.elementor-kit-313 h3{font-size:var( --e-global-typography-secondary-font-size );line-height:var( --e-global-typography-secondary-line-height );letter-spacing:var( --e-global-typography-secondary-letter-spacing );}.elementor-kit-313 h4{font-size:16px;}.elementor-kit-313 h5{font-size:var( --e-global-typography-accent-font-size );line-height:var( --e-global-typography-accent-line-height );letter-spacing:var( --e-global-typography-accent-letter-spacing );}.elementor-kit-313 h6{font-size:var( --e-global-typography-accent-font-size );line-height:var( --e-global-typography-accent-line-height );letter-spacing:var( --e-global-typography-accent-letter-spacing );}.elementor-section.elementor-section-boxed > .elementor-container{max-width:767px;}.e-con{--container-max-width:767px;}}
/* Start custom CSS *//* ============================================================
   IRISH SEAMS — DESIGN TOKENS & ATOMIC CSS
   Paste into: Elementor → Site Settings → Custom CSS
   Version: 1.4 · irishseams.ca

   !important RULES:
   Use !important when Elementor sets the property inline via
   its Style tab (background-color, color, font-*, border,
   border-radius, button styles). These cannot be beaten by
   class .elementor-kit-313s alone.

   Skip !important on padding, margin, width — these are NOT
   inlined by Elementor and can be freely adjusted in the
   editor on a per-element basis.
   ============================================================ */


/* ────────────────────────────────────────────────────────────
   1. DESIGN TOKENS
   All values live here. Change once, updates everywhere.
   ──────────────────────────────────────────────────────────── */

:root {

  /* ── COLOURS ── */

  --color-primary:           #1B4E7A;   /* Steel blue — nav, headlines, card borders */
  --color-primary-dark:      #0F3254;   /* Dark navy — hero bg, footer bg */
  --color-primary-light:     #E6F0F8;   /* Light blue — alternating section bg */

  --color-green:             #009649;   /* Logo green — eyebrows, bullets, active nav */
  --color-green-muted:       #9ecfaf;   /* Soft green — trust bar secondary text */

  --color-gold:              #C9A86A;   /* Gold — ALL primary CTA buttons */
  --color-gold-hover:        #b8945a;   /* Gold hover state */

  --color-cream:             #F3E9D7;   /* Cream — special callout sections */
  --color-white:             #ffffff;
  --color-black:             #000000;

  --color-text:              #333333;   /* Primary body copy */
  --color-text-muted:        #666666;   /* Subheadings, captions, form labels */
  --color-text-light:        #7aafd4;   /* Light text on dark backgrounds */
  --color-text-faint:        #4a7fa8;   /* Very subtle on dark — hours labels */
  --color-text-ghost:        #2a5a8a;   /* Copyright, legal links */

  --color-border-card:       #dde8f0;   /* Card borders on white bg */
  --color-border-divider:    rgba(255, 255, 255, 0.08); /* Dividers on dark bg */
  --color-border-accent:     #009649;   /* Green accent borders */


  /* ── TYPOGRAPHY ── */

  --font-primary:            'Inter', sans-serif;        /* Body, UI, nav, buttons */
  --font-display:            'Playfair Display', serif;  /* Headlines, pull quotes */

  /* Size scale — base is 15px */
    --text-xs:         12px;
    --text-sm:         13px;
    --text-base:       14px;
    --text-md:         15px;
    --text-lg:         16px;
    --text-xl:         26px;
    --text-2xl:        36px;
    --text-3xl:        52px;

  /* Weight scale */
  --weight-light:            300;
  --weight-regular:          400;
  --weight-medium:           500;
  --weight-semibold:         600;
  --weight-bold:             700;

  /* Letter spacing */
  --tracking-normal:         0;
  --tracking-wide:           0.04em;
  --tracking-wider:          0.08em;
  --tracking-widest:         0.12em;

  /* Line height */
  --leading-tight:           1.2;
  --leading-snug:            1.4;
  --leading-normal:          1.5;
  --leading-relaxed:         1.7;
  --leading-loose:           1.8;


  /* ── SPACING ── */

  --space-1:                 4px;
  --space-2:                 8px;
  --space-3:                 12px;
  --space-4:                 16px;
  --space-5:                 20px;
  --space-6:                 24px;
  --space-8:                 32px;
  --space-10:                40px;
  --space-12:                48px;
  --space-14:                56px;
  --space-16:                64px;
  --space-20:                80px;


  /* ── BORDERS ── */

  --radius-xs:               2px;
  --radius-sm:               4px;
  --radius-md:               6px;
  --radius-lg:               8px;
  --radius-full:             9999px;

  --border-width-sm:         1px;
  --border-width-md:         2px;
  --border-width-lg:         3px;
  --border-width-xl:         4px;


  /* ── SHADOWS ── */

  --shadow-sm:               0 1px 4px rgba(0, 0, 0, 0.06);
  --shadow-card:             0 2px 12px rgba(0, 0, 0, 0.08);
  --shadow-nav:              0 2px 16px rgba(15, 50, 84, 0.15);
  --shadow-modal:            0 8px 32px rgba(0, 0, 0, 0.2);


  /* ── TRANSITIONS ── */

  --transition-fast:         0.15s ease;
  --transition-base:         0.25s ease;
  --transition-slow:         0.4s ease;


  /* ── LAYOUT ── */

  --container-max:           1440px;
  --header-height:           68px;
  --header-info-height:      32px;
  --header-total:            100px;
}


/* ────────────────────────────────────────────────────────────
   2. BACKGROUND ATOMS
   !important needed — Elementor inlines background-color
   via its Style tab on containers and sections
   ──────────────────────────────────────────────────────────── */

.bg-primary       { background-color: var(--color-primary) !important; }
.bg-primary-dark  { background-color: var(--color-primary-dark) !important; }
.bg-primary-light { background-color: var(--color-primary-light) !important; }
.bg-green         { background-color: var(--color-green) !important; }
.bg-gold          { background-color: var(--color-gold) !important; }
.bg-cream         { background-color: var(--color-cream) !important; }
.bg-white         { background-color: var(--color-white) !important; }


/* ────────────────────────────────────────────────────────────
   3. TEXT COLOUR ATOMS
   !important needed — Elementor inlines color on all
   heading and text widgets via its Style tab
   ──────────────────────────────────────────────────────────── */

.text-white   { color: var(--color-white) !important; }
.text-primary { color: var(--color-primary) !important; }
.text-green   { color: var(--color-green) !important; }
.text-gold    { color: var(--color-gold) !important; }
.text-body    { color: var(--color-text) !important; }
.text-muted   { color: var(--color-text-muted) !important; }
.text-light   { color: var(--color-text-light) !important; }
.text-faint   { color: var(--color-text-faint) !important; }
.text-ghost   { color: var(--color-text-ghost) !important; }


/* ────────────────────────────────────────────────────────────
   4. TYPOGRAPHY ATOMS
   Inter = body, UI, nav, buttons, labels, captions
   Playfair Display = headlines, hero, quotes, testimonials

   !important on all font properties — Elementor inlines
   color, font-size, font-weight via its Style tab.
   Remove inline Style tab settings from each widget
   after applying a class to avoid double-declarations.
   ──────────────────────────────────────────────────────────── */

/* Eyebrow label — Inter uppercase above headings */
.eyebrow {
  font-family:    var(--font-primary) !important;
  font-size:      var(--text-xs) !important;
  font-weight:    var(--weight-bold) !important;
  letter-spacing: var(--tracking-widest) !important;
  text-transform: uppercase !important;
  color:          var(--color-green) !important;
  line-height:    var(--leading-normal) !important;
  margin-bottom:  var(--space-2) !important;
}

/* Section headline — Playfair Display on light backgrounds */
.headline {
  font-family:  var(--font-display) !important;
  font-size:    var(--text-4xl) !important;
  font-weight:  var(--weight-bold) !important;
  color:        var(--color-primary) !important;
  line-height:  var(--leading-tight) !important;
}

/* Section headline — Playfair Display on dark backgrounds */
.headline-light {
  font-family:  var(--font-display) !important;
  font-size:    var(--text-4xl) !important;
  font-weight:  var(--weight-bold) !important;
  color:        var(--color-white) !important;
  line-height:  var(--leading-tight) !important;
}

/* Hero headline — large Playfair Display */
.headline-hero {
  font-family:  var(--font-display) !important;
  font-size:    var(--text-5xl) !important;
  font-weight:  var(--weight-bold) !important;
  color:        var(--color-white) !important;
  line-height:  var(--leading-tight) !important;
}

/* Body copy on light backgrounds */
.body-copy {
  font-family:  var(--font-primary) !important;
  font-size:    var(--text-base) !important;
  font-weight:  var(--weight-light) !important;
  line-height:  var(--leading-relaxed) !important;
  color:        var(--color-text) !important;
}

/* Body copy on dark backgrounds */
.body-copy-light {
  font-family:  var(--font-primary) !important;
  font-size:    var(--text-base) !important;
  font-weight:  var(--weight-light) !important;
  line-height:  var(--leading-relaxed) !important;
  color:        var(--color-text-light) !important;
}

/* Footer / sidebar column headings */
.col-heading {
  font-family:    var(--font-primary) !important;
  font-size:      var(--text-sm) !important;
  font-weight:    var(--weight-bold) !important;
  text-transform: uppercase !important;
  letter-spacing: var(--tracking-wider) !important;
  color:          var(--color-white) !important;
  line-height:    var(--leading-normal) !important;
  padding-bottom: var(--space-2) !important;
  border-bottom:  var(--border-width-sm) solid var(--color-border-divider) !important;
  margin-bottom:  var(--space-3) !important;
}

/* Caption / fine print */
.caption {
  font-family:  var(--font-primary) !important;
  font-size:    var(--text-sm) !important;
  font-weight:  var(--weight-regular) !important;
  color:        var(--color-text-muted) !important;
  line-height:  var(--leading-normal) !important;
}

/* Learn more text link */
.learn-more,
.learn-more a {
  font-family:     var(--font-primary) !important;
  font-size:       var(--text-base) !important;
  font-weight:     var(--weight-semibold) !important;
  color:           var(--color-primary) !important;
  text-decoration: none !important;
  letter-spacing:  var(--tracking-wide) !important;
  border-bottom:   var(--border-width-sm) solid var(--color-primary) !important;
  padding-bottom:  2px !important;
  display:         inline-block !important;
  transition:      color var(--transition-base), border-color var(--transition-base) !important;
}
.learn-more:hover,
.learn-more a:hover {
  color:        var(--color-green) !important;
  border-color: var(--color-green) !important;
}

/* Testimonial quote — Playfair italic on dark backgrounds */
.quote {
  font-family:  var(--font-display) !important;
  font-size:    var(--text-md) !important;
  font-weight:  var(--weight-regular) !important;
  font-style:   italic !important;
  line-height:  var(--leading-relaxed) !important;
  color:        var(--color-text-light) !important;
}

/* Testimonial quote — Playfair italic on light backgrounds */
.quote-dark {
  font-family:  var(--font-display) !important;
  font-size:    var(--text-md) !important;
  font-weight:  var(--weight-regular) !important;
  font-style:   italic !important;
  line-height:  var(--leading-relaxed) !important;
  color:        var(--color-text-faint) !important;
}

/* Pull quote — larger Playfair italic */
.pull-quote {
  font-family:  var(--font-display) !important;
  font-size:    var(--text-xl) !important;
  font-weight:  var(--weight-regular) !important;
  font-style:   italic !important;
  line-height:  var(--leading-snug) !important;
  color:        var(--color-primary) !important;
}

/* Phone number link */
.phone-link,
.phone-link a {
  color:           var(--color-green) !important;
  font-size:  var(--weight-regular) !important;
  text-decoration: none !important;
  font-weight:     var(--weight-regular) !important;
  font-family:     var(--font-primary) !important;
  transition:      color var(--transition-base) !important;
}


/* ────────────────────────────────────────────────────────────
   5. BUTTON ATOMS
   !important needed — Elementor inlines all button styles.
   After applying class, clear ALL Style tab settings on the
   button widget to avoid double-declarations.
   ──────────────────────────────────────────────────────────── */

/* Primary CTA — gold */
.btn-gold,
.btn-gold .elementor-button {
  background-color: var(--color-gold) !important;
  color:            var(--color-white) !important;
  font-family:      var(--font-primary) !important;
  font-weight:      var(--weight-bold) !important;
  font-size:        var(--text-base) !important;
  letter-spacing:   var(--tracking-wide) !important;
  border-radius:    var(--radius-sm) !important;
  border:           none !important;
  transition:       background-color var(--transition-base) !important;
}
.btn-gold:hover .elementor-button,
.btn-gold .elementor-button:hover {
  background-color: var(--color-gold-hover) !important;
}

/* Outline — secondary on dark backgrounds */
.btn-outline,
.btn-outline .elementor-button {
  background-color: transparent !important;
  color:            var(--color-text-light) !important;
  font-family:      var(--font-primary) !important;
  font-size:        var(--text-base) !important;
  font-weight:      var(--weight-light) !important;
  border:           var(--border-width-sm) solid var(--color-text-ghost) !important;
  border-radius:    var(--radius-sm) !important;
  transition:       color var(--transition-base), border-color var(--transition-base) !important;
}
.btn-outline:hover .elementor-button,
.btn-outline .elementor-button:hover {
  color:        var(--color-white) !important;
  border-color: var(--color-text-light) !important;
}

/* Ghost — transparent white border on dark backgrounds */
.btn-ghost,
.btn-ghost .elementor-button {
  background-color: transparent !important;
  color:            var(--color-white) !important;
  font-family:      var(--font-primary) !important;
  font-size:        var(--text-base) !important;
  font-weight:      var(--weight-medium) !important;
  border:           var(--border-width-sm) solid rgba(255,255,255,0.45) !important;
  border-radius:    var(--radius-sm) !important;
  transition:       border-color var(--transition-base), background-color var(--transition-base) !important;
}
.btn-ghost:hover .elementor-button,
.btn-ghost .elementor-button:hover {
  background-color: rgba(255,255,255,0.08) !important;
  border-color:     var(--color-white) !important;
}


/* ────────────────────────────────────────────────────────────
   6. CARD ATOMS
   !important on border and background — Elementor inlines
   these via the Style tab on containers.
   Padding — no !important so you can adjust in editor.
   ──────────────────────────────────────────────────────────── */

.card {
  border:        var(--border-width-sm) solid var(--color-border-card) !important;
  border-radius: var(--radius-md) !important;
  box-shadow:    var(--shadow-card) !important;
  overflow:      hidden !important;
  background:    var(--color-white) !important;
}

.card-accent-top {
  border-top: var(--border-width-xl) solid var(--color-primary) !important;
}

.card-accent-left {
  border-left: var(--border-width-xl) solid var(--color-green) !important;
}

.service-card {
  border:        var(--border-width-sm) solid var(--color-border-card) !important;
  border-top:    var(--border-width-xl) solid var(--color-primary) !important;
  border-radius: var(--radius-md) !important;
  box-shadow:    var(--shadow-card) !important;
  overflow:      hidden !important;
  background:    var(--color-white) !important;
}

.testimonial-card {
  border:        var(--border-width-sm) solid var(--color-border-card) !important;
  border-left:   var(--border-width-xl) solid var(--color-green) !important;
  border-radius: var(--radius-md) !important;
  background:    var(--color-white) !important;
  padding:       var(--space-6);
}

.info-panel {
  background:    var(--color-primary-light) !important;
  border-left:   var(--border-width-lg) solid var(--color-primary) !important;
  border-radius: var(--radius-md) !important;
  padding:       var(--space-5);
}


/* ────────────────────────────────────────────────────────────
   7. SECTION ATOMS
   background-color — !important (Elementor inlines it)
   padding — no !important (freely adjustable in editor)
   ──────────────────────────────────────────────────────────── */

/* Generic padding classes — adjustable in editor */
.section {
  padding-top:    var(--space-14);
  padding-bottom: var(--space-14);
}

.section-sm {
  padding-top:    var(--space-10);
  padding-bottom: var(--space-10);
}

/* Centred heading group */
.section-header {
  text-align:    center;
  margin-bottom: var(--space-10);
}

/* Section backgrounds */
.section-white   { background-color: var(--color-white) !important; }
.section-light   { background-color: var(--color-primary-light) !important; }
.section-dark    { background-color: var(--color-primary) !important; }
.section-darkest { background-color: var(--color-primary-dark) !important; }

/* CTA band — padding adjustable in editor */
.cta-band {
  background-color: var(--color-primary) !important;
  text-align:       center !important;
  padding:          var(--space-12) var(--space-20);
}

/* Trust / confidence bar — padding adjustable in editor */
.trust-bar {
  background-color: var(--color-green) !important;
  padding:          var(--space-4) var(--space-20);
}

/* Service section — full-bleed photo + text layout */
.service-section {
  display:        flex !important;
  flex-direction: row !important;
  align-items:    stretch !important;
  min-height:     500px;
}

/* Photo column */
.service-photo-col {
  width:               50%;
  min-height:          500px;
  background-size:     cover !important;
  background-position: center center !important;
  background-repeat:   no-repeat !important;
  position:            relative !important;
}

/* Text column — padding adjustable in editor */
.service-text-col {
  width:           50%;
  display:         flex !important;
  flex-direction:  column !important;
  justify-content: center !important;
  align-items:     flex-start !important;
  padding:         var(--space-14) var(--space-16);
}

/* Text width constraint at 1440px */
.section-text-col {
  max-width: 520px;
}


/* ────────────────────────────────────────────────────────────
   8. DIVIDER ATOMS
   ──────────────────────────────────────────────────────────── */

.divider-green {
  border-bottom:  var(--border-width-lg) solid var(--color-green) !important;
  padding-bottom: var(--space-2);
}

.divider-ghost {
  border-bottom: var(--border-width-sm) solid var(--color-border-divider) !important;
}

.divider-card {
  border-bottom: var(--border-width-sm) solid var(--color-border-card) !important;
}


/* ────────────────────────────────────────────────────────────
   9. ICON ATOMS
   ──────────────────────────────────────────────────────────── */

.icon-circle {
  width:            32px !important;
  height:           32px !important;
  border-radius:    var(--radius-full) !important;
  background-color: var(--color-green) !important;
  display:          flex !important;
  align-items:      center !important;
  justify-content:  center !important;
  flex-shrink:      0 !important;
}

.step-circle {
  width:            24px !important;
  height:           24px !important;
  border-radius:    var(--radius-full) !important;
  background-color: var(--color-primary) !important;
  color:            var(--color-white) !important;
  font-family:      var(--font-primary) !important;
  font-size:        var(--text-xs) !important;
  font-weight:      var(--weight-bold) !important;
  display:          flex !important;
  align-items:      center !important;
  justify-content:  center !important;
  flex-shrink:      0 !important;
}

.bullet-dot::before {
  content:          '' !important;
  display:          inline-block !important;
  width:            6px !important;
  height:           6px !important;
  border-radius:    var(--radius-full) !important;
  background-color: var(--color-green) !important;
  margin-right:     var(--space-2) !important;
  vertical-align:   middle !important;
}


/* ────────────────────────────────────────────────────────────
   10. NAVIGATION ATOMS
   ──────────────────────────────────────────────────────────── */

.nav-active-indicator {
  border-bottom:  var(--border-width-md) solid var(--color-green) !important;
  padding-bottom: var(--space-1);
}

.nav-dropdown {
  background-color: var(--color-white) !important;
  border-top:       var(--border-width-lg) solid var(--color-green) !important;
  box-shadow:       var(--shadow-nav) !important;
}


/* ────────────────────────────────────────────────────────────
   11. FORM ATOMS
   ──────────────────────────────────────────────────────────── */

.form-section-label {
  font-family:    var(--font-primary) !important;
  font-size:      var(--text-md) !important;
  font-weight:    var(--weight-bold) !important;
  color:          var(--color-primary) !important;
  padding-bottom: var(--space-2);
  border-bottom:  var(--border-width-md) solid var(--color-green) !important;
  margin-bottom:  var(--space-3);
}

.upload-zone {
  border:        var(--border-width-sm) dashed var(--color-green) !important;
  border-radius: var(--radius-sm) !important;
  padding:       var(--space-3);
  text-align:    center !important;
  color:         var(--color-green) !important;
  font-family:   var(--font-primary) !important;
  font-size:     var(--text-base) !important;
}


/* ────────────────────────────────────────────────────────────
   12. STAR RATING
   ──────────────────────────────────────────────────────────── */

.stars {
  color:          var(--color-gold) !important;
  font-size:      var(--text-md) !important;
  letter-spacing: 0.1em !important;
  margin-bottom:  var(--space-2);
}


/* ────────────────────────────────────────────────────────────
   13. UTILITY ATOMS
   ──────────────────────────────────────────────────────────── */

.mt-0  { margin-top:    0; }
.mb-0  { margin-bottom: 0; }
.mt-sm { margin-top:    var(--space-2); }
.mb-sm { margin-bottom: var(--space-2); }
.mt-md { margin-top:    var(--space-4); }
.mb-md { margin-bottom: var(--space-4); }
.mt-lg { margin-top:    var(--space-6); }
.mb-lg { margin-bottom: var(--space-6); }

/* Visibility */
.hidden-mobile  { display: block; }
.hidden-desktop { display: none; }

/* Text alignment */
.text-left   { text-align: left; }
.text-center { text-align: center; }
.text-right  { text-align: right; }

/* Layout */
.full-width  { width: 100% !important; }

/* Links */
.no-underline,
.no-underline a { text-decoration: none !important; }


/* ════════════════════════════════════════════════════════════
   RESPONSIVE — TABLET  (max-width: 1024px)
   ════════════════════════════════════════════════════════════ */

@media (max-width: 1024px) {

  /* ── Headlines scale down ── */

  .headline       { font-size: var(--text-3xl) !important; }
  .headline-light { font-size: var(--text-3xl) !important; }
  .headline-hero  { font-size: var(--text-4xl) !important; }
  .pull-quote     { font-size: var(--text-lg) !important; }

  /* ── Section padding reduces ── */

  .section      { padding-top: var(--space-12); padding-bottom: var(--space-12); }
  .section-sm   { padding-top: var(--space-8);  padding-bottom: var(--space-8); }
  .cta-band     { padding: var(--space-10) var(--space-10); }
  .trust-bar    { padding: var(--space-4) var(--space-10); }

  /* ── Service sections stack ── */

  .service-section  { flex-direction: column !important; min-height: auto; }
  .service-photo-col { width: 100%; min-height: 360px; }
  .service-text-col  { width: 100%; padding: var(--space-10) var(--space-10); }
  .section-text-col  { max-width: 100%; }

  /* ── Cards ── */

  .testimonial-card { padding: var(--space-5); }

  /* ── Trust bar wraps to 2x2 ── */

  .trust-bar { flex-wrap: wrap; }

}


/* ════════════════════════════════════════════════════════════
   RESPONSIVE — MOBILE  (max-width: 767px)
   ════════════════════════════════════════════════════════════ */

@media (max-width: 767px) {

  /* ── Headlines scale down further ── */

  .headline       { font-size: var(--text-2xl) !important; }
  .headline-light { font-size: var(--text-2xl) !important; }
  .headline-hero  { font-size: var(--text-3xl) !important; }
  .pull-quote     { font-size: var(--text-base) !important; }
  .quote          { font-size: var(--text-base) !important; }
  .quote-dark     { font-size: var(--text-base) !important; }

  /* ── Body copy stays at base ── */

  .body-copy       { font-size: var(--text-base) !important; }
  .body-copy-light { font-size: var(--text-base) !important; 
    text-align:    left !important;}

  /* ── Buttons go full width ── */

  .btn-gold .elementor-button,
  .btn-outline .elementor-button,
  .btn-ghost .elementor-button {
    width:         100% !important;
    text-align:    center !important;
    padding-left:  var(--space-5) !important;
    padding-right: var(--space-5) !important;
  }

  /* ── Section padding reduces further ── */

  .section    { padding-top: var(--space-10); padding-bottom: var(--space-10); }
  .section-sm { padding-top: var(--space-6);  padding-bottom: var(--space-6); }
  .cta-band   { padding: var(--space-8) var(--space-6); }
  .trust-bar  { padding: var(--space-3) var(--space-4); flex-wrap: wrap; }

  /* ── Service sections ── */

  .service-photo-col { min-height: 260px; }
  .service-text-col  { padding: var(--space-8) var(--space-6); }

  /* ── Cards ── */

  .card,
  .service-card     { border-radius: var(--radius-sm) !important; }
  .testimonial-card { padding: var(--space-4); border-radius: var(--radius-sm) !important; }
  .info-panel       { padding: var(--space-4); }

  /* ── Navigation ── */

  .nav-dropdown { width: 100% !important; }

  /* ── Visibility ── */

  .hidden-mobile  { display: none !important; }
  .hidden-desktop { display: block !important; }

  /* ── Text alignment mobile utilities ── */

  .text-center-mobile { text-align: center !important; }
  .text-left-mobile   { text-align: left !important; }

  /* ── Spacing tightens on mobile ── */

  .mt-sm { margin-top:    var(--space-1); }
  .mb-sm { margin-bottom: var(--space-1); }
  .mt-md { margin-top:    var(--space-2); }
  .mb-md { margin-bottom: var(--space-2); }
  .mt-lg { margin-top:    var(--space-4); }
  .mb-lg { margin-bottom: var(--space-4); }

}


/* ════════════════════════════════════════════════════════════
   END OF FILE
   Irish Seams Design Tokens & Atomic CSS — v1.4
   ════════════════════════════════════════════════════════════ *//* End custom CSS */