@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=DM+Mono:wght@400;500&family=Fraunces:ital,wght@0,500;0,600;1,500;1,600&display=swap');
:root{--wine:#682d48;--ink:#362431;--rose:#f9a9b7;--blush:#ffd9df;--paper:#f9f2e7;--cream:#fffaf3;--lime:#e6edb4}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;color:var(--ink);background:var(--paper);font:400 1rem/1.55 'DM Sans',sans-serif}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}a:focus-visible,button:focus-visible{outline:3px solid var(--wine);outline-offset:4px}.site-header{padding:1.2rem 5vw;background:var(--paper);display:flex;align-items:center;gap:2rem;justify-content:space-between;border-bottom:1px solid #7e6770}.wordmark{font:italic 600 2rem/1 'Fraunces',Georgia,serif;white-space:nowrap;letter-spacing:-.07em}.wordmark span{font:500 .62rem 'DM Mono',monospace;letter-spacing:.02em;text-transform:uppercase}.site-header nav{display:flex;gap:2rem;font-size:.85rem;font-weight:700;text-transform:uppercase}.header-cta,.button{display:inline-block;padding:.9rem 1.3rem;font-weight:700;font-size:.88rem}.header-cta,.dark{background:var(--wine);color:white}.light{background:var(--paper);color:var(--wine)}.under-link{font-weight:700;text-decoration:underline;text-underline-offset:5px}.hero{display:grid;grid-template-columns:52% 48%;min-height:650px;background:var(--rose)}.hero-copy{padding:clamp(4rem,8vw,8rem) 5vw;align-self:center}.kicker{font:500 .76rem/1.5 'DM Mono',monospace;letter-spacing:.1em}.hero h1,h2,.detail-title{font-family:'Fraunces',Georgia,serif;letter-spacing:-.06em;line-height:1.05}.hero h1{font-size:clamp(3.7rem,6.2vw,7rem);margin:1.5rem 0}.hero h1 em,h2 em{color:var(--wine);font-weight:500}.hero p{max-width:510px;font-size:1.13rem}.actions{display:flex;align-items:center;gap:1.5rem;flex-wrap:wrap;margin-top:2rem}.hero-photo{background:var(--wine);color:var(--blush);padding:3rem;display:flex;flex-direction:column;justify-content:space-between;align-items:center;text-align:center}.photo-mat{width:min(75%,480px);height:clamp(320px,39vw,560px);background:linear-gradient(145deg,#e6edb4,#f2b5c0 55%,#ce8caa);border:12px solid var(--cream);box-shadow:15px 15px 0 #a66d82;display:grid;place-items:center;transform:rotate(-3deg);color:var(--wine);font:italic 500 clamp(2rem,3.5vw,3.7rem)/1.1 'Fraunces',serif}.ribbon{background:var(--lime);padding:.75rem 0;text-align:center;white-space:nowrap;overflow:hidden;font:500 .8rem 'DM Mono',monospace;letter-spacing:.1em}.padded{padding:clamp(4.5rem,8vw,8rem) 5vw}h2{font-size:clamp(2.9rem,5vw,5.7rem);margin:1rem 0 1.5rem}.intro{display:grid;grid-template-columns:1fr 2fr;gap:3rem}.intro p{max-width:660px;font-size:1.2rem}.services{background:var(--cream)}.section-head{display:flex;justify-content:space-between;align-items:end;gap:3rem;margin-bottom:2.5rem}.section-head p{max-width:350px}.flower{color:#b83d68}.service-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.service-card{min-height:300px;padding:1.4rem;display:flex;flex-direction:column;justify-content:space-between;background:var(--blush);transition:transform .2s,box-shadow .2s}.service-card:nth-child(4n+2){background:#eadddf}.service-card:nth-child(4n+3){background:var(--lime)}.service-card:nth-child(4n){background:#eebcaf}.service-card:hover{transform:translateY(-5px);box-shadow:5px 6px 0 var(--wine)}.num{font:500 .76rem 'DM Mono',monospace}.service-card h3{font:500 clamp(1.4rem,2vw,2.1rem)/1.1 'Fraunces',serif;letter-spacing:-.04em;margin:1rem 0}.service-card p{font-size:.86rem}.card-end{font-size:.78rem;font-weight:700}.about-teaser{background:var(--wine);color:var(--cream);display:grid;grid-template-columns:43% 1fr;gap:8%;align-items:center}.portrait-space{min-height:470px;background:linear-gradient(140deg,#f3c4cf,#e9aa8c,#e2e9b5);border:12px solid var(--cream);display:grid;place-items:center;color:var(--wine);font:italic 500 2.7rem/1.1 'Fraunces',serif;text-align:center;transform:rotate(-2deg)}.about-teaser p,.print-note p,.contact p{font-size:1.13rem;max-width:600px}.about-teaser .button{margin-top:1.4rem}.print-note{background:var(--lime);display:grid;grid-template-columns:1fr 1.2fr;gap:5vw}.contact{background:var(--rose);display:grid;grid-template-columns:1fr 1fr;gap:5vw}.social-links{display:flex;flex-direction:column;align-items:start;gap:1rem;margin-top:2.2rem}.social-links a{font-weight:700;text-decoration:underline;text-underline-offset:4px}.form-card{background:var(--blush);padding:2rem;border:1px solid var(--wine);align-self:start}.form-card h3{font:500 2.2rem 'Fraunces',serif;margin:0}.form-card p{font-size:.9rem}.form-card form{display:grid;gap:.8rem;margin-top:1.5rem}.form-card label{display:grid;gap:.3rem;font-size:.84rem;font-weight:700}.form-card input,.form-card select,.form-card textarea{width:100%;border:1px solid #ad7992;padding:.75rem;background:var(--cream)}.form-card :disabled{opacity:.64;cursor:not-allowed}.form-card button{border:0;background:var(--wine);color:white;padding:.85rem}.form-card small{font-size:.76rem}footer{display:flex;align-items:center;justify-content:space-between;gap:1rem;background:var(--wine);color:white;padding:1.8rem 5vw;font-size:.82rem}.detail-hero{padding:clamp(4rem,8vw,7rem) 5vw;background:var(--rose);display:grid;grid-template-columns:1.1fr .9fr;gap:5vw;align-items:end}.detail-title{font-size:clamp(3.4rem,7vw,7rem);margin:1.2rem 0}.detail-hero p{font-size:1.2rem;max-width:600px}.detail-bar{display:flex;justify-content:space-between;gap:2rem;padding:1rem 5vw;background:var(--lime);font:.8rem 'DM Mono',monospace}.detail-gallery{text-align:center;min-height:350px;display:grid;place-content:center;gap:1rem;background:var(--cream);padding:5rem 1rem}.detail-gallery h2{font-size:clamp(2.5rem,4vw,4rem);margin:0}.detail-gallery p{max-width:550px;margin:auto}.detail-next{padding:4rem 5vw;background:var(--blush);text-align:center}.about-page{display:grid;grid-template-columns:1fr 1fr;gap:8vw;padding:clamp(4rem,8vw,8rem) 5vw;background:var(--cream)}.about-page .portrait-space{min-height:620px}.about-page h1{font:500 clamp(3.7rem,7vw,7rem)/1 'Fraunces',serif;letter-spacing:-.06em;margin:1rem 0 2rem}.about-page p{font-size:1.12rem;max-width:650px}.about-page .under-link{display:inline-block;margin-top:1rem}@media(max-width:900px){.service-grid{grid-template-columns:repeat(2,1fr)}.site-header{gap:1rem}.site-header nav{gap:1rem}}@media(max-width:700px){.site-header{flex-wrap:wrap;padding:1rem 20px}.site-header nav{order:3;width:100%;justify-content:space-between;font-size:.75rem}.header-cta{font-size:.75rem;padding:.6rem .75rem}.wordmark{font-size:1.7rem}.wordmark span{font-size:.52rem}.hero,.intro,.about-teaser,.contact,.about-page,.detail-hero,.print-note{grid-template-columns:1fr}.hero-copy{padding:4rem 20px}.hero h1{font-size:clamp(3.3rem,12vw,5rem)}.hero-photo{min-height:450px;padding:2rem}.photo-mat{height:310px}.padded,.about-page{padding:4rem 20px}.section-head{display:block}.about-teaser{gap:3rem}.portrait-space,.about-page .portrait-space{min-height:380px}.contact{gap:3rem}.detail-hero{padding:4rem 20px}.detail-gallery{min-height:280px}.service-card{min-height:250px;padding:1rem}footer{flex-wrap:wrap;padding:1.5rem 20px}footer .wordmark{width:100%}}@media(max-width:400px){.service-grid{grid-template-columns:1fr}.service-card{min-height:220px}}
/* Photograph integration: existing theme and cards retained. */
.photo-mat{height:auto;aspect-ratio:2/3;overflow:hidden}
.photo-mat img{width:100%;height:100%;object-fit:contain;display:block}
.portrait-space,.about-page .portrait-space{min-height:0;display:block}
.portrait-space img{width:100%;height:auto;display:block}
.social-links a{overflow-wrap:anywhere}
.form-card input:focus,.form-card select:focus,.form-card textarea:focus{outline:2px solid var(--wine);outline-offset:2px}
.form-card button{cursor:pointer;font-weight:700}
.form-card small a{text-decoration:underline}
.photo-grid{columns:3;column-gap:16px;margin:2rem auto 0;max-width:1400px;width:100%;text-align:left}
.photo-grid button{display:block;break-inside:avoid;width:100%;padding:0;border:0;background:transparent;margin:0 0 16px;cursor:zoom-in}
.photo-grid img{display:block;width:100%;height:auto}
.detail-gallery:has(.photo-grid){display:block;padding:4rem 5vw}
.photo-dialog{position:fixed;inset:0;width:100vw;height:100dvh;max-width:none;max-height:none;border:0;margin:0;padding:50px 55px;background:rgba(24,16,23,.97);color:white}
.photo-dialog[open]{display:flex;align-items:center;justify-content:center}
.photo-dialog::backdrop{background:#181017}
.photo-dialog img{max-width:100%;max-height:calc(100dvh - 110px);object-fit:contain}
.photo-dialog button{position:absolute;border:0;background:#682d48;color:white;font-size:2rem;width:46px;height:46px;cursor:pointer;border-radius:50%}
.close-photo{top:12px;right:14px}.prev-photo{left:6px;top:calc(50% - 23px)}.next-photo{right:6px;top:calc(50% - 23px)}
.photo-count{position:absolute;bottom:10px;text-align:center;width:100%;left:0;font-size:.9rem}
@media(min-width:901px){.service-card:nth-last-child(-n+2){grid-column:span 2}}
@media(max-width:700px){.photo-grid{columns:2;column-gap:10px}.photo-grid button{margin-bottom:10px}.hero-photo .photo-mat{width:min(75%,340px)}.photo-dialog{padding:50px 38px}.photo-dialog button{width:34px;height:40px;font-size:1.6rem}.photo-dialog img{max-height:calc(100dvh - 120px)}}
@media(max-width:420px){.photo-grid{columns:1}}
/* Keep text within its own column, including long Hungarian words. */
.hero{grid-template-columns:minmax(0,52fr) minmax(0,48fr)}
.intro{grid-template-columns:minmax(0,1fr) minmax(0,2fr)}
.service-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
.about-teaser{grid-template-columns:minmax(0,43fr) minmax(0,49fr)}
.print-note{grid-template-columns:minmax(0,1fr) minmax(0,1.2fr)}
.contact,.about-page{grid-template-columns:repeat(2,minmax(0,1fr))}
.detail-hero{grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr)}
.hero>*,.intro>*,.service-grid>*,.service-card>*,.about-teaser>*,.print-note>*,.contact>*,.detail-hero>*,.about-page>*,.section-head>*,.form-card label{min-width:0}
h1,h2,h3,p,.kicker,.num,.card-end,.under-link{overflow-wrap:anywhere}
.hero h1,h2,.detail-title,.about-page h1{line-height:1.18;letter-spacing:-.025em;hyphens:auto}
.service-card h3{line-height:1.24;letter-spacing:-.015em;hyphens:auto}
.wordmark{letter-spacing:-.035em;display:inline-flex;align-items:baseline;gap:.3rem}
.wordmark span{letter-spacing:.02em}
.service-card{gap:1rem}
.section-head{flex-wrap:wrap;align-items:flex-end;column-gap:2rem;row-gap:1rem}
.section-head>div{flex:1 1 360px}
.section-head>p{flex:1 1 260px}
.hero-photo{gap:2rem}
.form-card input,.form-card select,.form-card textarea{min-width:0;max-width:100%}
.site-header nav{flex-wrap:wrap;row-gap:.75rem}
.header-cta{flex-shrink:0}
.detail-bar,footer{flex-wrap:wrap}
@media(max-width:900px){.service-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:700px){
 .hero,.intro,.about-teaser,.contact,.about-page,.detail-hero,.print-note{grid-template-columns:minmax(0,1fr)}
 .hero h1{font-size:clamp(2.8rem,10vw,4.4rem)}
 .detail-title{font-size:clamp(2.5rem,9vw,4.4rem)}
 .about-page h1{font-size:clamp(3rem,10vw,4.4rem)}
}
@media(max-width:400px){.service-grid{grid-template-columns:minmax(0,1fr)}}
