/*
Theme Name:     Exquisite Cape Upholstery
Theme URI:
Description:    Generatepress child theme.
Author:         Exquisite Cape Upholstery
Author URI:
Template:       generatepress
Version:        0.3.0
*/

@font-face{
  font-family:'Inter';
  src:url('fonts/inter-variable.woff2') format('woff2');
  font-weight:400 700;
  font-style:normal;
  font-display:swap;
}

:root{
  --color-bg: #F7F5F1;
  --color-surface: #FFFFFF;
  --color-ink: #1B2430;
  --color-ink-soft: #5C6670;
  --color-navy: #0E3A4C;
  --color-navy-dark: #092631;
  --color-grey: #86807A;
  --color-line: #E7E3DA;
  --radius-s: 6px;
  --radius-m: 16px;
  --radius-l: 24px;
  --shadow-soft: 0 10px 34px rgba(16,22,29,0.14);
  --shadow-card: 0 4px 18px rgba(16,22,29,0.08);
  --maxw: 1180px;
}

body, .entry-content{
  font-family:'Inter', system-ui, -apple-system, sans-serif;
  color:var(--color-ink);
  background:var(--color-bg);
}
h1,h2,h3,.wp-block-heading{ font-weight:700; letter-spacing:-0.03em; line-height:1.08; }

.gp-wrap{ max-width:var(--maxw); margin:0 auto; padding:0 24px; }

.gp-eyebrow{
  font-size:13px; font-weight:600; letter-spacing:0.08em; text-transform:uppercase;
  color:var(--color-navy); margin-bottom:10px; display:block;
}
.gp-lead{ margin-top:20px; font-size:18px; color:var(--color-ink-soft); max-width:46ch; }
.gp-section-head{ max-width:640px; margin-bottom:48px; }

/* ============================================================
   HERO — white panel, headline left, photo right with a
   floating navy tag chip.
   ============================================================ */
.gp-hero{
  background:var(--color-bg); color:var(--color-ink); border-bottom:1px solid var(--color-line);
}
.gp-hero .gp-eyebrow{ color:var(--color-navy); }
.gp-hero h1{ color:var(--color-ink); }
.gp-hero .gp-lead{ color:var(--color-ink-soft); }
.gp-hero .wp-block-column:last-child{ position:relative; }
.gp-hero .wp-block-column:last-child img{
  aspect-ratio:4/5; width:100%; height:auto; object-fit:cover;
  border-radius:var(--radius-l);
}
.gp-tag-chip{
  position:absolute; left:20px; bottom:20px;
  background:var(--color-navy); color:#fff; padding:12px 18px; border-radius:var(--radius-m);
  font-size:13px; font-weight:700; box-shadow:var(--shadow-soft); max-width:220px; line-height:1.3;
  display:block; text-decoration:none;
}
.gp-tag-chip span{ display:block; font-weight:500; opacity:.85; font-size:12px; margin-top:2px; }

