:root{--purple:#091A46;--purple-2:#091A46;--blue:#091A46;--gold:#D9A15F;--cream:#F7F8FB;--ink:#17213B;--muted:#667085;--line:#D9DFEA;--white:#fff;--shadow:0 18px 50px rgba(9,26,70,.12)}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:"DM Sans",sans-serif;color:var(--ink);background:#fff;line-height:1.65}img{max-width:100%;display:block}a{color:inherit}.container{width:min(1140px,calc(100% - 40px));margin:auto}.narrow{width:min(820px,calc(100% - 40px))}.skip-link{position:absolute;left:-9999px}.skip-link:focus{left:16px;top:16px;background:#fff;padding:10px;z-index:999}.site-header{position:sticky;top:0;z-index:50;background:rgba(255,255,255,.94);backdrop-filter:blur(12px);border-bottom:1px solid rgba(9,26,70,.08)}.nav-wrap{display:flex;align-items:center;justify-content:space-between;min-height:82px}.brand img{width:128px;height:72px;object-fit:contain;object-position:center;border-radius:10px}.site-nav{display:flex;align-items:center;gap:28px}.site-nav a{text-decoration:none;font-weight:600;font-size:.95rem}.menu-toggle{display:none;border:1px solid var(--line);background:#fff;border-radius:999px;padding:9px 14px}.button{display:inline-flex;align-items:center;justify-content:center;border:0;border-radius:999px;background:linear-gradient(135deg,var(--purple),var(--blue));color:#fff;text-decoration:none;font-weight:700;padding:14px 22px;cursor:pointer;box-shadow:0 10px 26px rgba(9,26,70,.2)}.button-small{padding:10px 16px}.button-light{background:#fff;color:var(--purple);box-shadow:none}.button-full{width:100%}.hero{padding:76px 0 66px;background:radial-gradient(circle at 80% 20%,#e9eef7 0,transparent 38%),linear-gradient(180deg,#fff,#f8fafc)}.hero-grid,.split,.quote-grid,.price-wrap,.footer-grid{display:grid;gap:48px}.hero-grid{grid-template-columns:1.06fr .94fr;align-items:center}.eyebrow{text-transform:uppercase;letter-spacing:.16em;font-weight:800;font-size:.78rem;color:var(--purple-2);margin:0 0 12px}.eyebrow.light{color:#e5d9f3}h1,h2,h3{font-family:"Playfair Display",serif;line-height:1.12;margin-top:0}h1{font-size:clamp(2.7rem,6vw,5.7rem);letter-spacing:-.045em;margin-bottom:22px}h2{font-size:clamp(2rem,4vw,3.65rem);letter-spacing:-.035em;margin-bottom:22px}h3{font-size:1.45rem}.lead,.section-intro{font-size:1.14rem;color:var(--muted);max-width:690px}.hero-actions{display:flex;align-items:center;gap:20px;margin:28px 0}.text-link{font-weight:800;color:var(--purple)}.trust-row{display:flex;flex-wrap:wrap;gap:12px}.trust-row span{background:#fff;border:1px solid var(--line);padding:8px 12px;border-radius:999px;font-size:.88rem}.hero-card{background:#fff;border-radius:36px;padding:26px;box-shadow:var(--shadow);transform:rotate(1deg)}.hero-card img{border-radius:24px}.section{padding:92px 0}.soft{background:var(--cream)}.purple,.pricing-section{background:#091A46;color:#fff}.card-grid{display:grid;gap:24px}.card-grid.three{grid-template-columns:repeat(3,1fr)}.service-card{background:#fff;padding:30px;border-radius:26px;border:1px solid var(--line);box-shadow:0 10px 30px rgba(9,26,70,.06)}.service-card.featured{border-color:#9ba9c1;transform:translateY(-8px)}.service-number{font-weight:800;color:var(--gold);font-size:.85rem}.service-note{color:var(--muted);font-size:.93rem}.split{grid-template-columns:.85fr 1.15fr;align-items:start}.check-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.check-grid div{padding:20px;border:1px solid var(--line);border-radius:18px;background:#fff}.check-grid strong,.check-grid span{display:block}.check-grid span{color:var(--muted);font-size:.92rem;margin-top:6px}.price-wrap{grid-template-columns:1.35fr .65fr;align-items:stretch}.price-table-card,.price-callout{border-radius:26px;padding:28px}.price-table-card{background:#fff;color:var(--ink)}.price-callout{background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.22)}table{width:100%;border-collapse:collapse}th,td{text-align:left;padding:14px 12px;border-bottom:1px solid var(--line);white-space:nowrap}th{font-size:.8rem;text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}.table-scroll{overflow-x:auto}.pill-grid{display:flex;flex-wrap:wrap;gap:12px}.pill-grid span{border:1px solid var(--line);background:#fff;border-radius:999px;padding:10px 14px}.fine-print{font-size:.88rem;color:var(--muted);margin-top:22px}.about-grid{grid-template-columns:1fr .85fr}.why-card{background:#fff;padding:30px;border-radius:26px;box-shadow:var(--shadow)}.why-card li{margin:12px 0}blockquote{font-family:"Playfair Display",serif;font-size:1.5rem;color:var(--purple);margin:28px 0 0;border-left:4px solid var(--gold);padding-left:20px}.quote-grid{grid-template-columns:.9fr 1.1fr}.estimate-form,.contact-form{display:grid;grid-template-columns:1fr 1fr;gap:14px}.estimate-form label,.contact-form label{display:grid;gap:6px;font-weight:700;font-size:.9rem}.estimate-form .checkbox{display:flex;align-items:center;gap:8px}.estimate-form button,.contact-form .button-full,.contact-form textarea,.contact-form label:last-of-type{grid-column:1/-1}input,select,textarea{width:100%;border:1px solid #d8cfe0;border-radius:12px;padding:12px 13px;font:inherit;background:#fff}.estimate-result{background:linear-gradient(180deg,#fff,#f8fafc);border:1px solid var(--line);border-radius:28px;padding:30px;box-shadow:var(--shadow)}.result-label{display:block;color:var(--muted);font-size:.86rem;text-transform:uppercase;letter-spacing:.1em}.estimate-result>strong{display:block;font-family:"Playfair Display",serif;font-size:3rem;color:var(--purple);margin:4px 0}.estimate-result hr{border:0;border-top:1px solid var(--line);margin:28px 0}.hidden{display:none}details{background:#fff;border:1px solid var(--line);border-radius:16px;padding:18px 20px;margin:12px 0}summary{font-weight:800;cursor:pointer}.site-footer{background:#091A46;color:#ffffff;padding:52px 0 24px}.footer-grid{grid-template-columns:repeat(3,1fr)}.footer-grid p{color:#d8deea}.footer-bottom{border-top:1px solid rgba(255,255,255,.12);padding-top:20px;margin-top:24px;color:#c7cfdd;font-size:.88rem}
@media(max-width:860px){.site-nav{position:absolute;top:82px;left:0;right:0;background:#fff;padding:20px;display:none;flex-direction:column;align-items:flex-start;border-bottom:1px solid var(--line)}.site-nav.open{display:flex}.menu-toggle{display:block}.hero-grid,.split,.quote-grid,.price-wrap,.about-grid{grid-template-columns:1fr}.card-grid.three{grid-template-columns:1fr}.service-card.featured{transform:none}.check-grid{grid-template-columns:1fr}.hero{padding-top:42px}.hero-card{max-width:560px}.footer-grid{grid-template-columns:1fr}.section{padding:68px 0}}
@media(max-width:560px){.container,.narrow{width:min(100% - 24px,1140px)}.estimate-form,.contact-form{grid-template-columns:1fr}.estimate-form button,.contact-form .button-full,.contact-form textarea,.contact-form label:last-of-type{grid-column:auto}.hero-actions{align-items:flex-start;flex-direction:column}.trust-row{display:grid}.section{padding:56px 0}h1{font-size:2.65rem}.price-table-card,.price-callout,.estimate-result{padding:20px}}

/* Detailed service comparison */
.section-heading-row{display:flex;justify-content:space-between;gap:36px;align-items:end;margin-bottom:34px}.section-heading-row>div{max-width:760px}.service-tabs{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;background:#eef2f8;border:1px solid var(--line);padding:8px;border-radius:22px;margin-bottom:28px}.service-tab{border:0;background:transparent;color:var(--purple);font:inherit;font-weight:800;padding:15px 18px;border-radius:16px;cursor:pointer;transition:.2s ease}.service-tab:hover{background:rgba(255,255,255,.75)}.service-tab.active{background:#fff;color:var(--blue);box-shadow:0 8px 24px rgba(9,26,70,.1)}.service-panel{animation:panel-in .25s ease}.service-panel[hidden]{display:none}.tier-header{display:flex;justify-content:space-between;gap:30px;align-items:flex-start;padding:30px;border:1px solid var(--line);border-radius:26px;background:linear-gradient(145deg,#fff,#f8fafc);margin-bottom:20px}.tier-header h3{font-size:2rem;margin:5px 0 10px}.tier-header p{margin:0;color:var(--muted);max-width:760px}.tier-kicker{font-size:.77rem;text-transform:uppercase;letter-spacing:.14em;font-weight:800;color:var(--gold)}.tier-badge{white-space:nowrap;background:linear-gradient(135deg,var(--purple),var(--blue));color:#fff;border-radius:999px;padding:10px 15px;font-weight:800;font-size:.84rem}.included-banner{padding:14px 18px;border-left:4px solid var(--gold);background:#fbf7ef;border-radius:0 14px 14px 0;margin:0 0 20px;color:#4b3c2d}.room-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:18px}.room-card{border:1px solid var(--line);border-radius:22px;padding:24px;background:#fff;box-shadow:0 8px 26px rgba(9,26,70,.05)}.room-card h4{font-family:"Playfair Display",serif;font-size:1.35rem;color:var(--purple);margin:0 0 14px}.detail-list{list-style:none;padding:0;margin:0;display:grid;gap:9px}.detail-list li{position:relative;padding-left:25px;color:#514b59}.detail-list li:before{content:"✓";position:absolute;left:0;top:0;color:var(--purple-2);font-weight:900}.tier-note{margin-top:20px;padding:19px 22px;border-radius:18px;background:#f5f7fa;color:#544d5b;border:1px solid var(--line)}.service-addons-strip{margin-top:38px;padding:28px;border-radius:26px;background:linear-gradient(135deg,#091A46,#091A46);color:#fff;display:grid;grid-template-columns:.45fr 1.55fr;gap:28px;align-items:center}.service-addons-strip h3{margin:0}.service-addons-strip .eyebrow{color:#dfe6f2}.mini-pills{display:flex;gap:9px;flex-wrap:wrap}.mini-pills span{background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.25);border-radius:999px;padding:8px 12px;font-size:.86rem}@keyframes panel-in{from{opacity:.3;transform:translateY(5px)}to{opacity:1;transform:none}}
@media(max-width:860px){.section-heading-row{align-items:flex-start;flex-direction:column}.service-tabs{grid-template-columns:1fr}.tier-header{flex-direction:column}.tier-badge{white-space:normal}.room-grid{grid-template-columns:1fr}.service-addons-strip{grid-template-columns:1fr}}
.service-detail-link{display:inline-block;margin-top:8px;color:var(--purple);font-weight:800;text-decoration:none}.service-detail-link:hover{text-decoration:underline}

.agreement-section { background: #fff; }
.agreement-card { margin-top: 2rem; border: 1px solid rgba(9,26,70,.15); border-radius: 22px; overflow: hidden; box-shadow: 0 18px 50px rgba(9,26,70,.08); }
.agreement-card details { background: #fff; border-bottom: 1px solid rgba(9,26,70,.12); }
.agreement-card details:last-child { border-bottom: 0; }
.agreement-card summary { cursor: pointer; list-style: none; padding: 1.15rem 1.35rem; font-weight: 700; color: #091A46; position: relative; padding-right: 3rem; }
.agreement-card summary::-webkit-details-marker { display: none; }
.agreement-card summary::after { content: "+"; position: absolute; right: 1.35rem; top: 50%; transform: translateY(-50%); font-size: 1.4rem; color: #091A46; }
.agreement-card details[open] summary::after { content: "–"; }
.agreement-copy { padding: 0 1.35rem 1.2rem; color: #4d596f; }
.agreement-copy p { margin: .35rem 0 .75rem; }

.card-grid.two{grid-template-columns:repeat(2,1fr);max-width:820px;margin:0 auto}.service-tabs{grid-template-columns:repeat(2,1fr)}

/* Updated Tidy Charm pricing */
.pricing-section{background:#091A46;color:#fff}
.pricing-section h2,.pricing-section h3{color:#fff}.pricing-disclaimer{max-width:780px;color:#e1e6ef;margin-top:-8px;margin-bottom:30px}
.pricing-layout{display:grid;grid-template-columns:1.35fr .65fr;gap:28px;align-items:stretch}
.pricing-sheet-card{background:#fff;color:var(--ink);border-radius:26px;padding:28px;box-shadow:0 18px 50px rgba(0,0,0,.16)}
.pricing-table-title,.pricing-row{display:grid;grid-template-columns:1fr 1fr;align-items:center}.pricing-table-title{background:#091A46;color:#D9A15F;text-transform:uppercase;letter-spacing:.1em;font-weight:800;border-radius:10px 10px 0 0;overflow:hidden}.pricing-table-title span{padding:14px 18px}.pricing-table-title span+span{border-left:1px solid rgba(217,161,95,.55)}
.pricing-row{border:1px solid rgba(217,161,95,.55);border-top:0}.pricing-row>span,.pricing-row>strong{padding:14px 18px}.pricing-row>span{text-transform:uppercase;font-weight:700;color:#27324c}.pricing-row>strong{font-family:"Playfair Display",serif;font-size:1.7rem;color:#091A46;border-left:1px solid rgba(217,161,95,.55)}.pricing-row small{font-family:"DM Sans",sans-serif;font-size:.65rem;text-transform:uppercase;letter-spacing:.08em;margin-left:5px;color:#6b7280}.pricing-card-note{text-align:center;font-style:italic;color:#667085;font-size:.9rem;margin:16px auto 20px;max-width:560px}.discount-title{text-align:center;text-transform:uppercase;letter-spacing:.08em;font-family:"Playfair Display",serif;font-weight:700;color:#091A46;margin:6px 0 14px}.discount-grid{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:#D9A15F}.discount-grid>div{background:#fff;padding:18px;text-align:center;display:grid;gap:2px}.discount-grid strong{font-family:"Playfair Display",serif;font-size:1.75rem;color:#D09A55}.discount-grid span{text-transform:uppercase;font-weight:800;color:#091A46}.discount-grid small{color:#667085}.discount-note{text-align:center;color:#667085;font-size:.85rem;margin:14px 0 0}.price-callout{background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.2)}.deep-pricing-block{margin-top:34px;border-top:1px solid rgba(255,255,255,.18);padding-top:34px;display:grid;grid-template-columns:.55fr 1.45fr;gap:32px;align-items:start}.deep-pricing-block p{color:#dce3ef}.deep-price-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.deep-price-grid>div{background:#fff;color:#091A46;border-radius:18px;padding:20px;text-align:center;display:grid;gap:6px}.deep-price-grid strong{font-family:"Playfair Display",serif;font-size:1.8rem}.deep-price-grid span{font-weight:800}.deep-price-grid small{text-transform:uppercase;letter-spacing:.08em;color:#667085}.estimate-disclaimer{font-weight:800;color:#091A46;background:#eef2f8;border-radius:12px;padding:10px 12px;margin:0 0 14px}
@media(max-width:860px){.card-grid.two,.pricing-layout,.deep-pricing-block{grid-template-columns:1fr}.deep-price-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:560px){.deep-price-grid{grid-template-columns:1fr}.pricing-table-title,.pricing-row{grid-template-columns:.9fr 1.1fr}.pricing-row>span,.pricing-row>strong{padding:12px 10px}}

/* Logo sizing refinement — 2026-08-16 */
.nav-wrap{min-height:104px}
.brand{display:flex;align-items:center;align-self:stretch}
.brand img{width:190px;height:100px;object-fit:contain;object-position:left center;border-radius:0}
.hero-grid{grid-template-columns:1fr 1fr;gap:34px}
.hero-card{padding:10px;border-radius:32px;width:100%}
.hero-card img{width:100%;height:auto;border-radius:24px}
@media(max-width:860px){
  .nav-wrap{min-height:88px}
  .brand img{width:150px;height:84px}
  .site-nav{top:88px}
  .hero-card{max-width:none;padding:8px}
}

/* Header navigation refinement — 2026-08-16 */
.site-header .container.nav-wrap{width:min(1420px,calc(100% - 48px));min-height:112px}
.nav-wrap{justify-content:flex-end}
.site-nav{flex:1;width:100%;justify-content:space-between;gap:34px}
.site-nav a:not(.button){font-size:1.12rem;font-weight:700;letter-spacing:.01em}
.site-nav .button-small{font-size:1.08rem;padding:15px 28px}
.menu-toggle{margin-left:auto}
@media(max-width:860px){
  .site-header .container.nav-wrap{width:min(100% - 28px,1140px);min-height:88px}
  .site-nav{top:88px;width:auto;justify-content:flex-start;gap:18px}
  .site-nav a:not(.button){font-size:1rem}
}

/* Exact homepage layout correction — 2026-08-16 */
.site-header{
  background:#091A46;
  border-bottom:0;
  backdrop-filter:none;
}
.site-header .container.nav-wrap{
  width:100%;
  max-width:none;
  min-height:118px;
  padding:0 clamp(34px,4.5vw,86px);
}
.site-nav{
  width:100%;
  flex:1;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:clamp(24px,3.2vw,64px);
}
.site-nav a:not(.button){
  color:#fff;
  font-family:"Playfair Display",serif;
  font-size:clamp(1.3rem,1.65vw,1.9rem);
  font-weight:600;
  letter-spacing:0;
  white-space:nowrap;
}
.site-nav .button-small{
  background:#F0B16E;
  color:#091A46;
  box-shadow:none;
  font-size:clamp(1.05rem,1.25vw,1.35rem);
  padding:18px 34px;
  white-space:nowrap;
}

.hero{
  padding:0;
  background:#fff;
  overflow:hidden;
}
.hero>.container{
  width:100%;
  max-width:none;
  margin:0;
}
.hero-grid{
  display:grid;
  grid-template-columns:minmax(0, 39%) minmax(0, 61%);
  gap:0;
  align-items:stretch;
  min-height:calc(100vh - 118px);
}
.hero-copy{
  background:#fff;
  padding:clamp(58px,7vh,96px) clamp(38px,4.2vw,82px);
  display:flex;
  flex-direction:column;
  justify-content:center;
}
.hero-copy h1{
  font-size:clamp(3.4rem,5.1vw,6.4rem);
  max-width:690px;
}
.hero-copy .lead{max-width:620px}
.hero-card{
  background:#091A46;
  border-radius:0;
  padding:0;
  box-shadow:none;
  transform:none;
  width:100%;
  min-height:100%;
  display:flex;
  align-items:center;
  justify-content:center;
  overflow:hidden;
}
.hero-card img{
  width:122%;
  max-width:none;
  height:auto;
  max-height:94%;
  object-fit:contain;
  border-radius:0;
  transform:scale(1.08);
}

@media(max-width:1100px){
  .site-header .container.nav-wrap{padding:0 28px;min-height:100px}
  .site-nav{gap:20px}
  .site-nav a:not(.button){font-size:1.15rem}
  .site-nav .button-small{font-size:1rem;padding:14px 22px}
  .hero-grid{grid-template-columns:46% 54%;min-height:calc(100vh - 100px)}
  .hero-copy{padding:52px 34px}
}

@media(max-width:860px){
  .site-header{background:#091A46}
  .site-header .container.nav-wrap{width:100%;min-height:78px;padding:0 18px}
  .menu-toggle{display:block;color:#fff;background:transparent;border-color:rgba(255,255,255,.45)}
  .site-nav{top:78px;background:#091A46;padding:22px;gap:18px}
  .site-nav a:not(.button){color:#fff;font-family:"DM Sans",sans-serif;font-size:1rem}
  .site-nav .button-small{background:#F0B16E;color:#091A46}
  .hero-grid{grid-template-columns:1fr;min-height:auto}
  .hero-copy{padding:48px 24px}
  .hero-card{min-height:520px;padding:0}
  .hero-card img{width:118%;transform:scale(1.04)}
}

/* Mobile navigation flow correction — 2026-08-17
   On phones the header should participate in normal document flow rather than
   pinning an expanded navigation menu over the viewport. */
@media(max-width:860px){
  .site-header{
    position:relative;
    top:auto;
  }
  .site-header .container.nav-wrap{
    min-height:72px;
    flex-wrap:wrap;
    align-content:center;
  }
  .menu-toggle{
    margin:14px 0 14px auto;
  }
  .site-nav{
    position:static;
    top:auto;
    left:auto;
    right:auto;
    width:100%;
    flex:0 0 100%;
    padding:8px 0 24px;
    border-bottom:0;
    align-items:center;
    text-align:center;
    gap:16px;
  }
  .site-nav a:not(.button){
    width:100%;
    padding:2px 0;
  }
  .site-nav .button-small{
    margin-top:4px;
  }
}
