/*
Theme Name: Melbourne Master Cabinets
Theme URI: https://mmcabinets.com.au
Author: Melbourne Master Cabinets
Description: Custom theme for Melbourne Master Cabinets — cabinet making and installation across Melbourne and Geelong. On activation it creates the site pages, imports project photos and sets the home page. Settings: Appearance > Customize > MM Cabinets settings.
Version: 1.2.1
Requires at least: 6.4
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: mmcabinets
*/
/* Melbourne Master Cabinets — site styles */
:root{
  --board:#F2F2EF;
  --white:#FFFFFF;
  --stone:#DAD7D1;
  --gold:#C29B52;      /* brand gold, from the logo */
  --gold-hi:#D9B872;
  --gold-deep:#80612A; /* gold for text on light backgrounds */
  --charcoal:#2A2B2D;  /* slate from the logo background */
  --charcoal-2:#1F2022;
  --ink:#1E2120;
  --muted:#5D605C;
  --muted-dark:#B3B0AA;
  --wrap:1240px;
  --gut:clamp(20px,4vw,48px);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:90px}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important;animation:none!important}}
body{margin:0;background:var(--board);color:var(--ink);font-family:Archivo,system-ui,sans-serif;font-size:17px;line-height:1.6;font-variation-settings:"wdth" 100;-webkit-font-smoothing:antialiased}
img{display:block;max-width:100%;height:auto}
a{color:inherit}
:focus-visible{outline:3px solid var(--gold);outline-offset:3px}
.skip{position:absolute;left:-9999px;top:8px;background:var(--gold);color:var(--ink);padding:10px 16px;z-index:200;font-weight:600}
.skip:focus{left:8px}
.wrap{max-width:var(--wrap);margin:0 auto;padding:0 var(--gut)}
h1,h2,h3{font-variation-settings:"wdth" 70;font-weight:700;line-height:1.03;letter-spacing:-.01em;margin:0}
h1{font-size:clamp(42px,6vw,82px)}
h2{font-size:clamp(34px,4.6vw,60px)}
h3{font-size:clamp(25px,2.5vw,32px)}
p{margin:0 0 1em;max-width:62ch}
.lede{font-size:clamp(18px,1.6vw,21px);color:var(--muted)}
.dark .lede{color:var(--muted-dark)}

/* buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5em;padding:15px 26px;border-radius:2px;font:600 16px/1 Archivo,sans-serif;text-decoration:none;border:1.5px solid currentColor;cursor:pointer;background:none;color:inherit}
.btn-gold{background:var(--gold);border-color:var(--gold);color:var(--ink)}
.btn-gold:hover{background:var(--gold-hi);border-color:var(--gold-hi)}
.btn-line:hover{background:var(--ink);color:var(--board);border-color:var(--ink)}
.dark .btn-line:hover{background:var(--board);color:var(--ink);border-color:var(--board)}
.btns{display:flex;flex-wrap:wrap;gap:12px}

/* top bar + header */
.topbar{background:var(--charcoal-2);color:#CFCBC4;font-size:14px}
.topbar .wrap{display:flex;justify-content:space-between;gap:16px;padding-top:8px;padding-bottom:8px;flex-wrap:wrap}
.topbar a{text-decoration:none;color:#fff;font-weight:600}
.topbar a:hover{text-decoration:underline}
header.site{position:sticky;top:0;z-index:40;background:var(--charcoal);color:#fff;box-shadow:0 1px 0 rgba(255,255,255,.06)}
header.site .wrap{display:flex;align-items:center;justify-content:space-between;height:80px;gap:24px}
.logo{display:flex;align-items:center;gap:12px;text-decoration:none;color:#fff;flex-shrink:0}
.logo img{height:40px;width:auto}
.logo span{font-variation-settings:"wdth" 75;font-weight:700;font-size:19px;line-height:1.05;letter-spacing:.01em}
.logo small{display:block;font-weight:500;font-size:12.5px;font-variation-settings:"wdth" 100;color:var(--gold-hi);letter-spacing:0;margin-top:3px}
nav.main ul{list-style:none;display:flex;gap:22px;margin:0;padding:0}
nav.main a{white-space:nowrap}
nav.main a{text-decoration:none;font-weight:500;font-size:15px;padding:6px 0;border-bottom:2px solid transparent;color:#E9E6E0}
nav.main a:hover,nav.main a[aria-current="page"]{border-color:var(--gold);color:#fff}
.header-cta{padding:12px 18px;font-size:15px}
.menu-btn{display:none;background:none;border:1.5px solid #888;color:#fff;border-radius:2px;padding:9px 14px;font:600 15px Archivo,sans-serif;cursor:pointer}
@media (max-width:1180px){
  nav.main{display:none;position:absolute;top:80px;left:0;right:0;background:var(--charcoal);border-top:1px solid #3a3b3e}
  nav.main.open{display:block}
  nav.main ul{flex-direction:column;gap:0;padding:8px var(--gut) 20px}
  nav.main a{display:block;padding:13px 0;border-bottom:1px solid #3a3b3e;font-size:18px}
  .menu-btn{display:block}
  .header-cta{display:none}
}
@media (max-width:560px){.logo small{display:none}.logo span{font-size:16px}.logo img{height:32px}.logo{gap:9px}header.site .wrap{height:68px;gap:12px}nav.main{top:68px}.topbar span:first-child{display:none}}

/* hero */
.hero{padding:clamp(40px,6vw,80px) 0 clamp(56px,8vw,110px)}
.hero .wrap{display:grid;grid-template-columns:1.05fr 1fr;gap:clamp(32px,5vw,72px);align-items:center}
.hero h1{margin-bottom:26px}
.hero .lede{margin-bottom:32px}
.hero-facts{display:flex;gap:28px;flex-wrap:wrap;margin-top:40px;padding-top:24px;border-top:1px solid var(--stone);font-size:15px;color:var(--muted)}
.hero-facts b{display:block;color:var(--ink);font-size:16px}
.drawing{position:relative;padding:40px 0 0 46px}
.drawing img{width:100%;aspect-ratio:4/5;object-fit:cover}
.dim{position:absolute;color:var(--gold-deep);font-size:13px;font-weight:600}
.dim-h{top:0;left:46px;right:0;height:28px}
.dim-v{top:40px;bottom:0;left:0;width:28px}
.dim svg{position:absolute;inset:0;width:100%;height:100%;overflow:visible}
.dim-h span{position:absolute;left:50%;top:2px;transform:translateX(-50%);background:var(--board);padding:0 10px;white-space:nowrap}
.dim-v span{position:absolute;top:50%;left:14px;transform:translate(-50%,-50%) rotate(-90deg);background:var(--board);padding:0 10px;white-space:nowrap}
@media (max-width:860px){.hero .wrap{grid-template-columns:1fr}.drawing{order:-1}}

/* breadcrumb */
.crumbs{font-size:14px;color:var(--muted);margin-bottom:22px}
.crumbs ol{list-style:none;display:flex;flex-wrap:wrap;gap:8px;margin:0;padding:0}
.crumbs li+li::before{content:"/";margin-right:8px;color:var(--stone)}
.crumbs a{text-decoration:none}
.crumbs a:hover{text-decoration:underline}

/* sections */
section{padding:clamp(64px,9vw,120px) 0}
.white{background:var(--white)}
.dark{background:var(--charcoal);color:#ECE8E1}
.sec-head{display:grid;grid-template-columns:1fr 1fr;gap:clamp(24px,5vw,72px);align-items:end;margin-bottom:clamp(40px,5vw,64px)}
.sec-head p{margin:0}
@media (max-width:800px){.sec-head{grid-template-columns:1fr}}

/* collections */
.coll{display:grid;grid-template-columns:repeat(12,1fr);gap:clamp(20px,3vw,40px);align-items:center;padding:clamp(32px,4vw,52px) 0;border-top:1px solid var(--stone)}
.coll:last-child{border-bottom:1px solid var(--stone)}
.coll .pics{grid-column:1/8;display:grid;grid-template-columns:1.4fr 1fr;gap:12px}
.coll .pics img{width:100%;height:100%;aspect-ratio:3/4;object-fit:cover}
.coll .pics.one{grid-template-columns:1fr}
.coll .pics.one img{aspect-ratio:16/10}
.coll .txt{grid-column:8/13}
.coll.flip .pics{grid-column:6/13;grid-row:1}
.coll.flip .txt{grid-column:1/6;grid-row:1}
.coll h3{margin-bottom:16px}
.coll h3 a{text-decoration:none}
.coll h3 a:hover{text-decoration:underline;text-decoration-color:var(--gold);text-underline-offset:5px}
.ticks{padding:0;margin:0 0 26px;list-style:none;columns:2;column-gap:20px;font-size:15.5px;color:var(--muted)}
.ticks li{padding:5px 0 5px 16px;position:relative;break-inside:avoid}
.ticks li::before{content:"";position:absolute;left:0;top:14px;width:7px;height:1.5px;background:var(--gold)}
@media (max-width:860px){.coll .pics,.coll .txt,.coll.flip .pics,.coll.flip .txt{grid-column:1/-1;grid-row:auto}}

/* workshop */
.split{display:grid;grid-template-columns:1fr 1fr;gap:clamp(32px,5vw,72px);align-items:center}
.shots{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.shots figure{margin:0}
.shots img{aspect-ratio:3/4;object-fit:cover;width:100%}
.shots figcaption{font-size:13.5px;color:#A9A298;margin-top:8px}
.shots figure:nth-child(2){margin-top:56px}
.promises{display:grid;gap:22px;margin-top:34px}
.promises div{padding-left:20px;border-left:2px solid var(--gold)}
.promises b{display:block;font-size:18px;margin-bottom:2px}
.dark .promises b{color:#fff}
.promises span{color:var(--muted);font-size:16px}
.dark .promises span{color:var(--muted-dark)}
@media (max-width:860px){.split{grid-template-columns:1fr}}

/* process */
.steps{display:grid;grid-template-columns:repeat(4,1fr);border-top:1.5px solid var(--ink)}
.step{padding:28px 28px 8px 0}
.step + .step{padding-left:28px;border-left:1px solid var(--stone)}
.step .n{font-variation-settings:"wdth" 70;font-weight:700;font-size:54px;line-height:1;color:var(--gold);display:block;margin-bottom:18px}
.step h3{font-size:24px;margin-bottom:10px}
.step p{font-size:15.5px;color:var(--muted)}
@media (max-width:900px){.steps{grid-template-columns:1fr 1fr}.step:nth-child(3){padding-left:0;border-left:0}.step:nth-child(n+3){border-top:1px solid var(--stone)}}
@media (max-width:560px){.steps{grid-template-columns:1fr}.step,.step + .step{padding-left:0;border-left:0}.step + .step{border-top:1px solid var(--stone)}}

/* gallery */
.filters{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:28px}
.filters button{font:500 15px Archivo,sans-serif;padding:9px 16px;border:1.5px solid var(--stone);background:none;border-radius:2px;cursor:pointer;color:var(--ink)}
.filters button[aria-pressed="true"]{background:var(--ink);border-color:var(--ink);color:#fff}
.grid-g{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.grid-g figure{margin:0}
.grid-g figure[hidden]{display:none}
.grid-g button{display:block;width:100%;padding:0;border:0;background:none;cursor:zoom-in;position:relative;overflow:hidden}
.grid-g img{width:100%;aspect-ratio:4/5;object-fit:cover;transition:transform .4s}
.grid-g button:hover img{transform:scale(1.03)}
.grid-g figcaption{position:absolute;left:0;bottom:0;right:0;padding:32px 14px 12px;color:#fff;font-size:14px;text-align:left;background:linear-gradient(transparent,rgba(30,33,32,.8));opacity:0;transition:opacity .2s;pointer-events:none}
.grid-g button:hover figcaption,.grid-g button:focus-visible figcaption{opacity:1}
@media (hover:none){.grid-g figcaption{opacity:1}}
@media (max-width:640px){.grid-g{grid-template-columns:1fr 1fr;gap:8px}.grid-g figcaption{display:none}}
.lightbox{position:fixed;inset:0;z-index:100;background:rgba(20,20,19,.95);display:none;align-items:center;justify-content:center;padding:56px 64px}
.lightbox.open{display:flex}
.lightbox img{max-height:82vh;max-width:100%;object-fit:contain;margin:0 auto}
.lightbox figure{margin:0;text-align:center;color:#ddd;font-size:15px}
.lightbox figcaption{margin-top:12px}
.lb-btn{position:absolute;background:none;border:1.5px solid #888;color:#fff;font:600 15px Archivo,sans-serif;padding:10px 14px;border-radius:2px;cursor:pointer}
.lb-close{top:14px;right:14px}.lb-prev{left:12px;top:50%}.lb-next{right:12px;top:50%}
@media (max-width:600px){.lightbox{padding:60px 10px}.lb-prev,.lb-next{top:auto;bottom:14px}}

/* reviews */
.reviews-top{display:flex;justify-content:space-between;align-items:end;gap:24px;flex-wrap:wrap;margin-bottom:40px}
.rating-sum{display:flex;align-items:center;gap:14px;font-size:15px;color:var(--muted-dark)}
.rating-sum strong{font-variation-settings:"wdth" 70;font-size:52px;line-height:1;color:#fff}
.stars{color:var(--gold-hi);letter-spacing:2px;font-size:18px}
.review-list{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.review{background:#333437;padding:26px;border-radius:2px;display:flex;flex-direction:column;gap:12px}
.review p{margin:0;color:#E4E0D9;font-size:16px}
.review footer{margin-top:auto;font-size:14px;color:var(--muted-dark)}
.review footer b{color:#fff;display:block;font-size:15px}
.reviews-empty{border:1.5px dashed #55565a;padding:clamp(24px,4vw,44px);display:grid;grid-template-columns:1fr auto;gap:24px;align-items:center}
.reviews-empty p{margin:0;color:#E4E0D9;font-size:18px}
.reviews-empty .stars{font-size:26px;display:block;margin-bottom:10px;opacity:.5}
@media (max-width:900px){.review-list{grid-template-columns:1fr}.reviews-empty{grid-template-columns:1fr}}

/* areas */
.areas{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--stone)}
.area{padding:24px 24px 22px 0;border-bottom:1px solid var(--stone)}
.area b{display:block;font-size:18px;margin-bottom:4px}
.area span{color:var(--muted);font-size:15px}
@media (max-width:900px){.areas{grid-template-columns:1fr 1fr}}
@media (max-width:560px){.areas{grid-template-columns:1fr}}

/* materials */
.mats{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--stone)}
.mat{padding:26px 26px 22px 0;border-bottom:1px solid var(--stone);display:grid;grid-template-columns:44px 1fr;gap:16px}
.mat .sw{width:44px;height:44px;border-radius:2px;border:1px solid rgba(0,0,0,.08)}
.mat b{display:block;font-size:17.5px;margin-bottom:4px}
.mat span{color:var(--muted);font-size:15px;line-height:1.5;display:block}
@media (max-width:900px){.mats{grid-template-columns:1fr 1fr}}
@media (max-width:560px){.mats{grid-template-columns:1fr}}

/* service page */
.svc-hero .drawing img{aspect-ratio:4/5}
.styles{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:0;border-top:1.5px solid var(--ink)}
.styles div{padding:24px 24px 20px 0;border-bottom:1px solid var(--stone)}
.styles b{display:block;font-size:20px;font-variation-settings:"wdth" 75;margin-bottom:6px}
.styles span{color:var(--muted);font-size:15.5px}
.faq{border-top:1.5px solid var(--ink);max-width:880px}
.faq details{border-bottom:1px solid var(--stone)}
.faq summary{cursor:pointer;list-style:none;padding:22px 40px 22px 0;font-weight:600;font-size:19px;position:relative}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";position:absolute;right:4px;top:16px;font-size:28px;font-weight:400;color:var(--gold-deep)}
.faq details[open] summary::after{content:"–"}
.faq details p{color:var(--muted);padding-bottom:18px;margin:0}
.cta-band{background:var(--charcoal);color:#fff;padding:clamp(48px,6vw,80px) 0}
.cta-band .wrap{display:flex;justify-content:space-between;align-items:center;gap:28px;flex-wrap:wrap}
.cta-band h2{font-size:clamp(30px,3.6vw,46px);max-width:20ch}

/* contact */
.contact-grid{display:grid;grid-template-columns:.85fr 1.15fr;gap:clamp(32px,5vw,72px)}
.contact-list{margin-top:34px;display:grid;gap:18px;font-size:17px}
.contact-list b{display:block;font-size:14px;font-weight:500;color:#A9A298}
.contact-list a{color:#fff;text-decoration:none;font-weight:600}
.contact-list a:hover{text-decoration:underline}
.contact-list .big a{font-size:28px;font-variation-settings:"wdth" 75;color:var(--gold-hi)}
form.quote{background:var(--board);color:var(--ink);padding:clamp(24px,3.5vw,44px);border-radius:2px;display:grid;grid-template-columns:1fr 1fr;gap:18px}
form.quote .full{grid-column:1/-1}
form.quote label{display:block;font-size:14.5px;font-weight:600;margin-bottom:6px}
form.quote label small{font-weight:400;color:var(--muted)}
form.quote input,form.quote select,form.quote textarea{width:100%;font:16px Archivo,sans-serif;padding:12px 13px;border:1.5px solid var(--stone);border-radius:2px;background:#fff;color:var(--ink)}
form.quote input:focus,form.quote select:focus,form.quote textarea:focus{outline:none;border-color:var(--gold-deep)}
form.quote textarea{min-height:110px;resize:vertical}
form.quote .chips{display:flex;flex-wrap:wrap;gap:8px}
form.quote .chips label{margin:0;font-weight:500;font-size:15px;display:inline-flex;align-items:center;gap:7px;padding:8px 13px;border:1.5px solid var(--stone);border-radius:2px;background:#fff;cursor:pointer}
form.quote .chips input{width:auto;padding:0;accent-color:var(--gold-deep)}
form.quote .chips label:has(input:checked){border-color:var(--gold-deep);background:#F7F0E2}
.form-note{font-size:14px;color:var(--muted);margin:0}
.form-msg{grid-column:1/-1;padding:16px 18px;border-left:3px solid var(--gold);background:#fff;font-size:15.5px;display:none}
.form-msg.show{display:block}
.form-msg a{color:var(--gold-deep);font-weight:600}
.err{color:#A23B2A;font-size:13.5px;margin-top:5px;display:none}
.invalid .err{display:block}
.invalid input{border-color:#A23B2A}
@media (max-width:900px){.contact-grid{grid-template-columns:1fr}}
@media (max-width:560px){form.quote{grid-template-columns:1fr}}

/* prose (privacy) */
.prose{max-width:760px}
.prose h2{font-size:28px;margin:36px 0 12px}

/* footer */
footer.site{background:var(--charcoal-2);color:#B3B0AA;font-size:15px;padding:64px 0 96px}
footer.site .cols{display:grid;grid-template-columns:1.5fr 1fr 1fr 1fr;gap:36px}
footer.site h2{color:#fff;font-size:15px;font-weight:600;margin:0 0 14px;font-variation-settings:"wdth" 100;letter-spacing:0}
footer.site ul{list-style:none;margin:0;padding:0;display:grid;gap:8px}
footer.site a{text-decoration:none}
footer.site a:hover{color:#fff;text-decoration:underline}
footer.site .flogo{width:240px;margin-bottom:16px}
footer.site .legal{margin-top:48px;padding-top:22px;border-top:1px solid #3B3B3E;display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px;font-size:13.5px}
@media (max-width:900px){footer.site .cols{grid-template-columns:1fr 1fr}}
@media (max-width:520px){footer.site .cols{grid-template-columns:1fr}}

.sticky-bar{display:none}
@media (max-width:700px){
  .sticky-bar{display:grid;grid-template-columns:1fr 1fr;position:fixed;left:0;right:0;bottom:0;z-index:50;box-shadow:0 -1px 0 var(--stone)}
  .sticky-bar a{padding:16px 8px;white-space:nowrap;font-size:15.5px;text-align:center;font-weight:600;text-decoration:none;background:var(--charcoal);color:#fff}
  .sticky-bar a:last-child{background:var(--gold);color:var(--ink)}
}

/* ---------- WordPress additions ---------- */
.admin-bar header.site{top:32px}
@media (max-width:782px){.admin-bar header.site{top:46px}}
@media (max-width:600px){.admin-bar header.site{top:0}}
.custom-logo-link img,.logo img.custom-logo{height:40px;width:auto}
.entry{max-width:760px}
.entry h1{font-size:clamp(40px,5vw,64px);margin-bottom:24px}
.entry-content h2{font-size:30px;margin:40px 0 12px}
.entry-content h3{font-size:24px;margin:28px 0 10px}
.entry-content a{color:var(--gold-deep)}
.entry-content img{margin:24px 0}
.entry-content ul,.entry-content ol{padding-left:1.2em;max-width:62ch}
.entry-meta{color:var(--muted);font-size:15px;margin-bottom:28px}
.post-list{display:grid;gap:0;border-top:1.5px solid var(--ink);max-width:880px}
.post-list article{padding:28px 0;border-bottom:1px solid var(--stone)}
.post-list h2{font-size:30px;margin-bottom:10px}
.post-list h2 a{text-decoration:none}
.post-list h2 a:hover{text-decoration:underline;text-decoration-color:var(--gold)}
.pagination{margin-top:32px;display:flex;gap:12px}
.hp-field{position:absolute!important;left:-9999px!important;width:1px;height:1px;overflow:hidden}
.alignwide{max-width:none}
.screen-reader-text{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(1px,1px,1px,1px)}


/* ---------- Motion & polish (1.1.0) ---------- */
header.site{transition:box-shadow .35s ease}
header.site .wrap{transition:height .35s ease}
.logo img{transition:height .35s ease}
header.site.scrolled{box-shadow:0 8px 28px rgba(0,0,0,.22)}
header.site.scrolled .wrap{height:66px}
header.site.scrolled .logo img{height:34px}
@media (max-width:1180px){nav.main{top:100%}}
.btn{transition:background-color .2s,color .2s,border-color .2s,transform .2s,box-shadow .2s}
.btn-gold:hover{transform:translateY(-2px);box-shadow:0 8px 20px rgba(194,155,82,.35)}
.btn-line:hover{transform:translateY(-2px)}
.coll .pics{overflow:hidden}
.coll .pics img{transition:transform .9s cubic-bezier(.2,.7,.2,1)}
.coll:hover .pics img{transform:scale(1.03)}
.coll .pics img + img{transition-delay:.05s}
.review,.mat,.area,.styles>div{transition:transform .3s ease,background-color .3s ease}
.review:hover{transform:translateY(-4px);background:#38393c}
.faq summary{transition:color .2s}
.faq summary:hover{color:var(--gold-deep)}
@media (prefers-reduced-motion:no-preference){
  /* Opening sequence: text rises, photo wipes up, dimension lines draw like a shop drawing */
  .hero .crumbs,.hero h1,.hero .lede,.hero .btns,.hero .hero-facts{animation:mmc-rise .9s cubic-bezier(.2,.7,.2,1) both}
  .hero h1{animation-delay:.05s}
  .hero .lede{animation-delay:.18s}
  .hero .btns{animation-delay:.3s}
  .hero .hero-facts{animation-delay:.42s}
  .hero .drawing img{animation:mmc-wipe 1.25s cubic-bezier(.7,0,.2,1) .1s both}
  .hero .dim-h svg{transform-origin:0 50%;animation:mmc-draw-x .9s cubic-bezier(.6,0,.2,1) .75s both}
  .hero .dim-v svg{transform-origin:50% 100%;animation:mmc-draw-y .9s cubic-bezier(.6,0,.2,1) .95s both}
  .hero .dim span{animation:mmc-fade .6s ease 1.5s both}
  /* Scroll reveals (classes added by site.js only to content below the fold) */
  .rv{opacity:0;transform:translateY(32px);transition:opacity .85s cubic-bezier(.2,.7,.2,1),transform .85s cubic-bezier(.2,.7,.2,1);transition-delay:var(--d,0s)}
  .rv.in{opacity:1;transform:none}
  .rv-img{opacity:0;clip-path:inset(16% 0 0 0);transition:clip-path 1.15s cubic-bezier(.7,0,.2,1),opacity .7s ease;transition-delay:var(--d,0s)}
  .rv-img.in{opacity:1;clip-path:inset(0 0 0 0)}
  .steps.rv-line{border-top-color:transparent;position:relative}
  .steps.rv-line::before{content:"";position:absolute;left:0;right:0;top:-1.5px;height:1.5px;background:var(--ink);transform:scaleX(0);transform-origin:0 50%;transition:transform 1.3s cubic-bezier(.7,0,.2,1)}
  .steps.rv-line.in::before{transform:scaleX(1)}
  .steps .step .n{display:inline-block}
  .steps .step.rv .n{transform:translateY(16px);opacity:0;transition:transform .7s cubic-bezier(.2,.7,.2,1),opacity .7s;transition-delay:calc(var(--d,0s) + .15s)}
  .steps .step.rv.in .n{transform:none;opacity:1}
}
@keyframes mmc-rise{from{opacity:0;transform:translateY(36px)}to{opacity:1;transform:none}}
@keyframes mmc-fade{from{opacity:0}to{opacity:1}}
@keyframes mmc-wipe{from{clip-path:inset(100% 0 0 0)}to{clip-path:inset(0 0 0 0)}}
@keyframes mmc-draw-x{from{transform:scaleX(0)}to{transform:scaleX(1)}}
@keyframes mmc-draw-y{from{transform:scaleY(0)}to{transform:scaleY(1)}}

/* ---------- 1.2.0: line-drawing images, more services, live Google reviews ---------- */
.elev{background:var(--charcoal);aspect-ratio:4/5;display:grid;place-items:center;width:100%}
.elev svg{width:76%;height:auto;overflow:visible}
.more-svcs{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-top:clamp(36px,4vw,56px)}
.more-card{display:grid;grid-template-columns:170px 1fr;gap:24px;align-items:center;background:var(--charcoal);color:#fff;text-decoration:none;padding:18px;border-radius:2px;transition:transform .3s ease,box-shadow .3s ease}
.more-card .elev{aspect-ratio:4/5;background:#232426}
.more-card b{display:block;font-variation-settings:"wdth" 75;font-size:24px;line-height:1.1;margin-bottom:8px}
.more-card .more-txt>span{display:block;color:var(--muted-dark);font-size:15.5px;margin-bottom:14px}
.more-card em{font-style:normal;font-weight:600;color:var(--gold-hi);border-bottom:1.5px solid currentColor;padding-bottom:2px}
.more-card:hover{transform:translateY(-4px);box-shadow:0 14px 34px rgba(0,0,0,.18)}
@media (max-width:860px){.more-svcs{grid-template-columns:1fr}.more-card{grid-template-columns:120px 1fr}}
.reviews-top .btns{flex-shrink:1;min-width:0}
.grw-wrap{margin-top:8px}
.grw-wrap,.grw-wrap *{font-family:inherit}
@media (prefers-reduced-motion:no-preference){
  .hero .elev{animation:mmc-fade .6s ease both}
  .hero .elev path{stroke-dasharray:1;stroke-dashoffset:1;animation:mmc-draw-path 1.6s cubic-bezier(.6,0,.2,1) forwards}
  .hero .elev path:nth-child(2n){animation-delay:.15s}
  .hero .elev path:nth-child(3n){animation-delay:.3s}
  .hero .elev path:nth-child(4n){animation-delay:.45s}
  .hero .elev path[stroke-dasharray=".02 .02"]{stroke-dasharray:.02 .02;stroke-dashoffset:0;animation:mmc-fade 1s ease 1.2s both}
}
@keyframes mmc-draw-path{to{stroke-dashoffset:0}}

.grw-wrap{overflow:hidden}
.grw-wrap .wp-google-scale,.grw-wrap .grw-header,.grw-wrap .grw-header *{color:#ECE8E1!important}
body{overflow-x:clip}