.gp-hero .is-style-gp-primary .wp-block-button__link{ background:var(--color-navy); color:#fff !important; }
.gp-hero .is-style-gp-primary .wp-block-button__link:hover{ background:var(--color-navy-dark); }

/* stitched seam divider */
.gp-seam{
  border:0; height:14px; width:100%; margin:0;
  background-image:repeating-linear-gradient(90deg, var(--color-line) 0 10px, transparent 10px 20px);
  background-position:center; background-repeat:no-repeat; background-size:100% 1px;
}

/* ============================================================
   BUTTONS
   ============================================================ */
.is-style-gp-primary .wp-block-button__link, .gp-btn-primary{
  background:var(--color-navy); color:#fff !important; border-radius:100px; font-weight:700;
  padding:14px 28px; border:none;
}
.is-style-gp-primary .wp-block-button__link:hover{ background:var(--color-navy-dark); }
.is-style-gp-whatsapp .wp-block-button__link{
  background:#25D366 !important; color:#fff !important; border:none !important; border-radius:100px; font-weight:600; padding:14px 28px;
  display:inline-flex; align-items:center; gap:8px;
}
.is-style-gp-whatsapp .wp-block-button__link:hover{ background:#1EBE5A !important; }
.is-style-gp-whatsapp .wp-block-button__link::before{
  content:""; width:18px; height:18px; display:inline-block; flex:none;
  background-color:#fff;
  -webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32'%3E%3Cpath d='M16.001 3.2C8.928 3.2 3.2 8.928 3.2 16c0 2.49.71 4.813 1.94 6.784L3.2 28.8l6.2-1.895A12.74 12.74 0 0 0 16.001 28.8C23.073 28.8 28.8 23.073 28.8 16S23.073 3.2 16.001 3.2zm0 23.273c-2.15 0-4.16-.63-5.85-1.716l-.42-.257-3.68 1.125 1.15-3.585-.274-.44a10.36 10.36 0 0 1-1.634-5.6c0-5.744 4.674-10.418 10.418-10.418 5.744 0 10.418 4.674 10.418 10.418 0 5.744-4.674 10.473-10.418 10.473zm5.71-7.79c-.31-.156-1.84-.907-2.125-1.01-.286-.104-.494-.156-.702.156s-.806 1.01-.988 1.218c-.182.208-.364.234-.674.078-.31-.156-1.31-.483-2.495-1.539-.922-.822-1.545-1.838-1.727-2.148-.182-.312-.02-.48.137-.635.14-.14.312-.364.468-.546.156-.182.208-.312.312-.52.104-.208.052-.39-.026-.546-.078-.156-.702-1.69-.962-2.315-.253-.61-.512-.527-.702-.537-.182-.008-.39-.01-.598-.01s-.546.078-.832.39c-.286.312-1.09 1.065-1.09 2.598 0 1.533 1.116 3.014 1.272 3.223.156.208 2.196 3.353 5.32 4.702.744.321 1.325.513 1.778.657.747.238 1.427.204 1.964.124.599-.09 1.84-.752 2.1-1.478.26-.727.26-1.35.182-1.478-.078-.13-.286-.208-.598-.364z'/%3E%3C/svg%3E");
  mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32'%3E%3Cpath d='M16.001 3.2C8.928 3.2 3.2 8.928 3.2 16c0 2.49.71 4.813 1.94 6.784L3.2 28.8l6.2-1.895A12.74 12.74 0 0 0 16.001 28.8C23.073 28.8 28.8 23.073 28.8 16S23.073 3.2 16.001 3.2zm0 23.273c-2.15 0-4.16-.63-5.85-1.716l-.42-.257-3.68 1.125 1.15-3.585-.274-.44a10.36 10.36 0 0 1-1.634-5.6c0-5.744 4.674-10.418 10.418-10.418 5.744 0 10.418 4.674 10.418 10.418 0 5.744-4.674 10.473-10.418 10.473zm5.71-7.79c-.31-.156-1.84-.907-2.125-1.01-.286-.104-.494-.156-.702.156s-.806 1.01-.988 1.218c-.182.208-.364.234-.674.078-.31-.156-1.31-.483-2.495-1.539-.922-.822-1.545-1.838-1.727-2.148-.182-.312-.02-.48.137-.635.14-.14.312-.364.468-.546.156-.182.208-.312.312-.52.104-.208.052-.39-.026-.546-.078-.156-.702-1.69-.962-2.315-.253-.61-.512-.527-.702-.537-.182-.008-.39-.01-.598-.01s-.546.078-.832.39c-.286.312-1.09 1.065-1.09 2.598 0 1.533 1.116 3.014 1.272 3.223.156.208 2.196 3.353 5.32 4.702.744.321 1.325.513 1.778.657.747.238 1.427.204 1.964.124.599-.09 1.84-.752 2.1-1.478.26-.727.26-1.35.182-1.478-.078-.13-.286-.208-.598-.364z'/%3E%3C/svg%3E");
  -webkit-mask-size:contain; mask-size:contain; -webkit-mask-repeat:no-repeat; mask-repeat:no-repeat;
}

/* WhatsApp links outside of buttons (e.g. Contact page "Chat with us instantly") get the same green + icon treatment */
a[href*="wa.me"]:not(.wp-block-button__link){
  color:#25D366 !important; font-weight:600; display:inline-flex; align-items:center; gap:6px;
}
a[href*="wa.me"]:not(.wp-block-button__link)::before{
  content:""; width:16px; height:16px; display:inline-block; flex:none;
  background-color:#25D366;
  -webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32'%3E%3Cpath d='M16.001 3.2C8.928 3.2 3.2 8.928 3.2 16c0 2.49.71 4.813 1.94 6.784L3.2 28.8l6.2-1.895A12.74 12.74 0 0 0 16.001 28.8C23.073 28.8 28.8 23.073 28.8 16S23.073 3.2 16.001 3.2zm0 23.273c-2.15 0-4.16-.63-5.85-1.716l-.42-.257-3.68 1.125 1.15-3.585-.274-.44a10.36 10.36 0 0 1-1.634-5.6c0-5.744 4.674-10.418 10.418-10.418 5.744 0 10.418 4.674 10.418 10.418 0 5.744-4.674 10.473-10.418 10.473zm5.71-7.79c-.31-.156-1.84-.907-2.125-1.01-.286-.104-.494-.156-.702.156s-.806 1.01-.988 1.218c-.182.208-.364.234-.674.078-.31-.156-1.31-.483-2.495-1.539-.922-.822-1.545-1.838-1.727-2.148-.182-.312-.02-.48.137-.635.14-.14.312-.364.468-.546.156-.182.208-.312.312-.52.104-.208.052-.39-.026-.546-.078-.156-.702-1.69-.962-2.315-.253-.61-.512-.527-.702-.537-.182-.008-.39-.01-.598-.01s-.546.078-.832.39c-.286.312-1.09 1.065-1.09 2.598 0 1.533 1.116 3.014 1.272 3.223.156.208 2.196 3.353 5.32 4.702.744.321 1.325.513 1.778.657.747.238 1.427.204 1.964.124.599-.09 1.84-.752 2.1-1.478.26-.727.26-1.35.182-1.478-.078-.13-.286-.208-.598-.364z'/%3E%3C/svg%3E");
  mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32'%3E%3Cpath d='M16.001 3.2C8.928 3.2 3.2 8.928 3.2 16c0 2.49.71 4.813 1.94 6.784L3.2 28.8l6.2-1.895A12.74 12.74 0 0 0 16.001 28.8C23.073 28.8 28.8 23.073 28.8 16S23.073 3.2 16.001 3.2zm0 23.273c-2.15 0-4.16-.63-5.85-1.716l-.42-.257-3.68 1.125 1.15-3.585-.274-.44a10.36 10.36 0 0 1-1.634-5.6c0-5.744 4.674-10.418 10.418-10.418 5.744 0 10.418 4.674 10.418 10.418 0 5.744-4.674 10.473-10.418 10.473zm5.71-7.79c-.31-.156-1.84-.907-2.125-1.01-.286-.104-.494-.156-.702.156s-.806 1.01-.988 1.218c-.182.208-.364.234-.674.078-.31-.156-1.31-.483-2.495-1.539-.922-.822-1.545-1.838-1.727-2.148-.182-.312-.02-.48.137-.635.14-.14.312-.364.468-.546.156-.182.208-.312.312-.52.104-.208.052-.39-.026-.546-.078-.156-.702-1.69-.962-2.315-.253-.61-.512-.527-.702-.537-.182-.008-.39-.01-.598-.01s-.546.078-.832.39c-.286.312-1.09 1.065-1.09 2.598 0 1.533 1.116 3.014 1.272 3.223.156.208 2.196 3.353 5.32 4.702.744.321 1.325.513 1.778.657.747.238 1.427.204 1.964.124.599-.09 1.84-.752 2.1-1.478.26-.727.26-1.35.182-1.478-.078-.13-.286-.208-.598-.364z'/%3E%3C/svg%3E");
  -webkit-mask-size:contain; mask-size:contain; -webkit-mask-repeat:no-repeat; mask-repeat:no-repeat;
}
.gp-btn{ display:inline-flex; align-items:center; justify-content:center; gap:8px; border-radius:100px; font-weight:600; font-size:14px; padding:11px 18px; cursor:pointer; border:none; font-family:inherit; text-decoration:none; }
.gp-btn-block{ width:100%; }
.wp-block-button__link{ transition:transform .15s ease, box-shadow .15s ease, background .15s ease; }
.wp-block-button__link:hover{ transform:translateY(-1px); }

/* ============================================================
   FEATURE STRIP
   ============================================================ */
.gp-features{ background:var(--color-surface); border-bottom:1px solid var(--color-line); }
.gp-features .wp-block-columns{ gap:32px; }
.gp-feature-icon{
  width:52px; height:52px; border-radius:14px; background:var(--color-bg); border:1px solid var(--color-line);
  display:flex; align-items:center; justify-content:center; margin-bottom:14px; color:var(--color-navy);
}
.gp-feature-icon svg{ width:24px; height:24px; }

/* ============================================================
   PROMO SPLIT
   ============================================================ */
.gp-promo-columns{ gap:24px; }
.gp-promo-panel{ border-radius:var(--radius-l); overflow:hidden; position:relative; min-height:340px; }
.gp-promo-panel.is-photo-split{ display:grid; grid-template-columns:1fr 1fr; background:var(--color-navy); }
.gp-promo-panel.is-photo-split img{ width:100%; height:100%; object-fit:cover; }
.gp-promo-panel.is-card{ background:var(--color-surface); border:1px solid var(--color-line); padding:32px; display:flex; flex-direction:column; }
.gp-promo-panel.is-card img{ margin-top:auto; width:100%; max-width:280px; align-self:center; }
.gp-promo-text{ padding:28px; align-self:center; }
.gp-promo-text .gp-eyebrow{ color:var(--color-navy); }
.gp-promo-text h3{ font-size:22px; margin-top:6px; }
.gp-promo-panel.is-photo-split .gp-promo-text h3,
.gp-promo-panel.is-photo-split .gp-promo-text .gp-eyebrow{ color:#fff; }

/* ============================================================
   PRODUCT GRID / CARDS
   ============================================================ */
.gp-product-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:24px; }
.gp-product-grid > .wp-block-group__inner-container{ display:contents; }

.gp-card{ background:var(--color-surface); border:1px solid var(--color-line); border-radius:var(--radius-m); overflow:hidden; box-shadow:var(--shadow-card); transition:transform .15s ease, box-shadow .15s ease; }
.gp-card:hover{ transform:translateY(-2px); box-shadow:var(--shadow-soft); }
.gp-card > .wp-block-group__inner-container{ display:flex; flex-direction:column; height:100%; }
.gp-card img{ width:100%; aspect-ratio:4/3; object-fit:cover; }

.gp-card-body > .wp-block-group__inner-container{
  padding:20px; display:flex; align-items:center; justify-content:space-between; gap:12px; flex:1;
}
.gp-card-body h3{ font-size:17px; margin:0 0 4px; color:var(--color-ink); }
.gp-card-body p{ color:var(--color-ink-soft); font-size:14px; margin:0; }
.gp-card-text{ flex:1; min-width:0; }

.gp-card .wp-block-buttons{ flex:none; }
.gp-card .is-style-gp-primary .wp-block-button__link{
  width:44px; height:44px; padding:0; border-radius:50%;
  display:flex; align-items:center; justify-content:center; font-size:0;
  background:var(--color-navy);
}
.gp-card .is-style-gp-primary .wp-block-button__link::after{
  content:""; width:16px; height:16px; display:block;
  background-color:#fff;
  -webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.5'%3E%3Cpath d='M7 17L17 7M17 7H8M17 7v9'/%3E%3C/svg%3E");
  mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.5'%3E%3Cpath d='M7 17L17 7M17 7H8M17 7v9'/%3E%3C/svg%3E");
  -webkit-mask-size:contain; mask-size:contain; -webkit-mask-repeat:no-repeat; mask-repeat:no-repeat;
}

.gp-num{ font-size:14px; font-weight:700; color:var(--color-navy); letter-spacing:0.05em; margin:0 0 10px; }

/* ============================================================
   BIG SPLIT BANNER
   ============================================================ */
.gp-banner{ display:grid; grid-template-columns:1fr 1fr; border-radius:var(--radius-l); overflow:hidden; }
.gp-banner img{ width:100%; height:100%; object-fit:cover; }
.gp-banner-copy{ background:var(--color-navy); padding:56px; display:flex; flex-direction:column; justify-content:center; }
.gp-banner-copy h2{ color:#fff; }
.gp-banner-copy p{ color:rgba(255,255,255,0.78); margin-top:14px; font-size:16px; }
.gp-banner-copy .wp-block-buttons{ margin-top:20px; }
.gp-banner-copy .is-style-gp-primary .wp-block-button__link{ background:#fff; color:var(--color-navy) !important; }
.gp-banner-copy .is-style-gp-primary .wp-block-button__link:hover{ background:var(--color-bg); }

/* ============================================================
   TESTIMONIALS
   ============================================================ */
.gp-review{ background:var(--color-surface); border:1px solid var(--color-line); border-radius:var(--radius-m); padding:24px; }
.gp-review-head{ display:flex; align-items:center; gap:12px; margin-bottom:12px; }
.gp-avatar{
  width:44px; height:44px; border-radius:50%; background:var(--color-navy); color:#fff;
  display:flex; align-items:center; justify-content:center; font-weight:700; font-size:15px; flex:none;
}
.gp-stars{ color:var(--color-navy); font-size:14px; margin:0 0 10px; }
.gp-review-who{ margin-top:14px; font-weight:600; font-size:14px; }

/* ============================================================
   CTA BAND (pre-footer)
   ============================================================ */
.gp-cta-band{ background:var(--color-navy-dark); color:#fff; padding:64px 0; }
.gp-cta-band h2{ color:#fff; }
.gp-cta-band .is-style-gp-primary .wp-block-button__link{ background:#fff; color:var(--color-navy) !important; }
.gp-cta-band .is-style-gp-primary .wp-block-button__link:hover{ background:var(--color-bg); }

/* ============================================================
   CONTACT PAGE
   ============================================================ */
.gp-contact-card{ background:var(--color-surface); border:1px solid var(--color-line); border-radius:var(--radius-m); padding:32px; }
.gp-contact-line{ margin-bottom:20px; }
.gp-contact-line strong{ display:block; font-size:15px; }
.gp-contact-line span{ color:var(--color-ink-soft); font-size:14.5px; }
.gp-contact-line a{ color:var(--color-navy); }

.gp-enq{ display:flex; flex-direction:column; gap:14px; }
.gp-field label{ display:block; font-size:13px; font-weight:600; margin-bottom:6px; color:var(--color-ink-soft); }
.gp-field input, .gp-field select, .gp-field textarea{
  width:100%; padding:12px 14px; border-radius:var(--radius-s); border:1px solid var(--color-line);
  font-family:inherit; font-size:15px; background:#fff;
}
.gp-field textarea{ resize:vertical; min-height:90px; }

/* ============================================================
   HEADER — NOT sticky, logo capped, inline with nav, tight to content
   ============================================================ */
#masthead{
  position:static;
  background:var(--color-bg);
  border-bottom:1px solid var(--color-line);
}
.inside-header.grid-container{
  display:flex; flex-wrap:nowrap; align-items:center; justify-content:space-between; gap:24px;
  padding-top:10px; padding-bottom:10px;
}
.site-branding-container{ display:flex; align-items:center; gap:14px; flex:none; }
.site-logo{ flex:none; }
.site-logo img.header-image{ height:44px; width:auto; max-width:200px; object-fit:contain; }
.main-navigation#site-navigation{ flex:none; }
.site-branding{ display:none; }
@media (max-width:768px){
  .inside-header.grid-container{ flex-wrap:wrap; }
  .site-logo img.header-image{ height:38px; }
}

/* Home page: header removed entirely (conversion decision, not just hidden
   via display:none leftover space — the hero sits flush at the very top). */
body.ecu-no-header #masthead{ display:none; }
body.ecu-no-header .entry-content > .wp-block-group.alignfull.gp-hero{ padding-top:16px; }
.entry-content > .wp-block-group.alignfull{ padding-top:96px; padding-bottom:96px; }
.entry-content > .wp-block-group.alignfull.gp-hero{ padding-top:32px; padding-bottom:56px; }
.entry-content > .wp-block-group.alignfull.gp-features{ padding-top:40px; padding-bottom:40px; }
.entry-content > .wp-block-group.alignfull.gp-cta-band{ padding-top:64px; padding-bottom:64px; }
/* tighten the gap between the promo panels and the product grid — was two full 96px sections plus a seam */
.entry-content > .wp-block-group.alignfull.gp-promo-section{ padding-bottom:32px; }
.entry-content > .wp-block-group.alignfull.gp-products-section{ padding-top:32px; }
/* keep the CTA heading centered at every width, including mobile */
.gp-cta-band .wp-block-heading{ text-align:center; }
.site-content .inside-article, .entry-content{ max-width:none; }
/* close the gap between the header and the hero — GP's default article
   header/margin still adds space above the first block */
.inside-article > .entry-content > .wp-block-group:first-child{ margin-top:0; }
.site-content, #primary, #main, article.type-page, .inside-article{ margin-top:0 !important; padding-top:0 !important; }

/* ============================================================
   FOOTER
   ============================================================ */
.site-footer{ background:var(--color-navy-dark); color:#D9DEE3; padding:64px 0 24px; }
.ecu-foot-grid{ display:grid; grid-template-columns:1.3fr 1fr 1fr 1fr; gap:32px; margin-bottom:40px; }
.ecu-foot-brand{ font-weight:700; font-size:19px; letter-spacing:-0.02em; color:#fff; margin:0 0 10px; }
.ecu-foot-desc{ opacity:.7; font-size:14.5px; max-width:32ch; color:#D9DEE3; margin:0; }
.ecu-foot-grid h4{ font-size:13px; text-transform:uppercase; letter-spacing:.08em; margin:0 0 14px; color:var(--color-grey); }
.ecu-foot-links{ display:flex; flex-direction:column; gap:8px; list-style:none; margin:0; padding:0; }
.ecu-foot-links li{ list-style:none; margin:0; padding:0; }
.ecu-foot-links a{ color:#D9DEE3; text-decoration:none; opacity:.85; font-size:14.5px; }
.ecu-foot-links a:hover{ opacity:1; text-decoration:underline; }
.ecu-foot-bottom{ border-top:1px solid rgba(255,255,255,.12); padding-top:24px; font-size:13px; opacity:.6; display:flex; justify-content:space-between; flex-wrap:wrap; gap:10px; }

@media (max-width:880px){
  .gp-product-grid{ grid-template-columns:repeat(2,1fr); }
  .gp-promo-columns{ grid-template-columns:1fr !important; }
  .gp-banner{ grid-template-columns:1fr; }
  .ecu-foot-grid{ grid-template-columns:1fr 1fr; gap:24px; }
}
@media (max-width:600px){
  .gp-product-grid{ grid-template-columns:1fr; }
  .ecu-foot-grid{ grid-template-columns:1fr; }
  .gp-promo-panel.is-photo-split{ grid-template-columns:1fr; }
}
