/* Grech design-system PDFs. User-confirmed: Cormorant 600 headings; Soft Gold #B58A47. */
@font-face{font-family:'Manrope';src:url('assets/fonts/manrope.ttf') format('truetype');font-weight:200 800;font-style:normal;font-display:swap}
@font-face{font-family:'Cormorant Garamond';src:url('assets/fonts/cormorantgaramond.ttf') format('truetype');font-weight:300 700;font-style:normal;font-display:swap}
:root{
 --gj-charcoal:#141312;--gj-charcoal-soft:#1b1917;--gj-charcoal-card:#211f1c;
 --gj-text-dark:#2e2926;--gj-text-body:#403b37;--gj-text-muted:#625b52;
 --gj-cream:#ede5d7;--gj-cream-soft:#f3eddf;--gj-cream-card:#f8f3ea;--gj-paper:#efe6d6;
 --gj-border-light:#d8cbb7;--gj-border-dark:#39342e;
 --gj-gold:#9c7430;--gj-gold-rich:#8e682a;--gj-gold-soft:#b58a47;--gj-gold-button:#b88c46;--gj-gold-line:#c8b08a;
 --gj-text-light:#f8f3ea;--gj-text-light-body:#cfc6b8;--gj-text-light-muted:#9f968a;
 --gj-charcoal-rgb:20 19 18;
 --gj-font-heading:'Cormorant Garamond',Georgia,serif;--gj-font-body:'Manrope',Arial,sans-serif;
 --gj-text-h1:56px;--gj-text-h2:48px;--gj-text-h2-small:36px;--gj-text-h3:24px;--gj-text-:is(h3,h4):20px;
 --gj-text-eyebrow1:22px;--gj-text-eyebrow2:16px;--gj-text-body-size:16px;--gj-text-body-lg:18px;--gj-text-small:14px;
 --gj-text-button-desktop:16px;--gj-text-button-tablet:12px;--gj-text-button-mobile:14px;
 --gj-text-input-label:14px;--gj-text-input-placeholder:15px;--gj-text-day:15px;--gj-text-caption:11px;--gj-text-overline:10px;
 --gj-space-4:4px;--gj-space-8:8px;--gj-space-12:12px;--gj-space-16:16px;--gj-space-24:24px;--gj-space-32:32px;--gj-space-48:48px;--gj-space-64:64px;--gj-space-96:96px;--gj-space-120:120px;--gj-space-160:160px;
 --gj-radius-none:0;--gj-radius-sm:4px;--gj-radius-md:8px;--gj-radius-lg:12px;--gj-radius-xl:16px;--gj-radius-full:999px;
 --gj-border-thin:1px;--gj-border-medium:2px;--gj-border-dashed:1px;--gj-border-dotted:1px;
 --gj-shadow-none:none;--gj-shadow-sm:0 2px 8px rgb(var(--gj-charcoal-rgb)/.08);--gj-shadow-md:0 6px 20px rgb(var(--gj-charcoal-rgb)/.12);--gj-shadow-lg:0 12px 32px rgb(var(--gj-charcoal-rgb)/.16);
 --gj-motion-fast:150ms;--gj-motion-standard:250ms;--gj-motion-slow:400ms;--gj-motion-editorial:700ms;--gj-ease-editorial:cubic-bezier(.22,1,.36,1);
 --gj-icon-sm:16px;--gj-icon-md:20px;--gj-icon-lg:24px;--gj-icon-xl:32px;
 --gj-page-margin:max(80px,calc((100vw - 1280px)/2));
 --charcoal:var(--gj-charcoal);--cream:var(--gj-cream);--paper:var(--gj-cream-card);--gold:var(--gj-gold);--gold-dark:var(--gj-gold-rich);--ink:var(--gj-text-dark);--line:var(--gj-border-light);--body:var(--gj-font-body);--heading:var(--gj-font-heading);--section-stroke:var(--gj-gold-line);
}
body{font-family:var(--gj-font-body);font-size:var(--gj-text-body-size);line-height:1.5;background:var(--gj-cream);color:var(--gj-text-body)}
.container{width:min(1280px,calc(100% - 160px))}.header{padding-inline:var(--gj-page-margin)}
h1,h2,h3{font-family:var(--gj-font-heading);font-weight:600;color:var(--gj-text-dark);font-variant:normal;letter-spacing:0}h1{font-size:var(--gj-text-h1);line-height:1.15}h2{font-size:var(--gj-text-h2);line-height:1.5}h3{font-size:var(--gj-text-h3);line-height:1.15;letter-spacing:.03em}.dark h1,.dark h2,.dark h3,.contact h2{color:var(--gj-text-light)}
.dark{background:var(--gj-charcoal);color:var(--gj-text-light-body)}.cream{background:var(--gj-cream)}.dark .button,.dark .brand{color:var(--gj-text-light)}
.eyebrow{font-family:var(--gj-font-heading);font-size:var(--gj-text-eyebrow1);font-weight:600;line-height:1.15;letter-spacing:.12em;color:var(--gj-gold)}
.hero-content>p:not(.eyebrow),.copy>p:not(.eyebrow){font-size:var(--gj-text-body-lg);line-height:1.5}.hero-content>p:not(.eyebrow){max-width:560px}.copy{max-width:560px}.gold{color:var(--gj-gold-soft)}
.rule,.signature{border-color:var(--gj-gold-line)}.rule{background:var(--gj-gold-line)}.signature{color:var(--gj-text-muted);font-size:var(--gj-text-caption);font-family:var(--gj-font-heading);font-weight:500;letter-spacing:.16em}.dark .signature{color:var(--gj-text-light-muted)}
.button{font-family:var(--gj-font-body);font-size:var(--gj-text-button-desktop);font-weight:600;line-height:1.4;letter-spacing:.06em;border-radius:var(--gj-radius-md);background:var(--gj-gold-button);border-color:var(--gj-gold-button);color:var(--gj-charcoal);transition:transform var(--gj-motion-standard) ease-in-out,background var(--gj-motion-standard) ease-in-out,color var(--gj-motion-standard) ease-in-out,box-shadow var(--gj-motion-standard) ease-in-out}
.button:hover:not(:disabled){background:var(--gj-gold);color:var(--gj-text-light);box-shadow:var(--gj-shadow-sm)}.button:active:not(:disabled){background:var(--gj-gold-rich);color:var(--gj-text-light)}.button:disabled{background:var(--gj-border-light);border-color:var(--gj-border-light);color:var(--gj-text-muted)}
.button.secondary{background:transparent;border-color:var(--gj-border-dark);color:var(--gj-text-light)}.button.secondary:hover{background:var(--gj-charcoal-card);border-color:var(--gj-gold);color:var(--gj-gold)}.button.secondary:active{background:var(--gj-charcoal-soft);color:var(--gj-gold-soft)}
.button.outline{background:transparent;border-color:var(--gj-gold);color:var(--gj-gold)}.button.outline:hover{background:var(--gj-gold);color:var(--gj-charcoal)}.button.outline:active{background:var(--gj-gold-rich);color:var(--gj-text-light)}
.header #navigation>.button{font-size:14px;letter-spacing:0;color:var(--gj-text-light)}.header #navigation>.button:hover{background:var(--gj-gold-button);color:var(--gj-charcoal)}.header #navigation>.button:active{background:var(--gj-gold);color:var(--gj-text-light)}.header nav>a:not(.button):after{background:var(--gj-gold-button);transition-duration:var(--gj-motion-standard)}
.trust-card{border-radius:var(--gj-radius-lg);padding:var(--gj-space-16)}.trust-card:hover{background:var(--gj-cream-soft);box-shadow:var(--gj-shadow-md)}.trust-card h3,.service-card h3{font-size:var(--gj-text-h3);font-weight:600;line-height:1.15;letter-spacing:.03em}.trust-card p,.service-card p{font-size:var(--gj-text-body-size);line-height:1.5}.trust-card svg{color:var(--gj-gold);stroke-linejoin:round}
.service-card{border-radius:var(--gj-radius-lg);gap:var(--gj-space-16)}.service-card:hover{background:var(--gj-charcoal-card);border-color:var(--gj-border-dark)}.service-card>img{border-radius:var(--gj-radius-md)}.ring-icon{background-color:var(--gj-gold);background-image:none;mask:center/contain no-repeat url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 32' fill='none' stroke='black' stroke-linejoin='round' stroke-width='1.75'%3E%3Ccircle cx='15' cy='20' r='10'/%3E%3Cpath d='M9 4h12l3 5-9 6-9-6zM6 9h18M9 4l6 11 6-11'/%3E%3C/svg%3E")}
.process-steps{gap:var(--gj-space-32) var(--gj-space-16)}.process-steps li{font-size:var(--gj-text-caption);color:var(--gj-text-body)}.process-steps span{color:var(--gj-gold);border-color:var(--gj-border-light)}
.workbench>img:first-child,.process-photo{box-shadow:var(--gj-shadow-lg)}.detail-ring{border-radius:var(--gj-radius-lg);box-shadow:var(--gj-shadow-md);transition:transform var(--gj-motion-editorial) var(--gj-ease-editorial),box-shadow var(--gj-motion-editorial) var(--gj-ease-editorial)}.detail-ring:hover{box-shadow:var(--gj-shadow-lg)}
.gallery-thumbs{overflow-x:auto;overflow-y:hidden;overscroll-behavior-inline:contain;scroll-snap-type:x proximity;scrollbar-width:thin;scrollbar-color:var(--gj-gold) var(--gj-charcoal-card);gap:var(--gj-space-4);padding-bottom:var(--gj-space-8)}.gallery-thumbs button{flex:0 0 calc((100% - 16px)/5);min-width:0;scroll-snap-align:start;opacity:.7;transition:opacity var(--gj-motion-fast) ease-out,border-color var(--gj-motion-fast) ease-out}.gallery-thumbs button:hover,.gallery-thumbs button:focus-visible,.gallery-thumbs button[aria-pressed=true]{opacity:1;border-color:var(--gj-gold)}
.gallery-controls button{border-color:var(--gj-border-light);border-radius:var(--gj-radius-sm);color:var(--gj-text-light)}.gallery-controls button:hover{background:var(--gj-charcoal-card)}
.reviews>div>p:not(.eyebrow),.review-grid p{font-size:var(--gj-text-body-size)}.review-grid blockquote{background:var(--gj-cream-soft);border-radius:var(--gj-radius-lg);padding:var(--gj-space-32) var(--gj-space-32) var(--gj-space-24) var(--gj-space-48)}.review-grid cite{font-size:var(--gj-text-small)}
.brands img{opacity:.7;transition:opacity var(--gj-motion-standard) ease-in-out}.brands img:hover{opacity:1}
.booking-panel,.contact-panel{background:var(--gj-cream-card);border-radius:var(--gj-radius-xl);box-shadow:var(--gj-shadow-lg);padding:var(--gj-space-32)}.booking-panel h3{font-family:var(--gj-font-body);font-size:28px;font-weight:550;line-height:1.3;letter-spacing:0;color:var(--gj-text-dark)}.booking-panel p{font-size:var(--gj-text-small);color:var(--gj-text-muted)}.check-list{font-size:var(--gj-text-body-size)}.check-list:before,.check-list li:before{background:var(--gj-gold)}.calendar button{font-size:var(--gj-text-day);color:var(--gj-text-body)}.calendar button:disabled{color:var(--gj-text-muted);opacity:.45}.calendar button[aria-pressed=true],.times button[aria-pressed=true]{background:var(--gj-gold);color:var(--gj-text-light)}.times button{font-size:var(--gj-text-small);border-color:var(--gj-border-light);border-radius:var(--gj-radius-sm)}.preview-note{font-size:var(--gj-text-caption)!important}
.contact-tabs button,.visit-layout :is(h3,h4),.contact-details :is(h3,h4),footer :is(h3,h4){font-size:var(--gj-text-small);font-weight:500;color:var(--gj-gold)}.visit-layout li,.visit-layout aside p,.contact-details,.footer-grid{font-size:var(--gj-text-small);line-height:1.5}.contact-details{gap:var(--gj-space-24);padding:var(--gj-space-24)}.contact-details>.button{font-size:14px;letter-spacing:0}.contact-tabs{gap:var(--gj-space-16)}
dialog{background:var(--gj-cream-card);border-radius:var(--gj-radius-xl);box-shadow:var(--gj-shadow-lg)}dialog h2{font-family:var(--gj-font-body);font-size:28px;font-weight:550;line-height:1.3}dialog label{font-size:var(--gj-text-input-label);line-height:1.6}dialog input,dialog select{font-family:var(--gj-font-body);font-size:var(--gj-text-input-placeholder);border-color:var(--gj-border-light);border-radius:var(--gj-radius-sm);padding:var(--gj-space-12)}
.closing :is(h2,h3),.brands :is(h2,h3){font-variant:normal}.closing .eyebrow{font-size:var(--gj-text-eyebrow1)}.copyright{font-size:var(--gj-text-caption);color:var(--gj-text-light-muted);border-color:var(--gj-border-dark)}footer{border-color:var(--gj-border-dark)}
@media(min-width:1281px){.hero h1{font-size:var(--gj-text-h1)}.workbench>img:first-child{right:calc(-1 * var(--gj-page-margin))}.detail-ring{left:calc(100% + var(--gj-page-margin) - 813px)}.trust-card h3{font-size:var(--gj-text-h3)}}

@media(min-width:640px) and (max-width:1280px){:root{--gj-page-margin:max(40px,calc((100vw - 944px)/2))}.container{width:min(944px,calc(100% - 80px))}.header{padding-inline:var(--gj-page-margin)}.button{font-size:var(--gj-text-button-tablet)}.eyebrow{font-size:var(--gj-text-eyebrow2)}h1{font-size:42px}h2{font-size:var(--gj-text-h2-small);line-height:1.15}.workbench>img:first-child{width:calc(100% + var(--gj-page-margin))}.service-card h3,.trust-card h3{font-size:20px}.service-card p,.trust-card p{font-size:var(--gj-text-small)}.booking-panel h3{font-size:22px}.check-list{font-size:var(--gj-text-small)}.header #navigation>.button{font-size:12px}.contact-tabs button{font-size:12px}}
@media(max-width:639px){:root{--gj-page-margin:20px}.container{width:calc(100% - 40px)}.header{padding-inline:20px}.button{font-size:var(--gj-text-button-mobile)}.header #navigation>.button{font-size:14px}.eyebrow,.closing .eyebrow{font-size:var(--gj-text-eyebrow2)}h1{font-size:36px}h2,.why .copy h2{font-size:32px;line-height:1.15}.hero-content>p:not(.eyebrow),.copy>p:not(.eyebrow){font-size:var(--gj-text-body-size)}.workbench{margin-inline:-20px}.service-card h3,.trust-card h3{font-size:var(--gj-text-h3)}.service-card p,.trust-card p{font-size:var(--gj-text-body-size)}.service-card{grid-template-columns:40% minmax(0,1fr);gap:var(--gj-space-12)}.service-card>img{height:220px}.booking-panel,.contact-panel{padding:var(--gj-space-24)}.booking-panel h3{font-size:22px}.check-list{font-size:var(--gj-text-small)}.contact-tabs button{font-size:10px}.gallery-thumbs button{flex-basis:calc((100% - 8px)/3)}.brands :is(h2,h3){font-size:var(--gj-text-h3)}}
@media(prefers-reduced-motion:reduce){.gallery-thumbs{scroll-behavior:auto}.brands img,.button,.gallery-thumbs button{transition:none}}
.dark .button:not(.secondary):not(.outline){color:var(--gj-charcoal)}
.dark .button:not(.secondary):not(.outline):hover,.dark .button:not(.secondary):not(.outline):active{color:var(--gj-text-light)}
.services,.creations,.brands{border-color:var(--gj-gold-line)}
/* Why Grech review: one alignment frame for title, pillars and signature. */
.trust>h3{font-size:36px;line-height:1.15;letter-spacing:.04em}
.trust-card h3{font-size:24px}.trust-card p{font-size:14px}
.trust-card{transition:transform var(--gj-motion-standard) ease-in-out,box-shadow var(--gj-motion-standard) ease-in-out,background var(--gj-motion-standard) ease-in-out}
.trust-card:hover{transform:translateY(-4px);box-shadow:var(--gj-shadow-md)}
.why>.signature{font-size:20px;color:var(--gj-text-muted);letter-spacing:.1em}.why>.signature span{color:var(--gj-gold)}
@media(min-width:1281px){
 .why>.container:first-child .copy .button{width:272px;height:56px;min-height:56px;font-size:16px}
 .why>.trust,.why>.signature{width:1016px;margin-left:auto;margin-right:var(--gj-page-margin)}
 .trust-grid{margin-left:0;gap:var(--gj-space-24)}
 .why:before{width:1000px;height:760px;left:-180px;background-size:1000px 750px;background-position:left bottom;mask-image:linear-gradient(to right,#000 55%,transparent 90%),linear-gradient(to bottom,transparent,#000 20%);mask-composite:intersect}
}
@media(prefers-reduced-motion:reduce){.trust-card:hover{transform:none}}
@media(min-width:1281px){.why:before{width:1100px;height:825px;left:calc(100vw - var(--gj-page-margin) - 1753px);background-size:1100px 825px;background-position:left calc(100% + 22px)}}
/* Service-card review dimensions and shared editorial dividers. */
.eyebrow,.closing .eyebrow{font-size:22px;color:var(--gj-gold)}
.copy>.rule,.hero-content>.rule{height:2px;background:var(--gj-gold)}
.service-rule{display:block;width:42px;height:1px;background:var(--gj-gold);margin:12px 0}
.service-card .ring-icon{width:48px;height:48px;background-color:var(--gj-gold-soft)}
.service-card h3{font-size:28px;line-height:1.15;margin:8px 0 0;letter-spacing:.03em}
.service-card p{font-family:var(--gj-font-body);font-size:14px;line-height:1.5}
.service-card{transition:transform var(--gj-motion-standard) ease-in-out,background var(--gj-motion-standard) ease-in-out,border-color var(--gj-motion-standard) ease-in-out}
.service-card:hover{transform:translateY(-2px);background:var(--gj-charcoal-card);border-color:var(--gj-border-dark)}
@media(min-width:1281px){
 .services-layout{grid-template-columns:minmax(0,1fr) 866px;gap:48px}
 .service-grid{width:866px;height:880px;grid-template-columns:repeat(2,425px);grid-template-rows:repeat(3,272px);gap:32px 16px}
 .service-card{width:425px;height:272px;padding:15px 11px;grid-template-columns:188px minmax(0,1fr);gap:16px}
 .service-card>img{width:188px;height:240px;object-fit:cover}
 .services .copy h2{font-size:56px;line-height:1.15;color:var(--gj-text-light)}
 .services .copy h2 br{display:block}
}
@media(min-width:640px) and (max-width:1280px){.service-card h3{font-size:24px}.service-card .ring-icon{width:40px;height:40px}}
@media(max-width:639px){.service-card h3{font-size:24px}.service-card .ring-icon{width:40px;height:40px}}
@media(prefers-reduced-motion:reduce){.service-card:hover{transform:none}}

@media(min-width:1281px){.service-card:nth-child(2) h3{letter-spacing:-.02em}}
/* Reviewed navigation, secondary CTA, hero copy and quiet ring motion. */
#home .button.secondary{background:transparent;border:1px solid var(--gj-text-light-muted);color:var(--gj-text-light)}
#home .button.secondary:hover{background:var(--gj-charcoal-card);border-color:var(--gj-gold-line);color:var(--gj-gold-soft)}
#home .button.secondary:active{background:var(--gj-charcoal-soft);border-color:var(--gj-gold);color:var(--gj-gold-line);transform:none}
#navigation>a:not(.button){color:var(--gj-text-light);opacity:.7;transition:opacity 250ms ease-in-out}
#navigation>a:not(.button):hover,#navigation>a:not(.button):focus-visible{color:var(--gj-text-light);opacity:1}
#navigation>.button.outline{color:var(--gj-text-light);background:transparent;border:1px solid var(--gj-gold-soft)}
#navigation>.button.outline:hover{color:var(--gj-charcoal);background:var(--gj-gold-button);border-color:var(--gj-gold-button);transform:translateY(-2px)}
#navigation>.button.outline:active{color:var(--gj-text-light);background:var(--gj-gold);border-color:var(--gj-gold);transform:none}
.detail-ring img{transition:opacity 2s ease-in-out,transform 12s ease-in-out}
.detail-ring img.active{transform:scale(1.012)}
.hero-copy-line{display:inline}
@media(min-width:1281px){.why:before{left:calc(100vw - var(--gj-page-margin) - 1873px)}.hero-copy-line{display:block;white-space:nowrap}.hero-content>p.hero-description{max-width:639px}}
@media(prefers-reduced-motion:reduce){.detail-ring img{transition:none;transform:none!important}#navigation>.button.outline:hover{transform:none}}
/* Why Grech detail review. */
button,.button{border-radius:4px}
#why{background:var(--gj-cream)}
.detail-ring{box-shadow:var(--gj-shadow-md)}
.detail-ring:hover{box-shadow:var(--gj-shadow-lg)}
.detail-ring img{transition:opacity 2s ease-in-out,transform 4.5s ease-in-out}
.detail-ring img.active{transform:scale(1.03)}
.why:before{mask-image:none;-webkit-mask-image:none;opacity:1}
.why .copy .eyebrow{font-size:22px}
.why .copy>p:not(.eyebrow){font-size:18px;line-height:1.5}
.trust>h3{font-family:var(--gj-font-heading);font-size:36px;color:var(--gj-text-dark)}
.trust>.rule{width:64px;height:2px;background:var(--gj-gold)}
.trust-card{border:1px solid transparent}
.trust-card:hover{background:var(--gj-cream-soft);border-color:var(--gj-border-light)}
.trust-card svg{color:var(--gj-gold)}
.trust-card h3{font-size:24px;color:var(--gj-text-dark)}
.trust-card p{font-size:14px;color:var(--gj-text-body)}
.trust-rule{display:block;width:32px;height:2px;margin:14px auto 20px;background:var(--gj-gold)}
@media(min-width:1281px){.why .copy{max-width:639px;width:600px}.why .copy h2{font-size:56px;line-height:1.15}.why-copy-line{display:block;white-space:nowrap}.trust-grid{gap:48px}.trust-card{padding:16px 0}}
@media(prefers-reduced-motion:reduce){.detail-ring img{transition:none;transform:none!important}}
@media(min-width:1281px){.trust-copy-line{display:block}.trust-card svg{height:70px;width:80px;object-fit:contain}}
@media(min-width:1281px){.trust-copy-line{white-space:nowrap}}
button,.button,#navigation .button,.gallery-controls button,.gallery-thumbs button,.calendar button,.times button,.contact-tabs button,.menu-toggle{border-radius:4px}
/* Content-sized pillars and supplied background visuals. */
.trust-card{padding:16px 12px}
#services{background:var(--gj-charcoal)}
.detail-ring img.active{transform:scale(1.05)}
.workbench>img:first-child{border:1px solid var(--gj-border-light)}
.why>.signature{width:min(1280px,calc(100% - 80px));margin-inline:auto;text-align:center}
@media(min-width:1281px){
 .why>.trust{width:max-content;max-width:calc(100% - 80px);margin-inline:auto}
 .trust-grid{display:flex;width:max-content;max-width:100%;gap:48px;justify-content:center}
 .trust-card{flex:0 0 auto;width:max-content;max-width:none;margin:0;padding:16px 12px}
 .why:before{mask-image:linear-gradient(to right,#000 85%,transparent 100%),linear-gradient(to bottom,transparent 0,#000 6%);mask-composite:intersect}
 .services>.service-sketch{display:block;width:680px;height:900px;object-fit:contain;left:calc(var(--gj-page-margin) - 260px);bottom:0;opacity:.3;pointer-events:none}
 .services-layout{position:relative;z-index:1}
}
@media(prefers-reduced-motion:reduce){.detail-ring img.active{transform:none!important}}
@media(min-width:1281px){.why>.trust{margin-left:auto;margin-right:var(--gj-page-margin)}}
/* Preserve the supplied sketch's original colors and built-in cream edge. */
.why:before{mix-blend-mode:normal;filter:none;opacity:1;mask-image:none;-webkit-mask-image:none}
#services{border-top:4px solid var(--gj-gold-line);border-bottom:4px solid var(--gj-gold-line)}
.detail-ring img,.detail-ring img.active{transform:scale(1);transition:opacity 2s ease-in-out;animation:none}
.detail-ring img.zooming{animation:ring-continuous-zoom 6.5s ease-in-out both}
@keyframes ring-continuous-zoom{from{transform:scale(1)}to{transform:scale(1.05)}}
@media(prefers-reduced-motion:reduce){.detail-ring img.zooming{animation:none;transform:none!important}}
/* Supplied SVG icon artwork; card colors follow the design tokens. */
.pillar-icon{display:block;width:80px;height:72px;margin:0 auto 28px;background-color:var(--gj-gold);mask:var(--icon-url) center/contain no-repeat}
.service-card .ring-icon{background-image:none;background-color:var(--gj-gold-soft);mask:var(--icon-url) center/contain no-repeat}
/* Process layout and interaction review. */
.process .copy .eyebrow{font-size:24px;color:var(--gj-gold)}
.process .copy h2{font-size:56px;line-height:1.15;color:var(--gj-text-dark)}
.process .copy>p:not(.eyebrow){font-size:16px;color:var(--gj-text-body)}
.process .copy>.rule{height:2px;background:var(--gj-gold)}
.process-photo{border:1px solid var(--gj-border-light)}
#process .button.outline{font-size:14px;color:var(--gj-gold);background:transparent;border-color:var(--gj-gold)}
#process .button.outline:hover{color:var(--gj-charcoal);background:var(--gj-gold);border-color:var(--gj-gold);transform:translateY(-4px);box-shadow:var(--gj-shadow-sm)}
#process .button.outline:active{color:var(--gj-text-light);background:var(--gj-gold-rich);border-color:var(--gj-gold-rich);transform:none;box-shadow:none}
.process-steps li{position:relative;font-size:14px;letter-spacing:0;color:var(--gj-text-dark);transition:transform 250ms ease-in-out}
.process-steps li:hover{transform:translateY(-4px)}
.process-steps .step-circle{width:64px;height:64px;border-radius:50%;background:var(--gj-paper);border:1px solid var(--gj-border-light);margin:0 auto 12px;transition:background 250ms,border-color 250ms,box-shadow 250ms}
.process-steps li:hover .step-circle{background:var(--gj-cream);border-color:var(--gj-gold);box-shadow:var(--gj-shadow-sm)}
.step-icon{display:block;width:32px;height:32px;background:var(--gj-gold);mask:var(--icon-url) center/contain no-repeat}
.process-steps .step-number,.process-steps .step-label{display:block;width:auto;height:auto;border:0;border-radius:0;font-family:var(--gj-font-body);font-size:14px;margin:0 auto 8px;line-height:1.3}
.process-steps .step-number{color:var(--gj-gold)}
.process-steps .step-label{color:var(--gj-text-dark)}
.process>.signature,.why>.signature{font-size:20px;color:var(--gj-text-muted);letter-spacing:.1em;border-top:1px solid var(--gj-border-light)}
.process>.signature span,.why>.signature span{color:var(--gj-gold-soft)}
.process-sketch{right:4%;top:60px;width:480px;opacity:.16}
@media(min-width:1281px){
 .services-copy-line{display:block;white-space:nowrap}
 .services>.service-sketch{opacity:1}
 #process{height:1432px;padding:370px 0 0}
 #process>.split{display:block;width:100%;margin:0;position:static}
 #process .process-photo{position:absolute;left:0;top:450px;width:781px;height:664px;object-fit:cover;border-radius:0 12px 12px 0}
 #process>.split>div{margin-left:calc(50% - 32px);width:min(650px,calc(50% - 48px))}
 #process .copy{width:350px;max-width:100%}
 .process-steps{margin:80px 0 0;gap:64px 24px}
 .process-steps li:not(:nth-child(4n)):after{content:'';position:absolute;top:32px;left:calc(50% + 48px);width:calc(100% - 72px);height:1px;background:var(--gj-gold-line)}
 .process>.signature{position:absolute;bottom:100px;left:50%;transform:translateX(-50%);width:1084px;margin:0}
}

@media(max-width:639px){.process .copy h2{font-size:36px}.process-sketch{width:230px;opacity:.1}.services-copy-line{display:inline}}
@media(prefers-reduced-motion:reduce){.process-steps li:hover,#process .button.outline:hover{transform:none}}
.process-steps{grid-template-columns:repeat(4,minmax(0,1fr))}
.process-steps li{min-width:0}
@media(max-width:1280px){.process-steps{grid-template-columns:repeat(2,minmax(0,1fr))}.process .copy h2{font-size:36px}}
/* Keep connectors fixed while the step content lifts. */
.process-steps li:hover{transform:none}
.process-steps .step-content{transition:transform 250ms ease-in-out}
.process-steps li:hover .step-content,.process-steps li.is-guided .step-content{transform:translateY(-4px)}
.process-steps li.is-guided .step-circle{background:var(--gj-cream);border-color:var(--gj-gold);box-shadow:var(--gj-shadow-sm)}
@media(min-width:1281px){
 .process-steps li:not(:nth-child(4n)):after{height:2px;background:var(--gj-gold-line)}
 .process-steps li:not(:nth-child(4n)):before{content:'';position:absolute;top:32px;left:calc(50% + 48px);width:calc(100% - 72px);height:2px;pointer-events:none;background:linear-gradient(90deg,transparent 35%,var(--gj-text-light) 50%,transparent 65%);background-size:300% 100%;background-position:100% 0;opacity:0;z-index:1}
 .process-steps li.is-glimmering:before{animation:process-glimmer 650ms ease-in-out both}
}
@keyframes process-glimmer{0%{background-position:100% 0;opacity:0}15%{opacity:1}85%{opacity:1}100%{background-position:0 0;opacity:0}}
@media(prefers-reduced-motion:reduce){.process-steps li:hover .step-content,.process-steps li.is-guided .step-content{transform:none}.process-steps li.is-glimmering:before{animation:none}}
/* Slower, softer process lift. */
.process-steps .step-content{transition:transform 800ms cubic-bezier(.45,0,.55,1)}
.process-steps .step-circle{transition:background 800ms ease-in-out,border-color 800ms ease-in-out,box-shadow 800ms ease-in-out}
.process-steps li:hover .step-circle,.process-steps li.is-guided .step-circle{box-shadow:0 8px 48px rgba(20,19,18,.24)}
.process-steps li.is-glimmering:before{animation-duration:850ms}

/* Individual process icon dimensions, preserving the supplied SVG proportions. */
.process-steps li:nth-child(1) .step-icon{width:31.630000px;height:31.630000px}
.process-steps li:nth-child(2) .step-icon{width:27.200000px;height:31.085714px}
.process-steps li:nth-child(3) .step-icon{width:36.920000px;height:31.930811px}
.process-steps li:nth-child(4) .step-icon{width:31.870000px;height:31.870000px}
.process-steps li:nth-child(5) .step-icon{width:23.980541px;height:36.970000px}
.process-steps li:nth-child(6) .step-icon{width:32.000000px;height:28.000000px}
.process-steps li:nth-child(7) .step-icon{width:34.000000px;height:31.000000px}
.process-steps li:nth-child(8) .step-icon{width:33.310000px;height:31.350588px}
/* Consistent, unhurried button lift and return. */
.button,button{transition:transform 800ms ease-in-out,box-shadow 800ms ease-in-out,background-color 400ms ease-in-out,border-color 400ms ease-in-out,color 400ms ease-in-out}
#home .button:not(.secondary):hover,#why .copy>.button:hover{box-shadow:var(--gj-shadow-sm)}
#home .button:not(.secondary):active,#why .copy>.button:active{box-shadow:none}
@media(min-width:1281px){#process .copy{width:430px}.process-copy-line{display:block;white-space:nowrap}}
@media(prefers-reduced-motion:reduce){.button,button{transition:none}}
/* Ring depth and reviewed gallery states. */
.detail-ring{transition:transform 800ms ease-in-out,box-shadow 800ms ease-in-out}
.detail-ring:hover{box-shadow:0 20px 48px rgba(20,19,18,.18)}
@keyframes ring-continuous-zoom{from{transform:scale(1)}to{transform:scale(1.10)}}
.trust>h3{color:var(--gj-text-dark)}
.why .why-description{color:var(--gj-text-body)}
.creations .eyebrow{font-size:22px;color:var(--gj-gold)}
.creations .copy h2{font-size:56px;line-height:1.15;color:var(--gj-text-light)}
.creations .copy>.rule{width:116px;height:2px;background:var(--gj-gold)}
.creations .copy>.creations-description{font-size:16px;line-height:1.5;color:var(--gj-text-light-body)}
.creations .copy>.gold{font-size:18px;color:var(--gj-gold-button)}
.gallery-controls{gap:16px}
.gallery-controls button{display:grid;place-items:center;width:56px;height:56px;padding:0;background:rgba(33,31,28,.55);border:1px solid var(--gj-text-muted);color:var(--gj-paper)}
.gallery-controls button svg{height:28px;width:16px;display:block}
.gallery-controls button:hover{background:var(--gj-charcoal-card);border-color:var(--gj-gold);color:var(--gj-paper)}
.gallery-controls button:active{background:var(--gj-charcoal-card);border-color:var(--gj-gold);color:var(--gj-gold)}
.gallery-thumbs{gap:4px;scrollbar-width:thin;scrollbar-color:var(--gj-text-muted) var(--gj-charcoal-card)}
.gallery-thumbs::-webkit-scrollbar{height:4px}
.gallery-thumbs::-webkit-scrollbar-thumb{background:var(--gj-text-muted);border-radius:4px}
.gallery-thumbs::-webkit-scrollbar-track{background:var(--gj-charcoal-card)}
#gallery-thumbs button{flex:0 0 188px;width:188px;height:196px;padding:0;background:var(--gj-charcoal);border:1.1px solid var(--gj-border-dark);opacity:1;overflow:hidden;transition:border-color 400ms ease-in-out}
#gallery-thumbs button img{width:100%;height:100%;object-fit:cover;opacity:.55;transition:opacity 400ms ease-in-out}
#gallery-thumbs button:hover{border-color:var(--gj-text-muted)}
#gallery-thumbs button:hover img,#gallery-thumbs button[aria-pressed=true] img{opacity:1}
#gallery-thumbs button[aria-pressed=true]{border-color:var(--gj-gold)}
.gallery>.signature{font-size:20px;color:var(--gj-text-muted);border-top:1px solid var(--gj-border-light);width:100%;letter-spacing:.1em}
@media(min-width:1281px){.gallery-layout{grid-template-columns:minmax(0,1fr) 848px;gap:56px}.gallery-main>img{width:848px;height:524px;object-fit:cover}.gallery>.signature{width:856px;max-width:none;margin-left:-4px}.creations-copy-line{display:block;white-space:nowrap}}
@media(max-width:639px){.creations .copy h2{font-size:36px}}
@media(prefers-reduced-motion:reduce){#gallery-thumbs button img,.detail-ring{transition:none}}
@media(min-width:1281px){.gallery-layout{grid-template-columns:max-content 848px;gap:32px;justify-content:start}.creations .copy{width:max-content;max-width:none}}
.gallery-main{isolation:isolate}
.gallery-main>.gallery-outgoing{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;pointer-events:none;z-index:1}
.gallery-controls{z-index:2}
#gallery-thumbs{cursor:grab;touch-action:pan-x pan-y}
#gallery-thumbs.is-dragging{cursor:grabbing;scroll-snap-type:none;user-select:none}
#gallery-thumbs button{cursor:inherit}
.gallery>.signature{margin-top:80px;border-top-color:var(--gj-text-muted)}
/* Review typography, flowing cards and page indicators. */
.eyebrow,.closing .eyebrow{letter-spacing:.12em}
.reviews .eyebrow{font-size:22px;color:var(--gj-gold)}
.reviews h2{font-size:56px;color:var(--gj-text-dark);line-height:1.15}
.reviews .rule{width:116px;height:2px;background:var(--gj-gold)}
#reviews .review-intro{font-size:18px;color:#2e2c2c}
.review-window{margin-top:64px;overflow:hidden;mask-image:linear-gradient(to right,transparent,#000 5%,#000 95%,transparent)}
#review-track{display:flex;gap:24px;width:100%;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;margin:0;padding:8px 64px 16px;text-align:left;align-items:stretch}
#review-track::-webkit-scrollbar{display:none}
#review-track blockquote{position:relative;flex:0 0 464px;width:464px;min-height:196px;max-width:none;margin:0;padding:28px 28px 28px 56px;border:1px solid var(--gj-border-light);background:var(--gj-cream-soft);border-radius:8px;scroll-snap-align:start;display:flex;flex-direction:column;transition:background 400ms ease-in-out,border-color 400ms ease-in-out}
#review-track blockquote:hover{background:var(--gj-cream-card);border-color:var(--gj-gold)}
#review-track .quote-icon{position:absolute;left:22px;top:23px;width:20px;height:auto;font-family:var(--gj-font-heading);font-size:42px;line-height:1;color:var(--gj-gold)}
#review-track blockquote p{font-size:14px;line-height:1.6;color:var(--gj-text-muted);margin:0 0 24px}
#review-track blockquote cite{font-size:14px;color:var(--gj-text-dark);font-style:normal;margin-top:auto}
.review-pagination{display:flex;justify-content:center;gap:12px;margin-top:24px}
.review-pagination button{width:10px;height:10px;padding:0;border:0;border-radius:999px;background:var(--gj-border-light);transition:width 400ms ease,background 400ms ease}
.review-pagination button[aria-pressed=true]{width:28px;background:var(--gj-gold-button)}
@media(min-width:1281px){.creations .copy{margin-top:64px}}
@media(max-width:639px){.reviews h2{font-size:36px}#review-track{padding-inline:20px;gap:16px}#review-track blockquote{flex-basis:min(464px,calc(100vw - 40px));width:min(464px,calc(100vw - 40px));padding:24px 24px 24px 50px}}
/* Continuous three-card review ribbon and booking grounding. */
.review-window{width:min(1440px,calc(100% - 40px));margin-inline:auto;mask-image:linear-gradient(to right,transparent,#000 33%,#000 67%,transparent)}
#review-track{width:max-content;overflow:visible;scroll-snap-type:none;padding:12px 0 32px;animation:review-flow 100s linear infinite;gap:24px}
.review-window:hover #review-track,.review-window:focus-within #review-track,.review-window.is-review-paused #review-track{animation-play-state:paused}
@keyframes review-flow{from{transform:translateX(0)}to{transform:translateX(-2440px)}}
#review-track blockquote{transition:transform 800ms ease-in-out,box-shadow 800ms ease-in-out,background 400ms ease-in-out,border-color 400ms ease-in-out}
#review-track blockquote:hover{transform:translateY(-4px);box-shadow:0 12px 16px rgba(0,0,0,.12)}
#review-track .quote-icon{width:24px;height:24px;top:28px;left:20px}
.reviews .review-intro{font-size:18px}
.booking-intro>img{border:1px solid var(--gj-border-light);box-shadow:0 22px 60px rgba(20,19,18,.10)}
.booking-intro .eyebrow{font-size:22px;color:var(--gj-gold);letter-spacing:.12em}
.booking-intro h2{font-size:56px;line-height:1.15;color:var(--gj-text-dark)}
.booking-intro h2 .gold{color:var(--gj-gold)}
.booking-intro .rule{width:116px;height:2px;background:var(--gj-gold)}
.booking-intro .booking-description{font-size:18px;color:var(--gj-text-body)}
.booking-panel{background:rgba(248,243,234,.90);border:1px solid var(--gj-border-light);border-radius:18px;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);padding:40px 48px;box-shadow:0 28px 70px rgba(20,19,18,.10)}
@media(min-width:1281px){
 .booking-intro{position:relative;height:762px;display:block}
 .booking-intro>.copy{position:relative;z-index:1;width:450px;max-width:none;padding-top:120px}
 .booking-copy-line{display:block;white-space:nowrap}
 .booking-intro>img{position:absolute;right:calc(-1 * var(--gj-page-margin));top:0;width:1137px;height:762px;max-width:none;object-fit:cover;border-radius:12px 0 0 12px}
 .booking-panel{width:1180px;height:496px;margin:-180px auto 0;grid-template-columns:1.1fr 1fr 1fr}
}
@media(max-width:1280px){.booking-intro h2{font-size:48px}.booking-panel{height:auto}}
@media(max-width:639px){.booking-intro h2{font-size:36px}.booking-panel{padding:24px}.review-window{mask-image:linear-gradient(to right,transparent,#000 8%,#000 92%,transparent)}#review-track blockquote{flex-basis:464px;width:464px;max-width:calc(100vw - 40px)}}
@media(prefers-reduced-motion:reduce){#review-track{animation:none;width:100%;overflow-x:auto;scroll-snap-type:x proximity}#review-track blockquote[aria-hidden=true]{display:none}#review-track blockquote:hover{transform:none}}
@keyframes review-flow{from{transform:translateX(0)}to{transform:translateX(calc(-1 * var(--review-loop-distance,2440px)))}}
/* Booking card typography and supplied booking icons. */
#booking .booking-panel h3{font-size:28px;color:#2E2926}
#booking .booking-panel>div>p{font-size:16px;color:#403B37}
#booking .booking-panel>div:nth-child(2)>p{text-align:center}
#booking .booking-panel>div:nth-child(3)>h3,#booking .booking-panel>div:nth-child(3)>p:not(.duration){text-align:right}
#booking .check-list{display:flex;flex-direction:column;gap:24px;font-size:16px;color:#403B37}
#booking .check-list li{margin:0;padding-left:32px;min-height:24px;line-height:24px}
#booking .check-list li:before{content:'';width:24px;height:24px;top:0;background:var(--gj-gold) url('assets/icons/booking/tick.svg') center/13px 9px no-repeat;border-radius:50%}
#booking .calendar,#booking .calendar-week{grid-template-columns:repeat(7,40px);justify-content:space-between;gap:3px 0}
#booking .calendar button{width:40px;height:40px;min-height:40px;font-size:15px;color:#2E2926}
#booking .calendar button:disabled{color:var(--gj-text-muted);opacity:.45}
#booking .calendar button[aria-pressed=true]{color:var(--gj-text-light)}
#booking .duration{display:flex;align-items:center;justify-content:flex-start;gap:8px;text-align:left}
#booking .duration img{width:24px;height:24px;flex:none}
.review-window{touch-action:pan-y;cursor:grab}
.review-window.is-review-dragging{cursor:grabbing;user-select:none}
.review-window.is-review-dragging #review-track,.review-window.is-review-touch-paused #review-track{animation-play-state:paused}
/* Calendar day states and consultation action. */
#booking .booking-panel>div:nth-child(2)>h3{text-align:center}
#booking .calendar button{border-radius:999px;background:transparent;border:1px solid transparent;color:var(--gj-text-body);opacity:1}
#booking .calendar button:disabled{color:var(--gj-text-body);opacity:.45}
#booking .calendar button[aria-current=date]{background:transparent;border-color:var(--gj-border-light)}
#booking .calendar button:hover:not(:disabled){background:var(--gj-cream-card);border-color:var(--gj-gold)}
#booking .calendar button[aria-pressed=true],#booking .calendar button[aria-pressed=true]:hover{background:var(--gj-gold-button);border-color:var(--gj-gold-button);color:var(--gj-text-light)}
#booking #continue-booking{width:336px;max-width:100%;height:48px;min-height:48px;padding:0 24px}
@media(min-width:1281px){#booking .booking-panel{grid-template-columns:1.1fr 1fr 336px}}
#booking .calendar-heading button{width:32px;height:32px;padding:0;display:grid;place-items:center;background:var(--gj-cream-card);border:1px solid var(--gj-border-light);color:var(--gj-gold-rich);transition:background 400ms ease-in-out,border-color 400ms ease-in-out}
#booking .calendar-heading button svg{height:16px;width:auto;aspect-ratio:16/28;display:block}
#booking .calendar-heading button:hover:not(:disabled){background:var(--gj-cream-soft);border-color:var(--gj-gold-rich)}
#booking .calendar-heading button:active:not(:disabled){background:var(--gj-cream-card);border-color:var(--gj-gold)}
/* Stable time-column footer and booking column dividers. */
#booking #month-label{font-size:16px;color:var(--gj-text-body)}
#booking .booking-panel>div:nth-child(3){display:grid;grid-template-rows:auto auto minmax(0,1fr) auto auto;min-height:416px;min-width:0}
#booking #times{min-height:0;overflow-y:auto;align-content:start}
#booking .booking-panel>div:nth-child(3)>.duration{margin:16px 0 12px}
#booking #continue-booking{align-self:end}
@media(min-width:1281px){
 #booking .booking-panel>div{position:relative}
 #booking .booking-panel>div:nth-child(2):before,#booking .booking-panel>div:nth-child(3):before{content:'';position:absolute;top:0;left:-15px;width:1px;height:348px;background:var(--gj-border-light);pointer-events:none}
}
#booking .booking-panel>div:nth-child(3):has(#continue-booking:disabled)>.duration{font-size:15px;color:var(--gj-text-body)}
@media(min-width:1281px){
 #booking .booking-panel{gap:48px;grid-template-columns:minmax(0,1fr) minmax(0,1fr) 336px;padding-top:39px;padding-bottom:39px}
 #booking .booking-panel>div{height:416px;min-height:0}
 #booking .booking-panel>div:nth-child(2):before,#booking .booking-panel>div:nth-child(3):before{top:50%;transform:translateY(-50%);left:-24.5px;height:348px}
 #booking .booking-panel h3{margin-bottom:8px}
 #booking .booking-panel>div>p:not(.duration){margin-bottom:0}
 #booking .check-list{margin-top:48px;margin-bottom:0}
 #booking .calendar-heading{position:absolute;top:104px;left:0;width:100%;margin:0}
 #booking .calendar-week{position:absolute;top:152px;left:0;width:100%;margin:0}
 #booking .calendar{position:absolute;top:174px;left:0;width:100%;row-gap:0}
 #booking .booking-panel>div:nth-child(3){display:block}
 #booking #times{position:absolute;top:104px;bottom:100px;left:0;right:0}
 #booking .booking-panel>div:nth-child(3)>.duration{position:absolute;bottom:60px;left:0;right:0;margin:0}
 #booking #continue-booking{position:absolute;bottom:0;right:0}
}
/* Connected booking steps within the original card. */
#booking .booking-panel [hidden]{display:none!important}
#booking .booking-panel>section{min-width:0;position:relative}
#booking .booking-panel[data-step=details]>.booking-request-stage:before,#booking .booking-panel[data-step=details]>.booking-details-stage:before{content:'';position:absolute;left:-24.5px;top:50%;transform:translateY(-50%);width:1px;height:348px;background:var(--gj-border-light)}
.booking-back{width:32px;height:32px;display:grid;place-items:center;border:1px solid var(--gj-border-light);background:var(--gj-cream-card);color:var(--gj-gold);padding:0}
.booking-back svg{height:16px;width:auto;aspect-ratio:16/28}
.booking-back:hover{background:var(--gj-cream-soft);border-color:var(--gj-gold-rich)}
.booking-back:active{border-color:var(--gj-gold)}
#booking .booking-request{margin:32px 0 24px;padding:20px 16px;border:1px solid var(--gj-border-light);border-radius:8px;background:var(--gj-cream-card);box-shadow:var(--gj-shadow-sm)}
#booking .booking-request h3{font-size:23px;line-height:1.2;margin:0 0 20px;white-space:nowrap}
.booking-request ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:20px}
.booking-request li{display:flex;align-items:center;gap:12px;font-size:15px;line-height:1.4;color:var(--gj-text-body)}
.booking-request li svg,.booking-request li img{width:20px;height:20px;flex:none;color:var(--gj-gold)}
.booking-consent{display:flex;align-items:flex-start;gap:8px;font-size:14px;line-height:1.5;color:var(--gj-text-body);cursor:pointer}
.booking-consent input{appearance:none;width:24px;height:24px;flex:none;margin:0;border:1px solid var(--gj-border-light);background:var(--gj-cream);border-radius:2px;cursor:pointer}
.booking-consent input:hover{border-color:var(--gj-gold);box-shadow:var(--gj-shadow-sm)}
.booking-consent input:checked{background:var(--gj-gold-button) url('assets/icons/booking/tick.svg') center/16px auto no-repeat;border-color:var(--gj-gold-button)}
#booking .booking-details-stage h3{text-align:right;margin-bottom:24px}
#booking-details-form{display:flex;flex-direction:column;gap:12px}
.booking-field{display:flex;flex-direction:column;position:relative;font-size:14px;line-height:20px;color:var(--gj-text-muted)}
#booking .booking-field input,#booking .booking-field select{width:100%;height:44px;padding:0 12px;margin:2px 0 0;font-size:15px;line-height:1.4;border:1px solid var(--gj-border-light);border-radius:0;background:var(--gj-cream-card);color:var(--gj-text-body);transition:border-color 300ms ease,box-shadow 300ms ease;min-width:0}
#booking .booking-field input::placeholder{color:var(--gj-text-body);opacity:1}
#booking .booking-field input:hover,#booking .booking-field select:hover{border-color:var(--gj-gold-rich)}
#booking .booking-field input:focus,#booking .booking-field select:focus{outline:0;border-color:var(--gj-gold-button);box-shadow:0 0 0 1px var(--gj-gold-button)}
#booking .booking-field input:disabled,#booking .booking-field select:disabled{opacity:.45;cursor:default}
.booking-phone{display:flex;align-items:stretch;margin-top:2px}
.booking-country{width:56px;display:grid;place-items:center;flex:none;border:1px solid var(--gj-border-light);border-right:0;background:var(--gj-cream-card)}
.booking-country img{width:32px;height:auto}
#booking .booking-phone input{margin-top:0}
#booking .booking-field.is-invalid{color:#c74b43}
#booking .booking-field.is-invalid input{border-color:#c74b43;box-shadow:none}
.field-error{position:absolute;top:100%;left:0;font-size:10px;line-height:12px;color:#c74b43;white-space:nowrap}
#booking #request-consultation{height:48px;min-height:48px;width:100%;padding:0 12px;margin-top:12px;display:flex;align-items:center;justify-content:center;gap:10px}
.booking-spinner{width:16px;height:16px;border:1.5px solid currentColor;border-right-color:transparent;border-radius:50%;animation:booking-spin 900ms linear infinite}
@keyframes booking-spin{to{transform:rotate(360deg)}}
#booking .booking-complete-stage{grid-column:1/-1;display:grid;grid-template-columns:350px minmax(0,1fr);gap:48px;align-items:center;height:416px}
#booking #booking-reset{position:absolute;right:0;top:0;width:32px;height:32px;padding:0;border:1px solid var(--gj-border-light);border-radius:999px;background:transparent;color:var(--gj-gold-line);font-size:28px;line-height:1}
#booking .booking-complete-summary h3{margin-bottom:32px}
#booking .booking-complete-summary .check-list{gap:32px;margin:0}
.booking-thanks{text-align:center;padding-top:16px}
.booking-thanks>svg{width:64px;height:64px;color:var(--gj-gold);margin-bottom:12px}
#booking .booking-thanks h2{font-size:56px;color:var(--gj-text-dark);margin:0 0 8px}
#booking .booking-thanks p{font-size:16px;color:var(--gj-text-body);margin:0 0 16px;line-height:1.5}
.booking-status{display:inline-block;border:1px solid var(--gj-gold-button);border-radius:999px;padding:6px 18px;font-size:14px;letter-spacing:.12em;text-transform:uppercase;color:var(--gj-gold-button)}
#booking .booking-thanks .booking-receipt{display:flex;align-items:center;justify-content:center;gap:16px;border-top:1px solid var(--gj-gold);padding-top:20px;margin:24px 0 0;font-size:14px}
.booking-receipt svg{width:32px;height:32px;color:var(--gj-gold);flex:none}
@media(min-width:1281px){#booking .booking-panel[data-step=details]>section{height:416px}}
@media(max-width:1280px){
 #booking .booking-panel[data-step=details]{grid-template-columns:1fr 1fr}
 #booking .booking-panel[data-step=details]>div:first-child{grid-column:1/-1}
 #booking .booking-panel[data-step=details]>.booking-request-stage:before,#booking .booking-panel[data-step=details]>.booking-details-stage:before{display:none}
 #booking .booking-complete-stage{height:auto;grid-template-columns:1fr 1.5fr;gap:24px}
}
@media(max-width:639px){
 #booking .booking-panel[data-step=details]{grid-template-columns:1fr;gap:32px}
 #booking .booking-request{margin-top:24px}
 #booking .booking-details-stage h3{text-align:left}
 #booking .booking-complete-stage{grid-template-columns:1fr;gap:32px}
 #booking .booking-complete-summary h3{padding-right:32px}
 #booking .booking-thanks h2{font-size:44px}
 .booking-status{font-size:11px;letter-spacing:.08em;padding-inline:12px}
 #booking .booking-request h3{font-size:22px}
 .field-error{white-space:normal}
}
@media(prefers-reduced-motion:reduce){.booking-spinner{animation:none}}
@media(min-width:1281px){#booking #request-consultation{position:absolute;bottom:0;left:0;right:0;margin:0}}
#booking .booking-field input,#booking .booking-field select{height:40px}
#booking #request-consultation:not(:disabled),#booking #continue-booking:not(:disabled){background:var(--gj-gold-button);color:var(--gj-text-light);border-color:var(--gj-gold-button)}
#booking #request-consultation:hover:not(:disabled),#booking #continue-booking:hover:not(:disabled){box-shadow:var(--gj-shadow-sm)}
#booking #request-consultation:active:not(:disabled),#booking #continue-booking:active:not(:disabled){background:var(--gj-gold-rich);border-color:var(--gj-gold-rich)}
#booking #times button:hover:not(:disabled){border-color:var(--gj-gold-rich);box-shadow:var(--gj-shadow-sm)}
#booking #times button[aria-pressed=true]{background:var(--gj-gold-button);border-color:var(--gj-gold-button);color:var(--gj-text-light)}
#booking #booking-reset{width:40px;height:40px;font-size:32px;display:grid;place-items:center;line-height:1}
#booking .booking-panel.is-booking-sliding{overflow:hidden;isolation:isolate}
#booking .booking-slide-outgoing{position:absolute;inset:0;z-index:2;pointer-events:none}
#booking .booking-slide-incoming{position:relative;z-index:3;background:var(--gj-cream-card)}
#booking .booking-consent{font-size:15px;color:#403B37}
#booking .duration-icon{display:block;width:24px;height:24px;flex:none;background:currentColor;mask:url('assets/icons/booking/stopwatch.svg') center/contain no-repeat}
#booking .booking-request-intro{font-size:14px;line-height:1.5;color:var(--gj-text-body);margin:8px 0 0}
#booking .booking-request{margin-top:16px;margin-bottom:20px;padding:16px}
#booking .booking-request ul{gap:16px}
/* Stable booking typography and final icon refinements. */
#booking .booking-panel>div:nth-child(3)>.duration{font-size:15px;color:var(--gj-text-body)}
#booking .booking-field input{font-weight:600}
#booking .booking-field input::placeholder{font-weight:400;color:var(--gj-text-muted)}
#booking #continue-booking,#booking #request-consultation{display:flex;align-items:center;justify-content:center;gap:12px}
#booking .booking-request-stage{display:grid;grid-template-columns:32px minmax(0,1fr);column-gap:12px;align-content:start;align-items:center}
#booking .booking-request-intro{margin:0;font-size:14px;line-height:1.4}
#booking .booking-request,#booking .booking-consent{grid-column:1/-1}
#booking #thanks-heading,#booking #details-heading{outline:none;border:none;box-shadow:none}
.booking-thankyou-icon{width:64px;height:64px;border:2px solid #B38952;border-radius:999px;display:grid;place-items:center;margin:0 auto 12px}
.booking-thankyou-icon img{width:32px;height:auto}
/* Final booking summary scale. */
#booking .booking-complete-summary .check-list li{font-size:20px;line-height:1.4;min-height:40px;padding-left:52px;display:flex;align-items:center}
#booking .booking-complete-summary .check-list li:before{width:40px;height:40px;background-size:20px 14px;top:50%;transform:translateY(-50%)}
#booking .booking-thanks h2{font-size:48px}
#booking .booking-thanks>p{font-size:16px}
#booking .booking-status{font-size:18px;padding:8px 20px;background:#F5ECDC;border:1px solid #D7BF97;max-width:100%}
.booking-email-icon{display:grid;place-items:center;width:40px;height:40px;flex:none;border:1px solid #B38952;border-radius:999px}
.booking-email-icon img{width:19px;height:14px}
#booking #booking-reset{border-color:transparent;color:var(--gj-gold-rich);box-shadow:none;transition:color 400ms ease-in-out,border-color 400ms ease-in-out,box-shadow 400ms ease-in-out}
#booking #booking-reset:hover{border-color:var(--gj-gold-soft);color:var(--gj-gold-soft);box-shadow:var(--gj-shadow-sm)}
#booking .booking-panel>div:nth-child(3)>.duration{justify-content:center;align-items:center;text-align:center}
#booking .booking-panel>div:nth-child(3):has(#continue-booking:disabled)>.duration{color:#9F968A}
#booking .booking-panel>div:nth-child(3)>.duration{justify-content:flex-start;align-items:center;text-align:left}
#booking .duration-copy{display:block;line-height:24px}
#booking .booking-panel>div:first-child .check-list li{transition:transform 800ms ease-in-out}
#booking .booking-panel>div:first-child .check-list li:hover{transform:translateY(-4px)}
@media(prefers-reduced-motion:reduce){#booking .booking-panel>div:first-child .check-list li:hover{transform:none}}
#booking .booking-slide-divider{position:absolute;top:50%;transform:translateY(-50%);height:348px;width:1px;background:var(--gj-border-light);z-index:4;pointer-events:none}
#booking .consent-error{display:block;font-size:12px;line-height:1.4;color:#c74b43;margin-top:6px}
#booking .consent-error:empty{display:none}
#booking .booking-consent.is-invalid input{border-color:#c74b43}
/* Visit tabs, wayfinding and contact details. */
#contact .contact-tabs button{display:flex;align-items:center;justify-content:center;gap:8px;font-size:16px;font-weight:500;color:#403B37;text-transform:none}
#contact .contact-tabs button[aria-selected=true]{font-weight:700;color:#B88C46;border-color:#B88C46}
.visit-tab-icon{max-width:24px;max-height:24px;width:auto;height:auto;flex:none}
#contact .visit-layout [hidden]{display:none!important}
#contact .visit-layout{gap:27px;align-items:start}
#contact #visit-image{width:610px;height:348px;max-width:100%;border:1px solid #D8CBB7;object-fit:cover}
#contact #directions{display:flex;flex-direction:column;gap:27px;border-bottom:0}
#contact #directions :is(h3,h4){font-size:14px;text-transform:none;text-align:center;color:#403B37;margin:0}
#contact #directions ol{list-style:none;counter-reset:visit-step;padding:0;margin:0;display:flex;flex-direction:column;gap:13.5px}
#contact #directions li{counter-increment:visit-step;display:grid;grid-template-columns:28px minmax(0,1fr);gap:12px;align-items:center;font-size:14px;line-height:1.5;color:#403B37;padding:0 0 13.5px;border-bottom:1px solid #E1DFDC}
#contact #directions li:last-child{border-bottom:0;padding-bottom:0}
#contact #directions li:before{content:counter(visit-step);width:28px;height:28px;display:grid;place-items:center;border:1px solid #C0985A;border-radius:999px;font-size:16px;line-height:1;color:#C0985A}
.visit-monogram{display:block;height:48px;width:calc(48px * 39 / 49);margin:0 auto 12px;background:#9C7430;mask:url('assets/icons/contact/GJ-icon.svg') center/contain no-repeat}
#contact .visit-layout aside :is(h3,h4){font-size:14px;font-weight:600;color:#9C7430;line-height:1.5;margin:12px 0 8px}
#contact .visit-layout aside p{font-size:14px;font-weight:400;color:#403B37;line-height:1.5;margin:0}
#contact .visit-phone{display:flex;align-items:center;justify-content:center;gap:8px;margin-top:16px;font-size:20px;font-weight:700;color:#2E2926;transition:color 400ms ease-in-out}
#contact .visit-phone img{width:46px;height:48px;flex:none}
#contact .visit-phone:hover{color:var(--gj-gold)}
#contact .visit-layout[data-view=google]{display:block}
#contact #visit-google-map{display:block;width:100%;height:348px;border:1px solid #D8CBB7;border-radius:8px}
@media(min-width:1281px){#contact .visit-layout{grid-template-columns:610px minmax(0,1fr) minmax(0,1fr)}}
@media(max-width:1280px){#contact .visit-layout{grid-template-columns:minmax(0,1.5fr) minmax(0,1fr)}}
@media(max-width:639px){#contact .contact-tabs{gap:8px;flex-wrap:wrap;justify-content:center}#contact .contact-tabs button{padding:8px;font-size:16px}#contact .visit-layout{grid-template-columns:1fr}#contact #visit-image{width:100%;height:auto;aspect-ratio:610/348}#contact #visit-google-map{height:348px}}
#contact #directions :is(h3,h4){font-size:14px;font-weight:600;color:#9C7430}
#contact .contact-tabs button{text-transform:uppercase}
#contact .visit-tab-icon{display:block;background:#403B37;transition:background-color 400ms ease-in-out}
#contact .visit-tab-icon-store{width:24px;height:24px;mask:url('assets/icons/contact/shop.svg') center/contain no-repeat}
#contact .visit-tab-icon-shopping{width:24px;height:23.04px;mask:url('assets/icons/contact/shopping.svg') center/contain no-repeat}
#contact .visit-tab-icon-google{width:17.28px;height:24px;mask:url('assets/icons/contact/google.png') center/contain no-repeat}
#contact .contact-tabs button[aria-selected=true] .visit-tab-icon{background:#B88C46}
#contact .visit-tab-label{display:grid;white-space:nowrap}
#contact .visit-tab-label:after{content:attr(data-label);font-weight:700;visibility:hidden;height:0;overflow:hidden;pointer-events:none}
#contact .contact-tabs button:hover{color:var(--gj-gold-rich)}
#contact .contact-tabs button:hover .visit-tab-icon{background:var(--gj-gold-rich)}
#contact .visit-phone-icon{display:block;width:46px;height:48px;flex:none;background:var(--gj-gold);mask:url('assets/icons/contact/phone.svg') center/contain no-repeat;transition:background-color 400ms ease-in-out}
#contact .visit-phone:hover,#contact .visit-phone:focus-visible{color:var(--gj-gold-rich)}
#contact .visit-phone:hover .visit-phone-icon,#contact .visit-phone:focus-visible .visit-phone-icon{background:var(--gj-gold-rich)}
#contact .contact-details :is(h3,h4){font-size:16px;font-weight:700;text-transform:uppercase;color:#9C7430;transition:color 400ms ease-in-out}
#contact .contact-item{display:block;font-size:14px;line-height:27px;color:#403B37;transition:color 400ms ease-in-out}
#contact .contact-item p,#contact .contact-item span{font-size:14px;line-height:27px;color:inherit}
#contact .contact-item:hover,#contact .contact-item:hover :is(h3,h4),#contact .contact-item:focus-visible,#contact .contact-item:focus-visible :is(h3,h4){color:var(--gj-gold-rich)}

#contact .visit-media{position:relative;width:610px;max-width:100%;height:348px;border:1px solid #D8CBB7;border-radius:8px;overflow:hidden;background:#24272B}
#contact .visit-media #visit-image{position:absolute;inset:0;width:100%;height:100%;border:0;opacity:1;transition:opacity 800ms ease-in-out}
#visit-animation{position:absolute;inset:0;opacity:0;transition:opacity 800ms ease-in-out}
#visit-animation svg{display:block;width:100%;height:100%}
#contact .visit-media.show-map #visit-image{opacity:0}
#contact .visit-media.show-map #visit-animation{opacity:1}
#contact .contact-details{border:0;padding:24px 0 0;grid-template-columns:minmax(0,1.15fr) minmax(0,1.05fr) minmax(0,1fr) 228px;align-items:start;gap:24px}
#contact .contact-item{display:flex;align-items:flex-start;gap:12px}
#contact .contact-detail-copy{min-width:0}
#contact .contact-detail-icon{display:block;flex:none;background:var(--gj-gold);height:32px;transition:background-color 400ms ease-in-out}
#contact .contact-icon-location{width:23.04px;mask:url('assets/icons/contact/google.png') center/contain no-repeat}
#contact .contact-icon-phone{width:30.67px;mask:url('assets/icons/contact/phone.svg') center/contain no-repeat}
#contact .contact-icon-email{width:32px;height:23.58px;mask:url('assets/icons/contact/email.svg') center/contain no-repeat}
#contact .contact-icon-hours{width:32px;mask:url('assets/icons/contact/hours.svg') center/contain no-repeat}
#contact .contact-item:hover .contact-detail-icon,#contact .contact-item:focus-visible .contact-detail-icon{background:var(--gj-gold-rich)}
#contact .contact-communications{display:flex;flex-direction:column;gap:12px}
#contact .contact-navigation{text-align:right}
#contact .contact-navigation :is(h3,h4){margin:0}
#contact .contact-navigation p{font-family:var(--gj-font-heading,'Cormorant Garamond'),serif;font-size:24px;font-weight:600;color:#403B37;margin:0 0 16px;line-height:1.2}
#contact .contact-navigation .button{width:228px;height:48px;min-height:48px;padding:0;display:flex;align-items:center;justify-content:center;font-size:14px}
@media(max-width:1280px){#contact .contact-details{grid-template-columns:repeat(2,minmax(0,1fr))}#contact .contact-navigation{justify-self:end}}
@media(max-width:639px){#contact .visit-media{width:100%;height:auto;aspect-ratio:610/348}#contact .contact-details{grid-template-columns:1fr}#contact .contact-navigation{justify-self:start;text-align:left}}
@media(prefers-reduced-motion:reduce){#contact .visit-media #visit-image,#visit-animation{transition:none}}

#contact .contact-detail-copy :is(h3,h4){margin:0 0 8px;line-height:24px}
#contact .contact-detail-copy p{margin:0}
#contact .contact-hours{display:grid;grid-template-columns:auto 1fr;column-gap:18px;line-height:27px}
#contact .contact-hours span:nth-child(even){text-align:right}

#contact .contact-details{background:#F3EDDF;border:1px solid #D8CBB7;padding:24px 30px;border-radius:4px}

#contact .contact-icon-phone{width:calc(32px * 31 / 33);height:32px;mask-image:url('assets/icons/contact/phone2.svg')}
#contact .contact-icon-email{width:32px;height:calc(32px * 24 / 33);mask-image:url('assets/icons/contact/email2.svg')}
#contact .contact-navigation p{font-size:24px;font-weight:600;letter-spacing:.09em}
#contact .contact-navigation .button{gap:8px}
#contact .navigation-link-icon{width:14px;height:14px;flex:none;background:currentColor;mask:url('assets/icons/contact/link.svg') center/contain no-repeat}

#contact .contact-hours-item:hover{color:#403B37}
#contact .contact-hours-item:hover :is(h3,h4){color:#9C7430}
#contact .contact-hours-item:hover .contact-detail-icon{background:#9C7430}
#contact .contact-navigation p{font-size:28px;white-space:nowrap}
#contact .contact-tabs button{border-radius:0}


#contact .contact-tabs button{background:#F3EDDF;transition:background-color 400ms ease-in-out,color 400ms ease-in-out,border-color 400ms ease-in-out}
#contact .contact-tabs button[aria-selected=true]{background:#F8F3EA}
#contact .contact-panel{--visit-panel-padding:32px;padding:var(--visit-panel-padding);border:1px solid #D8CBB7;overflow:hidden}
#contact .contact-tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;margin:calc(-1 * var(--visit-panel-padding)) calc(-1 * var(--visit-panel-padding)) 28px;flex-wrap:nowrap}
#contact .contact-tabs button{position:relative;min-width:0;min-height:88px;padding:20px 12px;border:0;border-bottom:1px solid #D8CBB7;border-right:1px solid #D8CBB7;background:#F3EDDF}
#contact .contact-tabs button:last-child{border-right:0}
#contact .contact-tabs button[aria-selected=true]{background:#F8F3EA;border-bottom-color:#F8F3EA;border-right-color:#D8CBB7}
#contact .contact-tabs button::after{content:'';position:absolute;bottom:20px;left:50%;width:144px;max-width:80%;height:1px;background:#B88C46;transform:translateX(-50%);opacity:0;transition:opacity 400ms ease-in-out}
#contact .contact-tabs button[aria-selected=true]::after{opacity:1}
@media(max-width:639px){#contact .contact-panel{--visit-panel-padding:24px}#contact .contact-tabs button{min-height:96px;padding:16px 8px;font-size:12px;flex-direction:column;gap:8px}#contact .contact-tabs button::after{bottom:10px}#contact .visit-tab-label{white-space:normal;text-align:center}}

#contact .contact-tabs{background:#F3EDDF}
#contact .contact-tabs button[aria-selected=true]{border-radius:12px 12px 0 0}
#contact .contact-details{background:#F8F3EA}

.closing .text-link{font-size:16px;font-weight:700;color:#B58A47}
.closing .eyebrow{font-size:24px;font-weight:600;color:#C0985A;letter-spacing:.03em}
.closing :is(h2,h3){font-size:40px;font-weight:600;letter-spacing:.03em}
.closing>.container>img:first-child{width:278px;height:auto;max-height:none}
.closing>.container>img:last-child{width:278px;height:278px;max-height:none;object-fit:contain}
footer .footer-grid{grid-template-columns:350px repeat(3,minmax(0,1fr));gap:48px;align-items:start}
footer .footer-grid .brand{align-self:start}
footer .footer-grid .brand-logo{width:350px;height:96px;max-width:100%;object-fit:contain}
footer .footer-grid :is(h3,h4){font-size:16px;font-weight:700;color:#B58A47;text-transform:uppercase;margin:0 0 20px}
footer .footer-grid>div{font-size:14px;color:#CFC6B8;line-height:1.6;padding-top:80px}
footer .footer-grid>div a,footer .footer-grid>div p,footer .footer-grid>div span{font-size:14px;color:#CFC6B8}
footer .footer-grid>div a{margin-bottom:6px}
footer .footer-grid>div p{margin:0;line-height:27px}
@media(max-width:1280px){footer .footer-grid{grid-template-columns:350px repeat(3,minmax(0,1fr));gap:24px}}
@media(max-width:1280px){footer .footer-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:32px}footer .footer-grid>.brand{grid-column:1/-1}footer .footer-grid>div{padding-top:0}}
@media(max-width:639px){footer .footer-grid{grid-template-columns:1fr;gap:32px}footer .footer-grid .brand-logo{height:auto;aspect-ratio:350/96}}

footer .footer-grid .brand-logo{max-height:none}

footer .footer-grid{display:flex;gap:64px;align-items:flex-start;justify-content:space-between}
footer .footer-grid>.footer-brand{width:350px;flex:none;padding-top:0}
footer .footer-grid>.footer-information{display:flex;justify-content:space-between;gap:48px;flex:1;max-width:639px;padding-top:80px}
footer .footer-information>div{min-width:0}
footer .footer-information>div:last-child{flex:none}
footer .footer-socials{display:flex;justify-content:center;gap:24px;margin-top:32px}
footer .footer-grid .footer-socials a{display:grid;place-items:center;width:48px;height:48px;border:1px solid #B88C46;border-radius:999px;margin:0;color:#B88C46;transition:background-color 400ms ease-in-out,color 400ms ease-in-out}
footer .social-icon{display:block;width:24px;height:24px;background:currentColor}
footer .social-instagram{mask:url('assets/icons/contact/ig-icon.svg') center/contain no-repeat}
footer .social-facebook{mask:url('assets/icons/contact/facebook-icon.svg') center/contain no-repeat}
footer .footer-grid .footer-socials a:hover{background:#B88C46;color:#141312}
footer .copyright{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:24px;padding:24px 30px;min-height:80px;font-size:14px;color:#CFC6B8}
footer .copyright>span:last-child{text-align:right}
footer .copyright-monogram{width:24px;height:30px;background:#B88C46;mask:url('assets/icons/contact/GJ-icon.svg') center/contain no-repeat}
@media(max-width:1280px){footer .footer-grid{flex-direction:column;gap:40px}footer .footer-grid>.footer-information{width:100%;max-width:none;padding-top:0;gap:32px}}
@media(max-width:639px){footer .footer-grid>.footer-brand{width:min(350px,100%)}footer .footer-grid>.footer-information{flex-direction:column;gap:32px}footer .copyright{grid-template-columns:1fr;text-align:center;justify-items:center;gap:16px}footer .copyright>span:last-child{text-align:center}footer .copyright-monogram{grid-row:1}}

footer .footer-grid .footer-socials a{color:#B88C46;border:2px solid #B88C46;transition:color 400ms ease-in-out,border-color 400ms ease-in-out}
footer .footer-grid .footer-socials a:hover,footer .footer-grid .footer-socials a:focus-visible{color:#F8F3EA;border-color:#F8F3EA;background:transparent}
footer .footer-grid .footer-socials a .social-icon{color:inherit;background:#B88C46;transition:background-color 400ms ease-in-out}
footer .footer-grid .footer-socials a:hover .social-icon,footer .footer-grid .footer-socials a:focus-visible .social-icon{background:#F8F3EA}
footer .copyright-monogram{background:#B58A47;height:30px;width:calc(30px * 39 / 49)}
footer .copyright>span:last-child{font-size:24px;font-weight:700;color:#CFC6B8;min-width:0}

footer .footer-information a{transition:color 400ms ease-in-out}
footer .footer-information a:hover,footer .footer-information a:focus-visible{color:var(--gj-text-light,#F8F3EA)}
footer .copyright>span:last-child{font-size:14px;font-weight:400}

footer .footer-information>div:last-child p{transition:color 400ms ease-in-out}
footer .footer-information>div:last-child p:hover{color:var(--gj-text-light,#F8F3EA)}

#why{padding-top:352px}
#services{padding-top:348px}
#creations{padding-top:202px;padding-bottom:122px}
#reviews{padding-top:157px;padding-bottom:157px}
#booking{padding-top:154px;padding-bottom:154px}
.brands :is(h2,h3){font-size:36px}
.brands-rule{display:block;width:132px;height:2px;background:#9C7430;margin:24px auto 32px}
#contact>.container>h2{font-size:56px}
#contact>.container>.eyebrow{font-size:24px;color:#B58A47;letter-spacing:.03em}
#contact>.container>.rule{width:116px;height:2px;background:#9C7430}
footer .footer-grid>.footer-information{padding-top:32px}
footer .footer-information .footer-address{line-height:27px}
@media(min-width:1281px){#process .process-photo{width:min(781px,calc(50vw - 56px));height:auto;aspect-ratio:781/664}}
@media (min-width:640px) and (max-width:1280px){#process>.split{gap:24px}#process .process-photo{margin-left:calc((min(1152px,100vw - 48px) - 100vw)/2);width:calc(100% + (100vw - min(1152px,100vw - 48px))/2);max-width:none;height:auto}}
@media(max-width:639px){#why{padding-top:232px}#creations{padding-top:117px;padding-bottom:92px}#reviews{padding-top:117px;padding-bottom:117px}#booking{padding-top:109px;padding-bottom:109px}#process>.split{gap:24px}#process .process-photo{margin:0 0 0 calc(-1 * (100vw - 100%)/2);width:calc(100% + (100vw - 100%)/2);max-width:none;height:auto}footer .footer-grid>.footer-information{padding-top:0}}
@media (min-width:640px) and (max-width:1280px){#process>.container.split{width:100%;margin:0;padding-right:24px;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:24px}#process .process-photo{margin-left:0;width:100%;max-width:100%;height:auto}}

@media(min-width:1281px){#process .copy{margin-left:max(8px,calc(12.5% - 41px));max-width:calc(100% - max(8px,12.5% - 41px))}#process .process-steps li:not(:nth-child(4n)):before,#process .process-steps li:not(:nth-child(4n)):after{width:max(0px,calc(100% - 72px))}}
@media (min-width:640px) and (max-width:1280px){#process .copy{margin-left:8px;max-width:calc(100% - 8px)}}
@media(max-width:1280px){#process .process-copy-line{display:inline;white-space:normal}}

.service-image-frame{width:100%;height:220px;overflow:hidden;border-radius:var(--gj-radius-md);background-repeat:no-repeat;background-size:auto 100%;background-position:center}
.service-image-frame img{width:100%;height:100%;opacity:0;object-fit:cover}
.service-card:nth-child(1) .service-image-frame{background-size:auto 130%;background-position:right 35%}
.service-card:nth-child(5) .service-image-frame{background-size:auto 175%;background-position:48% 55%}
@media(min-width:1281px){.service-image-frame{width:188px;height:240px}}
@media (min-width:640px) and (max-width:1280px){.service-image-frame{height:185px}}

.service-card:nth-child(1) .service-image-frame{background-size:auto 155%;background-position:right 18%}
.service-card:nth-child(3) .service-image-frame{background-size:auto 122%;background-position:50% 45%}
.service-card:nth-child(4) .service-image-frame{background-size:auto 130%;background-position:46% 45%}
.service-card:nth-child(5) .service-image-frame{background-size:auto 175%;background-position:48% 50%}

.service-card:nth-child(4) .service-image-frame{background-position:28% 30%}
#why>.signature{width:max-content;max-width:calc(100% - 40px);padding-left:48px;padding-right:48px;margin-left:auto;margin-right:auto}
#trust-grid .trust-card{transition:transform 800ms ease-in-out,background-color 800ms ease-in-out,box-shadow 800ms ease-in-out}
.brands :is(h2,h3){margin-bottom:0}
.brands-rule{margin-top:16px}
.service-card:nth-child(5) .service-image-frame{background-size:auto 157.5%}
.service-card .ring-icon{background-image:linear-gradient(45deg,transparent 42%,#F8F3EA 50%,transparent 58%);background-size:300% 300%;background-position:0% 100%}
.service-card:hover .ring-icon,.service-card:focus-within .ring-icon{animation:service-icon-swish 850ms ease-in-out 400ms both}
@keyframes service-icon-swish{from{background-position:0% 100%}to{background-position:100% 0%}}
@media(prefers-reduced-motion:reduce){#trust-grid .trust-card{transition:none}.service-card:hover .ring-icon,.service-card:focus-within .ring-icon{animation:none;background-image:none}}
#trust-grid .trust-card{background:rgba(248,243,234,.08);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);transition:transform 500ms ease-in-out,background-color 500ms ease-in-out,box-shadow 500ms ease-in-out}
#trust-grid .trust-card:hover{background:rgba(248,243,234,.90)}
.service-card .ring-icon,.service-card:hover .ring-icon,.service-card:focus-within .ring-icon{animation:none;background-image:none}
.service-card .ring-icon,#trust-grid .pillar-icon,footer .social-icon{position:relative;overflow:hidden}
.service-card .ring-icon::after,#trust-grid .pillar-icon::after,footer .social-icon::after{content:'';position:absolute;inset:-50%;background:linear-gradient(45deg,transparent 42%,rgba(248,243,234,.9) 50%,transparent 58%);transform:translate(-100%,100%);pointer-events:none}
.service-card:hover .ring-icon::after,.service-card:focus-within .ring-icon::after,#trust-grid .trust-card:hover .pillar-icon::after,footer .footer-socials a:hover .social-icon::after,footer .footer-socials a:focus-visible .social-icon::after{animation:diagonal-icon-glimmer 850ms ease-in-out 250ms both}
@keyframes diagonal-icon-glimmer{from{transform:translate(-100%,100%)}to{transform:translate(100%,-100%)}}
#contact>.container>.eyebrow{margin-bottom:16px}
#contact>.container>h2{margin-top:0;margin-bottom:0}
#contact>.container>.rule{margin-top:16px}
footer .footer-grid .footer-socials a:hover,footer .footer-grid .footer-socials a:focus-visible{color:#B88C46;border-color:#B88C46;background:transparent}
footer .footer-grid .footer-socials a:hover .social-icon,footer .footer-grid .footer-socials a:focus-visible .social-icon{background:#B88C46}
@media(prefers-reduced-motion:reduce){.service-card:hover .ring-icon::after,.service-card:focus-within .ring-icon::after,#trust-grid .trust-card:hover .pillar-icon::after,footer .footer-socials a:hover .social-icon::after,footer .footer-socials a:focus-visible .social-icon::after{animation:none}#trust-grid .trust-card{transition:none}}

.service-card .ring-icon::after,#trust-grid .pillar-icon::after,footer .social-icon::after{background:linear-gradient(45deg,transparent 38%,rgba(215,191,151,.25) 44%,rgba(248,243,234,.85) 50%,rgba(215,191,151,.25) 56%,transparent 62%)}
.service-card:hover .ring-icon::after,.service-card:focus-within .ring-icon::after,#trust-grid .trust-card:hover .pillar-icon::after,footer .footer-socials a:hover .social-icon::after,footer .footer-socials a:focus-visible .social-icon::after{animation-duration:1000ms;animation-timing-function:ease-in-out}

#reviews>.container>.eyebrow{margin-bottom:16px}
#reviews>.container>h2{margin-top:0;margin-bottom:0}
#reviews>.container>.rule{margin-top:16px}
#trust-grid .trust-card{background:transparent;backdrop-filter:none;-webkit-backdrop-filter:none}
#trust-grid .trust-card:hover{background:rgba(248,243,234,.90);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px)}
@media(min-width:1281px){.booking-intro>img{width:calc(100% + var(--gj-page-margin) - 498px);height:auto;aspect-ratio:1137/762;object-fit:cover}.booking-intro{height:max(600px,calc((100vw - var(--gj-page-margin) - 498px) * 762 / 1137))}}
@media (min-width:640px) and (max-width:1280px){.booking-intro{position:relative;grid-template-columns:450px minmax(0,1fr);gap:48px}.booking-intro>img{width:calc(100% + (100vw - var(--gj-container))/2);max-width:none;height:auto;aspect-ratio:1137/762;object-fit:cover;border-radius:12px 0 0 12px}.booking-intro>.copy{width:450px;max-width:100%}}
@media (min-width:640px) and (max-width:1280px){.booking-intro{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:24px}.booking-intro>img{width:calc(100% + (100vw - 100% * 2 - 24px)/2)}}
#contact>.container>.eyebrow,#contact>.container>h2{text-box-trim:trim-both;text-box-edge:cap alphabetic}
@media(min-width:640px){#booking .booking-intro{display:block;position:relative}#booking .booking-intro>.copy{position:absolute;padding-top:0;margin:0;max-width:none}#booking .booking-intro>img{position:absolute;top:0;max-width:none;border-radius:12px 0 0 12px}#booking .booking-panel{max-width:100%;margin-top:-180px}}
@media(max-width:639px){#booking .booking-panel{grid-template-columns:minmax(0,1fr)}#booking .times,#booking .duration,#booking #continue-booking{width:100%;max-width:100%;min-width:0}#booking .times{grid-template-columns:repeat(2,minmax(0,1fr))}#booking .calendar,#booking .calendar-week{grid-template-columns:repeat(7,minmax(0,1fr));gap:2px;max-width:100%}#booking .calendar button{width:100%;height:auto;aspect-ratio:1;min-height:0}#booking .booking-panel>*{min-width:0}#booking .booking-details-form{min-width:0}#booking .calendar-heading{max-width:100%}}
@media(max-width:639px){.header .brand-logo{width:160px}.header{gap:12px}.hero h1{font-size:32px}.booking-panel{padding:20px}.closing>.container>img:last-child{width:min(278px,100%);height:auto;aspect-ratio:1}}

.hero-mobile-description{display:none}
@media(max-width:639px){#home{min-height:0;align-items:initial}#home .hero-content{padding-top:clamp(360px,118vw,450px);padding-bottom:76px}#home h1{font-size:clamp(28px,8.65vw,36px);line-height:1.08;margin-bottom:0}#home .hero-title-line{white-space:nowrap}#home .eyebrow{font-size:16px;letter-spacing:.1em;margin-bottom:8px}#home .hero-description{display:none}#home .hero-mobile-description{display:block;font-size:clamp(11px,3.6vw,14px);line-height:1.6;margin-top:12px;max-width:none}#home .hero-mobile-description span{display:block;white-space:nowrap}#home .rule{width:116px;margin-top:12px;margin-bottom:0}#home .actions{gap:12px;margin-top:24px}#home .actions .button{height:56px;min-height:56px;width:100%;display:flex;align-items:center;justify-content:center;padding:0 12px;font-size:14px;font-weight:700}#home .hero-rings{width:270px;max-width:85%;bottom:-40px;right:calc(50% - 135px)}}

.why-mobile-heading,.why-mobile-description{display:none}
@media(max-width:639px){#why>.container.split{gap:54px}#why .why-desktop-heading,#why .why-description{display:none}#why .why-mobile-heading{display:block;font-size:clamp(25px,8.1vw,32px);line-height:1.08;margin:0}#why .why-mobile-heading span{display:block;white-space:nowrap}#why .copy>.eyebrow{font-size:16px;letter-spacing:.1em;margin-bottom:8px}#why .copy>.rule{width:116px;margin-top:12px;margin-bottom:20px}#why .why-mobile-description{display:block;font-size:clamp(11px,3.55vw,14px);line-height:1.8;margin:0 0 32px}#why .why-mobile-description span{display:block;white-space:nowrap}#why .copy>.button{width:100%;height:48px;min-height:48px;padding:0 12px;display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:600}#why .workbench{margin-left:-20px;margin-right:-20px;aspect-ratio:394/287}#why .workbench>img:first-child{width:100%;height:100%;aspect-ratio:auto;object-fit:cover;border-radius:0}#why .detail-ring{width:36%;height:auto;aspect-ratio:142/118;right:32px;left:auto;bottom:-74px;border-radius:8px}#why .trust{padding-top:154px}}

.mobile-trust-visual{display:none}
@media(max-width:639px){#why .trust>h3{max-width:none;width:100%;font-size:clamp(28px,8.6vw,36px);line-height:1.15;margin-left:auto;margin-right:auto}#why .trust>h3 span{display:block;white-space:nowrap}#why #trust-grid{margin:72px 0 0;gap:64px;grid-template-columns:minmax(0,1fr)}#why #trust-grid .trust-card{width:100%;max-width:none;padding:16px 0;margin:0}#why #trust-grid .trust-card h3{font-size:clamp(24px,7vw,28px);line-height:1.15}#why #trust-grid .trust-card p{font-size:clamp(14px,3.9vw,16px);line-height:1.55;max-width:none}#why .trust-copy-line{display:block;white-space:nowrap}#why>.signature{display:none}#why .mobile-trust-visual{display:block;width:100%;height:auto;margin-top:32px}#why{padding-bottom:0}#why:before{display:none}}

.mobile-trust-frame{display:none}
.menu-toggle svg{display:block;width:28px;height:24px;margin:auto}
@media(max-width:639px){#home .hero-rings{bottom:-100px;right:50%;transform:translateX(50%)}#home h1{font-size:calc((100vw - 40px) * .1)}#home .hero-mobile-description{font-size:calc((100vw - 40px) * .041)}#home .eyebrow{font-size:calc((100vw - 40px) * .047)}#why .mobile-trust-frame{display:block;width:100%;height:calc(100vw * 1.05);overflow:hidden;margin-top:32px;position:relative}#why .mobile-trust-visual{position:absolute;width:150%;max-width:none;height:100%;object-fit:cover;left:-30%;top:0;margin:0}}

@media(max-width:639px){#home .hero-rings{left:50%;right:auto;transform:translateX(-50%);bottom:-100px}}

.gallery-pagination{display:none}
@media(max-width:639px){#creations .gallery{margin-left:-20px;margin-right:-20px}#creations .gallery-main{border-radius:0;touch-action:pan-y;overflow:hidden}#creations .gallery-main>img{width:100%;height:auto;aspect-ratio:461/284;object-fit:cover;border-radius:0}#creations .gallery-controls,#creations #gallery-thumbs{display:none}#creations .gallery-pagination{display:flex;justify-content:center;align-items:center;gap:10px;padding:18px 20px;background:#141312}#creations .gallery-pagination button{position:relative;width:10px;height:10px;border:0;border-radius:999px;padding:0;background:#CFC6B8;transition:width 400ms ease-in-out,background-color 400ms ease-in-out}#creations .gallery-pagination button::before{content:'';position:absolute;inset:-12px}#creations .gallery-pagination button[aria-pressed=true]{width:26px;background:#B88C46}#creations .gallery>.signature{padding-inline:20px}}

@media(max-width:639px){#service-grid{display:flex;width:calc(100% + 40px);height:auto;margin-left:-20px;padding:0 20px 20px;gap:24px;overflow-x:auto;scroll-snap-type:x mandatory;overscroll-behavior-x:contain;align-items:flex-start}#service-grid .service-card{display:flex;flex-direction:column;flex:0 0 calc(100vw - 64px);width:calc(100vw - 64px);height:auto;min-width:0;padding:0;gap:0;scroll-snap-align:center}#service-grid .service-card>div:not(.service-image-frame){display:contents}#service-grid .service-card .ring-icon{order:0;margin:0 0 16px;width:48px;height:48px}#service-grid .service-card h3{order:1;margin:0;font-size:28px;min-height:65px}#service-grid .service-card .service-rule{order:2;margin:16px 0 24px}#service-grid .service-card>.service-image-frame,#service-grid .service-card>img{order:3;width:100%;height:auto;aspect-ratio:1.5;object-fit:cover;border-radius:8px}#service-grid .service-image-frame img{display:block;height:100%;position:absolute;inset:0}#service-grid .service-image-frame{position:relative;background-size:cover;background-position:center}#service-grid .service-card p{order:4;margin:20px 0 0;font-size:16px;line-height:1.5}#service-grid .service-card:nth-child(1) .service-image-frame{background-size:120% auto;background-position:right 20%}#service-grid .service-card:nth-child(3) .service-image-frame{background-size:110% auto;background-position:center 45%}#service-grid .service-card:nth-child(4) .service-image-frame{background-size:110% auto;background-position:center}#service-grid .service-card:nth-child(5) .service-image-frame{background-size:120% auto;background-position:48% 55%}}
@media(max-width:639px){#service-grid{scrollbar-width:none;padding-left:12.5vw;padding-right:12.5vw}#service-grid::-webkit-scrollbar{display:none}#service-grid .service-card{flex-basis:75vw;width:75vw;text-align:center;align-items:center}#service-grid .service-card .ring-icon{margin-left:auto;margin-right:auto}#service-grid .service-card h3{font-size:clamp(17px,4.3vw,28px);white-space:nowrap;min-height:0;line-height:1.2}#service-grid .service-card h3 br{display:none}#service-grid .service-card .service-rule{margin-left:auto;margin-right:auto}#service-grid .service-card p{width:100%;text-align:center;text-wrap:balance;font-size:clamp(11px,2.9vw,16px);line-height:1.5}}

.service-mobile-title{display:none}
@media(max-width:639px){.service-desktop-title{display:none}.service-mobile-title{display:inline}}
@media(max-width:639px){#service-grid{padding-left:0;padding-right:20px;scroll-padding-left:0}#service-grid .service-card{scroll-snap-align:start}#service-grid .service-card>.service-image-frame,#service-grid .service-card>img{aspect-ratio:1048/896}}

@media(max-width:639px){#service-grid{padding-left:20px;scroll-padding-left:20px}}

/* Standard desktop stage: independent of the approved large desktop layout. */


html,body{width:100%;min-width:0}
main#main{width:100%;min-width:0}

/* Four responsive ranges. Review widths: 384, 768, 1440 and 1920px. */
@media(max-width:639px){.header .brand-logo{width:200px;max-width:calc(100vw - 108px)}#home h1{font-size:calc((100vw - 40px) * .1)}.booking-panel{padding:24px}}


/* Slower, broader light pass across the service icons. */
.service-card .ring-icon::after{background:linear-gradient(45deg,transparent 24%,rgba(215,191,151,.12) 34%,rgba(215,191,151,.48) 43%,rgba(248,243,234,.92) 50%,rgba(215,191,151,.48) 57%,rgba(215,191,151,.12) 66%,transparent 76%)}
.service-card:hover .ring-icon::after,.service-card:focus-within .ring-icon::after{animation-duration:2200ms;animation-timing-function:ease-in-out}
#gallery-thumbs{scrollbar-color:rgba(207,198,184,.12) transparent;transition:scrollbar-color 400ms ease-in-out}
#gallery-thumbs:hover,#gallery-thumbs:focus-within{scrollbar-color:rgba(207,198,184,.45) transparent}
#gallery-thumbs::-webkit-scrollbar{height:4px}
#gallery-thumbs::-webkit-scrollbar-track{background:transparent}
#gallery-thumbs::-webkit-scrollbar-thumb{background:rgba(207,198,184,.12);border-radius:999px}
#gallery-thumbs:hover::-webkit-scrollbar-thumb,#gallery-thumbs:focus-within::-webkit-scrollbar-thumb{background:rgba(207,198,184,.45)}


@media (min-width:1281px){#why>.container.split{grid-template-columns:minmax(0,560px) minmax(0,1fr);gap:80px}#why .copy{width:100%;max-width:560px}#why .why-copy-line{display:inline;white-space:normal}#why .workbench{aspect-ratio:731/533}#why .workbench>img:first-child{width:calc(100% + var(--gj-page-margin));height:auto;aspect-ratio:731/533;left:0}#why .detail-ring{width:200px;height:auto;aspect-ratio:228/190;left:-48px;bottom:-45px}}
@media (min-width:1281px){#services .services-layout{grid-template-columns:320px minmax(0,1fr);gap:40px}#services .copy{width:320px;max-width:100%}#services .services-copy-line{display:inline;white-space:normal}#services .copy h2{font-size:48px;line-height:1.15}#service-grid{width:100%;height:auto;grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:repeat(3,auto);gap:32px 20px}#service-grid .service-card{width:100%;height:auto;min-height:240px;grid-template-columns:148px minmax(0,1fr);gap:16px;padding:12px 8px}#service-grid .service-card>img,#service-grid .service-image-frame{width:148px;height:189px;object-fit:cover}#service-grid .service-card h3{font-size:22px;line-height:1.15}#service-grid .service-card p{font-size:14px;line-height:1.5}#service-grid .service-card .ring-icon{width:40px;height:40px}#process>.signature{width:min(1084px,calc(100% - 80px))}}
@media (min-width:1281px){.header{gap:24px}.header .brand{flex:none}.header .brand-logo{width:clamp(180px,calc(180px + (100vw - 1281px) * .50314),260px);max-height:none}.header #navigation{font-size:clamp(10px,calc(10px + (100vw - 1281px) * .02516),14px);gap:clamp(12px,calc(12px + (100vw - 1281px) * .07547),24px)}.header #navigation>.button{font-size:clamp(11px,calc(11px + (100vw - 1281px) * .01887),14px);padding:12px 16px;white-space:nowrap}.header #navigation>a{white-space:nowrap}}
/* Tablet pillars: two rows beside the bottom-left sketch. */
@media (min-width:640px) and (max-width:1280px){#why>.trust{width:62%;min-width:440px;max-width:calc(100% - 48px);margin-left:auto;margin-right:24px;position:relative;z-index:1;padding-top:100px}#why .trust>h3{font-size:32px;max-width:none;white-space:nowrap}#why #trust-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:32px 24px;margin:40px 0 0;width:100%}#why #trust-grid .trust-card{width:100%;max-width:none;margin:0;padding:16px 8px}#why #trust-grid .trust-card h3{font-size:24px}#why #trust-grid .trust-card p{font-size:14px;line-height:1.5}#why:before{content:'';display:block;position:absolute;left:0;bottom:0;width:70%;height:600px;background:url('assets/GJ-Trusted_Jeweller=Pen-Sketch.webp') left bottom/cover no-repeat;opacity:1;mix-blend-mode:normal;mask-image:linear-gradient(to right,#000 60%,transparent 100%);pointer-events:none;z-index:0}#why .trust:before{display:none}#why>.signature{position:relative;z-index:1;margin:64px 24px 0 auto;width:max-content;max-width:calc(100% - 48px);padding-left:12px;padding-right:12px;font-size:16px}#why{padding-bottom:64px}}
@media (min-width:640px) and (max-width:1280px){#why .trust-copy-line{display:block;white-space:nowrap}#why #trust-grid .trust-card p{font-size:clamp(11px,1.18vw,14px)}#why:before{left:-18%;bottom:-40px}}

.service-tablet-description{display:none}
@media (min-width:640px) and (max-width:1280px){
 #why #trust-grid{grid-template-columns:repeat(2,max-content);justify-content:space-around;gap:32px 24px}
 #why #trust-grid .trust-card{width:max-content;padding:12px 16px;justify-self:center}
 #why:before{mask-image:none;-webkit-mask-image:none}
 #why>.signature{width:62%;min-width:440px;max-width:calc(100% - 48px);margin-right:24px;margin-left:auto;padding-left:0;padding-right:0;text-align:center;font-size:14px}
 #services .services-layout{display:flex;flex-wrap:wrap;align-items:flex-start;gap:32px 24px}
 #services .copy{flex:0 0 220px;width:220px;max-width:100%}
 #services .copy h2{font-size:36px;line-height:1.15}
 #services .services-copy-line{display:inline;white-space:normal}
 #services .copy>.services-description{font-size:16px;line-height:1.4}
 #service-grid{display:grid;flex:1 1 620px;width:auto;height:auto;grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:auto;gap:40px 24px}
 #service-grid .service-card{display:grid;width:100%;height:auto;min-height:188px;padding:12px 0;grid-template-columns:124px minmax(0,1fr);gap:12px}
 #service-grid .service-card>div:not(.service-image-frame){display:block;min-width:0}
 #service-grid .service-card>img,#service-grid .service-image-frame{width:124px;height:164px;aspect-ratio:124/164;object-fit:cover;border-radius:8px}
 #service-grid .service-card .ring-icon{width:32px;height:32px;margin-bottom:10px}
 #service-grid .service-card h3{font-size:20px;line-height:1.1;margin:0}
 #service-grid .service-card .service-rule{margin:10px 0 14px}
 #service-grid .service-card p{font-size:12px;line-height:1.5;margin:0}
 .service-default-description{display:none}
 .service-tablet-description,.service-tablet-description>span{display:block}
 .service-tablet-description>span{white-space:nowrap}
}

@media(min-width:1281px){.header .brand-logo{width:260px;height:auto;max-height:none}}
@media(min-width:1281px){.header #navigation{font-size:13px;gap:25px;flex:none}.header #navigation>.button{font-size:14px;padding:12px 18px;white-space:nowrap}.header #navigation>a{white-space:nowrap}}
@media(min-width:1281px){.header .brand-logo{width:260px;height:auto;max-height:none;flex:none}}
@media (min-width:640px) and (max-width:1280px){#home .hero-content{width:calc(100% - 64px);margin-left:32px;margin-right:32px}.header{padding-left:32px;padding-right:32px}}

@media(min-width:640px){.header .brand{flex:none}.header .brand-logo{width:260px;height:auto;max-height:none}.header #navigation{flex:none;font-size:13px;gap:25px}.header #navigation>a{white-space:nowrap}.header #navigation>.button{font-size:14px;white-space:nowrap}}
@media(min-width:640px){#booking .booking-panel{width:min(1180px,calc(100vw - 32px));max-width:none;position:relative;left:50%;transform:translateX(-50%);margin-left:0;margin-right:0}}
#booking .booking-panel.is-full-sized{height:496px;padding:39px 48px;gap:48px;grid-template-columns:minmax(0,1fr) minmax(0,1fr) 336px}
#booking .booking-panel.is-full-sized>.booking-preparation,#booking .booking-panel.is-full-sized>.booking-date-stage,#booking .booking-panel.is-full-sized>.booking-time-stage{height:416px}

.process-tablet-description{display:none}
@media (min-width:640px) and (max-width:1280px){#process{height:auto;padding:64px 0 64px}#process>.container.split{display:grid;width:100%;margin:0;padding:0 24px 0 0;grid-template-columns:60% minmax(0,1fr);gap:64px 24px;align-items:center}#process>.split>div{display:contents}#process .process-photo{position:static;width:100%;height:auto;aspect-ratio:781/664;margin:0;object-fit:cover;border-radius:0 8px 8px 0}#process .copy{grid-column:2;margin:0;width:100%;max-width:100%;align-self:center}#process .copy h2{font-size:32px;line-height:1.15}#process .copy>.eyebrow{font-size:16px}#process .process-description{display:none}#process .process-tablet-description{display:block;font-size:14px;line-height:1.3}#process .process-tablet-description span{display:block;white-space:nowrap}#process .copy .button{font-size:12px;padding:12px 20px;max-width:100%}#process #process-steps{grid-column:1/-1;grid-template-columns:repeat(4,minmax(0,1fr));margin:0 32px;width:calc(100% - 40px);gap:56px 24px}#process .process-steps li:not(:nth-child(4n)):after{content:'';position:absolute;top:32px;left:calc(50% + 48px);width:max(0px,calc(100% - 72px));height:2px;background:var(--gj-gold-line)}#process .process-steps li:not(:nth-child(4n)):before{content:'';position:absolute;top:32px;left:calc(50% + 48px);width:max(0px,calc(100% - 72px));height:2px;pointer-events:none;background:linear-gradient(90deg,transparent 35%,var(--gj-text-light) 50%,transparent 65%);background-size:300% 100%;background-position:100% 0;opacity:0;z-index:1}#process>.signature{margin:64px auto 0;max-width:calc(100% - 48px)}#process .process-sketch{right:0;top:0;width:36%;opacity:.12}}

@media (min-width:640px) and (max-width:1280px){#process>.container.split{grid-template-columns:minmax(0,1fr) max(260px,calc(40% - 24px))}}
@media (min-width:640px) and (max-width:1280px){#process #process-steps{width:min(664px,calc(100vw - 48px));margin:0;justify-self:center;position:relative;left:12px}#process .process-steps li.is-glimmering:not(:nth-child(4n)):before{animation:process-glimmer 850ms ease-in-out both}}
@media(prefers-reduced-motion:reduce){#process .process-steps li.is-glimmering:before{animation:none}}
@media (min-width:640px) and (max-width:1280px){#services .services-layout{gap:32px}#services .copy{flex:1 1 220px;width:auto}#services .copy h2{font-size:48px;white-space:nowrap;line-height:1.15}#service-grid{flex:0 1 auto;grid-template-columns:repeat(2,max-content);justify-content:start;gap:32px 24px;max-width:100%}#service-grid .service-card{width:max-content;height:auto;min-height:0;padding:12px 16px;grid-template-columns:124px max-content;align-items:start}#service-grid .service-card>div:not(.service-image-frame){width:max-content}#service-grid .service-card p{width:max-content}}
@media (min-width:640px) and (max-width:1280px){#creations .gallery-layout{grid-template-columns:minmax(0,1fr);gap:40px}#creations .gallery-layout>.copy{width:100%;max-width:none;text-align:center}#creations .copy>.eyebrow{margin-bottom:8px}#creations .copy h2{font-size:40px;line-height:1.15;white-space:nowrap;margin:0}#creations .copy h2 br{display:none}#creations .copy>.rule{margin:20px auto}#creations .creations-description{max-width:639px;margin:0 auto;font-size:16px;line-height:1.4;text-wrap:balance}#creations .creations-copy-line{display:inline;white-space:normal}#creations .copy>.gold{font-size:16px;margin:12px auto 0}#creations .copy>.gold br{display:none}#creations .gallery{width:100%;min-width:0}#creations .gallery-main>img{width:100%;height:auto;aspect-ratio:668/413;object-fit:cover}#creations #gallery-thumbs{margin-top:12px}#creations .gallery>.signature{text-align:center;font-size:14px}}

.tablet-heading-space{display:none}
@media (min-width:640px) and (max-width:1280px){.tablet-heading-space{display:inline}}

.booking-tablet-description{display:none}
@media (min-width:640px) and (max-width:1280px){
 #booking .booking-intro h2{font-size:32px;line-height:1.15;white-space:nowrap}
 #booking .booking-intro .eyebrow{font-size:16px;line-height:1.1;max-width:220px}
 #booking .booking-description{display:none}
 #booking .booking-tablet-description{display:block;font-size:14px;line-height:1.3}
 #booking .booking-tablet-description span{display:block;white-space:nowrap}
 #booking .booking-panel:not(.is-full-sized){display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr) minmax(0,1fr);padding:calc(39px * var(--booking-scale)) calc(48px * var(--booking-scale));gap:calc(40px * var(--booking-scale));height:auto;min-height:calc(496px * var(--booking-scale))}
 #booking .booking-panel:not(.is-full-sized)>div:first-child{grid-column:auto}
 #booking .booking-panel:not(.is-full-sized) h3{font-size:calc(28px * var(--booking-scale));line-height:1.25}
 #booking .booking-panel:not(.is-full-sized)>div>p,#booking .booking-panel:not(.is-full-sized) .check-list{font-size:calc(16px * var(--booking-scale));line-height:1.5}
 #booking .booking-panel:not(.is-full-sized) .check-list{gap:calc(24px * var(--booking-scale));margin-top:calc(32px * var(--booking-scale))}
 #booking .booking-panel:not(.is-full-sized) .check-list li{padding-left:calc(32px * var(--booking-scale));min-height:calc(24px * var(--booking-scale))}
 #booking .booking-panel:not(.is-full-sized) .check-list li:before{width:calc(24px * var(--booking-scale));height:calc(24px * var(--booking-scale));background-size:calc(13px * var(--booking-scale)) calc(9px * var(--booking-scale))}
 #booking .booking-panel:not(.is-full-sized) .calendar,#booking .booking-panel:not(.is-full-sized) .calendar-week{grid-template-columns:repeat(7,minmax(0,1fr));gap:2px}
 #booking .booking-panel:not(.is-full-sized) .calendar button{width:100%;height:auto;aspect-ratio:1;min-height:0;font-size:calc(15px * var(--booking-scale))}
 #booking .booking-panel:not(.is-full-sized) .calendar-week{font-size:calc(11px * var(--booking-scale))}
 #booking .booking-panel:not(.is-full-sized) .calendar-heading{font-size:calc(16px * var(--booking-scale))}
 #booking .booking-panel:not(.is-full-sized) .times{width:100%;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}
 #booking .booking-panel:not(.is-full-sized) .times button{font-size:calc(15px * var(--booking-scale));padding:8px 2px}
 #booking .booking-panel:not(.is-full-sized) .duration{width:100%;font-size:calc(15px * var(--booking-scale));gap:4px}
 #booking .booking-panel:not(.is-full-sized) #continue-booking{width:100%;font-size:calc(14px * var(--booking-scale));padding:0 4px}
 #booking .booking-panel:not(.is-full-sized) .booking-request-stage,#booking .booking-panel:not(.is-full-sized) .booking-details-stage{grid-column:auto}
 #booking .booking-panel:not(.is-full-sized) .booking-request-stage h3,#booking .booking-panel:not(.is-full-sized) .booking-details-stage h3{font-size:calc(28px * var(--booking-scale))}
 #booking .booking-panel:not(.is-full-sized) .booking-consent,#booking .booking-panel:not(.is-full-sized) .booking-request li,#booking .booking-panel:not(.is-full-sized) .booking-details-stage label{font-size:calc(14px * var(--booking-scale))}
}

@media (min-width:640px) and (max-width:1280px){#services .tablet-services-stacked{justify-content:center}#services .tablet-services-stacked>.copy{flex-basis:100%;width:100%;text-align:center}#services .tablet-services-stacked .copy h2 br{display:none}#services .tablet-services-stacked .copy>.rule{margin-left:auto;margin-right:auto}#services .tablet-services-stacked .services-description{max-width:760px;margin-left:auto;margin-right:auto;text-align:center;text-wrap:balance}#services .tablet-services-stacked #service-grid{margin-left:auto;margin-right:auto}}
@media (min-width:640px) and (max-width:1280px){#booking .booking-panel:not(.is-full-sized){grid-template-columns:minmax(0,1.077fr) minmax(0,1fr) minmax(0,1fr)}#booking .booking-panel:not(.is-full-sized) .check-list li{white-space:normal;text-wrap:pretty;height:auto}#booking .booking-panel:not(.is-full-sized)>div:first-child h3{text-wrap:balance}#process .process-photo{border-left:0}}
@media (min-width:640px) and (max-width:1280px){#why>.container.split,#services>.services-layout,#creations>.gallery-layout,#contact>.container,#booking>.container{width:calc(100% - 64px);margin-left:32px;margin-right:32px}#why>.container.split{grid-template-columns:minmax(0,1fr) minmax(0,1.3fr);gap:64px}#why .workbench>img:first-child{width:calc(100% + 32px);max-width:none}#why .detail-ring{width:220px;height:auto;aspect-ratio:228/190;left:-20px;right:auto}#services #service-grid .service-card{grid-template-columns:156px max-content}#services #service-grid .service-image-frame,#services #service-grid .service-card>img{width:156px;height:206px}#process>.container.split{padding-right:32px}}

.why-reference-description,.services-tablet-copy{display:none}
@media (min-width:640px) and (max-width:1280px){#why .why-description{display:none}#why .why-reference-description{display:block;font-size:14px;line-height:1.3}#why .why-reference-description span{display:block;white-space:nowrap}#why>.container.split{grid-template-columns:minmax(0,.9fr) minmax(0,1.5fr);gap:40px}#why .detail-ring{width:32%;left:-20px}#services .services-layout:not(.tablet-services-stacked) .services-default-copy{display:none}#services .services-layout:not(.tablet-services-stacked) .services-tablet-copy,#services .services-tablet-copy>span{display:block}#services .services-tablet-copy>span{white-space:nowrap}#service-grid{gap:24px 16px}#services #service-grid .service-card{padding:8px 12px;gap:10px;grid-template-columns:128px max-content}#services #service-grid .service-image-frame,#services #service-grid .service-card>img{width:128px;height:164px}}

.closing-tablet-break{display:none}
@media (min-width:640px) and (max-width:1280px){#why .why-reference-description{font-size:18px}#creations .creations-description{font-size:18px}#creations .copy>.gold{font-size:20px}#creations .gallery>.signature{font-size:18px}#contact .contact-communications>a.contact-item{display:flex;align-items:flex-start;gap:12px}.closing>.container{grid-template-columns:minmax(0,.8fr) minmax(0,1.4fr) minmax(0,.8fr);gap:32px}.closing>.container>img:first-child,.closing>.container>img:last-child{width:100%;max-width:278px;height:auto}.closing .eyebrow{font-size:16px;line-height:1.1;letter-spacing:.1em}.closing-tablet-break{display:block}.closing :is(h2,h3){font-size:28px;line-height:1.15;letter-spacing:.03em}.closing .text-link{display:inline-block;margin-top:16px;font-size:14px}}
@media (min-width:640px) and (max-width:1280px){footer .footer-grid{align-items:center;gap:40px}footer .footer-grid>.footer-information{order:0;width:auto;max-width:100%;justify-content:center;gap:24px;text-align:center;padding-top:0}footer .footer-information>div{flex:none}footer .footer-grid>.footer-brand{order:1;text-align:center}footer .footer-brand>.brand{justify-content:center}footer .footer-socials{justify-content:center}#process .process-photo{align-self:start}#process .copy{align-self:start;margin-top:var(--tablet-process-copy-offset,0px)}#services #service-grid .service-card{grid-template-columns:var(--service-image-width,128px) max-content}#services #service-grid .service-image-frame,#services #service-grid .service-card>img{width:var(--service-image-width,128px);height:var(--service-image-height,164px)}}
@media (min-width:640px) and (max-width:1280px){footer .footer-grid>.footer-brand{order:0}footer .footer-grid>.footer-information{order:1;gap:64px;text-align:left;flex-wrap:wrap}footer .footer-information>div{text-align:left}.closing>.container>div{justify-self:center;text-align:left;width:max-content;max-width:100%}.closing :is(h2,h3){font-size:34px;line-height:1.15}.closing .eyebrow{font-size:18px}.closing .text-link{font-size:16px}}

@media(max-width:639px){#contact #directions{display:none}}

/* Mobile consultation and visit layout. */
.visit-pagination{display:none}
@media(max-width:639px){
 #booking .booking-panel>div:first-child h3,#booking .booking-panel>div:first-child>p,#booking .booking-panel>div:nth-child(3)>h3,#booking #time-help{text-align:center}
 #booking .check-list{width:100%;margin-left:auto;margin-right:auto;text-align:center}
 #booking .check-list li{display:flex;align-items:center;justify-content:center;gap:8px;padding-left:0;text-align:center}
 #booking .check-list li:before{position:static;flex:0 0 24px}
 #booking #continue-booking{height:64px;min-height:64px}
 #contact .contact-panel{display:flex;flex-direction:column;width:calc(100vw - 8px);max-width:none;position:relative;left:50%;transform:translateX(-50%);margin:0;padding:8px 8px 32px;box-sizing:border-box}
 #contact #visit-panel{order:0;margin:0;width:100%;padding:0}
 #contact .visit-layout{display:block;width:100%;margin:0;padding:0}
 #contact .visit-media{width:100%;height:auto;aspect-ratio:610/348;margin:0}
 #contact #visit-google-map{width:100%;height:auto;aspect-ratio:610/348;border-radius:8px}
 #contact .visit-layout aside{display:none}
 #contact .visit-pagination{order:1;display:flex;justify-content:center;gap:4px;margin:8px 0 12px}
 #contact .visit-pagination button{display:grid;place-items:center;width:24px;height:24px;padding:0;border:0;background:transparent;border-radius:50%}
 #contact .visit-pagination button:after{content:'';width:12px;height:12px;border-radius:50%;background:#D8D8D8}
 #contact .visit-pagination button[aria-pressed=true]:after{background:var(--gj-gold)}
 #contact .contact-tabs{order:2;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));width:100%;margin:0 0 32px;padding:0;border:0;background:transparent}
 #contact .contact-tabs button{min-width:0;min-height:68px;padding:4px 2px 16px;border:0;border-right:1px solid var(--gj-border-warm);border-radius:0;background:transparent;font-size:10px;gap:6px}
 #contact .contact-tabs button:last-child{border-right:0}
 #contact .contact-tabs button[aria-selected=true]{background:transparent;border-bottom:0;border-top:0}
 #contact .contact-tabs button:after{width:38px;bottom:8px}
 #contact .visit-tab-label{font-size:10px;white-space:normal}
 #contact .contact-details{order:3;display:grid;grid-template-columns:minmax(0,1fr);width:100%;max-width:340px;margin:0 auto;padding:24px 8px 0;border:0;border-top:1px solid var(--gj-border-warm);background:transparent;gap:28px;box-sizing:border-box;text-align:left}
 #contact .contact-communications{width:100%}
 #contact .contact-item{justify-content:flex-start}
 #contact .contact-navigation{text-align:center;width:100%}
 #contact .contact-navigation .button{margin-left:auto;margin-right:auto}
}

.phone-mobile-copy{display:none}
@media(max-width:639px){
 footer .footer-grid{display:flex;flex-direction:column;align-items:center;text-align:center;gap:72px}
 footer .footer-brand{width:100%;text-align:center}
 footer .footer-brand .brand{display:flex;justify-content:center}
 footer .footer-brand .brand-logo{width:min(350px,100%);max-width:100%;height:auto}
 footer .footer-socials{justify-content:center}
 footer .footer-grid>.footer-information{display:flex;flex-direction:column;align-items:center;width:100%;gap:32px;padding:0;text-align:center}
 footer .footer-information>div{width:100%;text-align:center}
 footer .copyright{display:flex;flex-direction:column;align-items:center;text-align:center;gap:20px;border-top:0}
 footer .copyright-monogram{order:0}
 footer .copyright>span:last-child{order:1}
 footer .copyright>span:first-child{order:2}
 #contact .visit-pagination{display:flex!important;margin:12px 0 8px;height:24px;flex-shrink:0}
 #contact .contact-tabs{margin-top:0}
 #contact .contact-tabs button{position:relative;border-right:0!important}
 #contact .contact-tabs button:not(:last-child):before{content:'';position:absolute;right:0;top:8px;height:40px;width:1px;background:var(--gj-border-warm)}
 #contact .contact-communications>a[href^="tel:"]{display:flex;align-items:center;justify-content:center;gap:10px;min-height:48px;width:100%;padding:12px 16px;margin-bottom:28px;border-radius:4px;background:var(--gj-button-gold,#B88C46);box-sizing:border-box;color:var(--gj-text-light);text-transform:uppercase}
 #contact .contact-communications>a[href^="tel:"] :is(h3,h4),#contact .phone-desktop-copy{display:none}
 #contact .contact-communications>a[href^="tel:"] .contact-icon-phone{width:20px;height:20px;background:currentColor;flex:0 0 20px}
 #contact .contact-communications>a[href^="tel:"] .phone-mobile-copy{display:block;font-size:14px;line-height:24px;font-weight:700;color:inherit}
 #contact .contact-communications>a[href^="tel:"]:hover{background:var(--gj-gold-rich);color:var(--gj-text-light)}
}

.booking-mobile-description{display:none}
@media(max-width:639px){
 #contact .contact-tabs button{min-height:100px;gap:8px;padding-bottom:20px}
 #contact .visit-tab-icon{max-width:34px;max-height:34px}
 #contact .visit-tab-icon-store{width:34px;height:34px}
 #contact .visit-tab-icon-shopping{width:34px;height:33px}
 #contact .visit-tab-icon-google{width:25px;height:34px}
 #contact .visit-tab-label{font-size:13px;line-height:1.3;width:100%;max-width:115px;text-wrap:balance}
 #contact .contact-tabs button:not(:last-child):before{height:64px;top:8px}
 #booking .check-list{width:max-content;max-width:100%;margin-inline:auto;text-align:left}
 #booking .check-list li{justify-content:flex-start;text-align:left;align-items:flex-start}
 #booking .booking-intro>.copy,#creations .gallery-layout>.copy,#process .copy{text-align:center}
 #booking .booking-intro .rule,#creations .copy>.rule,#process .copy>.rule{margin-left:auto;margin-right:auto}
 #booking .booking-intro .eyebrow,#booking .booking-intro h2,#creations .copy>p,#process .copy>p{text-align:center}
 #booking .booking-intro .booking-description{display:none}
 #booking .booking-intro .booking-mobile-description{display:block;font-size:clamp(11px,2.6vw,16px);line-height:1.5;margin:0 auto}
 #booking .booking-mobile-description span{display:block;white-space:nowrap}
 #booking .booking-intro>img{width:100vw;max-width:none;height:auto;aspect-ratio:1.5;object-fit:cover;margin-left:-20px;border-radius:0}
 #booking .booking-panel{position:relative;z-index:1;margin-top:-64px}
 .brands>div{display:flex;flex-direction:column;align-items:center;gap:40px}
 .brands>div>img{width:220px;max-width:70vw;height:auto;max-height:110px;object-fit:contain}
 #process .copy .button{display:flex;width:100%;justify-content:center;box-sizing:border-box;min-height:56px}
 #creations .creations-description,#process .process-description{text-wrap:balance}
}

.visit-label-mobile{display:none}
@media(max-width:639px){#contact .visit-label-desktop{display:none}#contact .visit-label-mobile{display:block}#contact .visit-tab-label{max-width:none}#contact .visit-label-mobile{font-size:clamp(10px,2.1vw,13px)}}

/* Two-column mobile process connectors use the shared desktop swish. */
@media(max-width:639px){
 #process #process-steps li:nth-child(odd):after,#process #process-steps li:nth-child(odd):before{content:'';display:block;position:absolute;top:32px;left:calc(50% + 48px);width:max(0px,calc(100% + 14px - 96px));height:2px;pointer-events:none}
 #process #process-steps li:nth-child(odd):after{background:var(--gj-gold-line)}
 #process #process-steps li:nth-child(odd):before{background:linear-gradient(90deg,transparent 35%,var(--gj-text-light) 50%,transparent 65%);background-size:300% 100%;background-position:100% 0;opacity:0;z-index:1}
 #process #process-steps li:nth-child(even):after,#process #process-steps li:nth-child(even):before{content:none}
 #process #process-steps li.is-glimmering:nth-child(odd):before{animation:process-glimmer 850ms ease-in-out both}
}
@media(prefers-reduced-motion:reduce){#process #process-steps li.is-glimmering:before{animation:none}}

@media(max-width:639px){
 .brands>div{gap:80px}
 #process #process-steps{row-gap:72.8px;column-gap:18.2px}
 #process #process-steps .step-circle{width:83.2px;height:83.2px;margin-bottom:15.6px}
 #process #process-steps .step-icon{transform:scale(1.3)}
 #process #process-steps .step-number,#process #process-steps .step-label{font-size:18.2px;margin-bottom:10.4px}
 #process #process-steps li:nth-child(odd):after,#process #process-steps li:nth-child(odd):before{top:41.6px;left:calc(50% + 62.4px);width:max(0px,calc(100% + 18.2px - 124.8px))}
}

.process-mobile-cta{display:none}
@media(max-width:639px){
 .brands .brands-rule{margin-bottom:48px}
 #process .process-photo{width:100vw;max-width:none;margin-left:-20px;margin-right:-20px;border-radius:0;border-left:0;border-right:0;order:2}
 #process>.container.split>div{order:1}
 #process .copy>.button{display:none}
 #process>.container.split>.process-mobile-cta{display:flex;order:3;justify-content:center;width:100%;min-height:56px;margin-top:8px;box-sizing:border-box}
}
@media(max-width:639px){#process>.container.split{flex-direction:column}}

.service-mobile-description{display:none}
@media(max-width:639px){
 #service-grid{gap:48px}
 #service-grid .service-card h3{font-size:clamp(22px,5.6vw,36px);white-space:normal;min-height:2.4em}
 #service-grid .service-card h3 .service-mobile-title br{display:block}
 #service-grid .service-card p{font-size:clamp(22px,5.8vw,32px);line-height:1.5;margin-top:32px}
 #service-grid .service-desktop-description{display:none}
 #service-grid .service-mobile-description,#service-grid .service-mobile-description>span{display:block}
 #service-grid .service-mobile-description>span{text-wrap:balance}
}

@media(max-width:639px){
 #service-grid .service-card p{font-size:24px;line-height:1.5}
 #service-grid .service-card .ring-icon{width:76.8px;height:76.8px}
 #service-grid .service-mobile-description>span{display:block;text-wrap:balance}
}

.services-mobile-copy{display:none}
@media(max-width:639px){
 #services .services-layout>.copy{width:100%;max-width:none;text-align:center}
 #services .copy>.eyebrow,#services .copy>h2,#services .services-description{text-align:center}
 #services .copy>.rule{margin-left:auto;margin-right:auto}
 #services .services-default-copy,#services .services-tablet-copy{display:none}
 #services .services-mobile-copy,#services .services-mobile-copy>span{display:block}
 #services .services-mobile-copy{max-width:100%;margin:auto}
 #services .services-mobile-copy>span{text-wrap:balance}
}

@media(max-width:639px){
 #process{padding-bottom:64px}
 #process>.container.split>.process-mobile-cta{margin-top:24px;margin-bottom:0;height:56px;min-height:56px}
 footer .copyright-monogram{width:64px;height:64px;min-width:64px;min-height:64px;flex:none;mask-size:contain}
 #contact .contact-communications>a[href^="tel:"],#contact .contact-navigation>.button{display:flex;align-items:center;justify-content:center;width:calc(100vw - 40px);max-width:none;height:56px;min-height:56px;padding:12px 24px;position:relative;left:50%;transform:translateX(-50%);margin-left:0;margin-right:0;box-sizing:border-box;font-size:14px;font-weight:700;letter-spacing:.6px;border-radius:3px}
 #contact .contact-communications>a[href^="tel:"] .phone-mobile-copy{font-size:14px;font-weight:700;letter-spacing:.6px}
}

.email-mobile-copy{display:none}
@media(max-width:639px){
 #contact .contact-location{order:0}
 #contact .contact-hours-item{order:1}
 #contact .contact-communications{order:2;display:flex;flex-direction:column;gap:24px}
 #contact .contact-navigation{order:3}
 #contact .contact-navigation>:is(h3,h4),#contact .contact-navigation>p{display:none}
 #contact .contact-communications>a[href^="tel:"]{margin-bottom:0}
 #contact .contact-communications>a[href^="mailto:"]{display:flex;align-items:center;justify-content:center;gap:10px;width:calc(100vw - 40px);max-width:none;height:56px;min-height:56px;padding:12px 24px;position:relative;left:50%;transform:translateX(-50%);margin:0;box-sizing:border-box;background:var(--gj-button-gold,#B88C46);color:var(--gj-text-light);border-radius:3px;text-transform:uppercase;font-size:14px;font-weight:700;letter-spacing:.6px}
 #contact .contact-communications>a[href^="mailto:"] :is(h3,h4),#contact .email-desktop-copy{display:none}
 #contact .contact-communications>a[href^="mailto:"] .contact-icon-email{width:20px;height:16px;flex:0 0 20px;background:currentColor}
 #contact .contact-communications>a[href^="mailto:"] .email-mobile-copy{display:block;color:inherit;font-size:14px;font-weight:700;letter-spacing:.6px}
 #contact .contact-communications>a[href^="mailto:"]:hover{background:var(--gj-gold-rich);color:var(--gj-text-light)}
 #contact .contact-details{row-gap:24px}
}

@media(max-width:639px){
 #contact .contact-navigation>.button{background:var(--gj-button-gold,#B88C46);border-color:var(--gj-button-gold,#B88C46);color:var(--gj-text-light);gap:10px}
 #contact .contact-navigation>.button .navigation-link-icon{background:currentColor}
 #contact .contact-navigation>.button:hover{background:var(--gj-gold-rich);border-color:var(--gj-gold-rich);color:var(--gj-text-light)}
 #contact .contact-communications>a[href^="mailto:"]{background:var(--gj-charcoal);color:var(--gj-text-light)}
 #contact .contact-communications>a[href^="mailto:"]:hover{background:var(--gj-text-dark);color:var(--gj-text-light)}
}

.navigation-mobile-label{display:none}
@media(max-width:639px){
 #contact .contact-details{grid-template-columns:minmax(0,1fr) minmax(0,1fr);width:calc(100vw - 40px);max-width:none;padding-left:0;padding-right:0;column-gap:12px}
 #contact .contact-location,#contact .contact-hours-item{grid-column:1/-1;width:min(324px,100%);justify-self:center}
 #contact .contact-communications{display:contents}
 #contact .contact-communications>a[href^="tel:"]{grid-column:1/-1;grid-row:3;width:100%;left:auto;transform:none}
 #contact .contact-communications>a[href^="mailto:"]{grid-column:1;grid-row:4;width:100%;left:auto;transform:none;padding:12px 8px;gap:8px}
 #contact .contact-navigation{grid-column:2;grid-row:4;width:100%}
 #contact .contact-navigation>.button{width:100%;left:auto;transform:none;padding:12px 8px;gap:8px;font-size:13px}
 #contact .navigation-desktop-label{display:none}
 #contact .navigation-mobile-label{display:inline}
}

.brands-mobile-break,.booking-eyebrow-mobile-break{display:none}
@media(max-width:639px){
 #why .copy h2.why-mobile-heading,#why .trust>h3,#services .copy h2,#process .copy h2,#creations .copy h2,#reviews h2,#booking .booking-intro h2,.brands :is(h2,h3){font-size:40px;line-height:1.15}
 #home .hero-content>.eyebrow,#why .copy>.eyebrow,#services .copy>.eyebrow,#process .copy>.eyebrow,#creations .copy>.eyebrow,#reviews .eyebrow,#booking .booking-intro .eyebrow,#contact>.container>.eyebrow{font-size:24px;line-height:1.2}
 .brands-mobile-break,.booking-eyebrow-mobile-break{display:block}
 .brands-desktop-space,.booking-eyebrow-desktop-space{display:none}
 .brands .brands-rule{margin-bottom:80px}
 #creations .gallery>.signature{font-size:24px;line-height:1.35}
 #creations .creation-signature-line{display:block}
 #why .why-mobile-heading span{white-space:normal}
}

@media(min-width:640px) and (max-width:1280px){#creations .gallery>.signature,#why>.signature{font-size:20px}#service-grid .service-mobile-description{display:none}#service-grid .service-desktop-description{display:block}}

@media(min-width:640px) and (max-width:1280px){
 #services .services-layout{flex-direction:column;align-items:center;gap:48px}
 #services .services-layout>.copy{flex:0 0 auto;width:100%;max-width:none;text-align:center}
 #services .services-layout>#service-grid{flex:0 0 auto;margin-left:auto;margin-right:auto}
}

#why,#why:before,#why .workbench>img,#why .detail-ring,#why .copy>.button,#why #trust-grid .trust-card,#why #trust-grid .trust-card:hover{box-shadow:none;filter:none;backdrop-filter:none;-webkit-backdrop-filter:none}
#why:before{mask-image:none;-webkit-mask-image:none;mix-blend-mode:normal}
#why #trust-grid .trust-card:hover{background:transparent;transform:none}
@media(min-width:640px) and (max-width:1280px){
 #services .services-layout>#service-grid{width:min(710px,100%);grid-template-columns:repeat(2,minmax(0,1fr));align-items:stretch}
 #services #service-grid .service-card{width:100%;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);height:auto}
 #services #service-grid .service-card>div:not(.service-image-frame),#services #service-grid .service-card p{width:100%;min-width:0}
 #services #service-grid .service-tablet-description>span{white-space:normal}
 #services #service-grid .service-image-frame,#services #service-grid .service-card>img{width:100%;height:var(--service-image-height,164px)}
}

@media(min-width:640px) and (max-width:1280px){
 #services .services-layout>#service-grid{zoom:var(--tablet-service-scale,1);width:min(710px,calc(100% / var(--tablet-service-scale,1)));grid-template-columns:repeat(auto-fit,minmax(min(335px,100%),1fr));gap:24px clamp(4px,calc((100vw - 710px) / 4),16px)}
 #services #service-grid .service-card{grid-template-columns:124px minmax(0,1fr);gap:10px;padding:8px 12px}
 #services #service-grid .service-image-frame,#services #service-grid .service-card>img{width:124px;min-width:124px;height:var(--service-image-height,183px)}
}
@media(min-width:640px) and (max-width:1280px){#services .services-layout>#service-grid{width:710px;max-width:calc((100vw - 64px) / var(--tablet-service-scale,1))}}

@media(min-width:640px) and (max-width:1280px){
 #services .services-layout>#service-grid{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:clamp(4px,calc((100vw - 710px) / 4),16px)}
 #services #service-grid .service-card{padding-left:6px;padding-right:6px;gap:8px}
}

.hero-tablet-description{display:none}
@media(min-width:640px) and (max-width:1280px){
 #home .hero-description{display:none}
 #home .hero-tablet-description{display:block;font-size:18px;line-height:1.3;max-width:440px}
 #home .hero-tablet-description>span{display:block}
 #why:before{left:var(--pen-left,-80px);bottom:0;width:var(--pen-width,280px);height:var(--pen-height,350px);background-size:100% 100%;background-position:left bottom}
}
@media(min-width:1281px){
 #services .services-layout{grid-template-columns:minmax(280px,1fr) minmax(0,866px);gap:48px}
 #services #service-grid{width:100%;grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:repeat(3,auto);height:auto}
 #services #service-grid .service-card{width:100%;height:auto;min-height:240px;grid-template-columns:clamp(148px,calc(148px + (100vw - 1440px)*.08333),188px) minmax(0,1fr)}
 #services #service-grid .service-image-frame,#services #service-grid .service-card>img{width:100%;height:auto;aspect-ratio:188/240}
}

@media(min-width:640px) and (max-width:1280px){
 #why:before{height:auto;aspect-ratio:1448/1086;background-size:contain;background-repeat:no-repeat;background-position:left bottom}
}

/* Restore the reviewed pillars hover treatment. */
#why #trust-grid .trust-card{background:transparent;box-shadow:none;backdrop-filter:none;-webkit-backdrop-filter:none;transition:transform 500ms ease-in-out,background-color 500ms ease-in-out,box-shadow 500ms ease-in-out}
#why #trust-grid .trust-card:hover{transform:translateY(-4px);background:rgba(248,243,234,.96);box-shadow:var(--gj-shadow-md);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px)}
@media(prefers-reduced-motion:reduce){#why #trust-grid .trust-card:hover{transform:none}}

#booking #calendar-today-label{text-align:center;font-size:14px;color:var(--gj-text-body);margin:0 0 16px}
#booking .calendar button[aria-current=date]{opacity:1;border:2px solid var(--gj-gold);color:var(--gj-text-dark);font-weight:700}

#booking .calendar button[aria-current=date]{border:1px solid var(--gj-border-warm,#D8CBB7);font-weight:400;color:var(--gj-text-body);opacity:.45;background:transparent}

#booking .calendar button[aria-current=date]{position:relative;border-color:transparent;opacity:1;color:color-mix(in srgb,var(--gj-text-body) 45%,var(--gj-cream-card));font-weight:400}
#booking .calendar button[aria-current=date]:after{content:'';position:absolute;inset:-1px;border:1px solid var(--gj-border-light);border-radius:50%;pointer-events:none}

#booking #times button:disabled{opacity:.45;cursor:default;background:transparent;color:var(--gj-text-body);border-color:var(--gj-border-light)}

@media(min-width:1281px){
 #services .services-layout{grid-template-columns:minmax(220px,1fr) minmax(0,866px);gap:48px}
 #services #service-grid{width:100%;height:auto;grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:repeat(3,auto);gap:32px 16px;zoom:1}
 #services #service-grid .service-card{width:100%;height:auto;min-height:272px;padding:15px 11px;grid-template-columns:188px minmax(0,1fr);gap:16px;align-items:start}
 #services #service-grid .service-image-frame,#services #service-grid .service-card>img{width:188px;height:240px;min-width:188px;aspect-ratio:188/240;object-fit:cover}
 #services #service-grid .service-card>div:not(.service-image-frame){min-width:0;width:100%}
 #services #service-grid .ring-icon{width:48px;height:48px}
 #services #service-grid h3{font-size:28px;line-height:1.15}
 #services #service-grid p{font-size:14px;line-height:1.5;width:100%}
 #services .desktop-service-copy-line{display:block}
}

@media(min-width:1281px){
 #services .services-layout{grid-template-columns:420px minmax(0,1fr);gap:clamp(12px,calc((100vw - 1280px)*.05),32px)}
 #services .services-layout>.copy{width:420px;max-width:420px}
 #services .copy h2{white-space:nowrap}
 #services .services-copy-line{display:block;white-space:nowrap}
 #services .services-description{font-size:18px;line-height:1.4}
 #services #service-grid{column-gap:clamp(4px,calc((100vw - 1280px)*.025),16px)}
 #services #service-grid .service-card{padding-left:8px;padding-right:8px;gap:12px}
 #services #service-grid p{width:100%;min-width:0}
 #services .desktop-service-copy-line{display:inline;white-space:normal}
 #services .desktop-service-copy-line:not(:last-child):after{content:' '}
 #services #service-grid h3{overflow-wrap:normal}
}

@media(min-width:640px) and (max-width:1280px){
 #process #process-steps{width:calc(100% - 32px);max-width:none;justify-self:center;left:0;margin:0}
}
@media(min-width:640px) and (max-width:1280px){#process #process-steps{left:16px}}

@media(min-width:640px) and (max-width:1280px){
 #process #process-steps{width:min(808px,calc(100vw - 64px));max-width:none;left:16px;grid-template-columns:repeat(4,minmax(0,1fr));column-gap:24px}
 #process #process-steps .step-circle{width:64px;height:64px}
 #process #process-steps .step-number,#process #process-steps .step-label{font-size:14px}
}

@media(max-width:639px){
 #home{background:#000}
 #home #hero-video{top:-80px;bottom:auto;height:100%;background:#000}
 #home .hero-rings{bottom:-148px}
}

@media(max-width:639px){
 #home #hero-video{top:-120px;opacity:1}
 #home:after{background:linear-gradient(to bottom,rgba(0,0,0,0) 0%,rgba(0,0,0,0) 48%,rgba(0,0,0,.64) 62%,rgba(0,0,0,.64) 100%)}
}

@media(max-width:639px){
 #home #hero-video{top:-168px}
 #home:after{background:linear-gradient(to bottom,transparent 0px,transparent var(--hero-fade-start,462px),rgba(0,0,0,.64) calc(var(--hero-fade-start,462px) + 96px),rgba(0,0,0,.64) 100%)}
}

@media(min-width:1281px){
 #home{background:#000}
 #home #hero-video{opacity:1}
 #home:after{background:linear-gradient(to right,rgba(0,0,0,.64) 0px,rgba(0,0,0,.64) var(--hero-desktop-fade-start,650px),transparent calc(var(--hero-desktop-fade-start,650px) + 144px),transparent 100%)}
}

@media(min-width:640px) and (max-width:1280px){
 #home{background:#000}
 #home #hero-video{opacity:1}
 #home:after{background:linear-gradient(to right,rgba(0,0,0,.64) 0px,rgba(0,0,0,.64) var(--hero-desktop-fade-start,400px),transparent calc(var(--hero-desktop-fade-start,400px) + 144px),transparent 100%)}
}

.mobile-menu-call{display:none!important}
@media(max-width:639px){
 body.mobile-menu-open{overflow:hidden}
 body.mobile-menu-open .header{position:fixed;top:0;left:0;right:0;height:114px;padding:20px 16px;background:var(--gj-charcoal);z-index:100;align-items:flex-start}
 body.mobile-menu-open .header .brand-logo{width:min(260px,calc(100vw - 90px));height:auto}
 body.mobile-menu-open #navigation.open{position:fixed;display:flex;flex-direction:column;top:114px;bottom:0;left:0;right:0;width:100%;padding:16px 16px 32px;background:var(--gj-charcoal);border:0;gap:0;overflow-y:auto;align-items:stretch}
 body .header #navigation>a:not(.button){display:flex;align-items:center;justify-content:flex-end;font-size:clamp(24px,8.2vw,32px);font-weight:400;color:var(--gj-text-light-muted);line-height:1.2;padding:24px 0;border-top:1px solid var(--gj-text-light);min-height:87px}
 body .header #navigation>a:not(.button):nth-last-of-type(3){border-bottom:1px solid var(--gj-text-light)}
 body .header #navigation>.button{display:flex;flex:none;min-height:56px;padding:12px 16px;font-size:14px;width:100%;margin-top:38px;background:var(--gj-button-gold,#B88C46);border-color:var(--gj-button-gold,#B88C46);color:var(--gj-charcoal);border-radius:2px;letter-spacing:.6px}
 body .header #navigation>.mobile-menu-call{display:flex!important;margin-top:12px;background:transparent;color:var(--gj-text-light);border-color:#625c54;font-weight:400}
 body.mobile-menu-open .menu-toggle{position:relative;width:40px;height:40px;min-width:40px;border:1px solid var(--gj-gold-soft);border-radius:50%;margin-top:16px}
 body.mobile-menu-open .menu-toggle svg{display:none}
 body.mobile-menu-open .menu-toggle:before,body.mobile-menu-open .menu-toggle:after{content:'';position:absolute;width:22px;height:1px;background:var(--gj-gold-soft);left:8px;top:19px;transform:rotate(45deg)}
 body.mobile-menu-open .menu-toggle:after{transform:rotate(-45deg)}
}

@media(max-width:639px){
 body.mobile-menu-open .header{height:auto;padding:20px;align-items:center}
 body.mobile-menu-open .header .brand-logo{width:200px;max-width:calc(100vw - 108px);height:auto}
 body.mobile-menu-open .menu-toggle{width:44px;height:44px;min-width:44px;margin:0;padding:0}
 body.mobile-menu-open .menu-toggle:before,body.mobile-menu-open .menu-toggle:after{left:10px;top:21px}
 body.mobile-menu-open #navigation.open{top:var(--mobile-menu-header-height,96px);padding-top:16px}
}

@media(max-width:639px){
 #home .hero-mobile-description,#why .why-mobile-description,#service-grid .service-card p,#reviews .review-intro,#booking .booking-intro .booking-mobile-description,#contact .contact-location .contact-detail-copy p,#contact .contact-hours span,footer .footer-information a{font-size:16px}
 #home .hero-mobile-description span,#why .why-mobile-description span,#booking .booking-mobile-description span{white-space:normal}
 footer .footer-information :is(h3,h4){font-size:18px}
 #process #process-steps .step-circle{width:66.56px;height:66.56px;margin-bottom:12.48px}
 #process #process-steps .step-icon{transform:scale(1.04)}
 #process #process-steps .step-number,#process #process-steps .step-label{font-size:14.56px;margin-bottom:8.32px}
 #process #process-steps li:nth-child(odd):before,#process #process-steps li:nth-child(odd):after{top:33.28px;left:calc(50% + 50px);width:max(0px,calc(100% + 18.2px - 100px))}
 .brands{padding-bottom:96px}
 footer .copyright-monogram{margin-bottom:24px}
}
@media(max-width:639px){#service-grid .service-card p{font-size:18px}#service-grid .service-card h3{font-size:28px}}
@media(max-width:639px){#service-grid{gap:24px}}
@media(max-width:639px){#service-grid .service-card .ring-icon{margin-bottom:4px}#service-grid .service-card h3{margin:0;min-height:0}#service-grid .service-card .service-rule{margin-top:4px;margin-bottom:8px}#service-grid .service-card p{margin-top:8px}}

@media(max-width:639px){
 body.mobile-menu-open #navigation.open{padding-left:20px;padding-right:20px}
 body.mobile-menu-open .menu-toggle{border:0;border-radius:0}
 body.mobile-menu-open .menu-toggle:before,body.mobile-menu-open .menu-toggle:after{width:28px;left:8px;top:21.5px}
 body .header #navigation>.button{transition:none;animation:none}
 body .header #navigation>a:not(.button){position:relative;border-top:0;border-bottom:0}
 body .header #navigation>a:not(.button):before{content:'';position:absolute;right:0;top:0;width:100%;height:1px;background:var(--gj-text-light);transform-origin:right center;animation:mobile-menu-stroke 400ms ease-out both}
 body .header #navigation>a:not(.button):nth-last-of-type(3){border-bottom:0}
 body .header #navigation>a:not(.button):nth-last-of-type(3):after{content:'';position:absolute;right:0;bottom:0;width:100%;height:1px;background:var(--gj-text-light);transform-origin:right center;animation:mobile-menu-stroke 400ms ease-out both}
}
@keyframes mobile-menu-stroke{from{transform:scaleX(0)}to{transform:scaleX(1)}}
@media(prefers-reduced-motion:reduce){body .header #navigation>a:not(.button):before,body .header #navigation>a:not(.button):after{animation:none}}

@media(max-width:639px){
 body .header #navigation>a:not(.button):after{left:auto;right:0;transform-origin:right center}
}
@media(max-width:639px){body .header #navigation>.button,body .header #navigation>.button:hover,body .header #navigation>.button:active{transform:none;box-shadow:none;animation:none}body .header #navigation>.button:hover{color:var(--gj-text-light);background:var(--gj-button-gold,#B88C46)}body .header #navigation>.mobile-menu-call:hover{color:var(--gj-gold-soft);background:transparent}}
@media(min-width:640px) and (max-width:1280px){#booking .booking-panel.is-full-sized>.booking-preparation,#booking .booking-panel.is-full-sized>.booking-date-stage,#booking .booking-panel.is-full-sized>.booking-time-stage{grid-column:auto;grid-row:auto}}

@media(min-width:640px) and (max-width:1280px){
 #why>.container.split{grid-template-columns:minmax(0,.42fr) minmax(0,.58fr);gap:clamp(16px,3.125vw,40px);align-items:center}
 #why>.container.split>.copy{width:100%;max-width:none;min-width:0}
 #why .why-reference-description{font-size:18px;line-height:1.4}
 #why .why-reference-description>span{display:inline;white-space:normal}
 #why .why-reference-description>span:not(:last-child):after{content:' '}
 #why .why-desktop-heading{font-size:clamp(40px,4.51vw,48px)!important;white-space:normal;overflow-wrap:normal}
 #why .workbench{min-width:0}
 #why .detail-ring{width:200px;height:auto;aspect-ratio:228/190;left:clamp(-20px,calc((1064px - 100vw)*.7 - 20px),calc(100% - 212px));right:auto}
}

@media(max-width:639px){
 #services{padding-top:174px}
 .closing>.container{gap:64px}
 .closing>.container>div{width:100%;min-width:0;max-width:100%}
 .closing .eyebrow{font-size:21.6px;white-space:normal}
 .closing :is(h2,h3){font-size:36px;white-space:normal;overflow-wrap:break-word}
 .closing .text-link{font-size:14.4px}
}

@media(max-width:639px){
 #booking .booking-complete-summary h3{margin-bottom:16px}
 #booking .booking-complete-summary .check-list{gap:12px;margin:0 auto;width:max-content;max-width:100%}
 #booking .booking-complete-summary .check-list li{font-size:16px;line-height:1.4;min-height:24px;padding-left:0;display:flex;align-items:center;justify-content:flex-start;gap:8px;text-align:left}
 #booking .booking-complete-summary .check-list li:before{position:static;top:auto;transform:none;width:24px;height:24px;min-width:24px;min-height:24px;flex:0 0 24px;border-radius:50%;background-size:12px 9px}
 #booking .booking-status{font-size:16px;letter-spacing:0;white-space:nowrap;padding:8px 12px}
}

/* Match the mobile completion summary to the request card. */
@media(max-width:639px){
 #booking .booking-complete-summary{padding:16px;border:1px solid var(--gj-border-light);border-radius:8px;background:var(--gj-cream-card);box-shadow:var(--gj-shadow-sm)}
 #booking .booking-complete-summary h3{font-size:22px;line-height:1.2;margin:0 0 20px;padding-right:0}
 #booking .booking-complete-summary h3:focus{outline:none}
 #booking .booking-complete-summary .check-list{margin:0;width:auto}
}

@media(max-width:639px){
 #booking .booking-request h3,#booking .booking-complete-summary h3{font-size:24px}
 #booking .booking-complete-stage{padding-top:48px}
 #booking #booking-reset{top:0;right:0}
}

/* Consistent card lift and compact-phone closing/footer spacing. */
#service-grid .service-card{transition:transform 500ms ease-in-out,background-color 500ms ease-in-out,border-color 500ms ease-in-out,box-shadow 500ms ease-in-out}
#service-grid .service-card:hover{transform:translateY(-4px);box-shadow:var(--gj-shadow-md)}
@media(prefers-reduced-motion:reduce){#service-grid .service-card{transition:none}#service-grid .service-card:hover{transform:none}}
@media(max-width:639px){
 .closing>.container{width:calc(100% - 16px)}
 .closing>.container>div{width:100%;max-width:100%;text-align:center}
 .closing .eyebrow,.closing :is(h2,h3),.closing .text-link{white-space:nowrap;overflow-wrap:normal}
 footer .copyright{gap:32px;line-height:1.9;padding-inline:16px}
 footer .copyright-monogram{margin-bottom:40px}
}

.copyright-mobile-break{display:none}
@media(max-width:639px){.copyright-mobile-break{display:block}}

/* Advance the off-icon lead-in so the visible glimmer meets the lift peak. */
.service-card:hover .ring-icon::after,.service-card:focus-within .ring-icon::after{animation-delay:-250ms}

/* Match pillar glimmer to the approved service-card light pass. */
#trust-grid .pillar-icon::after{background:linear-gradient(45deg,transparent 24%,rgba(215,191,151,.12) 34%,rgba(215,191,151,.48) 43%,rgba(248,243,234,.92) 50%,rgba(215,191,151,.48) 57%,rgba(215,191,151,.12) 66%,transparent 76%)}
#trust-grid .trust-card:hover .pillar-icon::after,#trust-grid .trust-card:focus-within .pillar-icon::after{animation:diagonal-icon-glimmer 2200ms ease-in-out -250ms both}
@media(prefers-reduced-motion:reduce){#trust-grid .trust-card:hover .pillar-icon::after,#trust-grid .trust-card:focus-within .pillar-icon::after{animation:none}}

/* Keep thumbnail hover on its stable frame above decorative image layers. */
#why .detail-ring{z-index:2;pointer-events:auto;box-shadow:0 10px 25px rgba(20,19,18,.20);transition:transform 800ms ease-in-out,box-shadow 800ms ease-in-out}
#why .detail-ring img{pointer-events:none}
#why .detail-ring:hover{transform:translateY(-6px);box-shadow:0 20px 48px rgba(20,19,18,.36)}
@media(prefers-reduced-motion:reduce){#why .detail-ring{transition:none}#why .detail-ring:hover{transform:none}}

.closing .text-link{transition:color 400ms ease-in-out}
.closing .text-link:hover,.closing .text-link:focus-visible{color:#EBC46D}
@media(prefers-reduced-motion:reduce){.closing .text-link{transition:none}}

.mobile-creation-track{display:none}
@media(max-width:639px){
 #creations .gallery-main{touch-action:auto}
 #creations .gallery-main>#gallery-image,#creations .gallery-main>.gallery-outgoing{display:none}
 #creations .mobile-creation-track{display:flex;width:100%;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;overscroll-behavior-x:contain;scrollbar-width:none;touch-action:pan-x pan-y}
 #creations .mobile-creation-track::-webkit-scrollbar{display:none}
 #creations .mobile-creation-track>img{flex:0 0 100%;width:100%;max-width:100%;height:auto;aspect-ratio:461/284;object-fit:cover;scroll-snap-align:start;user-select:none}
}

/* Header tint and consistent existing section-boundary strokes. */
.header{background:rgba(20,19,18,.27)}
body.mobile-menu-open .header{background:var(--gj-charcoal)}
main>section{border-top-width:4px;border-bottom-width:4px}
body>footer{border-top-width:4px}

/* Experimental four-second light pass along desktop section strokes. */
.section-stroke-swish{display:none;pointer-events:none}
@media(min-width:1281px) and (prefers-reduced-motion:no-preference){
 body>footer{position:relative}
 .section-stroke-swish{display:block;position:absolute;left:0;width:100%;height:4px;overflow:hidden;z-index:3}
 .section-stroke-swish.is-top{top:-4px}.section-stroke-swish.is-bottom{bottom:-4px}
 .section-stroke-swish::after{content:'';position:absolute;inset:0 auto 0 -40%;width:40%;background:linear-gradient(90deg,transparent,rgba(235,196,109,.45) 25%,#FFF0B8 50%,rgba(235,196,109,.45) 75%,transparent);transform:translateX(0)}
 .section-stroke-swish.is-visible::after{animation:section-stroke-sweep 4s ease-in-out both}
}
@keyframes section-stroke-sweep{from{transform:translateX(0)}to{transform:translateX(350%)}}

/* A stationary hover target prevents flicker along the lifted thumbnail edge. */
#why .detail-ring,#why .detail-ring:hover{overflow:visible;background:transparent;border:0;box-shadow:none;transform:none;transition:none}
#why .detail-ring-visual{position:relative;width:100%;height:100%;overflow:hidden;border:1px solid var(--gj-border-light);border-radius:inherit;background:var(--gj-charcoal);box-shadow:0 10px 25px rgba(20,19,18,.20);transition:transform 800ms ease-in-out,box-shadow 800ms ease-in-out;pointer-events:none}
#why .detail-ring:hover .detail-ring-visual{transform:translateY(-6px);box-shadow:0 20px 48px rgba(20,19,18,.36)}
#service-grid .service-image-frame{border:1px solid #39342E;box-sizing:border-box}
@media(prefers-reduced-motion:reduce){#why .detail-ring-visual{transition:none}#why .detail-ring:hover .detail-ring-visual{transform:none}}

#why .workbench{position:relative;z-index:3}

#why>.container.split{position:relative;z-index:4}

#service-grid .service-card:first-child .service-image-frame{overflow:hidden}
#service-grid .service-card:first-child .service-image-frame{background-size:auto 162.75%;background-position:right top}

#process .button.outline:hover{color:var(--gj-text-light)}

#trust-grid .trust-card.is-idle-glimmer .pillar-icon::after{animation:diagonal-icon-glimmer 2200ms ease-in-out -250ms both}
@media(prefers-reduced-motion:reduce){#trust-grid .trust-card.is-idle-glimmer .pillar-icon::after{animation:none}}

.header #navigation>a.button.outline:not(.mobile-menu-call):hover{color:#FFFFFF}

#service-grid .service-card.is-idle-glimmer .ring-icon::after{animation:diagonal-icon-glimmer 2200ms ease-in-out -250ms both}
@media(prefers-reduced-motion:reduce){#service-grid .service-card.is-idle-glimmer .ring-icon::after{animation:none}}

/* Balance visible logo artwork rather than using identical image widths. */
.brands>div>img{height:auto;max-height:none}
.brands>div>img:nth-child(1){width:180px}
.brands>div>img:nth-child(2){width:150px}
.brands>div>img:nth-child(3){width:250px}
@media(max-width:639px){
 .brands>div>img{max-width:80vw;max-height:none}
 .brands>div>img:nth-child(1){width:225px}
 .brands>div>img:nth-child(2){width:187.5px}
 .brands>div>img:nth-child(3){width:312.5px}
}

#process .process-sketch{opacity:.32}
@media(min-width:640px) and (max-width:1280px){#process .process-sketch{opacity:.24}}
@media(max-width:639px){#process .process-sketch{opacity:.20}}

#process .process-sketch{opacity:.48;transform:scale(1.2);transform-origin:top right}
@media(min-width:640px) and (max-width:1280px){#process .process-sketch{opacity:.36}}
@media(max-width:639px){#process .process-sketch{opacity:.30}}

#process .process-sketch{mask-image:url('assets/process-sketch-phone-mask.svg?v=header-removed-20261014');mask-mode:luminance;mask-size:100% 100%;mask-repeat:no-repeat;-webkit-mask-image:url('assets/process-sketch-phone-mask.svg?v=header-removed-20261014');-webkit-mask-size:100% 100%;-webkit-mask-repeat:no-repeat}

/* Gentle Figma charcoal shading, without the hard pure-black plateau. */
#home,#home #hero-video{background:#141312}
@media(min-width:640px){
 #home:after{background:linear-gradient(to right,rgba(20,19,18,.27) 0%,rgba(20,19,18,.20) 30%,rgba(20,19,18,.10) 60%,rgba(20,19,18,0) 100%)}
}
@media(max-width:639px){
 #home:after{background:linear-gradient(to bottom,rgba(20,19,18,0) 0px,rgba(20,19,18,0) var(--hero-fade-start,462px),rgba(20,19,18,.27) calc(var(--hero-fade-start,462px) + 192px),rgba(20,19,18,.27) 100%)}
}

@media(min-width:1281px){#why{padding-top:512px}}

#process .process-sketch{opacity:.624;transform:translateY(-112px) scale(1.2)}
@media(min-width:640px) and (max-width:1280px){#process .process-sketch{opacity:.468}}
@media(max-width:639px){#process .process-sketch{opacity:.39}}

.creations-reference-sketch{display:none}
@media(min-width:1281px){
 #creations .gallery-layout>.copy{position:relative}
 #creations .creations-reference-sketch{display:block;position:absolute;top:100%;left:-680px;width:1000px;max-width:none;height:auto;margin-top:-300px;opacity:.35;pointer-events:none;mask-image:linear-gradient(to bottom,#000 75%,transparent 100%)}
}

@media(min-width:1281px){#creations .gallery-layout>.copy{isolation:isolate}#creations .creations-reference-sketch{z-index:-1}}

@media(min-width:1281px){#creations .creations-reference-sketch{left:-70px;width:1000px;margin-top:-300px}}

@media(min-width:1281px){#creations .creations-reference-sketch{margin-top:-500px}}

/* Keep decorative sketches behind opaque thumbnail frames. */
#creations .gallery{position:relative;z-index:5}
#creations #gallery-thumbs button{background:#141312;opacity:1;isolation:isolate}
#creations #gallery-thumbs button img{opacity:.55;transition:opacity 400ms ease-in-out}
#creations #gallery-thumbs button:hover img,#creations #gallery-thumbs button:focus-visible img,#creations #gallery-thumbs button[aria-pressed="true"] img{opacity:1}

@media(min-width:640px){#booking .booking-panel.is-full-sized[data-step="schedule"]>.booking-preparation,#booking .booking-panel.is-full-sized[data-step="schedule"]>.booking-date-stage,#booking .booking-panel.is-full-sized[data-step="schedule"]>.booking-time-stage{grid-column:auto;min-width:0}}

/* Keep every booking stage inside its approved card layout. */
@media(min-width:640px){
 #booking .booking-panel[data-step="details"]>.booking-preparation{grid-column:auto}
 #booking .booking-panel.is-full-sized[data-step="details"]{grid-template-columns:minmax(0,1fr) minmax(0,1fr) 336px}
 #booking .booking-panel.is-full-sized[data-step="details"]>.booking-request-stage,#booking .booking-panel.is-full-sized[data-step="details"]>.booking-details-stage{height:416px;grid-column:auto}
 #booking .booking-panel.is-full-sized[data-step="details"] #request-consultation{position:absolute;bottom:0;left:0;right:0;margin:0}
 #booking .booking-panel[data-step="complete"]{height:auto;min-height:496px}
 #booking .booking-panel[data-step="complete"] .booking-complete-stage{height:auto;min-height:416px}
}

@media(min-width:640px){#booking .booking-panel[data-step="details"]>.booking-preparation:first-child{grid-column:auto}}

@media(min-width:640px){
 #booking .booking-complete-summary{padding:24px;border:1px solid var(--gj-border-light);border-radius:8px;background:var(--gj-cream-card);box-shadow:var(--gj-shadow-sm)}
 #booking .booking-complete-summary h3{font-size:24px;line-height:1.2;margin-bottom:24px}
 #booking .booking-complete-summary .check-list{gap:18px;margin:0}
 #booking .booking-complete-summary .check-list li{font-size:18px;line-height:1.4;min-height:28px;padding-left:0;display:flex;align-items:center;gap:10px}
 #booking .booking-complete-summary .check-list li:before{position:static;transform:none;width:28px;height:28px;min-width:28px;min-height:28px;flex:0 0 28px;border-radius:50%;background-size:14px 10px}
}

@media(min-width:640px){
 #booking .booking-complete-summary{width:max-content;max-width:100%;height:auto;justify-self:start;align-self:center;padding:24px}
 #booking .booking-complete-summary .check-list{gap:36px}
}

/* Completion layout and copy matched to the supplied reference. */
#booking .booking-complete-summary{border:0;background:transparent;box-shadow:none;padding:0}
.booking-confirmation-break{display:none}
@media(min-width:640px){
 #booking .booking-complete-summary{width:max-content;max-width:100%}
 #booking .booking-complete-summary h3{margin-bottom:28px}
 #booking .booking-complete-summary .check-list{gap:24px}
 #booking .booking-complete-summary .check-list li:before{width:32px;height:32px;min-width:32px;min-height:32px;flex-basis:32px;background-size:16px 12px}
 #booking .booking-thanks h2{font-size:44px}
 #booking .booking-thanks>p:not(.booking-receipt){font-size:14px;line-height:1.5;margin-bottom:12px}
 .booking-confirmation-break{display:block}
 #booking .booking-status{font-size:13px;padding:6px 16px}
 #booking #booking-reset{border:1px solid var(--gj-border-light);font-size:24px;width:32px;height:32px}
}

#booking .booking-thanks>p:not(.booking-receipt){font-size:16px;line-height:1.5}

.navigation-tablet-label{display:none}
@media(min-width:640px) and (max-width:1280px){
 #contact .contact-details{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:48px;row-gap:32px;align-items:start}
 #contact .contact-location{grid-column:1;grid-row:1}
 #contact .contact-hours-item{grid-column:2;grid-row:1}
 #contact .contact-communications{grid-column:1;grid-row:2}
 #contact .contact-navigation{grid-column:2;grid-row:2;align-self:center;justify-self:end}
 #contact .contact-navigation>:is(h3,h4),#contact .contact-navigation>p,#contact .navigation-desktop-label{display:none}
 #contact .navigation-tablet-label{display:inline}
}

@media(min-width:640px) and (max-width:1280px){
 #contact .contact-details{grid-template-columns:minmax(0,1.1fr) minmax(0,1.1fr) minmax(0,.9fr);column-gap:24px;row-gap:24px}
 #contact .contact-communications{display:contents}
 #contact .contact-location{grid-column:1;grid-row:1}
 #contact .contact-hours-item{grid-column:2;grid-row:1}
 #contact .contact-communications>a[href^="tel:"]{grid-column:1;grid-row:2}
 #contact .contact-communications>a[href^="mailto:"]{grid-column:2;grid-row:2}
 #contact .contact-navigation{grid-column:3;grid-row:1/3;align-self:center;justify-self:end}
 #contact .contact-navigation>:is(h3,h4),#contact .contact-navigation>p{display:block}
 #contact .navigation-desktop-label{display:inline}
 #contact .navigation-tablet-label{display:none}
 #contact .contact-navigation .button{max-width:100%}
}

@media(min-width:640px) and (max-width:1280px){footer .footer-grid>.footer-information{gap:96px;justify-content:center}}

@media(max-width:639px){
 .header #navigation{position:fixed;display:flex;flex-direction:column;top:var(--mobile-menu-header-height,88px);bottom:0;left:0;right:0;width:100%;padding:16px 20px 32px;background:var(--gj-charcoal);border:0;gap:0;overflow-y:auto;align-items:stretch;transform:translateX(100%);visibility:hidden;pointer-events:none;transition:transform 450ms ease-in-out,visibility 0s linear 450ms;z-index:99}
 body.mobile-menu-open .header #navigation.open{transform:translateX(0);visibility:visible;pointer-events:auto;transition:transform 450ms ease-in-out,visibility 0s}
 .header .menu-toggle,body.mobile-menu-open .header .menu-toggle{width:44px;height:44px;min-width:44px;padding:0;margin:0;border:0;border-radius:0;position:relative;flex:none}
 .header .menu-toggle svg{width:28px;height:24px;margin:auto}
 body.mobile-menu-open .header .menu-toggle:before,body.mobile-menu-open .header .menu-toggle:after{width:28px;height:1.5px;left:8px;top:21.25px}
}
@media(max-width:639px) and (prefers-reduced-motion:reduce){.header #navigation,body.mobile-menu-open .header #navigation.open{transition:none}}

@media(max-width:639px){
 .header #navigation,body.mobile-menu-open .header #navigation.open{top:0;padding-top:calc(var(--mobile-menu-header-height,88px) + 16px);background:rgba(20,19,18,.88);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px)}
 body.mobile-menu-open .header{background:transparent}
 .header .brand{position:relative;z-index:101}
 .header .menu-toggle,body.mobile-menu-open .header .menu-toggle{position:absolute;right:20px;top:20px;z-index:102;outline-offset:3px}
 .header .menu-toggle svg,body.mobile-menu-open .header .menu-toggle svg{display:block;width:28px;height:24px;margin:auto}
 body.mobile-menu-open .header .menu-toggle:before,body.mobile-menu-open .header .menu-toggle:after{content:none}
 .menu-toggle .menu-stroke{transform-origin:14px 12px;transition:transform 300ms ease-in-out,opacity 200ms ease-in-out}
 .menu-toggle[aria-expanded="true"] .menu-stroke-top{transform:translateY(8px) rotate(45deg);transform-origin:14px 4px}
 .menu-toggle[aria-expanded="true"] .menu-stroke-middle{opacity:0}
 .menu-toggle[aria-expanded="true"] .menu-stroke-bottom{transform:translateY(-8px) rotate(-45deg);transform-origin:14px 20px}
}
@media(prefers-reduced-motion:reduce){.menu-toggle .menu-stroke{transition:none}}

@media(min-width:640px){#home:after{background:linear-gradient(to right,rgba(20,19,18,.27) 0px,rgba(20,19,18,.27) var(--hero-desktop-fade-start,650px),rgba(20,19,18,0) var(--hero-desktop-fade-end,850px),rgba(20,19,18,0) 100%)}}

#home .button.secondary{background:rgba(20,19,18,.18);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px)}

.booking-preview-controls{position:fixed;bottom:12px;left:50%;transform:translateX(-50%);z-index:1000;display:flex;align-items:center;gap:8px;padding:10px 14px;border:1px solid #b58a47;border-radius:8px;background:#141312;color:#f8f3ea;font:12px Arial;box-shadow:0 4px 20px #0004;white-space:nowrap}
.booking-preview-controls a{padding:8px;border-radius:4px}.booking-preview-controls a[aria-current]{background:#b88c46;color:#141312}
@media(max-width:639px){.booking-preview-controls>span{display:none}}

#booking .booking-complete-summary .check-list li{font-size:16px;line-height:1.5;min-height:24px;gap:8px;padding-left:0;display:flex;align-items:center}
#booking .booking-complete-summary .check-list li:before{position:static;transform:none;width:24px;height:24px;min-width:24px;min-height:24px;flex:0 0 24px;border-radius:50%;background-size:12px 9px}
#booking .booking-thanks>p:not(.booking-receipt){font-size:16px;line-height:1.5}
#booking .booking-thanks>.booking-review-message{margin-top:20px;margin-bottom:16px}
#booking .booking-complete-summary h3:focus{outline:none}

#booking .booking-summary-details{padding:24px;border:1px solid var(--gj-border-light);border-radius:8px;background:var(--gj-cream-card);box-shadow:var(--gj-shadow-sm)}
#booking #booking-reference{font-size:14px;line-height:1.5;margin:24px 0 0;padding-top:16px;border-top:1px solid var(--gj-border-light);color:var(--gj-text-muted);overflow-wrap:anywhere}
@media(min-width:640px){
 #booking .booking-complete-stage{align-items:start}
 #booking .booking-complete-summary{align-self:start;width:100%}
 #booking .booking-complete-summary h3{min-height:64px;display:flex;align-items:center;margin:0 0 20px}
 #booking .booking-thanks{padding-top:0}
}

#booking #booking-reset{width:48px;height:48px;font-size:32px}
@media(max-width:639px){#booking .booking-complete-stage{padding-top:60px}}

#booking .booking-request-stage>.booking-request-heading{grid-column:1/-1;font-size:24px;line-height:1.2;margin:20px 0 12px}
#booking .booking-request-stage>.booking-request{margin-top:0}

#booking .booking-request-stage>.booking-request-heading{font-size:28px;margin-top:24px;margin-bottom:20px}
#booking .booking-request-stage>.booking-request{padding-top:20px;padding-bottom:20px;margin-bottom:24px}
#booking .booking-request-stage .booking-request ul{gap:20px}

@media(max-width:639px){#booking .booking-complete-stage>.booking-thanks{grid-row:1}#booking .booking-complete-stage>.booking-complete-summary{grid-row:2}}

@media(max-width:639px){
 #booking .booking-complete-stage>.booking-receipt{grid-row:3;display:flex;align-items:center;justify-content:center;gap:16px;border-top:1px solid var(--gj-gold);padding-top:20px;margin:0;font-size:14px;line-height:1.5;text-align:center}
}

@media(max-width:639px){#booking .booking-complete-summary h3{text-align:center}}

/* Experiment: preserve the approved desktop composition until 24px margins. */
@media(min-width:1281px){
 #services .services-layout{width:1280px;max-width:none;margin-inline:auto;grid-template-columns:420px 828px;gap:32px;zoom:var(--desktop-services-fit,1)}
 #services #service-grid{width:828px;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:16px}
}

/* Tablet cards keep the original 128:164 image proportions at every scale. */
@media(min-width:640px) and (max-width:1280px){
 #services .services-layout>#service-grid{width:740px;max-width:calc((100vw - 64px) / var(--tablet-service-scale,1));column-gap:clamp(4px,calc((100vw - 640px)/40),16px)}
 #services #service-grid .service-card{grid-template-columns:var(--service-image-width,142.83px) minmax(0,1fr)}
 #services #service-grid .service-image-frame,#services #service-grid .service-card>img{width:var(--service-image-width,142.83px);min-width:var(--service-image-width,142.83px);height:var(--service-image-height,183px);aspect-ratio:128/164}
 #services #service-grid .service-tablet-description>span{white-space:nowrap}
}

/* Tablet hover frames hug their contents; spare room belongs to column gaps. */
@media(min-width:640px) and (max-width:1280px){
 #services .services-layout>#service-grid{width:max-content;max-width:none;flex:0 0 auto;grid-template-columns:repeat(2,max-content);column-gap:var(--tablet-card-gap,32px);align-items:start;justify-content:center}
 #services #service-grid .service-card{width:max-content;max-width:none;height:auto;min-height:0;padding:12px;grid-template-columns:var(--service-image-width,142.83px) max-content;gap:12px;justify-self:start;align-self:start}
 #services #service-grid .service-card>div:not(.service-image-frame),#services #service-grid .service-card p{width:max-content;max-width:none}
 #services #service-grid .service-card h3{white-space:nowrap}
}

/* Tablet instructions wrap; date and time columns retain their own grids. */
@media(min-width:640px) and (max-width:1280px){
 #booking .booking-panel:not(.is-full-sized):not([data-step="complete"]){grid-template-columns:minmax(0,.85fr) minmax(0,1fr) minmax(0,1fr);column-gap:clamp(16px,2.5vw,32px)}
 #booking .booking-panel .booking-preparation{min-width:0;height:auto;align-self:start}
 #booking .booking-panel .booking-preparation h3{white-space:normal;overflow-wrap:normal;text-wrap:pretty;font-size:clamp(20px,2.2vw,28px);line-height:1.25}
 #booking .booking-panel .booking-preparation>p{white-space:normal;font-size:clamp(14px,1.35vw,16px);line-height:1.5}
 #booking .booking-panel .booking-preparation .check-list{font-size:clamp(14px,1.35vw,16px);line-height:1.5;gap:20px;margin-top:24px}
 #booking .booking-panel .booking-preparation .check-list li{display:block;white-space:normal;text-wrap:pretty;overflow-wrap:normal;height:auto;min-height:24px;padding-left:32px}
 #booking .booking-panel .booking-preparation .check-list li:before{position:absolute;top:0;transform:none;width:24px;height:24px;background-size:12px 9px}
}

@media(min-width:640px) and (max-width:1280px){.booking-preparation-break{display:none}}

/* Preserve the former contact-label typography after correcting heading levels. */
#contact h3{font-family:var(--gj-font-body);line-height:inherit;letter-spacing:normal;font-variant:normal}

.brands :is(h2,h3){line-height:1.15;letter-spacing:.03em}
.closing :is(h2,h3){line-height:1.15}
@media(max-width:639px){#contact .contact-communications h3{letter-spacing:.6px}}
