/* Giuèl: ivory, brass and espresso. Existing animation definitions stay in style.css. */
:root{--gold:#a78051;--pale:#f3ece3;--ink:#2d2421;--paper:#fffcf7;--serif:Georgia,'Times New Roman',serif}
body{background:var(--paper);color:var(--ink)}
h1,h2,h3,h4{font-family:var(--serif);font-weight:400;letter-spacing:.035em}
.eyebrow{letter-spacing:2.6px}
.site-header{color:var(--ink);background:#f7f1e9f5;border-bottom:1px solid #a7805125}
.site-header.sticky{background:#2d2421;color:var(--paper);border-bottom-color:#a7805140}
.main-nav>a,.nav-services>a{letter-spacing:2px;font-size:10px}
.dropdown,.side-dialog{background:#2d2421}
.hero{background:#f3ece3;min-height:680px;max-height:1000px}
.hero::before{content:'';position:absolute;left:52%;right:0;top:0;bottom:0;background:#e9dfd2}
.slide{background:transparent}
.slide-media{
  position:absolute;inset:auto;top:116px;right:4%;width:44%;height:calc(100% - 165px);
  min-width:0;min-height:0;overflow:hidden;
}
/* Keep intrinsic image dimensions out of the mobile grid's row sizing. */
.slide-media>img{position:absolute;inset:0;width:100%;height:100%;max-width:none;object-fit:contain;object-position:center;transform:translate(var(--mx,0px),var(--my,0px));transition:transform .4s ease-out}
.slide-shade{background:none;pointer-events:none}
.slide-copy{inset:auto;left:5.5%;top:51%;width:42%;transform:translateY(-50%);text-align:left;color:var(--ink)}
.slide-copy>*{position:static;left:auto;top:auto;width:100%}
.hero-script{font-size:clamp(38px,4vw,64px);line-height:1.15;margin-bottom:22px;color:#8b673f}
.slide h1,.slide h2{font-family:var(--serif);font-size:clamp(42px,5.3vw,88px);font-weight:400;letter-spacing:.025em;line-height:1.15;padding-left:0;margin:0 0 25px}
.hero-subtitle{font-size:10px;line-height:1.8;letter-spacing:2.4px;max-width:95%}
.slider-status{left:26%;bottom:38px;color:var(--ink);opacity:.85}
.slider-dots button{border-color:var(--ink)}
.slider-dots button.selected{background:var(--ink)}
.outline-button{border-color:#a7805170;color:var(--ink);border-radius:999px;letter-spacing:2.2px;font-size:12px;padding:19px 46px}
.outline-button:hover{background:var(--ink);border-color:var(--ink);color:var(--paper)}
.dark-section .outline-button{color:var(--paper);border-color:#d7bb975e}
.dark-section .outline-button:hover{background:var(--paper);color:var(--ink)}
.gold-link{font-size:12px;letter-spacing:2.4px;color:#927047}
.dark-section .gold-link,.site-footer .footer-map{color:#d5b38a}
.background-script{font-size:190px;color:#aa8b66}
.background-script.visible{opacity:.14}
.extension-section{padding:78px 5%;background:#f3ece3}
.extension-section .info-block{transform:none}
.portrait{padding:16px;border:1px solid #a7805140;background:#fffcf7}
.portrait img,.salon-interior img{border-radius:3px}
.welcome-section{padding-top:65px;padding-bottom:105px}
.service-banners{gap:18px;padding:0 4% 72px;max-width:1640px;margin:auto}
.service-banner{border-radius:7px}
.service-banner.black{background:#2d2421;color:var(--paper)}
.service-banner:after{border-width:1px;border-radius:4px}
.banner-shade{background:#e9dbccc9}
.banner-text h3{font-size:clamp(25px,2.7vw,40px)}
.banner-text .script{color:#927047}
.black .banner-text .script,.black .gold-link{color:#d5b38a}
.color-section{background:#eee4da}
.color-section .split-image img{filter:none}
.dark-section{background:#2d2421;color:var(--paper)}
.method-section{background-image:linear-gradient(125deg,#382d27,#251f1c)}
.method-photo{padding:14px;border:1px solid #b99a7459}
.bride-section{background:#e8d8ce}
.bride-section .split-image img{filter:none}
.salon-highlight{gap:85px;padding-top:105px;padding-bottom:105px}
.salon-interior{padding:14px;border:1px solid #a7805140}
.hours-section{border-bottom:1px solid #a7805130}
.hours-title h2{font-size:48px}
.team-section{border-top:1px solid #a7805130}
.page-hero-type{background:linear-gradient(115deg,#392c25,#211b18)}
.page-hero-copy h1{font-weight:400;letter-spacing:.055em}
.page-hero-type:before{border-color:#c9aa7750;border-radius:3px}
.page-hero-copy .script{color:#d5b38a}
.page-feature figure{padding:12px;border:1px solid #a7805140}
.service-directory>a{background:#f3ece3;border-color:#a7805135;border-radius:5px}
.page-cta{background:#f3ece3;border-top:1px solid #a7805130}
.site-footer{background:#2d2421;color:#dfd2c6}
.footer-bottom{background:#241d1a}
.site-footer h4{color:var(--paper);font-size:23px}
.back-top{background:#fffaf0e8;border-width:1px}
.back-top:hover{background:var(--ink)}
.mobile-call{background:#2d2421}
@media(max-width:1200px){
  .site-header{gap:22px}.main-nav{gap:18px}
  .main-nav>a,.nav-services>a{letter-spacing:1.3px}
  .salon-highlight{gap:50px}
}
@media(max-width:1024px){
  .site-header,.site-header.sticky{position:sticky;top:0;height:72px;background:#fffcf7;color:var(--ink);animation:none}
  .mobile-menu{position:fixed;top:72px;background:#fffcf7;color:var(--ink);padding:12px 24px 24px;max-height:calc(100dvh - 72px);box-shadow:0 14px 24px #2d242112}
  .mobile-menu a{min-height:48px;display:flex;align-items:center;font-size:12px}
  .mobile-menu-toggle{left:14px;top:14px;width:44px;height:44px;padding:10px;display:flex;flex-direction:column;justify-content:center;align-items:center}
  .nav-tools{display:flex;position:absolute;right:14px;gap:0}
  .nav-tools .search-toggle{width:44px;height:44px;justify-content:center}
  .nav-tools .side-toggle,.nav-tools .tool-separator{display:none}
  .hero{height:calc(100svh - 72px);min-height:440px;max-height:760px}
  .slide-media{top:40px;right:4%;width:44%;height:calc(100% - 85px)}
  .slide-media>img{transform:none}
  .slide-copy{left:5%;top:49%;width:43%}
  .hero-script{font-size:40px}
  .slide h1,.slide h2{font-size:clamp(38px,5.3vw,55px)}
  .hero-subtitle{font-size:9px;letter-spacing:1.5px}
  .extension-section{padding:60px 35px}
  .slider-status{bottom:25px}
  .extension-section .portrait,.welcome-section{display:block}
  .extension-section .content-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:32px}
  .extension-section .info-block{padding:65px 0 0}
  .background-script,.split-section .background-script{font-size:140px}
  .extension-section .background-script{font-size:110px}
  .content-grid>*,.page-feature>*,.page-story-grid>*,.page-contact>*{min-width:0}
  .page-feature,.page-story-grid,.page-contact{width:calc(100% - 48px)}
  .page-feature,.page-story-grid{gap:28px}
}
@media(max-width:680px){
  body{font-size:16px;line-height:1.75}
  html{scroll-padding-top:88px}
  .mobile-brand img{width:60px;height:60px}
  .hero{height:min(calc(133.333vw + 158px),calc(100svh - 72px));min-height:480px;max-height:800px;touch-action:pan-y}
  .hero::before{left:0;bottom:212px}
  .slide{display:grid;grid-template-rows:minmax(0,1fr) auto;gap:20px;padding:20px 20px 64px}
  .slide-media{
    position:relative;inset:auto;grid-row:1;min-width:0;min-height:0;width:auto;height:auto;align-self:stretch;
  }
  .slide-copy{position:static;inset:auto;grid-row:2;min-width:0;width:100%;transform:none;text-align:center;padding:0}
  .slide-copy>*{position:static;top:auto;left:auto;width:100%}
  .hero-script{font-size:clamp(30px,8.8vw,40px);line-height:1.15;margin-bottom:10px}
  .slide h1,.slide h2{font-size:clamp(30px,8.7vw,46px);letter-spacing:.025em;line-height:1.15;margin:0 0 12px;padding:0}
  .hero-subtitle{max-width:none;font-size:10px;letter-spacing:1.25px;line-height:1.6}
  .slider-status{left:50%;bottom:9px;gap:2px;opacity:1}
  .hero:hover .slider-status,.slider-status:focus-within{opacity:1}
  .slider-dots{gap:0}
  .slider-dots button,.slider-dots button.selected{width:44px;height:44px;border:0;background:none;display:grid;place-items:center}
  .slider-dots button:before{content:'';width:8px;height:8px;border:1px solid var(--ink);border-radius:50%}
  .slider-dots button.selected:before{background:var(--ink)}
  .slider-pause{width:44px;height:44px;font-size:14px}
  .background-script,.extension-section .background-script{display:block;top:0;width:100%;max-width:100%;font-size:clamp(58px,18vw,96px);line-height:1.05;text-align:center;white-space:nowrap}
  .background-script.visible{opacity:.17}
  .info-block{padding-top:55px}
  .info-block h2,.salon-highlight h2{font-size:clamp(28px,7.8vw,36px);line-height:1.2;margin-bottom:22px}
  .info-block h3{font-size:clamp(26px,7vw,32px);line-height:1.25;margin-bottom:22px}
  .info-block .eyebrow{font-size:10px;letter-spacing:1.8px;line-height:1.6;margin-bottom:16px}
  .info-block .lead{font-size:16px;line-height:1.85}
  .extension-section{padding:44px 22px 56px}
  .extension-section .content-grid{grid-template-columns:minmax(0,1fr);gap:28px;max-width:480px}
  .extension-section .portrait{display:block;width:100%;max-width:440px;margin:0 auto;padding:10px}
  .extension-section .info-block{padding:55px 0 0}
  .center-section,.welcome-section{display:block;padding:44px 22px 56px}
  .service-banners{padding:0 22px 48px;display:grid;grid-template-columns:minmax(0,1fr);gap:22px;max-width:484px}
  .service-banner{aspect-ratio:3/4;min-height:340px}
  .banner-text{padding:28px 18px;width:100%}
  .service-banner .script{font-size:clamp(46px,13vw,62px)}
  .banner-text h3{font-size:clamp(28px,8vw,36px)}
  .banner-text .eyebrow{font-size:10px;letter-spacing:1.8px;line-height:1.7}
  .banner-text .gold-link{margin-top:26px}
  .split-section{display:flex;flex-direction:column;padding:40px 22px 52px}
  .split-image{width:100%;max-width:440px;min-height:0;margin:0 auto}
  .split-image img{width:100%;height:auto;max-height:none}
  .split-section>.info-block{padding:62px 0 0;max-width:520px;margin:0 auto}
  .split-section .background-script{top:6px;font-size:clamp(58px,18vw,96px)}
  .split-section p:not(.eyebrow),.method-section p:not(.eyebrow),.salon-highlight p:not(.eyebrow){font-size:16px;line-height:1.85}
  .method-section{padding:44px 22px 52px;min-height:0;gap:32px}
  .method-section>.info-block{padding:55px 0 0}
  .method-section .background-script{font-size:clamp(58px,18vw,96px)}
  .method-photo{padding:10px;max-width:440px}
  .hours-section{padding:56px 22px;max-width:480px}
  .hours-title{text-align:center;margin-bottom:30px}
  .hours-title .script{font-size:56px}
  .hours-title h2{font-size:36px}
  .hours dt,.hours dd{font-size:13px;line-height:1.8}
  .hours>div{gap:10px;margin-bottom:14px}
  .hours dd{min-width:102px}
  .salon-highlight{padding:48px 22px 56px;gap:28px}
  .salon-interior{padding:10px;margin:0 auto 32px;max-width:440px}
  .salon-highlight .info-block{max-width:520px;margin:0 auto}
  .team-section{padding-bottom:56px}
  .team-section .center-section{padding:44px 22px 28px}
  .team-discover{padding:0 22px}
  .outline-button{font-size:11px;letter-spacing:1.9px;padding:17px 32px;max-width:100%;line-height:1.5;margin-top:28px}
  .gold-link{font-size:12px;min-height:44px;line-height:1.6;padding:12px 0;margin-top:22px}
  .page-hero{height:auto;min-height:300px;padding:50px 22px}
  .page-hero-copy{max-width:100%;padding:0}
  .page-hero-copy .script{font-size:clamp(32px,9vw,44px)}
  .page-hero-copy h1{font-size:clamp(27px,7.5vw,36px);line-height:1.2;overflow-wrap:anywhere}
  .breadcrumbs{font-size:9px;letter-spacing:.8px}
  .page-intro{padding:48px 22px 38px}
  .page-intro .eyebrow{font-size:10px;line-height:1.6;letter-spacing:1.6px}
  .page-intro p{font-size:16px;line-height:1.85}
  .page-intro h2{font-size:30px;margin-bottom:24px}
  .page-feature,.page-story-grid{width:auto;margin:0 22px 52px;max-width:none}
  .page-feature figure{padding:8px}
  .page-detail-copy h3{font-size:26px;line-height:1.25}
  .page-detail-copy p{font-size:16px;line-height:1.85}
  .page-contact{width:auto;padding:0 22px;margin:0 0 52px}
  .page-contact>div{margin-bottom:40px}
  .page-contact .hours dt,.page-contact .hours dd{font-size:13px}
  .contact-actions{display:flex;flex-direction:column;align-items:flex-start;gap:10px}
  .contact-actions .gold-link{margin-top:0}
  .service-directory{margin:0 22px 52px}
  .service-directory>a{padding:25px 22px}
  .service-directory h3{font-size:26px;line-height:1.3}
  .gallery-grid{padding:0 22px;margin-bottom:52px;gap:32px}
  .gallery-card span{font-size:12px;line-height:1.6}
  .page-cta{padding:48px 22px 56px}
  .page-cta .eyebrow{font-size:10px;line-height:1.6;letter-spacing:1.6px;margin-bottom:16px}
  .page-cta h2{font-size:28px;line-height:1.25}
  .footer-main{padding:48px 22px 10px}
  .footer-main>div{margin-bottom:36px}
  .footer-main p{font-size:15px;line-height:1.85}
  .site-footer h4{font-size:25px}
  .footer-hours li{font-size:13px}
  .footer-bottom{padding:24px 22px calc(24px + env(safe-area-inset-bottom));gap:12px 20px}
  .footer-bottom button{min-height:44px;font-size:11px}
  .footer-bottom .fiscal-data{font-size:11px}
  .back-top{bottom:calc(18px + env(safe-area-inset-bottom));right:16px;width:44px;height:44px}
  .search-dialog input{font-size:18px}
  .dialog-close{width:44px;height:44px;right:10px;top:8px}
}

/* Give photographs, captions and decorative lettering their own space. */
.slide-copy{overflow:hidden;padding:8px 0}
.background-script,.split-section .background-script,.method-section .background-script,.extension-section .background-script{
  position:static;display:block;left:auto;top:auto;transform:none;z-index:auto;
  width:auto;max-width:100%;white-space:normal;font-size:clamp(46px,5vw,68px);
  line-height:1.25;margin:0 0 22px;color:#927047;opacity:0;pointer-events:none;
}
.background-script.visible,.split-section .background-script.visible,.method-section .background-script.visible,.extension-section .background-script.visible{opacity:.85}
.dark-section .background-script{color:#d5b38a}
.info-block,.extension-section .info-block,.method-section>.info-block{padding-top:0}
.split-section>.info-block{padding:64px clamp(30px,5vw,90px)}
.method-section>.info-block{padding:0 28px}
.service-banners{max-width:1300px;padding:0 40px 88px;gap:28px;grid-template-columns:repeat(3,minmax(0,1fr));align-items:stretch}
.service-banner{display:flex;flex-direction:column;align-items:stretch;justify-content:flex-start;aspect-ratio:auto;min-height:0;border:1px solid #a7805130;background:#fffaf4}
.service-banner>img{position:static;inset:auto;width:100%;height:auto;aspect-ratio:3/4;object-fit:contain;object-position:center;background:#eee4da}
.banner-shade{display:none}
.banner-text{position:static;z-index:auto;display:flex;flex-direction:column;align-items:center;flex:1;padding:30px 22px 32px;min-height:276px}
.banner-text .script{display:block;font-size:clamp(42px,4vw,56px);line-height:1.2;margin-bottom:14px}
.banner-text h3{font-size:clamp(24px,2.5vw,34px);line-height:1.25;margin-bottom:14px}
.banner-text .eyebrow{font-size:10px;letter-spacing:1.8px;line-height:1.7}
.banner-text .gold-link{margin-top:auto;padding-top:28px}
.service-banner.black{justify-content:center;background:#2d2421}
.service-banner.black .banner-text{flex:0 0 auto;min-height:0;padding:48px 24px}
.service-banner.black .gold-link{margin-top:28px;padding-top:0}
.service-banner.black:after{opacity:1;transform:none;inset:20px}
@media(max-width:1024px){
  .service-banners{padding:0 24px 64px;gap:18px}
  .banner-text{padding:26px 16px 30px;min-height:260px}
  .method-section>.info-block{padding:0}
}

/* A light curtain joins full-page navigations without shifting the fixed header. */
.page-transition{position:fixed;inset:0;z-index:1000;display:grid;place-items:center;background:var(--paper);opacity:0;visibility:hidden;pointer-events:none;transition:opacity .24s ease,visibility 0s linear .24s}
.page-transition-mark{position:relative;display:grid;place-items:center;width:76px;height:76px;font-family:var(--serif);font-size:32px;color:var(--gold)}
.page-transition-mark:before{content:'';position:absolute;inset:0;border:1px solid #a7805133;border-top-color:var(--gold);border-right-color:var(--gold);border-radius:50%;animation:pageRing 1.1s linear infinite;animation-play-state:paused}
.page-leaving .page-transition,.page-arriving .page-transition{opacity:1;visibility:visible;transition-delay:0s}
.page-leaving .page-transition-mark:before,.page-arriving .page-transition-mark:before{animation-play-state:running}
.page-leaving main{opacity:.45;transform:translateY(-12px);transition:opacity .2s ease,transform .2s ease}
.page-entering main{animation:pageArrival .55s cubic-bezier(.22,.7,.25,1) both}
@keyframes pageRing{to{transform:rotate(360deg)}}
@keyframes pageArrival{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}
@media(prefers-reduced-motion:reduce){
  .page-transition{display:none}
  .page-leaving main,.page-entering main{opacity:1;transform:none;animation:none;transition:none}
}
@media(max-width:680px){
  .slide-copy{padding:8px 0}
  .background-script,.split-section .background-script,.method-section .background-script,.extension-section .background-script{font-size:clamp(40px,11vw,52px);line-height:1.3;margin-bottom:20px}
  .info-block,.extension-section .info-block,.method-section>.info-block{padding-top:0}
  .split-section>.info-block{padding:32px 0 0}
  .method-section>.info-block{padding:0}
  .service-banners{grid-template-columns:minmax(0,1fr);max-width:484px;padding:0 22px 56px;gap:28px}
  .banner-text{padding:28px 20px 30px;min-height:0}
  .banner-text .script{font-size:46px}
  .banner-text h3{font-size:30px}
  .banner-text .gold-link{margin-top:22px;padding:12px 0}
  .service-banner.black{min-height:300px}
  .service-banner.black .banner-text{padding:40px 24px}
  .service-banner.black .gold-link{padding:12px 0;margin-top:22px}
}

/* Keep search compact, with results scrolling independently of the field. */
.search-dialog{width:640px;max-width:calc(100% - 40px);max-height:min(660px,calc(100dvh - 48px));padding:0;overflow:hidden;background:var(--paper);color:var(--ink);border:1px solid #a780513b;border-radius:20px;box-shadow:0 24px 90px #211b1a30}
.search-dialog[open]{display:flex;flex-direction:column}
.search-dialog::backdrop{background:#211b1a80;backdrop-filter:blur(5px)}
.search-header{position:relative;flex-shrink:0;padding:30px 32px 24px}
.search-dialog .dialog-close{top:12px;right:12px;width:44px;height:44px;border-radius:50%;font-size:26px;color:#766250;transition:background .2s,color .2s}
.search-dialog .dialog-close:hover{background:#a7805112;color:var(--ink)}
.search-dialog h2{margin:0 44px 8px 0;font-size:30px;line-height:1.2;letter-spacing:0;text-transform:none}
.search-dialog label{margin:0 0 18px;font-size:13px;line-height:1.5;color:#776b61}
.search-field{display:flex;align-items:center;gap:12px;min-height:52px;padding:0 17px;border:1px solid #a7805160;border-radius:999px;background:#fffefa;color:#8a7054;transition:border-color .2s,box-shadow .2s}
.search-field:focus-within{border-color:#a78051;box-shadow:0 0 0 3px #a7805114}
.search-field svg{width:18px;height:18px;flex:none;fill:none;stroke:currentColor;stroke-width:1.5}
.search-dialog input{width:100%;min-width:0;height:50px;border:0;padding:0;border-radius:0;background:transparent;color:var(--ink);font-size:16px;font-weight:400;line-height:1.5;appearance:none;-webkit-appearance:none}
.search-dialog input:focus,.search-dialog input:focus-visible{outline:none}
.search-dialog input::placeholder{color:#8b8178;opacity:1}
.search-body{min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:0 32px 30px}
.search-status{margin:0 0 12px;font-size:10px;line-height:1.5;font-weight:500;letter-spacing:1.7px;text-transform:uppercase;color:#88705b}
.search-results{display:grid;grid-template-columns:minmax(0,1fr);gap:8px;margin:0}
.search-results.search-suggestions{grid-template-columns:repeat(2,minmax(0,1fr))}
.search-results a{display:flex;align-items:center;min-height:48px;padding:12px 15px;border:1px solid #a7805126;border-radius:9px;background:#f5eee6;font-size:14px;line-height:1.45;font-weight:400;letter-spacing:0;text-transform:none;transition:background .2s,border-color .2s}
.search-results a:hover{background:#ece0d1;border-color:#a7805160}
.search-results a:focus-visible{outline-offset:2px}
.search-results .search-empty{margin:0;padding:16px 0;font-size:14px;line-height:1.7;color:#776b61}
@media(max-width:680px){
  .search-dialog{position:fixed;top:calc(var(--search-vv-top,0px) + 12px);bottom:auto;left:0;right:0;margin:0 auto;width:calc(100% - 24px);max-width:none;max-height:calc(var(--search-vv-height,100dvh) - 24px);border-radius:18px}
  .search-header{padding:24px 20px 22px}
  .search-dialog h2{font-size:26px;margin-bottom:9px}
  .search-dialog label{font-size:12px;margin-bottom:18px}
  .search-dialog .dialog-close{top:12px;right:8px}
  .search-body{padding:0 20px 22px}
  .search-results a{padding:12px;font-size:13px}
}
