:root{--ink:#2b2822;--paper:#fbf8f1;--cream:#f0eadd;--apricot:#e56b3f;--apricot-deep:#cc5330;--moss:#24352d;--sage:#aab7a0;--line:#d7d0c3;--muted:#6e695f}*{box-sizing:border-box}html{scroll-behavior:smooth;max-width:100%;overflow-x:clip}body{max-width:100%;color:var(--ink);background:var(--paper);margin:0;font-family:DM Sans,sans-serif;overflow-x:clip}a{color:inherit}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{cursor:wait;opacity:.65}img{object-fit:cover}.site-shell,main,section,article,header,footer,nav,form,div,dl,dd{min-width:0}::selection{color:#fff;background:var(--apricot)}:focus-visible{outline-offset:4px;outline:2px solid #ffc44d}.site-header{z-index:20;color:#fff;border-bottom:1px solid #ffffff4d;grid-template-columns:1fr auto 1fr;align-items:center;height:96px;display:grid;position:absolute;inset:0 5.2% auto}.brand{flex-direction:column;width:max-content;line-height:1;text-decoration:none;display:inline-flex}.brand-logo{color:#f3bd31;width:130px;height:auto;display:block;overflow:visible}.site-footer .brand-logo{width:156px}.brand span{letter-spacing:.2em;font-size:16px;font-weight:600}.brand small{letter-spacing:.22em;text-transform:uppercase;opacity:.78;margin-top:5px;font:9px DM Mono,monospace}.desktop-nav{align-items:center;gap:38px;display:flex}.desktop-nav a{font-size:13px;text-decoration:none;position:relative}.desktop-nav a:after{content:"";background:currentColor;height:1px;transition:right .25s;position:absolute;bottom:-8px;left:0;right:100%}.desktop-nav a:hover:after{right:0}.site-header>.button{justify-self:end}.mobile-menu{display:none}body:has(.interior-page) .site-header{color:var(--ink);border-bottom-color:var(--line)}body:has(.interior-page) .site-header .brand-logo{color:#071d35}.button{color:#fff;background:var(--apricot);border:0;justify-content:center;align-items:center;gap:25px;width:max-content;max-width:100%;min-height:49px;padding:13px 20px;font-size:13px;font-weight:600;text-decoration:none;transition:background .2s,transform .2s;display:inline-flex}.button:hover{background:var(--apricot-deep);transform:translateY(-2px)}.button-small{min-height:45px}.text-link{border-bottom:1px solid;padding-bottom:5px;font-size:13px;text-decoration:none;display:inline-block}.text-link span{margin-left:18px}.light{color:#fff}.eyebrow,.section-number{letter-spacing:.16em;text-transform:uppercase;margin:0 0 15px;font:500 10px DM Mono,monospace}.eyebrow{color:var(--muted)}.eyebrow.light{color:#ffffffd1}.eyebrow.muted{color:var(--sage)}.section-number{color:var(--muted)}h1,h2{letter-spacing:-.055em;font-family:Playfair Display,serif;font-weight:500}h1 em,h2 em{font-weight:500}.section-pad{padding:130px 7%}.home-hero{color:#fff;height:100svh;min-height:760px;max-height:940px;position:relative;overflow:hidden}.hero-image{background:url(/images/fabrica-interior-hero-v2.webp) 50%/cover;animation:1.4s ease-out both hero-settle;position:absolute;inset:0;transform:scale(1.02)}.hero-shade{background:linear-gradient(90deg,#0a121cdb 0%,#0a121c94 42%,#0a121c1f 78%),linear-gradient(#0000 52%,#0a0e1294);position:absolute;inset:0}.hero-copy{z-index:2;width:min(690px,88%);margin-left:7%;padding-top:clamp(210px,27vh,275px);animation:.8s ease-out .15s both rise-in;position:relative}.hero-copy h1{margin:17px 0 27px;font-size:clamp(58px,7.2vw,108px);line-height:.94}.hero-copy>p:not(.eyebrow){color:#ffffffdb;max-width:460px;margin:0;font-size:18px;line-height:1.6}.hero-actions{align-items:center;gap:28px;margin-top:36px;display:flex}.hero-open{z-index:2;align-items:center;gap:12px;font-size:12px;display:flex;position:absolute;bottom:46px;right:5.2%}.hero-open div{flex-direction:column;gap:4px;display:flex}.hero-open b{font-weight:600}.hero-open small{color:#ffffffad}.hero-open a{margin-left:34px}.status-dot{background:#b4e389;border-radius:50%;width:8px;height:8px;box-shadow:0 0 0 5px #b4e38921}.intro-section{background:var(--cream);grid-template-columns:.7fr 1.8fr 1fr;gap:7vw;display:grid}.intro-section h2,.home-menu h2,.visit-copy h2,.story-copy h2,.contact-details h2,.booking-notes h2{margin:0;font-size:clamp(45px,5vw,74px);line-height:.98}.intro-copy{color:var(--muted);align-self:end;font-size:15px;line-height:1.8}.intro-copy p{margin:0 0 30px}.home-menu{padding-left:5.2%;padding-right:5.2%}.section-heading{justify-content:space-between;align-items:end;margin-bottom:50px;display:flex}.feature-grid{grid-template-columns:repeat(3,1fr);gap:22px;display:grid}.feature-image{background:var(--cream);height:400px;position:relative;overflow:hidden}.feature-image img{transition:transform .55s}.feature-image-1 img{object-position:center 54%}.feature-image-2 img{object-position:center 55%}.feature-image-3 img{object-position:center center}.feature-card:hover .feature-image img{transform:scale(1.045)}.feature-meta{justify-content:space-between;gap:24px;padding:18px 2px 0;display:flex}.feature-meta span{color:var(--apricot);margin-bottom:10px;font:10px DM Mono,monospace;display:block}.feature-meta h3{margin:0 0 7px;font:600 18px Playfair Display,serif}.feature-meta p{max-width:310px;color:var(--muted);margin:0;font-size:12px;line-height:1.55}.feature-meta b{white-space:nowrap;font:500 12px DM Mono,monospace}.sample-note{color:var(--muted);margin:38px 0 0;font:10px DM Mono,monospace}.manifesto{color:#fff;background:var(--apricot);text-align:center;padding:125px 20px}.manifesto p{letter-spacing:-.035em;margin:0 0 30px;font:500 clamp(33px,4.5vw,63px)/1.12 Playfair Display,serif}.manifesto span{letter-spacing:.16em;font:10px DM Mono,monospace}.visit-block{color:#f7f3e9;background:var(--moss);grid-template-columns:1.2fr .8fr;display:grid}.visit-image{min-height:620px;position:relative}.visit-image img{object-position:center top}.visit-copy{align-self:center;padding:90px 12%}.visit-copy h2{margin-bottom:53px}.visit-details{grid-template-columns:1fr 1.35fr;gap:45px;margin-bottom:43px;font-size:13px;line-height:1.65;display:grid}.visit-details b{color:var(--sage);letter-spacing:.15em;margin-bottom:9px;font:10px DM Mono,monospace;display:block}.visit-details p{margin:0 0 10px}.visit-details span{color:#ffffff9e}.page-hero{color:#fff;background:var(--moss);padding:210px 8% 105px}.page-hero .eyebrow{color:var(--sage)}.page-hero-grid{grid-template-columns:1.6fr .7fr;align-items:end;gap:9vw;display:grid}.page-hero h1{margin:0;font-size:clamp(59px,7vw,102px);line-height:.94}.page-hero-grid>p{color:#ffffffb8;max-width:420px;margin:0 0 8px;font-size:16px;line-height:1.7}.menu-page{padding-top:65px}.menu-page.interior-page{padding-top:130px}.menu-jump{z-index:5;border-bottom:1px solid var(--line);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#fbf8f1f0;flex-wrap:wrap;gap:10px 24px;padding:14px 0;display:flex;position:sticky;top:0}.menu-jump a{color:var(--muted);letter-spacing:.1em;text-transform:uppercase;font:500 10px DM Mono,monospace;text-decoration:none}.menu-jump a:hover{color:var(--apricot)}.menu-section{border-bottom:1px solid var(--line);grid-template-columns:minmax(150px,.45fr) minmax(0,2.7fr);gap:4vw;padding:62px 0;scroll-margin-top:50px;display:grid}.menu-title{align-self:start;position:sticky;top:72px}.menu-title>span{color:var(--apricot);font:11px DM Mono,monospace}.menu-title h2{margin:12px 0 9px;font-size:clamp(38px,4vw,56px);line-height:.95}.menu-title p{color:var(--muted);margin:0;font-size:11px;line-height:1.45}.menu-list{grid-template-columns:1fr 1fr;gap:0 24px;display:grid}.menu-item{border-top:1px solid var(--line);justify-content:space-between;gap:14px;min-height:110px;padding:16px 0 14px;display:flex}.menu-item h3{margin:0 0 5px;font:600 16px/1.15 Playfair Display,serif}.menu-item p{color:var(--muted);margin:0;font-size:11px;line-height:1.45}.menu-item small{color:var(--apricot);letter-spacing:.1em;margin-top:7px;font:500 8px DM Mono,monospace;display:block}.menu-item>b{white-space:nowrap;font:500 11px DM Mono,monospace}.menu-legend{color:var(--muted);justify-content:space-between;gap:40px;padding-top:24px;font:9px/1.55 DM Mono,monospace;display:flex}.menu-legend p:last-child{text-align:right;max-width:480px}@media (min-width:1200px){.menu-list{grid-template-columns:repeat(4,minmax(0,1fr));gap:0 18px}}@media (max-width:1100px) and (min-width:681px){.visit-block{grid-template-columns:1fr}.visit-image{aspect-ratio:16/9;min-height:0}.visit-copy{padding:85px 8%}}.story-grid{background:var(--cream);grid-template-columns:1fr 1fr;align-items:center;gap:9vw;display:grid}.story-grid.interior-page,.contact-layout.interior-page{padding-top:175px}.story-image{min-height:690px;position:relative;overflow:hidden}.story-copy{max-width:570px}.story-copy h2{margin:22px 0 37px}.story-copy>p:not(.section-number){color:var(--muted);font-size:15px;line-height:1.85}.values{background:var(--paper)}.value-grid{grid-template-columns:repeat(3,1fr);gap:30px;margin-top:55px;display:grid}.value-grid article{border-top:1px solid var(--ink);background:var(--cream);min-height:300px;padding:30px}.value-grid span{color:var(--apricot);font:10px DM Mono,monospace}.value-grid h3{max-width:260px;margin:75px 0 20px;font:600 29px/1.05 Playfair Display,serif}.value-grid p{max-width:330px;color:var(--muted);font-size:13px;line-height:1.7}.about-cta{color:#fff;background:linear-gradient(90deg,#0a121ce0,#0a121c57),url(/images/fabrica-interior-hero-v2.webp) 50%/cover;padding:115px 8%}.about-cta h2{margin:15px 0 38px;font-size:clamp(54px,7vw,94px);line-height:.96}.contact-layout,.booking-layout{grid-template-columns:.8fr 1.2fr;align-items:start;gap:10vw;display:grid}.contact-details,.booking-notes{position:sticky;top:40px}.contact-details h2,.booking-notes h2{margin:22px 0 50px}.contact-details dl{margin:0}.contact-details dl>div{border-top:1px solid var(--line);grid-template-columns:110px 1fr;padding:18px 0;display:grid}.contact-details dt{letter-spacing:.12em;text-transform:uppercase;font:10px DM Mono,monospace}.contact-details dd{color:var(--muted);margin:0;font-size:13px;line-height:1.65}.contact-details dd,.footer-contact a{overflow-wrap:anywhere}.contact-details dd a{color:var(--ink)}.contact-details dd p{margin:0 0 11px}.contact-details dd span{color:var(--muted)}.form-panel{background:var(--cream);padding:62px}.form-panel>h2{margin:10px 0 45px;font-size:clamp(45px,5vw,66px);line-height:.98}.service-form{gap:23px;display:grid}.form-grid{grid-template-columns:1fr 1fr;gap:20px;display:grid}.service-form label{color:var(--muted);letter-spacing:.12em;text-transform:uppercase;font:500 9px DM Mono,monospace}.service-form label small{letter-spacing:0;text-transform:none}.service-form input,.service-form select,.service-form textarea{width:100%;color:var(--ink);background:0 0;border:0;border-bottom:1px solid #bcb3a4;border-radius:0;outline:0;margin-top:9px;padding:13px 0;font:14px DM Sans,sans-serif;display:block}.service-form textarea{resize:vertical;min-height:118px}.service-form input:focus,.service-form select:focus,.service-form textarea:focus{border-color:var(--apricot);box-shadow:0 1px 0 var(--apricot)}.service-form .button{margin-top:5px}.form-note{color:var(--muted);margin:-9px 0 0;font-size:11px}.form-status{margin:0;padding:13px 15px;font-size:12px;line-height:1.5}.form-status.success{color:#254629;background:#dcebd7}.form-status.error{color:#6b2424;background:#f3d9d5}.booking-notes ul{margin:0;padding:0;list-style:none}.booking-notes li{border-top:1px solid var(--line);color:var(--muted);padding:19px 0 19px 27px;font-size:13px;line-height:1.65}.booking-notes li:before{color:var(--apricot);content:"✦";margin-left:-27px;padding-right:17px}.booking-modal-backdrop{z-index:100;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#0a0d0bc2;place-items:center;padding:28px;animation:.2s ease-out both modal-fade;display:grid;position:fixed;inset:0;overflow-y:auto}.booking-modal{background:var(--paper);grid-template-columns:.72fr 1.28fr;gap:55px;width:min(960px,100%);padding:58px;animation:.28s ease-out both modal-rise;display:grid;position:relative;box-shadow:0 30px 90px #00000057}.booking-modal-intro h2{margin:12px 0 22px;font-size:clamp(45px,5vw,68px);line-height:.92}.booking-modal-intro>p:last-child{color:var(--muted);font-size:13px;line-height:1.7}.booking-modal-close{width:42px;height:42px;color:var(--ink);background:0 0;border:0;font:300 32px/1 DM Sans,sans-serif;position:absolute;top:18px;right:21px}.booking-modal .service-form{align-self:start}.mobile-booking-trigger,.footer-booking-trigger{color:inherit;text-align:left;background:0 0;border:0;padding:0}.mobile-booking-trigger{border-bottom:1px solid var(--line);padding:11px 5px;font-size:13px}.footer-booking-trigger{color:#d5d2ca;width:max-content;font-size:12px}.site-footer{color:#e9e5dc;background:#171915;grid-template-columns:85px 1.4fr .8fr 1fr;align-items:end;gap:5vw;padding:70px 5.2% 45px;display:grid}.footer-mark{width:72px;height:72px;color:var(--apricot);border:1px solid #777b71;border-radius:50%;place-items:center;font:italic 42px Playfair Display,serif;display:grid}.brand-light{color:#fff}.site-footer p{color:#96998f;margin:20px 0 0;font-size:12px}.site-footer nav{gap:10px;display:grid}.site-footer nav a,.footer-contact a{color:#d5d2ca;width:max-content;font-size:12px;text-decoration:none}.footer-contact{justify-items:end;gap:9px;display:grid}.footer-contact span{color:#777b71;margin-top:18px;font:9px DM Mono,monospace}@keyframes hero-settle{0%{transform:scale(1.08)}to{transform:scale(1.02)}}@keyframes rise-in{0%{opacity:0;transform:translateY(28px)}to{opacity:1;transform:translateY(0)}}@keyframes modal-fade{0%{opacity:0}to{opacity:1}}@keyframes modal-rise{0%{opacity:0;transform:translateY(18px)scale(.99)}to{opacity:1;transform:translateY(0)scale(1)}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}@media (max-width:900px){.site-header{grid-template-columns:1fr auto auto;gap:14px}.desktop-nav,.site-header>.button{display:none}.mobile-menu{justify-self:end;display:block;position:relative}.mobile-menu-toggle{width:42px;height:42px;color:inherit;background:0 0;border:0;place-content:center;gap:5px;padding:0;display:grid}.mobile-menu-toggle span{background:currentColor;width:18px;height:1px;transition:transform .2s,opacity .2s;display:block}.mobile-menu.is-open .mobile-menu-toggle span:first-child{transform:translateY(6px)rotate(45deg)}.mobile-menu.is-open .mobile-menu-toggle span:nth-child(2){opacity:0}.mobile-menu.is-open .mobile-menu-toggle span:last-child{transform:translateY(-6px)rotate(-45deg)}.mobile-menu nav{border:1px solid var(--line);width:210px;color:var(--ink);background:var(--paper);padding:20px;display:grid;position:absolute;top:43px;right:0;box-shadow:0 18px 45px #0000002e}.mobile-menu nav a{border-bottom:1px solid var(--line);padding:11px 5px;font-size:13px;text-decoration:none}.booking-modal{gap:35px;padding:48px 36px 38px}.intro-section{grid-template-columns:.4fr 1.6fr}.intro-copy{grid-column:2}.page-hero-grid{grid-template-columns:1fr;gap:45px}.menu-section{grid-template-columns:minmax(135px,.5fr) minmax(0,2fr);gap:4vw}.menu-list{grid-template-columns:1fr}.contact-layout,.booking-layout{gap:5vw}.form-panel{padding:45px 35px}.site-footer{grid-template-columns:85px 1fr 1fr}.footer-contact{grid-column:3}.site-footer nav{grid-column:2}}@media (max-width:680px){.site-header{height:76px;inset:0 6% auto}.brand span{font-size:14px}.site-header .brand-logo{width:clamp(108px,34vw,130px)}.home-hero{min-height:720px}.hero-copy{width:88%;margin-left:6%;padding-top:175px}.hero-copy h1{font-size:57px}.hero-copy>p:not(.eyebrow){font-size:15px}.hero-actions{flex-direction:column;align-items:flex-start;gap:21px}.hero-open{bottom:35px;left:6%;right:auto}.hero-open a{display:none}.section-pad{padding:78px 6%}.intro-section{grid-template-columns:1fr;gap:28px}.intro-copy{grid-column:auto}.section-heading{flex-direction:column;align-items:flex-start;gap:28px}.feature-grid{grid-template-columns:1fr;gap:38px}.feature-image{height:330px}.manifesto{padding:80px 18px}.visit-block{grid-template-columns:1fr}.visit-image{aspect-ratio:16/10;min-height:0}.visit-copy{padding:75px 8%}.visit-details{gap:30px}.page-hero{padding:155px 6% 75px}.page-hero h1{font-size:58px}.menu-page{padding-top:35px}.menu-page.interior-page,.story-grid.interior-page,.contact-layout.interior-page{padding-top:120px}.menu-page.interior-page{padding-top:105px}.menu-jump{gap:9px 18px;padding:12px 0}.menu-section{grid-template-columns:1fr;gap:18px;padding:44px 0}.menu-title{grid-template-columns:auto 1fr;align-items:baseline;column-gap:12px;display:grid;position:static}.menu-title h2{margin:0;font-size:38px}.menu-title p{grid-column:2;margin-top:4px}.menu-item{min-height:auto;padding:14px 0 13px}.menu-legend{flex-direction:column}.menu-legend p:last-child{text-align:left}.story-grid{grid-template-columns:1fr;gap:55px}.story-image{min-height:460px}.value-grid{grid-template-columns:1fr}.value-grid article{min-height:245px}.value-grid h3{margin-top:55px}.contact-layout,.booking-layout{grid-template-columns:1fr;gap:65px}.contact-details,.booking-notes{position:static}.form-panel{padding:42px 25px}.form-grid{grid-template-columns:1fr}.booking-modal-backdrop{place-items:center;padding:16px}.booking-modal{grid-template-columns:1fr;gap:28px;max-height:calc(100svh - 32px);padding:36px 24px 28px;overflow-y:auto}.booking-modal-intro h2{margin:7px 0 11px;font-size:42px}.booking-modal-intro>p:last-child{margin:0;line-height:1.55}.booking-modal .service-form{gap:18px}.booking-modal .form-grid{grid-template-columns:1fr 1fr;gap:18px 16px}.booking-modal .service-form input,.booking-modal .service-form select{min-width:0;margin-top:7px;padding:10px 0;font-size:14px}.booking-modal .service-form .button{width:100%;min-height:49px;margin-top:2px}.booking-modal .form-note{margin-top:-3px;line-height:1.5}.site-footer{grid-template-columns:1fr;gap:35px;padding:60px 6% 35px}.site-footer nav,.footer-contact{grid-column:auto;justify-items:start}.site-footer nav a,.footer-contact a,.footer-booking-trigger{width:auto;max-width:100%}}
