/* Keila's own imagery and colors, with a dedicated portfolio page. */
header{height:98px;position:sticky;top:0;padding-left:4%;padding-right:4%;box-shadow:0 2px 20px #35201508}header .brand{display:flex;align-items:center;gap:12px}header .brand>span{margin:0}header .brand-name{font:32px 'Playfair Display',serif}header .brand-name em{color:var(--chocolate)}header .brand small{font-size:10px;letter-spacing:1.2px}.logo-crop{display:block;width:66px;height:66px;border-radius:50%;overflow:hidden;position:relative}.logo-crop img{position:absolute;width:100%;height:auto;top:-29px}nav{gap:24px}nav a{font-size:14px}.button{border-radius:30px}.announcement{font-size:12px}.brand-banner{margin:28px 4% 0;display:grid;grid-template-columns:1fr 1fr;background:#eaddc5;border-radius:28px;overflow:hidden;min-height:460px;box-shadow:0 18px 45px #35201512}.banner-photos{display:grid;grid-template-columns:1.1fr 1fr;grid-template-rows:230px 230px;gap:8px;background:var(--chocolate);padding:0 8px 0 0}.banner-photos img:first-child{grid-row:span 2;object-position:50% 35%}.banner-photos img:nth-child(2){object-position:50% 30%}.banner-photos img:nth-child(3){object-position:50% 50%}.banner-brand{padding:38px 28px;text-align:center;display:flex;align-items:center;flex-direction:column;justify-content:center;background:linear-gradient(120deg,#eadcc5,#fcf6e9)}.banner-brand .eyebrow{margin-bottom:12px;font-size:12px}.banner-name{font:clamp(40px,5vw,76px)/1.1 'Playfair Display',serif;margin:0;color:var(--chocolate);letter-spacing:-2px}.banner-name em{color:var(--brown)}.banner-tagline{font:italic 29px/1.25 'Playfair Display',serif;margin:17px 0}.banner-brand>span{font-size:12px;letter-spacing:1px;max-width:360px}.banner-brand .button{margin-top:25px}.hero{background:var(--paper);min-height:0;padding-top:75px;padding-bottom:75px;grid-template-columns:1.2fr .8fr;gap:8%}.hero h1{font-size:clamp(36px,4vw,58px)}.intro{font-size:16px;max-width:600px}.hero-note{font-size:13px}.intro-photo{height:450px;border-radius:25px;overflow:hidden;position:relative}.intro-photo img{object-position:center 40%}.intro-photo>span{position:absolute;bottom:0;left:0;right:0;padding:55px 22px 22px;background:linear-gradient(transparent,#24160cda);color:var(--cream);font:italic 23px 'Playfair Display',serif}.ribbon{font-size:13px;letter-spacing:2px}.section{padding-top:72px;padding-bottom:72px}.eyebrow{font-size:12px}.section-heading>p{font-size:16px}.gallery{grid-template-columns:repeat(3,1fr);gap:23px}.gallery-card{border-radius:18px}.gallery-card .caption{font-size:14px;padding:55px 20px 18px}.gallery-page-link{display:flex;width:fit-content;margin:24px auto 0}.results .more{border-radius:30px}.technique-preview{display:grid;grid-template-columns:repeat(3,1fr);gap:25px;margin-bottom:35px}.technique-preview figure{margin:0;border-radius:18px;overflow:hidden;background:var(--chocolate);color:var(--cream)}.technique-preview img{height:285px;object-position:50% 35%}.technique-preview figcaption{padding:15px 20px;font:23px 'Playfair Display',serif}.service-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px}.service-row,.service-row:first-child{background:var(--paper);padding:24px;border:1px solid var(--line);border-radius:15px;min-height:108px;gap:15px}.service-row h3{font-size:23px;line-height:1.25}.service-row p{font-size:14px}.service-row a{height:40px;width:40px;line-height:38px}.service-row strong{font-size:19px}.service-row{grid-template-columns:1fr auto 40px}.home-section{background:#fcf8f0}.home-features p{font-size:15px}.steps{background:#eadcc6}.steps-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:28px}.steps-grid article{border-top:1px solid #c5ad8f;padding-top:22px}.steps-grid article>span{font:40px 'Playfair Display',serif;color:var(--brown)}.steps-grid h3{font:25px/1.25 'Playfair Display',serif;margin:12px 0}.steps-grid p{font-size:15px;color:#745a46}.faq{display:grid;grid-template-columns:.9fr 1.1fr;gap:70px}.faq>div>p:not(.eyebrow){color:var(--brown);font-size:16px;margin-top:25px}.faq-items details{border-bottom:1px solid var(--line);padding:20px 0}.faq-items summary{font-size:16px;font-weight:500;cursor:pointer;list-style:none;padding-right:35px;position:relative}.faq-items summary::-webkit-details-marker{display:none}.faq-items summary:after{content:'+';position:absolute;right:6px;top:-6px;font-size:25px;font-weight:400}.faq-items details[open] summary:after{content:'−'}.faq-items p{font-size:15px;color:#796352;line-height:1.8}.faq-items a{text-decoration:underline}.gallery-intro{background:var(--cream);padding-bottom:48px}.breadcrumb{font-size:14px;color:var(--brown)}.gallery-intro .eyebrow{margin-top:35px}.gallery-intro h1{font-size:clamp(38px,4.5vw,66px);max-width:900px}.gallery-intro>p:not(.eyebrow){max-width:720px;line-height:1.9;color:#795f4b}.gallery-intro .text-link{width:fit-content}.gallery-toolbar{display:flex;justify-content:space-between;font-size:14px;color:var(--brown);gap:20px}.gallery-toolbar p{margin:0}[data-page=gallery] .results{padding-top:35px}[data-page=gallery] .gallery{display:block;columns:3;column-gap:23px}[data-page=gallery] .gallery-card{width:100%;display:block;break-inside:avoid;aspect-ratio:auto;margin-bottom:23px;background:var(--cream)}[data-page=gallery] .gallery-card img{height:auto;width:100%;object-fit:contain}[data-page=gallery] .gallery-card:hover img{transform:none}.gallery-cta{text-align:center;background:var(--cream)}.gallery-cta p{color:var(--brown)}.gallery-cta .button{margin-top:12px}footer .brand{font-size:32px}footer small,footer>div,footer>p{font-size:13px}.booking-insta{font-size:14px}.floating{width:58px;height:58px}a[aria-current=page]{color:var(--brown);text-decoration:underline;text-underline-offset:7px}
@media(max-width:1100px){nav{gap:14px}header .brand-name{font-size:27px}.logo-crop{width:52px;height:52px}.logo-crop img{top:-23px}.brand-banner{min-height:400px}.banner-photos{grid-template-rows:200px 200px}.service-row{padding:18px}.service-row h3{font-size:21px}.steps-grid{gap:18px}.faq{gap:35px}}
@media(max-width:900px){.menu{display:block;border:1px solid var(--line);background:transparent;font-size:22px;padding:4px 12px;border-radius:8px}nav{display:none;position:absolute;top:98px;left:0;right:0;background:var(--paper);padding:25px 6%;border-bottom:1px solid var(--line);gap:20px}nav.open{display:flex;flex-direction:column;align-items:stretch}.hero{gap:5%}.intro-photo{height:400px}.steps-grid{grid-template-columns:repeat(2,1fr)}.service-list{grid-template-columns:1fr}.hero .actions{gap:14px}}
@media(max-width:760px){header{height:86px}nav{top:86px}.announcement{font-size:10px;letter-spacing:.5px}.brand-banner{grid-template-columns:1fr;margin:18px 4% 0;border-radius:20px}.banner-photos{grid-template-columns:repeat(3,1fr);grid-template-rows:260px;gap:5px;padding:0 0 5px}.banner-photos img:first-child{grid-row:auto}.banner-brand{padding:27px 18px 30px}.banner-name{font-size:53px}.banner-tagline{font-size:25px;margin:12px 0}.banner-brand .eyebrow{font-size:12px;letter-spacing:1px}.banner-brand>span{font-size:11px}.banner-brand .button{margin-top:20px}.hero{padding-top:46px;padding-bottom:46px;gap:30px}.hero h1{font-size:40px}.hero .intro{font-size:16px}.hero-note{font-size:12px;line-height:1.7}.intro-photo{height:420px}.section{padding-top:48px;padding-bottom:48px}.eyebrow{font-size:12px;letter-spacing:1px}.section-heading>p{font-size:16px}.tabs button{font-size:14px;padding:8px 13px}.gallery{grid-template-columns:repeat(2,1fr);gap:12px}.gallery-card{border-radius:12px}.gallery-card .caption{font-size:13px;padding:45px 12px 12px}.technique-preview{gap:12px;grid-template-columns:1fr}.technique-preview figure{display:grid;grid-template-columns:140px 1fr;align-items:center}.technique-preview img{height:155px}.technique-preview figcaption{font-size:24px}.service-row,.service-row:first-child{padding:18px 15px;gap:10px}.service-row h3{font-size:21px}.service-row p{font-size:14px}.materials-note{font-size:14px}.steps-grid{gap:24px}.steps-grid h3{font-size:23px}.steps-grid p{font-size:15px}.faq{grid-template-columns:1fr;gap:20px}.gallery-intro h1{font-size:42px}.gallery-toolbar{display:block;font-size:14px}.gallery-toolbar p{margin-bottom:8px}[data-page=gallery] .gallery{columns:2;column-gap:12px}[data-page=gallery] .gallery-card{margin-bottom:12px}.button{font-size:14px}.booking>p:not(.eyebrow){font-size:16px}.home-section>div>p:not(.eyebrow){font-size:16px}.home-features p{font-size:15px}.instagram-line{font-size:14px}.text-link{font-size:14px}}
@media(max-width:420px){.banner-photos{grid-template-rows:210px}.banner-name{font-size:47px}.banner-brand>span{font-size:10px}.steps-grid{grid-template-columns:1fr}.gallery-card .caption{font-size:12px}.service-row strong{font-size:17px}.service-row h3{font-size:20px}.brand-name small{font-size:9px!important}}

.keila-portrait{margin:0;align-self:center;width:100%;overflow:hidden;border-radius:24px;background:var(--cream)}.keila-portrait img{width:100%;height:auto;aspect-ratio:1;object-fit:contain}.keila-portrait figcaption{padding:20px 25px;font:30px "Playfair Display",serif}.keila-portrait figcaption span{display:block;font:14px "DM Sans",sans-serif;color:var(--brown);margin-top:5px}@media(max-width:760px){.keila-portrait{max-width:460px}}

.floating-instagram{bottom:93px;background:var(--brown)}.floating-instagram:hover{background:var(--chocolate)}@media(max-width:760px){.floating-instagram{bottom:86px}}

.service-list{grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}.service-photo-card,.service-photo-card:first-child{display:flex;flex-direction:column;padding:0;gap:0;overflow:hidden;align-items:stretch}.service-photo-card .service-cover{display:block;width:100%;height:330px;border:0;border-radius:0;line-height:normal}.service-cover img{width:100%;height:100%;object-fit:cover;object-position:center 35%}.service-card-body{padding:22px;display:flex;flex-direction:column;flex:1}.service-card-heading{display:flex;gap:15px;justify-content:space-between;align-items:flex-start}.service-card-heading h3{font-size:25px}.service-card-heading strong{font-size:22px;color:var(--brown)}.service-photo-card .service-variant{font-size:14px;margin:10px 0 0;font-weight:600}.service-photo-card .service-description{font-size:15px;line-height:1.7;margin:12px 0 20px}.service-photo-card .button{margin-top:auto;width:auto;height:auto;line-height:1.5;border-radius:30px;padding:12px 16px;font-size:14px;border:1px solid var(--chocolate)}.gallery-card{aspect-ratio:auto;background:var(--cream);display:flex;flex-direction:column;text-align:left}.gallery-card img{height:320px;object-fit:cover}.gallery-card .caption{position:static;background:var(--cream);color:var(--chocolate);padding:17px;display:flex;flex-direction:column;align-items:flex-start;gap:5px;flex:1}.caption .photo-name{font:22px/1.25 'Playfair Display',serif}.caption .photo-detail{font-size:14px;color:var(--brown)}.caption .photo-price{font-size:19px;font-weight:600;margin-top:5px}.gallery-card:hover img{transform:none}[data-page=gallery] .gallery-card img{height:auto}.caption>span:last-child{font-size:inherit}.caption .photo-name:last-child{font-size:22px}.gallery-card:hover .caption{background:#eadcc6}@media(max-width:1050px){.service-list{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:760px){.service-list{grid-template-columns:1fr}.service-photo-card .service-cover{height:380px}.gallery-card img{height:230px}.gallery-card .caption{padding:13px}.caption .photo-name,.caption .photo-name:last-child{font-size:19px}.caption .photo-detail{font-size:13px}.caption .photo-price{font-size:18px}.service-card-heading h3{font-size:25px}}

.gallery,[data-page=gallery] .gallery{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;columns:auto}.model-card{border:1px solid var(--line);border-radius:18px;overflow:hidden;background:var(--cream);display:flex;flex-direction:column;min-width:0}.model-carousel{position:relative;background:#e2d2bd}.model-enlarge{padding:0;border:0;display:block;width:100%;background:transparent}.model-enlarge img{height:360px;width:100%;object-fit:cover;object-position:center 35%}.model-arrow{position:absolute;top:50%;transform:translateY(-50%);width:44px;height:44px;border-radius:50%;border:1px solid #ffffff90;background:#352015e8;color:white;font-size:32px;line-height:1;display:grid;place-items:center;z-index:1}.model-back{left:10px}.model-forward{right:10px}.model-arrow:hover{background:var(--brown)}.model-counter{position:absolute;bottom:12px;right:14px;background:#352015df;color:white;padding:4px 12px;border-radius:20px;font-size:13px}.model-body{padding:22px;display:flex;flex-direction:column;flex:1}.model-heading{display:flex;gap:16px;align-items:start;justify-content:space-between}.model-heading h3{font:25px/1.2 'Playfair Display',serif;margin:0}.model-heading strong{font-size:21px;white-space:nowrap;color:var(--brown)}.model-body p{font-size:15px;color:var(--brown);line-height:1.7}.model-body .model-variant{font-size:14px;font-weight:600;margin:10px 0 0}.model-body .button{margin-top:auto;font-size:14px;padding:12px 15px}.anchor-target{display:block;scroll-margin-top:125px}.model-enlarge:focus-visible,.model-arrow:focus-visible{outline-offset:-4px}dialog button[hidden]{display:none}@media(max-width:1050px){.gallery,[data-page=gallery] .gallery{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:620px){.gallery,[data-page=gallery] .gallery{grid-template-columns:1fr;gap:24px}.model-enlarge img{height:390px}.model-body{padding:20px}.model-heading h3{font-size:25px}}
/* Gentle feedback for mouse, keyboard and touch. */
.button,.floating,.tabs button,.menu,.model-arrow,dialog button{transition:translate .22s ease,scale .22s ease,box-shadow .22s ease,background-color .22s ease}
@media(hover:hover){.button:hover,.floating:hover{translate:0 -3px;box-shadow:0 8px 22px #35201530}.tabs button:hover,.menu:hover{translate:0 -2px}.model-arrow:hover,dialog button:hover{scale:1.08}}
.button:active,.floating:active,.tabs button:active,.model-arrow:active,dialog button:active{scale:.95}
.model-enlarge{overflow:hidden}.model-enlarge img{display:block}
@media(prefers-reduced-motion:reduce){.button,.floating,.tabs button,.menu,.model-arrow,dialog button{transition:none;translate:none;scale:1}}

.admin-entry{display:inline-block;font-size:12px;margin-top:14px;text-decoration:underline;text-underline-offset:4px}.model-heading strong{white-space:nowrap}
[hidden]{display:none!important}
