/* LANCELOT & SON — PLAIN HTML WEBSITE
   Main colors below are taken from the supplied crest.
   All text and prices can be edited directly in the HTML files. */
@font-face{font-family:'Fira Sans';font-style:normal;font-weight:400;font-display:swap;src:url('assets/fira-sans-400.woff2') format('woff2')}
@font-face{font-family:'Fira Sans';font-style:normal;font-weight:600;font-display:swap;src:url('assets/fira-sans-600.woff2') format('woff2')}
@font-face{font-family:'Fira Sans';font-style:normal;font-weight:700;font-display:swap;src:url('assets/fira-sans-700.woff2') format('woff2')}
@font-face{font-family:'Open Sans';font-style:normal;font-weight:300 800;font-display:swap;src:url('assets/open-sans.woff2') format('woff2')}
:root{--background:#171b1c;--surface:#1e2425;--surface-light:#252e2f;--red:#b24240;--red-bright:#ce6360;--blue-gray:#8aa8a8;--green:#3a514b;--text:#f3f4f1;--muted:#b9c1bf;--line:#364242;--font:'Open Sans',Arial,sans-serif;--heading:'Fira Sans',Arial,sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:84px}body{margin:0;background:var(--background);color:var(--text);font-family:var(--font);font-size:16px;line-height:1.8}a{color:inherit;text-decoration:none}button{font:inherit;cursor:pointer}a,button{touch-action:manipulation}img{display:block;max-width:100%;height:auto}h1,h2,h3,p,figure{margin:0}h1,h2,h3{font-family:var(--heading);line-height:1.25}h1{font-weight:600}h2,h3{font-weight:500}button,a{-webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible{outline:3px solid var(--blue-gray);outline-offset:5px}a:hover{color:var(--blue-gray)}.container{width:min(1160px,calc(100% - 80px));margin-inline:auto}.small-label{font:12px var(--heading);letter-spacing:2px;text-transform:uppercase;color:var(--blue-gray)}
/* Original-style crest header and navigation */
.masthead{background:#141819;border-top:4px solid var(--red)}.masthead-inner{display:grid;grid-template-columns:1fr auto 1fr;gap:30px;align-items:center;padding-block:22px}.logo-link{display:block;width:176px}.logo-link img{width:100%;height:auto}.masthead-location{display:flex;flex-direction:column;gap:8px;font-size:14px}.masthead-contact{justify-self:end;display:flex;flex-direction:column;gap:7px;text-align:right}.masthead-contact>a{font:23px var(--heading);letter-spacing:.5px}.masthead-contact>span{font-size:12px;color:var(--muted)}.masthead-contact>span>span{padding:0 10px;color:var(--blue-gray)}.navigation-bar{position:sticky;top:0;z-index:20;background:#1c2223;border-top:1px solid #2c3737;border-bottom:2px solid var(--red)}.nav-inner{display:flex;justify-content:center;align-items:center;min-height:62px}.nav-inner nav{display:flex;justify-content:center;align-items:center;gap:39px}.nav-inner nav>a{display:flex;align-items:center;gap:5px;font:600 12px var(--heading);text-transform:uppercase;letter-spacing:1.5px;position:relative;min-height:62px}.nav-inner nav>a[aria-current]{color:var(--blue-gray)}.nav-inner nav>a[aria-current]:after{position:absolute;content:'';height:2px;bottom:12px;left:0;right:0;background:var(--blue-gray)}.nav-inner nav>a:hover{color:var(--blue-gray)}.nav-inner nav>a>span{font-size:16px}
/* Introduction: original Lexington skyline and wording */
.hero{position:relative;isolation:isolate;overflow:hidden;min-height:470px;background:#2c303b}.hero-background{position:absolute;z-index:-2;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 53%}.hero:after{content:'';position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,#10181960,#11171908 72%),linear-gradient(0deg,#11181938,transparent 65%)}.hero-inner{padding-block:46px;display:flex;align-items:center;min-height:470px}.intro-panel{padding:34px 38px 36px;width:555px;max-width:100%;background:#903b39ed;border:1px solid #bd5d5975;border-left:4px solid var(--blue-gray);box-shadow:0 10px 40px #0002}.intro-panel h1{font-size:43px;letter-spacing:1px;line-height:1.16;color:white;margin-bottom:21px}.intro-panel p{font-size:14px;line-height:1.85;color:#fff8f5}.intro-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:25px}.button{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:11px 20px;background:var(--red);border:1px solid var(--red);font:600 12px/1.5 var(--font);color:white;transition:background .15s,border-color .15s}.button:hover{background:#963936;border-color:#cc6763;color:white}.button-outline{background:none;border-color:#8ba09f;color:var(--text)}.button-outline:hover{background:var(--surface-light);border-color:var(--blue-gray)}.intro-panel .button{background:#161d1e;border-color:#161d1e}.intro-panel .button:hover{background:#303d3e;border-color:#303d3e}.intro-panel .button-outline{background:transparent;border-color:#ffffff8c}.intro-panel .button-outline:hover{background:#ffffff18;border-color:white}
/* Main sections */
.section{padding:72px 0;scroll-margin-top:15px}.section-title{text-align:center;font-size:37px;letter-spacing:2px;margin:0 0 43px;font-weight:600}.section-title:after{content:'';display:block;width:66px;height:2px;background:var(--red);margin:20px auto 0}.center{text-align:center}.simple-link{display:inline-flex;align-items:center;gap:16px;border-bottom:1px solid #789391;padding-bottom:3px;color:var(--blue-gray);font-size:13px}.simple-link:hover{color:var(--text)}.services-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}.service-card{background:var(--surface);border:1px solid #664240;border-top:2px solid var(--red);padding:27px 24px 25px;min-width:0}.service-card img{width:43px;height:43px;object-fit:contain;margin:0 auto 22px}.service-card h3{font-size:22px;letter-spacing:.6px;text-align:center;margin-bottom:16px}.service-card p{font-size:13px;line-height:1.85;color:var(--muted);text-align:center}.services-section .center{margin-top:30px}
/* Project photos preserve their original proportions, with no cropping. */
.portfolio-section{background:#1c2223;border-block:1px solid #2d3938}.portfolio-section .section-title{margin-bottom:18px}.gallery-help{text-align:center;font-size:12px;color:var(--muted);margin-bottom:32px}.project-gallery{columns:3;column-gap:26px}.project{display:inline-block;width:100%;break-inside:avoid;margin:0 0 26px;vertical-align:top;background:#161c1d;border:1px solid #354241}.photo-link{display:block;position:relative;overflow:hidden;background:#0d1314;cursor:zoom-in}.project img{width:100%;height:auto}.project figcaption{padding:17px 19px 18px;font:500 19px/1.4 var(--heading);letter-spacing:.4px;overflow-wrap:anywhere}.zoom-icon{position:absolute;right:12px;bottom:12px;width:31px;height:31px;border:1px solid #b2c7c294;background:#1b2926dc;color:white;display:grid;place-items:center;font:24px/1 var(--heading);transition:background .2s}.photo-link:hover .zoom-icon{background:var(--red)}.photo-link:focus-visible{outline-offset:-4px;outline-width:4px}.photo-link img{transition:filter .2s}.photo-link:hover img{filter:brightness(1.06)}
/* Family photos are a separate gallery, never mixed into the portfolio. */
.family-section{background:#1b2725}.family-gallery{display:grid;grid-template-columns:repeat(5,1fr);gap:15px;align-items:start}.family-photo{border:1px solid #55706a}.family-photo img{width:100%;height:auto;aspect-ratio:3/4;object-fit:contain;background:#121b19}.family-section .section-title:after{background:var(--blue-gray)}
/* Existing testimonials */
.testimonials-section{background:#171b1c}.review-grid{columns:2;column-gap:28px}.review{display:inline-block;width:100%;break-inside:avoid;margin-bottom:25px;padding:27px 30px 25px;background:var(--surface);border-left:2px solid var(--red)}.review blockquote{font-size:14px;line-height:1.95;color:#d7dddb;margin:0}.review figcaption{color:var(--blue-gray);margin-top:19px;font-size:13px;font-weight:700}.review figcaption span{display:block;font-size:10px;font-weight:400;color:var(--muted);margin-top:1px}
/* Contact */
.contact-section{background:#202b29;border-top:1px solid #344441}.contact-grid{display:grid;grid-template-columns:.85fr 1.25fr 1fr;border:1px solid #566b64;background:#182220}.contact-card{padding:33px 18px;text-align:center;display:flex;flex-direction:column;align-items:center;border-right:1px solid #566b64;justify-content:flex-start}.contact-card:last-child{border:0}.contact-card svg{stroke:var(--blue-gray);stroke-width:1.5;fill:none;width:32px;height:32px;margin-bottom:18px}.contact-card h3{font-size:18px;letter-spacing:.1px;overflow-wrap:anywhere;max-width:100%}.contact-card>span,.contact-actions{font-size:11px;color:var(--blue-gray);margin-top:9px}.contact-actions{display:flex;gap:12px}.contact-actions a{text-decoration:underline;text-underline-offset:3px}.facebook-link{display:block;width:max-content;max-width:100%;margin:24px auto 0;color:var(--blue-gray);font-size:12px}.facebook-link span{padding-left:8px}.footer{background:#121717;border-top:2px solid var(--red)}.footer-inner{display:flex;align-items:center;justify-content:space-between;gap:20px;padding-block:24px;font-size:11px;color:var(--muted)}.footer-inner>a:nth-child(2){color:var(--blue-gray)}.mobile-contact{display:none}
/* Price list */
.price-section{padding-top:62px}.price-container{max-width:900px}.discount-note{text-align:center;margin:-10px 0 30px;color:var(--muted);font-size:14px}.discount-note strong{color:var(--text);font-weight:600}.price-table-wrap{border:1px solid var(--line);overflow:hidden}.price-table{width:100%;border-collapse:collapse;font-size:14px;text-align:left}.price-table thead{background:var(--green);font-family:var(--heading);letter-spacing:.5px;font-size:16px}.price-table th,.price-table td{padding:15px 24px;border-bottom:1px solid #343e3d}.price-table tbody th{font-weight:400}.price-table tbody tr:nth-child(odd){background:#202627}.price-table tbody tr:nth-child(even){background:#1b2222}.price-table tbody tr:last-child>*{border-bottom:0}.price-table td{font-variant-numeric:tabular-nums;color:#e3edeb;font-weight:600}.price-table td,.price-table thead th:last-child{text-align:right;white-space:nowrap}.price-notes{padding:25px 0;font-size:13px;color:var(--muted)}.price-notes p+p{margin-top:10px}.price-notes a{color:var(--blue-gray);text-decoration:underline;text-underline-offset:4px}.price-buttons{display:flex;justify-content:center;gap:12px;margin-top:5px}
/* Full-size photo viewer, including keyboard navigation and separate galleries. */
.photo-viewer{border:1px solid #4b5c58;background:#121919;color:var(--text);width:min(1200px,96vw);max-width:96vw;height:min(900px,95dvh);max-height:95dvh;padding:0;overflow:hidden}.photo-viewer[open]{display:flex;flex-direction:column}.photo-viewer::backdrop{background:#060b0bed;backdrop-filter:blur(4px)}.viewer-top{display:flex;justify-content:space-between;align-items:center;padding:8px 18px;border-bottom:1px solid var(--line);min-height:52px;flex-shrink:0}#photo-count{font-size:11px;color:var(--muted);letter-spacing:1px}.viewer-close{border:0;background:none;color:var(--text);padding:8px;font-size:13px}.viewer-close>span{font-size:24px;padding-left:10px;vertical-align:middle}.viewer-stage{position:relative;min-height:0;flex:1;display:flex;align-items:center;justify-content:center;padding:15px 54px}.viewer-stage img{max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain}.viewer-prev,.viewer-next{position:absolute;top:50%;transform:translateY(-50%);background:#263a34dd;border:1px solid #718d83;color:white;width:40px;height:52px;font:38px/1 var(--heading);display:grid;place-items:center}.viewer-prev{left:6px}.viewer-next{right:6px}.viewer-prev:hover,.viewer-next:hover{background:var(--red)}#photo-caption{text-align:center;font:500 17px/1.4 var(--heading);padding:9px 20px 18px;flex-shrink:0;min-height:20px}body.viewer-open{overflow:hidden}.skip-link{position:fixed;top:-100px;left:15px;z-index:100;background:white;color:#111;padding:8px 15px}.skip-link:focus{top:10px}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}
@media(min-width:1550px){.hero{min-height:510px}.hero-inner{min-height:510px}.intro-panel{width:580px;padding:40px 42px}.intro-panel h1{font-size:48px}.intro-panel p{font-size:15px}}
@media(max-width:1050px){.container{width:calc(100% - 56px)}.nav-inner nav{gap:28px}.services-grid{grid-template-columns:repeat(2,1fr);gap:20px}.service-card{padding:27px}.service-card h3{font-size:23px}.service-card p{max-width:340px;margin:auto;font-size:14px}.project-gallery{column-gap:20px}.project{margin-bottom:20px}.project figcaption{font-size:17px;padding:14px}.family-gallery{gap:12px}.contact-card h3{font-size:16px}}
@media(max-width:760px){html{scroll-padding-top:106px}.container{width:calc(100% - 36px)}.masthead-inner{padding-block:19px;gap:16px}.logo-link{width:132px}.masthead-location{font-size:11px;gap:6px}.small-label{font-size:9px;letter-spacing:1px}.masthead-contact>a{font-size:18px}.masthead-contact>span{font-size:11px}.navigation-bar{position:-webkit-sticky;position:sticky;top:0}.nav-inner{width:100%;min-height:0;display:block}.nav-inner nav{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));width:100%;gap:0;padding:0 8px}.nav-inner nav>a{width:auto;min-width:0;min-height:44px;padding:10px 4px;justify-content:center;text-align:center;font-size:11px;letter-spacing:.7px;line-height:1.35}.nav-inner nav>a:nth-child(-n+3){border-bottom:1px solid var(--line)}.nav-inner nav>a[aria-current]:after{left:25%;right:25%;bottom:5px}.hero,.hero-inner{min-height:0}.hero-inner{padding-block:30px}.hero-background{object-position:57% 50%}.intro-panel{width:490px;padding:27px 27px 30px;background:#853937f0}.intro-panel h1{font-size:37px;letter-spacing:.4px;margin-bottom:18px}.intro-panel p{font-size:13px;line-height:1.85}.intro-actions{gap:10px;margin-top:22px}.intro-actions .button{font-size:11px;padding:11px 15px}.section{padding:49px 0}.section-title{font-size:31px;letter-spacing:1.3px;margin-bottom:30px}.section-title:after{margin-top:16px;width:53px}.services-grid{gap:14px}.service-card{padding:24px 17px}.service-card h3{font-size:21px}.service-card p{font-size:12px}.service-card img{width:38px;height:38px;margin-bottom:18px}.project-gallery{columns:2;column-gap:17px}.project{margin-bottom:17px}.project figcaption{font-size:17px}.family-gallery{grid-template-columns:repeat(3,1fr);gap:13px}.family-gallery>a:first-child{grid-column:span 1}.family-gallery>a:nth-child(4),.family-gallery>a:nth-child(5){grid-column:auto}.family-photo img{aspect-ratio:3/4}.family-gallery>a:first-child{grid-row:span 2;align-self:stretch}.family-gallery>a:first-child img{height:100%;aspect-ratio:auto;object-fit:contain}.review-grid{columns:1}.review{padding:23px 25px;margin-bottom:18px}.review blockquote{font-size:13px}.contact-grid{grid-template-columns:1fr}.contact-card{border-right:0;border-bottom:1px solid #566b64;padding:26px}.contact-card svg{width:27px;height:27px;margin-bottom:12px}.contact-card h3{font-size:20px}.footer-inner{font-size:10px;gap:15px;padding-block:20px;flex-wrap:wrap}.footer-inner>a:nth-child(2){display:none}.footer{padding-bottom:53px}.mobile-contact{position:fixed;left:0;right:0;bottom:0;display:grid;grid-template-columns:1.45fr 1fr;z-index:30;background:#1f2e2a;box-shadow:0 -4px 20px #0003;padding-bottom:env(safe-area-inset-bottom)}.mobile-contact a{padding:14px 8px;text-align:center;font-size:12px;font-weight:600;min-height:51px}.mobile-contact a:last-child{background:var(--red);color:white}.viewer-open .mobile-contact{visibility:hidden}.discount-note{font-size:13px;line-height:1.8;margin:0 0 25px}.price-table{font-size:13px}.price-table thead{font-size:14px}.price-table th,.price-table td{padding:13px 15px}.price-notes{font-size:12px}.photo-viewer{width:100vw;max-width:100vw;height:100dvh;max-height:100dvh;border:0}.viewer-top{padding:8px 13px}.viewer-stage{padding:8px 0}.viewer-stage img{max-height:100%;width:100%;object-fit:contain}.viewer-prev,.viewer-next{width:33px;height:46px;font-size:32px;z-index:1;background:#172723b8}.viewer-prev{left:4px}.viewer-next{right:4px}#photo-caption{font-size:16px;padding:12px 30px 22px}}
@media(max-width:520px){.masthead-inner{grid-template-columns:1fr auto 1fr;gap:7px;position:relative}.logo-link{width:118px}.masthead-location{font-size:10px;max-width:89px}.small-label{font-size:8px;letter-spacing:.7px}.masthead-contact>a{font-size:13px;white-space:nowrap}.masthead-contact>span{font-size:10px}.masthead-contact>span>span{padding-inline:5px}.intro-panel{padding:25px 22px}.intro-panel h1{font-size:34px}.services-grid{grid-template-columns:1fr}.service-card{padding:25px;display:grid;grid-template-columns:45px 1fr;column-gap:20px;align-items:start}.service-card img{grid-row:span 2;margin:3px 0;width:40px;height:40px}.service-card h3{text-align:left;font-size:22px;margin-bottom:10px}.service-card p{text-align:left;max-width:none;font-size:13px;margin:0}.project-gallery{columns:1}.project{margin-bottom:24px}.project figcaption{font-size:19px;padding:16px 18px}.family-gallery{grid-template-columns:1fr 1fr;gap:12px}.family-gallery>a:first-child{grid-column:1/-1;grid-row:auto;max-width:100%;height:420px;width:100%;}.family-gallery>a:first-child img{object-fit:contain;height:100%;width:100%;aspect-ratio:auto}.family-photo img{aspect-ratio:3/4;object-fit:contain}.price-table{font-size:12px}.price-table thead{font-size:12px}.price-table th,.price-table td{padding:13px 11px}.price-table thead th:last-child{white-space:normal}.price-table th:first-child{width:74%}.footer-inner{font-size:9px}.review{padding:23px 22px}}

/* Easter egg game modal */
.footer-brand{color:inherit}
.easter-egg-modal{width:min(1080px,calc(100vw - 24px));max-width:1080px;padding:0;border:0;background:transparent;color:var(--text)}
.easter-egg-modal::backdrop{background:#090d0dcc}
.easter-egg-dialog{position:relative;background:#1e2927;border:1px solid #566b64;border-top:3px solid var(--red);border-radius:10px;padding:28px;box-shadow:0 20px 70px #0009}
.easter-egg-dialog h2{margin:0 0 8px;color:var(--text)}
.easter-egg-dialog p{margin:8px 0 16px;color:var(--muted)}
.easter-egg-dialog .eyebrow{margin:0 0 7px;color:var(--blue-gray);font:600 11px/1.4 var(--font);letter-spacing:1.8px;text-transform:uppercase}
.modal-close{position:absolute;right:14px;top:10px;border:0;background:transparent;color:var(--muted);font-size:28px;line-height:1;cursor:pointer}
.modal-close:hover{color:var(--text)}
.easter-egg-frame{overflow:hidden;border:1px solid #455651;border-radius:7px;background:#101716;min-height:360px;margin-bottom:18px}
.easter-egg-frame iframe{display:block;width:100%;height:min(70vh,680px);min-height:380px;border:0}
@media(max-width:600px){.easter-egg-dialog{padding:22px 11px 14px}.easter-egg-dialog h2{font-size:25px;padding-right:30px}.easter-egg-frame iframe{height:72vh;min-height:410px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important}}
.masthead-contact>span>a{overflow-wrap:anywhere}
@media(max-width:520px){.masthead-contact>span{font-size:9px;max-width:112px}.masthead-location{line-height:1.35}}
.masthead-location>span{white-space:nowrap}
.masthead-contact>span{white-space:nowrap}
.masthead-contact>span>a{white-space:nowrap;overflow-wrap:normal}
@media(max-width:760px){.masthead-location,.masthead-contact{min-width:0}}
@media(max-width:520px){.masthead-inner{grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);gap:4px}.logo-link{width:84px}.masthead-location{max-width:none;font-size:clamp(6px,2vw,9px);line-height:1.35}.masthead-contact>span{font-size:clamp(6px,2vw,9px);max-width:none;letter-spacing:-.35px}.contact-card h3{font-size:clamp(14px,4.4vw,16px);white-space:nowrap;overflow-wrap:normal;max-width:none;letter-spacing:-.2px}}
@media(max-width:360px){.logo-link{width:78px}.masthead-contact>span{letter-spacing:-.45px}}
/* Display projects in the same reading order across desktop and mobile. */
.project-gallery{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:26px;columns:auto;align-items:start}
.project-gallery>.project{display:block;margin:0}
.price-updated{margin-top:24px;text-align:center;font-size:14px;color:var(--muted)}
@media(max-width:1050px){.project-gallery{gap:20px}}
@media(max-width:760px){.project-gallery{grid-template-columns:repeat(2,minmax(0,1fr));gap:17px}}
@media(max-width:520px){.project-gallery{grid-template-columns:minmax(0,1fr);gap:24px}}
