/* Targeted usability repairs; original desktop art direction and imagery remain. */
a.c-btn{display:inline-flex;align-items:center;justify-content:center;min-height:48px;text-decoration:none;color:#fff}
.c-btn{font-size:12px;min-height:48px}
a:focus-visible,button:focus-visible,summary:focus-visible{outline:3px solid #e7b952;outline-offset:4px}
html{scroll-padding-top:120px}
header .logo-holder img{max-width:100%;height:auto}
header .logo-holder .logo-dark{display:none}
header.navigation-bg-light .logo-holder .logo-light{display:none}
header.navigation-bg-light .logo-holder .logo-dark{display:block}
header .header-navigation-xs .logo-holder,header .header-navigation-xs .logo-holder.logo-holder-dark{background:none}
/* Keep the full SVG inside the desktop bar in both inline-layout engines. */
@media(min-width:768px){
 .header-navigation{display:flex;align-items:center;justify-content:center;gap:24px}
 .header-navigation>a{display:inline-flex;align-items:center;min-height:44px;padding:0;margin:0}
 .header-navigation .logo-holder{display:block;flex:0 0 150px;width:150px;height:57px;margin:0}
 .header-navigation .logo-holder>a{display:grid;place-items:center;height:100%}
 .header-navigation .logo-holder img{width:150px;height:57px;object-fit:contain}
}
.slick-fullscreen-split-content .bg-split-content-img-1,.slick-fullscreen-split-content .bg-split-content-img-2,.slick-fullscreen-split-content .bg-split-content-img-3{background-image:none}
.slick-fullscreen .slick-fullscreen-img-fill .hero-photo{display:block;width:100%;height:100%;min-width:0;min-height:0;max-width:100%;object-fit:cover;object-position:center}
.slick-fullscreen:not(.slick-initialized) .slick-fullscreen-item:not(:first-child){display:none}
.slick-fullscreen .slick-prev,.slick-fullscreen .slick-next{display:flex!important;align-items:center;justify-content:center;min-width:48px;min-height:48px;border:1px solid rgba(255,255,255,.7);background:rgba(0,0,0,.5);color:white;cursor:pointer;z-index:5;opacity:1;visibility:visible}
.slick-fullscreen .slick-prev,.slick-fullscreen:hover .slick-prev{left:12px}
.slick-fullscreen .slick-next,.slick-fullscreen:hover .slick-next{right:12px}
.slick-fullscreen .slick-prev,.slick-fullscreen .slick-next{transform:translateY(-50%)}
.slick-fullscreen .slick-prev::before,.slick-fullscreen .slick-next::before{position:static;inset:auto;width:auto;height:auto;padding:0;background:none;font-size:18px;line-height:1}
.hero-carousel-controls{position:absolute;z-index:6;right:20px;bottom:20px;display:flex;align-items:center;gap:12px;color:#fff;font-size:12px}
.hero-playback{min-height:44px;padding:10px 14px;background:rgba(0,0,0,.7);color:#fff;border:1px solid rgba(255,255,255,.8);font:inherit;cursor:pointer}
.hero-playback[hidden]{display:none}
.hero-slide-position{background:rgba(0,0,0,.7);padding:8px 10px}
.hero-visit{position:relative;color:#fff;text-align:center;padding:20px 16px 0}
.hero-visit p{color:#fff;font-size:14px;line-height:1.5;margin:0 0 5px}
.hero-call{display:block;color:#fff;text-decoration:underline;min-height:44px;padding:14px 0;font-size:14px}
/* The hidden complete phrases reserve their intrinsic maximum height, even while typing. */
.upper-page .center-container-split-content{display:flex;align-items:center;padding:112px clamp(24px,4vw,72px) 64px}
.upper-page .center-block{display:block;width:100%}
.center-block h1.typed-effect{position:relative;top:auto;left:auto;transform:none;display:grid;grid-template-columns:minmax(0,1fr);width:100%;max-width:640px;height:auto;margin:0 auto;padding:0;font-size:clamp(34px,4.5vw,68px);line-height:1.06;letter-spacing:-.045em}
.typed-effect .typed-title,.typed-effect .headline-measure{grid-area:1/1;align-self:center;min-width:0}
.typed-effect .headline-measure{visibility:hidden;pointer-events:none}
.typed-effect .typed-cursor{display:none}
.hero-visit{padding-top:28px}
.upper-page{min-height:640px}
.review-proof{position:relative;z-index:2;max-width:700px;padding:0 24px;margin:auto;text-align:center;color:#fff}
.review-proof .section-heading{font-size:32px;line-height:1.25}
.review-proof p{color:#fff;margin:12px 0;font-size:16px}
.review-proof .review-rating{font-size:52px;line-height:1.2}
.review-rating span span{color:#f5ca64}
.review-proof .review-date{font-size:12px;line-height:1.6}
.review-link{display:inline-block;color:#fff;text-decoration:underline;padding:14px 0;min-height:44px}
.contact-info-text a{display:inline-block;padding:12px 0;color:inherit;min-height:44px}
.privacy-details{font-size:13px;line-height:1.6;background:#111;color:white;padding:24px max(20px,calc((100% - 900px)/2))}
.privacy-details summary{cursor:pointer;min-height:44px;padding:10px 0}
.privacy-details p{color:#eee;font-size:13px}
.privacy-details button,.measurement-choice button{font:inherit;min-height:44px;padding:10px 16px;border:1px solid currentColor;background:transparent;cursor:pointer}
.measurement-choice{position:relative;z-index:1001;padding:18px 24px;background:#f3f3f3;color:#111;display:flex;gap:12px;align-items:center;flex-wrap:wrap;font-size:13px}
.measurement-choice[hidden]{display:none}
.measurement-choice p{margin:0;flex:1 1 320px;font-size:13px;line-height:1.5;color:#111}
.measurement-choice a{color:#111;padding:12px;text-decoration:underline}
.site-notice{background:#181818;color:#fff;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px 24px;align-items:center;padding:24px max(20px,calc((100% - 900px)/2));font-size:13px;line-height:1.6}
.site-notice[hidden]{display:none}
.site-notice h2{font:600 16px/1.4 'Raleway',sans-serif;margin:0 0 8px;color:inherit}
.site-notice p{font-size:13px;line-height:1.6;color:inherit;margin:0}
.site-notice a{display:inline-flex;align-items:center;min-height:44px;color:inherit;text-decoration:underline}
.site-notice button{min-height:44px;padding:10px 16px;border:1px solid #ddd;background:transparent;color:#fff;font:inherit;cursor:pointer}
.notice-actions,.measurement-actions,.privacy-actions{display:flex;gap:10px;flex-wrap:wrap}
.site-notice .notice-explanation{grid-column:1/-1;font-size:12px;color:#ccc}
@media(max-width:767px){
 header{background:#000}
 .header-navigation-xs{height:auto;padding:8px 8px 0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));align-items:center}
 .header-navigation-xs .logo-holder{grid-column:1/-1;margin:0 auto;width:148px;height:56px;padding:0}
 .header-navigation-xs .logo-holder img{width:148px;height:56px;object-fit:contain}
 .header-navigation-xs>a{font-size:11px;min-height:44px;padding:13px 4px;letter-spacing:.06em;line-height:18px}
 .upper-page{height:auto;min-height:0;display:flex;flex-direction:column;padding-top:108px;background:#000;--hero-photo-height:clamp(280px,85vw,380px)}
 .upper-page .hero-fullscreen{position:relative;order:2;inset:auto;width:100%;height:var(--hero-photo-height)}
 .slick-fullscreen.slick-fullscreen-split-content{position:relative;width:100%;left:0;opacity:1;height:100%}
 .slick-fullscreen .slick-fullscreen-item .slick-fullscreen-img-fill{height:var(--hero-photo-height)}
 .slick-fullscreen .slick-fullscreen-img-fill .hero-photo{object-position:50% 35%}
 .center-container.center-container-split-content{position:relative;display:block;order:1;width:100%;height:auto;background:#000;padding:28px 24px 32px}
 .upper-page .center-block{display:block}
 .center-block h1.typed-effect{font-size:clamp(26px,7.4vw,34px);width:100%;height:auto;line-height:1.12;padding:0}
 .hero-visit{padding:12px 0 0}
 .hero-visit p{font-size:15px}
 .hero-call{font-size:16px}
 .about-txt,.services-txt,.services-txt-dark{padding:0 24px;font-size:16px;line-height:1.75}
 .about-bottom{margin-top:62px}
 .services-txt,.services-txt-dark{margin-top:64px}
 h2.section-heading{padding:0 20px;font-size:28px;line-height:1.25}
 .half{width:100%;float:none}
 .services-bg-1,.services-bg-2{min-height:260px;background-position:center;background-size:cover}
 .services-top{padding:12px 0 0}
 .services-bottom{margin-bottom:48px}
 .contact-info-description{margin:24px 0}
 .contact-info-text{font-size:16px;line-height:1.8;display:block}
 .contact-info-text a{font-size:16px}
 .review-proof .section-heading{font-size:27px}
 .parallax-launch{background-attachment:scroll}
 .contact-bottom{margin-bottom:40px}
 .to-top-arrow{right:12px}
 .upper-page .scroll-indicator-wrapper{display:none}
 .hero-carousel-controls{right:12px;bottom:12px;gap:8px}
 #contact .contact-info-wrapper{margin:32px 0 0}
 #contact .contact-info-description{margin:24px 0}
 #contact .contact-bottom{margin:32px 0 0;padding:0 16px 28px}
 #contact .social-icons-wrapper{margin:0}
 #contact .social-icons a{display:inline-flex;align-items:center;justify-content:center;width:48px;height:48px;font-size:28px}
 #contact .copyright{margin:16px auto 0;max-width:30em;font-size:11px;line-height:1.8;letter-spacing:.04em}
 #contact .copyright a{min-height:44px;padding:10px 0}
 .site-notice{grid-template-columns:1fr;padding:24px;gap:14px}
 .notice-actions,.measurement-actions,.privacy-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));width:100%}
 .measurement-choice{padding:20px 24px;gap:12px}
 .measurement-choice p{flex-basis:100%}
 .measurement-choice button,.site-notice button,.privacy-details button{padding:10px 8px;line-height:1.45;white-space:normal}
 .privacy-details{padding:24px;font-size:14px}
 .privacy-details p{font-size:14px;line-height:1.7}
}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;animation-duration:.01ms!important;transition-duration:.01ms!important}.typed-cursor{display:none}}

/* Short in-flow rules and readable measures retain the original monochrome identity. */
#about,#services,#contact{scroll-margin-top:12px}
#about .spacer-line-vertical-dark::after,#services .spacer-line-vertical-dark::after,#services .spacer-line-vertical-light::after,#contact .spacer-line-vertical-light::after{position:static;display:block;height:32px;width:1px;margin:22px auto 0}
#about h2.section-heading,#services h2.section-heading,#contact h2.section-heading{font-size:clamp(28px,3.3vw,48px);line-height:1.14;padding:0 20px;overflow-wrap:normal}
#about .about-top{margin-top:clamp(56px,7vw,104px)}
#about .about-bottom{margin:28px 0 clamp(52px,6vw,88px)}
#about .about-txt{max-width:66ch;margin:0 auto;padding:0 20px;font-size:16px;line-height:1.8}
#services .services-top{margin:0;padding:clamp(48px,6vw,90px) clamp(24px,4vw,60px)}
#services .services-txt{margin:28px auto 0;padding:0;max-width:48ch;font-size:16px;line-height:1.8}
#services .services-bottom{margin:0}
#contact .contact-top{margin-top:clamp(56px,7vw,104px)}
#contact .contact-info-wrapper{margin-top:36px}
#contact .contact-info-text{font-size:14px;line-height:1.85;overflow-wrap:break-word}
#contact .copyright{font-size:11px;line-height:1.8;letter-spacing:.04em;max-width:34em;margin-left:auto;margin-right:auto}
#contact .copyright a{display:inline-block;min-height:44px;padding:10px 0}
@media(min-width:768px){#services .halves{display:flex;align-items:stretch}#services .half{float:none;min-width:0}.services-bg-1,.services-bg-2{min-height:480px}}
@media(max-width:767px){#services .services-top{padding:44px 24px}#contact .contact-info-text{font-size:16px}.upper-page{min-height:0}}
/* A quiet, static brand gallery: genuine marks at their original aspect ratios. */
.eyewear-brands{padding:clamp(48px,6vw,88px) clamp(24px,6vw,88px);background:#f5f6f7;color:#111;border-top:1px solid #e6e7e9}
.brand-heading{max-width:44rem;margin:0 auto 30px;text-align:center}
.brand-heading .eyebrow{font:600 11px/1.5 'Raleway',sans-serif;letter-spacing:.18em;text-transform:uppercase;color:#41647a;margin:0 0 12px}
.brand-heading h2{font:700 clamp(28px,3vw,42px)/1.15 'Poppins',sans-serif;letter-spacing:-.04em;margin:0 0 14px;text-transform:none}
.brand-heading p,.brand-note{font-size:15px;line-height:1.7;color:#5f5f5f}
.brand-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0;list-style:none;margin:0 auto;padding:0;max-width:1080px;border-top:1px solid #d9dde1;border-bottom:1px solid #d9dde1}
.brand-mark{display:flex;align-items:center;justify-content:center;min-width:0;min-height:140px;padding:26px 20px}
.brand-mark:nth-child(n+5){border-top:1px solid #d9dde1}
.brand-mark img{display:block;object-fit:contain;width:100%;height:64px;max-width:166px}
.brand-ray-ban img{max-width:130px;height:60px}.brand-tom-ford img{max-width:162px;height:40px}.brand-carrera img{max-width:158px;height:42px}.brand-kate-spade img{max-width:132px;height:70px}.brand-nike img{max-width:112px;height:50px}.brand-maui-jim img{max-width:132px;height:68px}.brand-gucci img{max-width:156px;height:36px}.brand-oakley img{max-width:104px;height:48px}
.brand-note{text-align:center;margin:24px auto 0;max-width:44ch}
@media(max-width:767px){.brand-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.brand-mark{min-height:116px;padding:24px 16px}.brand-mark:nth-child(n+3){border-top:1px solid #d9dde1}.brand-mark img{max-width:120px;height:52px}.brand-nike img{max-width:92px}.brand-oakley img{max-width:88px}.brand-tom-ford img,.brand-carrera img,.brand-gucci img{height:32px}.brand-kate-spade img,.brand-maui-jim img{height:60px}}
/* Manual gallery: reveal controls only for intentional keyboard focus. */
.slick-fullscreen .slick-prev,.slick-fullscreen .slick-next,.slick-fullscreen:hover .slick-prev,.slick-fullscreen:hover .slick-next{opacity:0;pointer-events:none}
.slick-fullscreen .slick-prev:focus-visible,.slick-fullscreen .slick-next:focus-visible{opacity:1;pointer-events:auto;transition:none;outline:3px solid #e7b952;outline-offset:3px}
.slick-fullscreen:focus-visible{outline:3px solid #e7b952;outline-offset:-4px}
/* One restrained, native disclosure replaces the repeated notice panels. */
.privacy-details{padding:12px max(24px,calc((100% - 900px)/2)) 18px;background:#000;border-top:1px solid #262626;font-size:14px;line-height:1.7}
.privacy-details summary{width:fit-content;max-width:100%;font-size:13px;line-height:1.6;min-height:44px;padding:12px 0;color:#d6d6d6;text-decoration:underline;text-underline-offset:4px}
.privacy-choice-content{max-width:62ch;padding:12px 0 10px}
.privacy-details .privacy-choice-content p{font-size:14px;line-height:1.75;margin:0 0 16px;color:#ddd}
.privacy-details a{color:#fff;text-decoration:underline;text-underline-offset:3px}
.privacy-details .measurement-choice{display:flex;gap:12px;flex-wrap:wrap;align-items:stretch;padding:0;background:none;color:#fff;z-index:auto}
.privacy-details .measurement-choice button{flex:1 1 180px;max-width:260px;min-height:48px;border:1px solid #aaa;background:none;color:#fff;font-size:14px;line-height:1.5;padding:12px 16px}
.privacy-details .measurement-choice button[aria-pressed="true"]{border-color:#fff;box-shadow:inset 0 0 0 1px #fff}
.privacy-details .privacy-choice-note{margin-top:16px;font-size:12px;color:#b8b8b8}
@media(max-width:480px){.privacy-details .measurement-choice{display:grid;grid-template-columns:1fr 1fr}.privacy-details .measurement-choice button{min-width:0;max-width:none;padding:12px 8px}}
.hero-visit .hero-services{max-width:32ch;margin:0 auto 16px;font-size:13px;line-height:1.7;color:#ccc}
/* Two-tone focus remains distinguishable on white, black and photographic surfaces. */
a:focus-visible,button:focus-visible,summary:focus-visible{outline:2px solid #fff;outline-offset:2px;box-shadow:0 0 0 6px #111}
.slick-fullscreen .slick-prev:focus-visible,.slick-fullscreen .slick-next:focus-visible{outline:2px solid #fff;outline-offset:2px;box-shadow:0 0 0 6px #111}
.slick-fullscreen:focus-visible{outline:none;box-shadow:inset 0 0 0 2px #fff,inset 0 0 0 4px #111}
