/* Shared design system. Homepage composition lives in home.css. */
:root {
	--mss-ivory: #f7f4ee;
	--mss-warm-white: #fcfaf6;
	--mss-navy: #142238;
	--mss-deep-navy: #0d1828;
	--mss-gold: #b99a5b;
	--mss-gold-ink: #7b6030;
	--mss-soft-gold: #d7c49b;
	--mss-stone: #66655f;
	--mss-border: #e2dcd0;
	--mss-champagne: #eee5d5;
	--mss-width: 78rem;
	--mss-font-body: "Segoe UI", -apple-system, BlinkMacSystemFont, Arial, sans-serif;
	--mss-font-heading: "Iowan Old Style", "Palatino Linotype", "Book Antiqua", Georgia, serif;
	--mss-space-xs: 0.5rem;
	--mss-space-sm: 1rem;
	--mss-space-md: 1.5rem;
	--mss-space-lg: 2.5rem;
	--mss-space-xl: clamp(4.5rem, 8vw, 7rem);
	--mss-radius: 0.5rem;
	--mss-shadow: 0 18px 50px rgb(20 34 56 / 6%);
	--mss-header-offset: 6.5rem;
	--mss-contact-bottom: 1rem;
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: var(--mss-header-offset); }
body { margin: 0; background: var(--mss-ivory); color: var(--mss-navy); font-family: var(--mss-font-body); font-size: 1rem; line-height: 1.7; overflow-wrap: anywhere; -webkit-font-smoothing: antialiased; }
[hidden] { display: none !important; }
a { color: var(--mss-gold-ink); text-underline-offset: 0.25em; }
a:hover { color: var(--mss-navy); }
:focus-visible { outline: 2px solid var(--mss-gold-ink); outline-offset: 5px; }
img, video { max-width: 100%; height: auto; }
iframe { max-width: 100%; }
figure { max-width: 100%; margin-inline: 0; }
button, input, select, textarea { font: inherit; max-width: 100%; }
button, input[type="submit"] { cursor: pointer; }
button:disabled { cursor: not-allowed; }
input, select, textarea { color: var(--mss-navy); }
input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]), select, textarea { padding: 0.85rem 1rem; border: 1px solid var(--mss-border); border-radius: 0.25rem; background: var(--mss-warm-white); }
h1, h2, h3, h4, h5, h6 { line-height: 1.15; margin-block: 0 1.25rem; }
h1, h2 { font-family: var(--mss-font-heading); font-weight: 400; letter-spacing: -0.045em; }
h1 { font-size: clamp(2.5rem, 5vw, 4.75rem); }
h2 { font-size: clamp(2.1rem, 3.8vw, 3.5rem); }
p { margin-block: 0 1.25rem; }
.container { width: min(var(--mss-width), calc(100% - 5rem)); margin-inline: auto; }
.section-space { padding-block: var(--mss-space-xl); }
.eyebrow { font-size: 0.69rem; letter-spacing: 0.18em; text-transform: uppercase; font-weight: 600; color: var(--mss-gold-ink); margin-bottom: 1.4rem; }
.eyebrow-line { width: 2rem; height: 1px; display: inline-block; background: currentColor; vertical-align: middle; margin-right: 0.8rem; }
.mss-icon { display: inline-block; width: 1.4rem; height: 1.4rem; flex: 0 0 auto; vertical-align: middle; }
.button { display: inline-flex; align-items: center; justify-content: center; gap: 1.4rem; min-height: 3.35rem; padding: 0.85rem 1.55rem; border: 1px solid transparent; border-radius: 0.25rem; font-size: 0.81rem; font-weight: 600; line-height: 1.4; text-decoration: none; transition: background 180ms, transform 180ms, box-shadow 180ms; }
.button:hover { transform: translateY(-2px); box-shadow: 0 6px 18px rgb(20 34 56 / 9%); }
.button .mss-icon { width: 1.15rem; }
.button-gold { background: var(--mss-gold); color: var(--mss-deep-navy); }
.button-gold:hover { background: var(--mss-soft-gold); color: var(--mss-deep-navy); }
.button-navy { background: var(--mss-navy); color: var(--mss-warm-white); }
.button-navy:hover { background: #263d59; color: #fff; }
.button-outline { border-color: #c9c2b4; color: var(--mss-navy); background: transparent; }
.button-outline:hover { background: var(--mss-champagne); }
.button-group { display: flex; flex-wrap: wrap; gap: 0.8rem; }
.text-link { display: inline-flex; align-items: center; gap: 1.4rem; font-size: 0.82rem; font-weight: 600; color: var(--mss-navy); text-decoration: none; padding-block: 0.35rem; }
.text-link .mss-icon { width: 1.2rem; color: var(--mss-gold-ink); transition: transform 180ms; }
.text-link:hover .mss-icon { transform: translateX(4px); }
.site-header { position: sticky; top: 0; z-index: 100; background: var(--mss-ivory); border-bottom: 1px solid rgb(226 220 208 / 65%); transition: box-shadow 220ms, background 220ms; }
.header-inner { display: flex; align-items: center; gap: 2rem; min-height: 6.5rem; transition: min-height 220ms; }
.site-header.is-scrolled { background: rgb(252 250 246 / 97%); box-shadow: 0 4px 24px rgb(20 34 56 / 5%); }
.is-scrolled .header-inner { min-height: 5rem; }
.site-branding { min-width: 0; flex: 0 0 auto; max-width: 13rem; }
.site-title { color: var(--mss-navy); text-decoration: none; display: flex; flex-direction: column; }
.brand-wordmark { font-family: Georgia, serif; font-size: 2.5rem; line-height: 1; letter-spacing: -0.07em; }
.brand-dot { color: var(--mss-gold); }
.brand-descriptor { text-transform: uppercase; letter-spacing: 0.17em; font-size: 0.48rem; margin-top: 0.45rem; }
.custom-logo-link, .custom-logo { display: block; }
.custom-logo { width:auto; height:auto; max-width:175px; max-height:70px; object-fit:contain; }
/* Preserve the original square PNG. Its transparent margins can extend beyond
   the link box, while the horizontal artwork remains inside the header. */
.has-padded-logo .custom-logo-link { position:relative; width:175px; height:64px; overflow:visible; }
.has-padded-logo .custom-logo { position:absolute; left:0; top:50%; transform:translateY(-50%); width:auto; height:auto; max-width:100%; max-height:none; pointer-events:none; }
.is-scrolled .site-branding.has-padded-logo .custom-logo-link { width:150px; height:60px; }
.footer-branding.has-padded-logo .custom-logo-link { width:175px; height:100px; }
.primary-navigation { margin-inline: auto; min-width: 0; }
.menu { display: flex; flex-wrap: wrap; gap: 0.4rem 1.6rem; list-style: none; padding: 0; margin: 0; }
.menu a { display: inline-block; padding-block: 0.7rem; color: var(--mss-navy); text-decoration: none; font-size: 0.78rem; }
.menu a:hover, .menu .current-menu-item > a { color: var(--mss-gold-ink); }
.menu li { position: relative; }
.menu .sub-menu { list-style: none; padding: 0.6rem 1rem; margin: 0; min-width: 13rem; background: var(--mss-warm-white); border: 1px solid var(--mss-border); border-radius: var(--mss-radius); }
@media (min-width: 1101px) {
	.primary-navigation .sub-menu { display: none; position: absolute; left: 0; top: 100%; z-index: 2; box-shadow: var(--mss-shadow); }
	.primary-navigation li:hover > .sub-menu, .primary-navigation li:focus-within > .sub-menu { display: block; }
	.primary-navigation .sub-menu .sub-menu { position: static; border: 0; padding: 0 0 0 0.75rem; min-width: 0; box-shadow: none; }
}
.header-actions { display: flex; align-items: center; gap: 1rem; }
.header-contacts { display: flex; gap: 0.15rem; }
.header-contacts:empty { display: none; }
.contact-action { display: inline-flex; align-items: center; justify-content: center; gap: 0.5rem; min-width: 2.75rem; min-height: 2.75rem; color: var(--mss-navy); text-decoration: none; font-size: 0.75rem; }
.contact-action .mss-icon { width: 1.05rem; height: 1.05rem; }
.contact-action:hover { color: var(--mss-gold-ink); }
.header-quote { white-space: nowrap; min-height: 2.9rem; padding-inline: 1.1rem; gap: 0.8rem; }
.menu-toggle { width: 2.75rem; height: 2.75rem; border: 1px solid var(--mss-border); background: transparent; color: var(--mss-navy); border-radius: 0.25rem; align-items: center; justify-content: center; }
.menu-toggle-lines, .menu-toggle-lines::before, .menu-toggle-lines::after { display: block; width: 1.1rem; height: 1px; background: currentColor; position: relative; transition: transform 180ms; }
.menu-toggle-lines::before, .menu-toggle-lines::after { content: ""; position: absolute; }
.menu-toggle-lines::before { top: -5px; }
.menu-toggle-lines::after { top: 5px; }
.menu-toggle[aria-expanded="true"] .menu-toggle-lines { background: transparent; }
.menu-toggle[aria-expanded="true"] .menu-toggle-lines::before { top: 0; transform: rotate(45deg); }
.menu-toggle[aria-expanded="true"] .menu-toggle-lines::after { top: 0; transform: rotate(-45deg); }
.site-main { min-height: 55vh; padding-block: clamp(2rem, 6vw, 4rem); }
.page-header, .entry-header { margin-bottom: 2rem; }
.entry-content { max-width: 52rem; margin-inline: auto; }
.entry-content > .alignwide { width: min(var(--mss-width), calc(100vw - 5rem)); max-width: none; margin-inline-start: 50%; transform: translateX(-50%); }
.entry-summary-card { padding-block: 1.5rem; border-bottom: 1px solid var(--mss-border); }
.entry-meta { font-size: 0.9rem; }
.featured-image { margin-bottom: 2rem; }
.site-footer { background: var(--mss-warm-white); border-top: 1px solid var(--mss-border); }
.footer-inner { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 2rem; padding-block: 3rem; }
.footer-wordmark { font: 2.5rem/1 Georgia, serif; letter-spacing: -0.07em; text-decoration: none; color: var(--mss-navy); }
.footer-wordmark span { color: var(--mss-gold); }
.footer-site-name { font-size: 0.75rem; color: var(--mss-stone); margin: 0.75rem 0 0; }
.footer-contact p { margin: 0; font-size: 0.8rem; }
.footer-bottom { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 1rem; border-top: 1px solid var(--mss-border); padding-block: 1.3rem; font-size: 0.7rem; color: var(--mss-stone); }
.footer-bottom p { margin: 0; }
.contact-links { display: flex; flex-wrap: wrap; gap: 1.4rem; }
.mobile-contact-bar { display: none; }
.navigation, .page-links { margin-block: 2rem; }
.nav-links { display: flex; flex-wrap: wrap; gap: 1rem; justify-content: space-between; }
.screen-reader-text { border: 0; clip: rect(1px, 1px, 1px, 1px); clip-path: inset(50%); height: 1px; margin: -1px; overflow: hidden; padding: 0; position: absolute; width: 1px; white-space: nowrap; }
.skip-link:focus { clip: auto; clip-path: none; height: auto; width: auto; position: fixed; top: 1rem; left: 1rem; padding: 0.75rem 1rem; background: #fff; z-index: 100000; }
.alignleft { float: left; margin: 0 1.5rem 1rem 0; }
.alignright { float: right; margin: 0 0 1rem 1.5rem; }
.aligncenter { display: block; margin-inline: auto; }
.entry-content::after { content: ""; display: table; clear: both; }
.wp-caption-text, .gallery-caption { font-size: 0.9rem; }
pre { overflow-x: auto; padding: 1rem; background: var(--mss-champagne); }
.wp-block-table { overflow-x: auto; }
.admin-bar .site-header { top: 32px; }
@media (max-width: 1200px) {
	.header-inner { gap: 1.2rem; }
	.menu { column-gap: 1rem; }
	.header-actions { gap: 0.5rem; }
}
@media (max-width: 1100px) {
	.site-branding.has-padded-logo .custom-logo-link, .is-scrolled .site-branding.has-padded-logo .custom-logo-link { width:145px; height:56px; }
	.header-inner { flex-wrap: wrap; min-height: 5.5rem; padding-block: 1rem; gap: 1rem; }
	.site-branding { margin-right: auto; }
	.menu-toggle { display: inline-flex; order: 3; }
	.header-actions { order: 2; }
	.header-contacts { display: none; }
	.primary-navigation { order: 4; flex-basis: 100%; }
	.primary-navigation .menu { flex-direction: column; gap: 0; border-top: 1px solid var(--mss-border); padding-block: 0.75rem; max-height: 65vh; max-height: 65dvh; overflow-y: auto; }
	.primary-navigation .menu a { display: block; font-size: 0.95rem; padding: 0.7rem 0.4rem; }
	.primary-navigation .sub-menu { border: 0; background: transparent; padding-block: 0; }
}
@media (max-width: 782px) {
	.admin-bar .site-header { top: 46px; }
}
@media (max-width: 600px) {
	:root { --mss-header-offset: 5.5rem; }
	.container { width: calc(100% - 2.5rem); }
	.header-inner { gap: 0.6rem; min-height: 5rem; padding-block: 0.85rem; }
	.brand-wordmark { font-size: 2rem; }
	.brand-descriptor { font-size: 0.4rem; letter-spacing: 0.12em; }
	.site-branding { max-width:125px; }
	.custom-logo { max-width:125px; max-height:3rem; }
	.site-branding.has-padded-logo .custom-logo-link, .is-scrolled .site-branding.has-padded-logo .custom-logo-link { width:120px; height:48px; }
	.header-quote { font-size: 0.7rem; padding: 0.65rem 0.75rem; min-height: 2.75rem; }
	.header-quote .mss-icon { display: none; }
	.is-scrolled .header-inner { min-height: 4.5rem; }
	.admin-bar .site-header { top: 0; }
	.footer-inner { align-items: flex-start; flex-direction: column; }
	.footer-bottom { padding-bottom: 2rem; }
	body.has-contact-dock .site-footer { padding-bottom: 5rem; }
	.mobile-contact-bar { display: flex; position: fixed; bottom: calc(var(--mss-contact-bottom) + env(safe-area-inset-bottom)); left: 50%; transform: translateX(-50%); z-index: 90; gap: 0.4rem; padding: 0.35rem 0.8rem; background: var(--mss-warm-white); border: 1px solid var(--mss-border); border-radius: 3rem; box-shadow: 0 4px 24px rgb(20 34 56 / 12%); white-space: nowrap; }
	.mobile-contact-bar .contact-action { padding-inline: 0.5rem; }
	.alignleft, .alignright { float: none; margin-inline: 0; }
	.entry-content > .alignwide { width: calc(100vw - 2.5rem); }
}
@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	*, *::before, *::after { animation: none !important; transition: none !important; }
}

/* Consistent conversion and contact treatments, shared across the existing templates. */
.button[data-cta="request-quote"] { background:#c4ab76; color:var(--mss-navy); border:1px solid #a58b56; border-radius:.25rem; padding-inline:1.5rem; font-weight:600; box-shadow:0 4px 12px rgb(20 34 56 / 8%); }
.button[data-cta="request-quote"] .mss-icon { transition:transform 180ms; }
.button[data-cta="request-quote"]:hover { background:#bca06a; transform:translateY(-2px); box-shadow:0 7px 17px rgb(20 34 56 / 12%); }
.button[data-cta="request-quote"]:hover .mss-icon { transform:translateX(3px); }
.button[data-cta="request-quote"]:active { transform:translateY(0); box-shadow:0 2px 5px rgb(20 34 56 / 9%); }
.button[data-cta="request-quote"]:focus-visible { outline:2px solid var(--mss-navy); outline-offset:4px; box-shadow:0 0 0 6px var(--mss-warm-white); }
.contact-action[data-cta="whatsapp"] > .mss-icon { color:#26744e; }
.header-contacts .contact-action { border:1px solid transparent; border-radius:50%; }
.header-contacts .contact-action:hover { border-color:var(--mss-border); background:var(--mss-warm-white); }
.header-quote[data-cta="request-quote"] { padding-inline:1.1rem; }
.site-footer { background:var(--mss-deep-navy); color:var(--mss-ivory); border-top:1px solid #344052; }
.site-footer .footer-wordmark, .site-footer .contact-action, .site-footer .menu a { color:var(--mss-ivory); }
.site-footer .footer-site-name, .site-footer .footer-bottom, .site-footer .footer-phone { color:#b8c0ca; }
.site-footer .footer-bottom { border-color:#344052; }
.site-footer .footer-bottom a { color:var(--mss-soft-gold); }
.site-footer [data-cta="whatsapp"] > .mss-icon { color:#91c6a5; }
.site-footer .footer-inner { padding-block:2.4rem; }
.site-footer .footer-phone { margin-top:.6rem; letter-spacing:.06em; }
.footer-phone-link { color:inherit; text-decoration:none; }
.footer-phone-link:hover { color:var(--mss-soft-gold); text-decoration:underline; }
.site-footer .footer-email { margin-top:.5rem; }
.footer-email .contact-action { min-height:44px; font-size:.8rem; }
.footer-email .contact-action span { overflow-wrap:anywhere; }
.desktop-quote-tab { display:none; }
@media(min-width:1101px) {
 .desktop-quote-tab { display:inline-flex; align-items:center; gap:1rem; position:fixed; right:0; top:52%; transform:translateY(-50%); z-index:80; writing-mode:vertical-rl; padding:1.1rem .5rem; width:2.1rem; background:var(--mss-navy); color:var(--mss-soft-gold); border:1px solid #695d44; border-right:0; border-radius:.3rem 0 0 .3rem; box-shadow:-3px 4px 16px rgb(20 34 56 / 12%); font-size:.63rem; line-height:1.4; letter-spacing:.13em; text-transform:uppercase; text-decoration:none; transition:width 180ms,box-shadow 180ms; }
 .desktop-quote-tab .mss-icon { width:.95rem; height:.95rem; transition:transform 180ms; }
 .desktop-quote-tab:hover { width:2.35rem; background:var(--mss-navy); color:var(--mss-soft-gold); box-shadow:-4px 5px 20px rgb(20 34 56 / 17%); }
 .desktop-quote-tab:hover .mss-icon { transform:translateY(3px); }
 .admin-bar .desktop-quote-tab { top:calc(52% + 16px); }
}
@media(max-width:1100px) {
 .mobile-contact-bar.homepage-action-bar { display:grid; grid-template-columns:.75fr 1fr 1.4fr; align-items:stretch; position:fixed; z-index:80; left:50%; bottom:calc(var(--mss-contact-bottom) + env(safe-area-inset-bottom)); transform:translateX(-50%); width:25rem; max-width:calc(100% - 2rem); gap:.2rem; padding:.4rem; background:var(--mss-navy); border:1px solid #384456; border-radius:.45rem; box-shadow:0 5px 20px rgb(20 34 56 / 16%); white-space:normal; }
 .homepage-action-bar .contact-action { padding:.5rem .3rem; min-height:48px; min-width:0; gap:.35rem; font-size:.72rem; line-height:1.3; color:var(--mss-ivory); border-radius:.2rem; text-align:center; }
 .homepage-action-bar .contact-action .mss-icon { width:1rem; height:1rem; }
 .homepage-action-bar .contact-action.dock-quote { background:var(--mss-soft-gold); color:var(--mss-navy); }
 .homepage-action-bar .contact-action[data-cta="whatsapp"] > .mss-icon { color:#91c6a5; }
 .homepage-action-bar .contact-action:focus-visible { outline-color:var(--mss-soft-gold); outline-offset:1px; }
 body.has-contact-dock .site-footer { padding-bottom:5rem; }
}
.quote-contact-page { padding-block:1rem 4rem; }
.quote-contact-page > h1 { max-width:14ch; }
.quote-contact-layout { display:grid; grid-template-columns:1.1fr 1fr; gap:4rem; align-items:start; margin-top:3rem; }
.quote-contact-layout .entry-content { margin:0; }
.quote-contact-layout .entry-content h2 { font-size:2rem; margin-top:2rem; }
.quote-contact-layout .entry-content h2:first-child { margin-top:0; }
.quote-contact-layout .entry-content p { color:var(--mss-stone); }
.quote-contact-options { padding:2.5rem; border:1px solid var(--mss-border); border-top:3px solid var(--mss-soft-gold); background:var(--mss-warm-white); }
.quote-contact-options h2 { font-size:2.4rem; }
.quote-contact-options > p:not(.eyebrow) { color:var(--mss-stone); }
.quote-direct-actions { display:flex; flex-wrap:wrap; gap:1rem; align-items:center; }
.quote-service-context { border-block:1px solid var(--mss-border); padding-block:.75rem; }
@media(max-width:780px) { .quote-contact-layout { grid-template-columns:1fr; gap:2rem; } }
@media(max-width:600px) { .header-quote[data-cta="request-quote"] { padding-inline:.75rem; } .quote-contact-options { padding:1.5rem; } }
@media(prefers-reduced-motion:reduce) { .button[data-cta="request-quote"], .button[data-cta="request-quote"] .mss-icon, .desktop-quote-tab, .desktop-quote-tab .mss-icon { transition:none; } }
