
.project-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}.project{margin:0;border:1px solid #e6e8ec;border-radius:14px;overflow:hidden;background:#fff}.project img{width:100%;height:270px;object-fit:cover;transition:transform .2s}.project a:hover img{transform:scale(1.03)}.project figcaption{padding:14px 16px;font-weight:700;color:#082f4f}.star-toggle{position:fixed;bottom:22px;right:22px;z-index:100;background:#082f4f;color:white;border:1px solid #c79621;border-radius:30px;padding:16px 22px;font-weight:bold;box-shadow:0 6px 24px #0003;cursor:pointer}.star-panel{position:fixed;right:22px;bottom:88px;width:390px;max-width:calc(100vw - 24px);height:540px;max-height:calc(100dvh - 112px);z-index:101;border-radius:18px;overflow:hidden;background:white;box-shadow:0 14px 60px #0004;border:1px solid #ddd;display:flex;flex-direction:column}.star-panel[hidden]{display:none}.star-header{background:#082f4f;color:white;padding:17px;display:flex;justify-content:space-between;align-items:center}.star-header small{display:block;font-size:11px;margin-top:4px;color:#e4eaf0}.star-header button{color:white;background:transparent;border:0;font-size:30px;cursor:pointer}.star-messages{flex:1;overflow-y:auto;padding:16px;min-height:0;display:flex;flex-direction:column;gap:12px}.star-message{padding:11px 13px;border-radius:12px;font-size:14px;white-space:pre-wrap;overflow-wrap:anywhere;max-width:92%}.star-message.assistant{background:#f1f4f7;align-self:flex-start}.star-message.user{background:#082f4f;color:white;align-self:flex-end}.star-status{margin:0;padding:0 16px;min-height:22px;font-size:12px;color:#667085}#star-form{display:flex;gap:8px;padding:12px;border-top:1px solid #eee}#star-input{min-width:0;flex:1;padding:12px;border:1px solid #cdd4dc;border-radius:8px;font:inherit;font-size:16px}#star-send{background:#082f4f;color:white;border:0;border-radius:8px;padding:10px;font-weight:bold;cursor:pointer}#star-send:disabled{opacity:.6;cursor:wait}.star-footer{font-size:11px;padding:0 12px 12px;text-align:center}.star-footer a{color:#082f4f;font-weight:bold}.sr-only{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}button:focus-visible,a:focus-visible,input:focus-visible{outline:3px solid #c79621;outline-offset:3px}@media(max-width:850px){.project-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:520px){.project-grid{grid-template-columns:1fr}.star-panel{right:12px;bottom:82px}.star-toggle{right:12px;bottom:16px}.brand strong{font-size:14px}.nav{gap:8px}.navlinks .btn{padding:10px;font-size:12px}.brand img{width:58px}.project img{height:300px}}

/* Estrellita artwork */
.star-toggle{width:180px;padding:0;border-radius:18px;overflow:hidden;background:#0b1424;transition:transform .2s}.star-toggle:hover{transform:translateY(-3px)}.star-toggle img{width:100%;height:auto;display:block}.star-panel{bottom:200px;height:610px;max-height:calc(100dvh - 220px)}.star-welcome{flex-shrink:0;background:#0b1424;text-align:center}.star-welcome img{width:100%;height:145px;object-fit:contain}.star-header strong{font-size:15px}.star-messages{min-height:90px}@media(max-width:520px){.star-toggle{width:118px}.star-panel{bottom:130px;height:560px;max-height:calc(100dvh - 150px)}.star-welcome img{height:115px}.star-header{padding:12px}.star-header strong{font-size:14px}}

.appointment-open{margin:0 12px 8px;padding:9px;background:#fff6dc;border:1px solid #c79621;border-radius:8px;color:#082f4f;font-weight:bold;cursor:pointer;flex-shrink:0}#appointment-dialog{width:520px;max-width:calc(100vw - 24px);max-height:90dvh;border:0;border-radius:16px;padding:24px;overflow:auto;box-shadow:0 12px 60px #0005}#appointment-dialog::backdrop{background:#071b2aaa}.appointment-heading{display:flex;align-items:flex-start;gap:12px;justify-content:space-between}.appointment-heading h2{margin:0;font-size:23px;line-height:1.25}.appointment-heading button{border:0;background:none;font-size:30px;cursor:pointer}#appointment-dialog p{font-size:13px;color:#4b5563}#appointment-form{display:grid;gap:12px}#appointment-form label{font-size:13px;font-weight:700}#appointment-form input:not([type=checkbox]),#appointment-form textarea,#appointment-form select{display:block;width:100%;margin-top:5px;padding:10px;border:1px solid #cdd4dc;border-radius:7px;font:inherit;font-size:16px}#appointment-form .appointment-consent{display:flex;gap:8px;font-size:12px;font-weight:normal}#appointment-form input[type=checkbox]{flex-shrink:0;align-self:flex-start}.appointment-trap{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}#appointment-submit{border:0;cursor:pointer}#appointment-submit:disabled{opacity:.6}#appointment-status{margin:0;white-space:pre-wrap}.appointment-note{font-size:11px}
/* JMC black and gold theme */
:root{--navy:#17130a;--red:#c79621;--gold:#f4ce69;--ink:#f8e8b9;--muted:#c6b98e;--light:#101010;--white:#171717}
body{background:#080808;color:#f8e8b9}
header{background:rgba(8,8,8,.97);border-bottom:1px solid #806125}
.brand strong,.navlinks a{color:#f4ce69;text-shadow:0 0 12px #d6a83b44}
.hero{background:radial-gradient(ellipse at 80% 20%,#342611 0%,#11100d 35%,#080808 75%)}
h1,h2,.section-title h2,.cta h2{color:#f6d77d;text-shadow:0 0 18px #d5a83733}
h1{background:linear-gradient(110deg,#b98b2b 0%,#fff1b1 30%,#deb647 55%,#fff0b5 80%,#bc8e30 100%);-webkit-background-clip:text;background-clip:text;color:transparent}
.eyebrow,.phone{color:#f4ce69;text-shadow:0 0 12px #d6a83b44}
.hero p,.section-title p,.card p{color:#d2c6a4}
.hero-card{background:#151515;border:1px solid #8a682b;box-shadow:0 14px 45px #0008,0 0 24px #c796211a}
.services{background:#101010}.card{background:linear-gradient(145deg,#1e1b15,#121212);border:1px solid #594622}.card h3{color:#f4ce69}
.btn,.btn.red{background:linear-gradient(115deg,#b38729,#f3d478 45%,#cba044);color:#161109;border:1px solid #efcf71;box-shadow:0 3px 16px #c7962122}.navlinks a.btn{color:#161109;text-shadow:none}
.check{background:#171510;border:1px solid #594622;color:#e4c46f}.about-grid img{background:#151515;border:1px solid #594622}
.cta{background:linear-gradient(120deg,#211a0d,#101010);border-top:1px solid #594622}.cta p{color:#d2c6a4}
footer{background:#050505;color:#c6b98e;border-top:1px solid #594622}footer strong{color:#f4ce69}
.project{background:#171510;border-color:#594622}.project figcaption{color:#f4ce69}
.star-toggle{border-color:#e1ba57;box-shadow:0 6px 24px #0008,0 0 18px #c7962133}.star-panel{background:#111;border-color:#806125}.star-header{background:linear-gradient(120deg,#28200e,#101010);color:#f4ce69;border-bottom:1px solid #594622}.star-header small{color:#c6b98e}.star-header button{color:#f4ce69}.star-message.assistant{background:#252016;color:#f8e8b9}.star-message.user{background:#d5b354;color:#171109}.star-status{color:#c6b98e}#star-form{border-color:#594622}#star-input{background:#1b1914;border-color:#806125;color:#f8e8b9}#star-input::placeholder{color:#b9ad8e}#star-send{background:linear-gradient(115deg,#b38729,#f3d478);color:#171109}.star-footer{color:#c6b98e}.star-footer a{color:#f4ce69}.appointment-open{background:#29200d;color:#f4ce69;border-color:#a47e32}
#appointment-dialog{background:#111;color:#f8e8b9;border:1px solid #806125}#appointment-dialog p{color:#d2c6a4}.appointment-heading button{color:#f4ce69}#appointment-form input:not([type=checkbox]),#appointment-form textarea,#appointment-form select{background:#211c13;color:#f8e8b9;border-color:#806125;color-scheme:dark}.appointment-note a{color:#f4ce69}#appointment-form input[type=checkbox]{accent-color:#d5b354}
