/* SUNRISE editorial sections. All page styles below are scoped past the hero. */
.page-sections{--section-space:112px;--deep-clay:#7c3e2d;--soft-peach:#fae7d8}
.page-sections .section{padding-block:var(--section-space)}
.page-sections h2{font-size:clamp(44px,4.65vw,66px);line-height:1.07;letter-spacing:-2px}
.page-sections .section-note{font-size:14px;line-height:1.5;letter-spacing:.2px;text-transform:none;color:var(--muted);margin-bottom:20px}
.page-sections .section-heading{gap:48px;margin-bottom:46px;align-items:flex-end}

/* Portfolio: generous photographs and quiet controls. */
.page-sections #works .section-aside{align-items:flex-end;gap:28px;max-width:410px}
.page-sections #works .section-aside p{font-size:14px;line-height:1.65;min-width:205px;color:var(--muted)}
.page-sections .icon-button{width:44px;height:44px;border-color:#cfa58d;transition:background .2s,color .2s}
.page-sections .icon-button:hover:not(:disabled){background:#9b5039;color:#fff9f2}
.page-sections .gallery{margin:0;width:100%;padding-inline:0;scroll-padding-inline:0;gap:28px;grid-auto-columns:calc((100% - 56px)/3);padding-bottom:5px}
.page-sections .work-photo{border-radius:22px;aspect-ratio:4/5;background:#f2d5c2}
.page-sections .work-photo img{transition:transform .6s cubic-bezier(.2,.65,.3,1)}
.page-sections .work-card:hover .work-photo img{transform:scale(1.035)}
.page-sections .work-caption{font-size:18px;line-height:1.4;margin-top:19px}

/* Price menu: persistent context on wide screens, all seven prices visible. */
.page-sections .services-section{padding-block:96px;background:#f9ecdf;border-radius:48px 48px 0 0}
.page-sections .services-grid{grid-template-columns:minmax(0,.85fr) minmax(0,1.2fr);gap:clamp(48px,7vw,108px);align-items:start}
.page-sections .services-intro{position:sticky;top:142px}
.page-sections .services-intro>p:not(.section-note){font-size:16px;line-height:1.75;max-width:350px;margin-top:25px}
.page-sections .offer-box{position:relative;max-width:380px;border:1px solid #dcb39a;border-radius:20px;margin-top:36px;padding:30px;background:#fff9f2}
.page-sections .offer-sun{position:absolute;top:27px;right:26px;width:34px;height:34px;color:#ac6548}
.page-sections .offer-box>span{display:block;font-size:13px;max-width:calc(100% - 40px);color:var(--muted)}
.page-sections .offer-box h3{font-size:20px;margin-top:16px}
.page-sections .offer-price{font-family:Georgia,'Times New Roman',serif;font-size:43px;line-height:1.3;margin:10px 0 21px;letter-spacing:-1px}
.page-sections .offer-price s{font-family:Arial,Helvetica,sans-serif;font-size:16px;color:#755244;white-space:nowrap}
.page-sections .offer-box .text-link{font-size:14px;text-underline-offset:6px}
.page-sections .price-list{min-width:0}
.page-sections .price-list-heading{display:flex;justify-content:space-between;padding:0 0 17px;border-bottom:1px solid #cfa58d;font-size:13px;color:#755244}
.page-sections .price-item{padding:25px 0;gap:20px;border-bottom:1px solid #dfc2ad;transition:background .2s}
.page-sections .price-item h3{font-size:18px;line-height:1.35;max-width:340px}
.page-sections .price-item p{font-size:13px;line-height:1.6;margin-top:8px;max-width:300px}
.page-sections .price-item>a{font-size:19px;gap:16px;min-height:44px;flex-shrink:0}
.page-sections .price-item>a svg{width:30px;height:30px;padding:6px;border:1px solid #d4ae94;border-radius:50%;transition:background .2s,color .2s}
.page-sections .price-item>a:hover svg{background:#9b5039;color:#fff9f2;border-color:#9b5039}
.page-sections .price-note{margin-top:22px;font-size:13px;line-height:1.7;max-width:480px}

/* The approach pairs a real portfolio photograph with the studio's principles. */
.page-sections .about-section{display:grid;grid-template-columns:minmax(0,.95fr) minmax(0,1fr);gap:clamp(48px,7vw,112px);align-items:center}
.page-sections .about-visual{margin:0;min-width:0}
.page-sections .about-photo{aspect-ratio:4/5;overflow:hidden;border-radius:260px 260px 24px 24px;background:#f2d5c2}
.page-sections .about-photo img{width:100%;height:100%;object-fit:cover;object-position:center 40%}
.page-sections .about-visual figcaption{font-size:12px;color:var(--muted);margin-top:17px;text-align:center;line-height:1.6}
.page-sections .about-copy{min-width:0}
.page-sections .about-copy h2{font-size:clamp(42px,4.1vw,59px)}
.page-sections .about-lead{max-width:440px;font-size:16px;line-height:1.75;margin-top:28px;color:var(--muted)}
.page-sections .principles{display:flex;flex-direction:column;gap:0;margin-top:28px}
.page-sections .principles article{display:flex;gap:20px;padding:20px 0;border:0;border-bottom:1px solid var(--line);margin:0}
.page-sections .principles article:last-child{border:0}
.page-sections .principles article>svg{width:30px;height:30px;color:#ad694d;margin-top:2px;flex-shrink:0}
.page-sections .principles h3{font-family:Arial,Helvetica,sans-serif;font-size:18px;line-height:1.4}
.page-sections .principles p{font-size:14px;line-height:1.7;margin-top:7px;max-width:360px}
.page-sections .about-link{display:inline-flex;align-items:center;gap:25px;padding:10px 0;min-height:44px;border-bottom:1px solid #bc8b71;margin-top:12px;font-size:14px}
.page-sections .about-link svg{width:20px;height:20px}

/* A single saturated panel anchors the booking action. */
.page-sections .booking-section{position:relative;isolation:isolate;overflow:hidden;background:#8f4633;color:#fff9f2;padding:70px 72px;border-radius:28px;grid-template-columns:1.12fr 1fr;gap:85px}
.page-sections .booking-section::before,.page-sections .booking-section::after{content:'';position:absolute;z-index:-1;left:-160px;bottom:-350px;width:700px;aspect-ratio:1;border:1px solid #fff9f225;border-radius:50%;pointer-events:none}
.page-sections .booking-section::after{left:-135px;bottom:-325px;width:650px}
.page-sections .booking-section .section-note{color:#f2d5c2}
.page-sections .booking-section h2{font-size:clamp(42px,4.3vw,62px)}
.page-sections .booking-section>div>p:not(.section-note){font-size:16px;line-height:1.75;color:#f7e4d5;margin-top:25px;max-width:390px}
.page-sections .booking-section .button{margin-top:30px;background:#fff9f2;color:#8f4633;border-color:#fff9f2;min-height:56px;padding-inline:28px;font-size:15px}
.page-sections .booking-section .button:hover{background:#f2d5c2;border-color:#f2d5c2}
.page-sections .booking-steps{gap:0;justify-content:center}
.page-sections .booking-steps li{padding:24px 0 24px 60px;border-bottom:1px solid #fff9f230}
.page-sections .booking-steps li:last-child{border:0}
.page-sections .booking-steps li::before{background:transparent;border:1px solid #e9bfa5;color:#fff9f2;width:36px;height:36px;top:25px;font-size:13px;line-height:34px}
.page-sections .booking-steps h3{font-size:18px;line-height:1.4;color:#fff9f2}
.page-sections .booking-steps p{font-size:14px;line-height:1.7;color:#f7e4d5;margin-top:7px}

/* Native accordions keep answers available without JavaScript. */
.page-sections .faq-section{grid-template-columns:minmax(0,.85fr) minmax(0,1.2fr);gap:clamp(48px,7vw,108px)}
.page-sections .faq-intro{font-size:15px;line-height:1.8;margin-top:27px;color:var(--muted)}
.page-sections .faq-intro .text-link{display:inline-block;margin-top:7px}
.page-sections .faq-list{border-top:1px solid var(--line)}
.page-sections .faq-list details{border-bottom:1px solid var(--line);transition:background .2s}
.page-sections .faq-list summary{font-size:18px;line-height:1.5;gap:22px;padding:25px 6px;min-height:78px}
.page-sections .faq-list summary>span{display:grid;place-items:center;border:1px solid #d5b49c;border-radius:50%;width:30px;height:30px;font-size:20px;flex-shrink:0}
.page-sections .faq-list details[open]{background:#fae7d866}
.page-sections .faq-list details[open] summary{color:#7c3e2d}
.page-sections .faq-list details p{padding:0 42px 25px 6px;font-size:15px;line-height:1.8;max-width:600px}

/* Address and working map form one card, with no separate embedded scrollbars. */
.page-sections .contacts-section{padding-block:94px;background:#f6dfcc;border-radius:48px 48px 0 0}
.page-sections .contacts-grid{grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:clamp(48px,7vw,108px);align-items:center}
.page-sections .contact-sun{width:64px;height:64px;color:#aa6548;margin-bottom:34px}
.page-sections .contacts-grid h2{font-size:clamp(50px,5.6vw,80px);line-height:1.05;letter-spacing:-2px}
.page-sections .contact-phone{font-size:26px;line-height:1.4;letter-spacing:-.5px;margin-top:32px}
.page-sections .contacts-grid .button{min-height:54px;margin-top:25px;font-size:14px;padding-inline:25px}
.page-sections .address-card{min-width:0;background:#fff9f2;border-radius:24px;padding:38px}
.page-sections .address-card h3{font-size:30px;line-height:1.25;letter-spacing:-.7px;padding-right:25px}
.page-sections .address-card>p{font-size:14px;line-height:1.75;margin-top:18px;color:var(--muted)}
.page-sections .address-pin{top:40px;right:36px}
.page-sections .studio-map{margin-top:25px}
.page-sections .map-frame{border-radius:14px;border:1px solid #e2c6b2}
.page-sections .map-frame iframe{height:300px}
.page-sections .map-caption{font-size:12px}
.page-sections .map-actions{gap:6px 16px}
.page-sections .map-actions a{font-size:13px}
.page-sections .address-social{font-size:13px;line-height:1.6;gap:8px 15px;flex-wrap:wrap;margin-top:23px;padding-top:22px}
.site-footer{display:grid;grid-template-columns:1fr auto;gap:22px;padding:42px 0 36px;min-height:0}
.site-footer .brand{grid-column:1/-1;font-size:clamp(70px,14vw,200px);line-height:1;letter-spacing:clamp(5px,1.7vw,25px);text-align:center;color:#9b5039}
.site-footer p{font-size:13px;color:#755244;margin-top:10px}
.site-footer>a:last-child{font-size:13px;justify-self:end;padding:10px 0;min-height:44px}

@media(min-width:1101px){.page-sections #works .section-aside{flex-direction:column;align-items:flex-end;gap:17px}.page-sections #works .section-aside p{text-align:right}}
@media(max-width:1100px){
 .page-sections{--section-space:84px}
 .page-sections .section-heading{gap:30px}
 .page-sections #works .section-aside{flex-direction:column;gap:16px;max-width:300px}
 .page-sections .services-grid,.page-sections .faq-section{gap:46px;grid-template-columns:minmax(0,.85fr) minmax(0,1.2fr)}
 .page-sections .services-intro{top:132px}
 .page-sections .offer-box{padding:24px}
 .page-sections .offer-price{font-size:37px}
 .page-sections .offer-price s{display:inline-block;margin-left:8px;font-size:14px}
 .page-sections .price-item{gap:15px}
 .page-sections .price-item h3{font-size:16px}
 .page-sections .price-item>a{font-size:17px;gap:8px}
 .page-sections .price-item>a svg{width:25px;height:25px;padding:4px}
 .page-sections .about-section{gap:40px}
 .page-sections .about-copy h2{font-size:43px}
 .page-sections .about-lead{font-size:15px;margin-top:23px}
 .page-sections .principles{margin-top:17px}
 .page-sections .principles article{padding-block:15px;gap:14px}
 .page-sections .principles h3{font-size:16px}
 .page-sections .principles p{font-size:13px}
 .page-sections .booking-section{padding:48px 42px;gap:40px}
 .page-sections .booking-section h2{font-size:45px}
 .page-sections .contacts-grid{gap:42px;grid-template-columns:minmax(0,.8fr) minmax(0,1.1fr)}
 .page-sections .address-card{padding:28px}
 .page-sections .address-pin{top:30px;right:28px}
 .page-sections .address-card h3{font-size:27px}
 .page-sections .address-social{flex-direction:column;align-items:flex-start}
}
@media(min-width:701px) and (max-width:850px){
 .page-sections .gallery{grid-auto-columns:calc((100% - 24px)/2);gap:24px}
 .page-sections .services-grid{grid-template-columns:1fr;gap:36px}
 .page-sections .services-intro{position:static;display:grid;grid-template-columns:1fr 1fr;column-gap:40px}
 .page-sections .services-intro .section-note,.page-sections .services-intro h2,.page-sections .services-intro>p{grid-column:1}
 .page-sections .offer-box{grid-column:2;grid-row:1/4;margin-top:0;align-self:center;width:100%}
 .page-sections .price-item h3{font-size:18px}
 .page-sections .about-section{align-items:start;gap:30px}
 .page-sections .about-photo{aspect-ratio:3/5}
 .page-sections .about-copy h2{font-size:36px;letter-spacing:-1px}
 .page-sections .booking-section{grid-template-columns:1fr;gap:25px}
 .page-sections .booking-steps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:25px}
 .page-sections .booking-steps li{padding:55px 0 0;border:0}
 .page-sections .booking-steps li::before{top:0}
 .page-sections .booking-steps h3{font-size:16px}
 .page-sections .booking-steps p{font-size:13px}
 .page-sections .faq-section{gap:30px;grid-template-columns:.8fr 1fr}
 .page-sections .faq-list summary{font-size:16px}
 .page-sections .contacts-grid{grid-template-columns:1fr 1.2fr;gap:26px}
 .page-sections .contact-phone{font-size:21px}
}
@media(max-width:700px){
 .page-sections{--section-space:64px}
 .page-sections h2{font-size:42px;letter-spacing:-1.3px;line-height:1.1}
 .page-sections .section-note{font-size:13px;margin-bottom:15px}
 .page-sections .section-heading{gap:24px;margin-bottom:28px;align-items:stretch}
 .page-sections #works .section-aside{flex-direction:column;align-items:flex-start;max-width:none;gap:20px}
 .page-sections #works .section-aside p{font-size:14px;max-width:310px}
 .page-sections #works .section-aside p br{display:none}
 .page-sections .gallery{grid-auto-columns:84%;gap:16px;margin:0;width:100%;padding-inline:0;scroll-padding-inline:0}
 .page-sections .work-photo{border-radius:18px;aspect-ratio:4/5}
 .page-sections .work-caption{font-size:16px;margin-top:15px}
 .page-sections .services-section{padding-block:57px;border-radius:28px 28px 0 0}
 .page-sections .services-grid{display:block}
 .page-sections .services-intro{position:static}
 .page-sections .services-intro>p:not(.section-note){font-size:15px;margin-top:20px;max-width:380px}
 .page-sections .offer-box{max-width:none;margin:26px 0 32px;padding:25px;border-radius:18px}
 .page-sections .offer-box h3{font-size:19px}
 .page-sections .offer-price{font-size:39px;margin:10px 0 15px}
 .page-sections .offer-price s{font-size:15px;margin-left:12px}
 .page-sections .price-list-heading{font-size:12px;padding-bottom:14px}
 .page-sections .price-item{padding:21px 0;gap:13px;align-items:center}
 .page-sections .price-item h3{font-size:16px;line-height:1.4}
 .page-sections .price-item p{font-size:12px;line-height:1.65;margin-top:7px}
 .page-sections .price-item>a{font-size:16px;gap:7px;min-height:44px}
 .page-sections .price-item>a svg{width:23px;height:23px;padding:3px}
 .page-sections .price-note{font-size:12px;line-height:1.7}
 .page-sections .about-section{display:flex;flex-direction:column;gap:0}
 .page-sections .about-visual{width:100%;max-width:440px;order:2;margin-block:28px}
 .page-sections .about-photo{aspect-ratio:4/4.7;border-radius:220px 220px 20px 20px}
 .page-sections .about-copy{display:contents}
 .page-sections .about-copy .section-note{order:0;align-self:flex-start}
 .page-sections .about-copy h2{font-size:42px;order:1;align-self:flex-start}
 .page-sections .about-lead{font-size:15px;line-height:1.8;margin-top:0;max-width:440px;order:3;align-self:flex-start}
 .page-sections .principles{margin-top:22px;order:4;align-self:stretch}
 .page-sections .principles article{padding:18px 0;gap:17px}
 .page-sections .principles article>svg{width:28px;height:28px}
 .page-sections .principles h3{font-size:17px}
 .page-sections .principles p{font-size:14px}
 .page-sections .about-link{margin-top:12px;order:5;align-self:flex-start}
 .page-sections .booking-section{display:block;padding:34px 25px;border-radius:23px}
 .page-sections .booking-section h2{font-size:39px;letter-spacing:-1.2px}
 .page-sections .booking-section>div>p:not(.section-note){font-size:15px;margin-top:20px}
 .page-sections .booking-section .button{width:100%;padding-inline:16px;font-size:14px;margin-top:25px}
 .page-sections .booking-steps{margin-top:30px;display:flex;gap:0}
 .page-sections .booking-steps li{padding:20px 0 20px 51px}
 .page-sections .booking-steps li::before{top:21px;width:32px;height:32px;line-height:30px}
 .page-sections .booking-steps h3{font-size:16px}
 .page-sections .booking-steps p{font-size:13px}
 .page-sections .faq-section{display:block}
 .page-sections .faq-intro{font-size:14px;line-height:1.7;margin-top:20px}
 .page-sections .faq-list{margin-top:30px}
 .page-sections .faq-list summary{font-size:16px;padding:20px 0;gap:18px;min-height:75px}
 .page-sections .faq-list details p{font-size:14px;padding:0 15px 23px 0;line-height:1.75}
 .page-sections .contacts-section{padding-block:55px;border-radius:28px 28px 0 0}
 .page-sections .contacts-grid{display:block}
 .page-sections .contact-sun{width:46px;height:46px;margin-bottom:26px}
 .page-sections .contacts-grid h2{font-size:52px;letter-spacing:-1.6px}
 .page-sections .contacts-grid h2 br{display:block}
 .page-sections .contact-phone{font-size:25px;margin-top:25px}
 .page-sections .contacts-grid .button{margin-top:21px}
 .page-sections .address-card{margin-top:34px;padding:26px 23px;border-radius:20px}
 .page-sections .address-card h3{font-size:28px;letter-spacing:-.6px}
 .page-sections .address-card>p{font-size:14px}
 .page-sections .address-pin{top:29px;right:22px;width:20px;height:20px}
 .page-sections .map-frame{border-radius:12px}
 .page-sections .map-frame iframe{height:290px}
 .page-sections .map-actions{gap:4px 14px}
 .page-sections .map-actions a{font-size:12px}
 .page-sections .address-social{font-size:12px;flex-direction:row}
 .site-footer{grid-template-columns:1fr auto;padding:28px 0 24px;gap:18px}
 .site-footer .brand{font-size:clamp(54px,14.8vw,100px);letter-spacing:5px}
 .site-footer p{grid-column:1;grid-row:2;font-size:11px;line-height:1.65;margin:0;max-width:190px}
 .site-footer>a:last-child{grid-column:2;grid-row:2;font-size:12px;padding:0;min-height:44px}
}
@media(max-width:360px){
 .page-sections h2,.page-sections .about-copy h2{font-size:37px}
 .page-sections .gallery{margin:0;width:100%;padding-inline:0;scroll-padding-inline:0}
 .page-sections .price-item h3{font-size:15px}
 .page-sections .price-item>a{font-size:14px;gap:5px}
 .page-sections .price-item>a svg{width:20px;height:20px}
 .page-sections .booking-section{padding-inline:21px}
 .page-sections .booking-section h2{font-size:34px}
 .page-sections .address-card{padding:24px 18px}
 .page-sections .address-card h3{font-size:25px}
 .page-sections .contact-phone{font-size:23px}
}
@media(prefers-reduced-motion:reduce){.page-sections *{transition:none!important}}

/* Controls sit at the two edges of the photographs, clear of their captions. */
.page-sections .gallery-shell{position:relative;padding-inline:40px}
.page-sections .gallery-controls{position:absolute;inset:0;pointer-events:none}
.page-sections .gallery-controls .icon-button{position:absolute;top:calc((100% - 50px)/2);transform:translateY(-50%);width:48px;height:48px;background:#fff9f2;color:#9b5039;border:1px solid #d5b49c;box-shadow:0 3px 14px #64301b14;pointer-events:auto;z-index:2}
.page-sections .gallery-prev{left:-20px}
.page-sections .gallery-next{right:-20px}
.page-sections .gallery-controls .icon-button:hover{background:#9b5039;color:#fff9f2}
@media(max-width:700px){.page-sections .gallery-shell{padding-inline:52px}.page-sections .gallery{grid-auto-columns:100%}.page-sections .gallery-controls .icon-button{width:44px;height:44px}.page-sections .gallery-prev{left:0}.page-sections .gallery-next{right:0}}
