@import url('https://fonts.googleapis.com/css2?family=Italiana&family=Playfair+Display:wght@400;500;600&family=Allura&family=Montserrat:wght@400;500&display=swap');
:root{--cream:#f1eae2;--ink:#171411;--brown:#796657;--line:#a89a8e;--serif:'Playfair Display',Georgia,serif;--sans:'Montserrat',Arial,sans-serif;--script:'Allura','Brush Script MT',cursive}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:100px}body{margin:0;background:var(--cream);color:var(--ink);font-family:var(--sans);font-size:16px;line-height:1.5}a{color:inherit;text-decoration:none}button{font:inherit}img{display:block;max-width:100%}h1,h2,h3,p{margin:0}h1,h2,h3{font-family:var(--serif);font-weight:400}h2{font-size:clamp(2rem,3.6vw,3.6rem);line-height:1.12;text-transform:uppercase}a:focus-visible,button:focus-visible,summary:focus-visible{outline:3px solid var(--brown);outline-offset:5px}.skip{position:fixed;top:-100px;background:white;padding:12px;z-index:10}.skip:focus{top:0}.button{display:inline-flex;justify-content:center;align-items:center;background:var(--brown);color:white;padding:13px 25px;letter-spacing:.19em;text-transform:uppercase;font-size:14px;min-height:46px;text-align:center;transition:background .2s}.button:hover{background:#5c4a3d}.button.small{padding:10px 17px}header{max-width:1500px;margin:auto;display:flex;align-items:center;justify-content:space-between;gap:26px;padding:20px 6.5%}.brand{font-family:var(--serif);font-size:clamp(24px,2.6vw,36px);letter-spacing:.18em;line-height:1.1;white-space:nowrap}.brand span{display:block;font-family:var(--sans);font-size:12px;letter-spacing:.22em;text-align:center;margin-top:7px}nav{display:flex;align-items:center;gap:clamp(14px,2.2vw,32px)}nav>a{font-size:12px;text-transform:uppercase;min-height:44px;display:flex;align-items:center}nav>a:hover:not(.button){text-decoration:underline;text-underline-offset:6px}.menu-toggle{display:none}.hero{max-width:1500px;margin:auto;display:grid;grid-template-columns:54% 35% 11%;min-height:540px}.hero-copy{padding:45px 12% 45px}.eyebrow{text-transform:uppercase;letter-spacing:.24em;color:#675d55;font-size:14px}.hero h1{font-size:clamp(4rem,6.8vw,7rem);text-transform:uppercase;line-height:.99;margin-top:28px;letter-spacing:-.04em}.script{font-family:var(--script);text-transform:none;font-weight:400;color:var(--brown);letter-spacing:0;line-height:1}.hero h1 .script{display:block;font-size:clamp(4.5rem,7.3vw,7.5rem);margin: -3px 0 55px 9%;letter-spacing:-.035em}.hero-photo{width:100%;height:100%;object-fit:cover;object-position:center}.hero-values{text-transform:uppercase;letter-spacing:.19em;text-align:right;font-size:12px;line-height:2.7;padding:45px 16px 0 8px}.section{padding:70px 6.5%;max-width:1500px;margin:auto}.section-heading{display:flex;align-items:center;gap:25px;margin-bottom:36px}.rule{flex:1;border-top:1px solid var(--line)}.text-link{font-size:12px;letter-spacing:.18em;text-transform:uppercase}.service-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8%}.service{border:1px solid #d5cbc0}.service>a>img{width:100%;aspect-ratio:1.92;object-fit:cover}.service-copy{padding:16px 18px 14px}.service h3{font-size:29px;text-transform:uppercase;line-height:1.1}.service-copy>p:not(.price){font-family:Arial,sans-serif;margin-top:9px;min-height:100px;line-height:1.35}.price{font-family:var(--serif);font-size:28px;margin:8px 0 10px}.service-bottom{display:flex;justify-content:space-between;align-items:center;gap:12px}.service-bottom span{font-size:12px;text-transform:uppercase;color:#61564e}.service-bottom a{font-size:12px;letter-spacing:.18em;text-transform:uppercase;padding:8px 0}.service-bottom a:hover{text-decoration:underline}.statement{max-width:950px;text-align:center;font-family:var(--serif);letter-spacing:.19em;text-transform:uppercase;margin:70px auto 0;line-height:1.5}.mobile{padding-top:20px}.mobile-heading{display:grid;grid-template-columns:1fr 1fr 1fr;align-items:start;gap:25px}.mobile-heading .script{display:inline-block;font-size:1.5em;margin-left:-8px}.mobile-heading>.travel-title{text-align:center;padding-top:15px}.travel-title .eyebrow{border-top:1px solid var(--line);margin-top:10px;padding-top:8px;font-family:var(--serif);font-size:20px}.mobile-heading>div>.eyebrow{margin-top:12px;font-size:12px;letter-spacing:.08em}.locations{text-align:right;text-transform:uppercase;font-size:12px;line-height:2.8}.fee-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8%;margin:60px 0 40px;text-align:center}.fee{font-family:var(--serif);font-size:clamp(4rem,6vw,6rem);line-height:1.1}.fee-grid h3{font-size:25px;text-transform:uppercase;border-bottom:1px solid var(--brown);padding:12px 0 6px;margin-bottom:8px}.fee-grid article>p:last-child{font-family:var(--serif);font-size:19px;line-height:1.2}.travel-note{border-top:1px solid var(--brown);padding-top:25px;text-transform:uppercase;font-size:12px;letter-spacing:.18em;line-height:1.9}.education{display:grid;grid-template-columns:44% 35% 21%;max-width:1500px;margin:20px auto 0}.education>img{width:100%;height:100%;object-fit:cover}.education-copy{padding:26px 7% 35px}.education-copy>.eyebrow{font-size:22px;letter-spacing:.25em;margin-bottom:25px}.education-copy h2{font-size:clamp(2rem,3.4vw,3.5rem);white-space:nowrap}.education-copy>.script{font-size:clamp(2.5rem,4vw,4rem);margin:6px 0 42px}.education-copy>p:not(.eyebrow):not(.script){font-family:Arial,sans-serif;line-height:1.4}.education-copy .button{margin-top:55px;width:100%;font-size:12px}.benefits{list-style:none;margin:0;padding:25px 20px 25px 0;display:grid;grid-template-columns:repeat(2,1fr);gap:18px 12px;align-content:center}.benefits li{border:1px solid #a89a8e;border-radius:50%;aspect-ratio:1;display:flex;align-items:center;justify-content:center;text-align:center;text-transform:uppercase;font-size:12px;line-height:1.3}.about{border-bottom:1px solid #d5cbc0}.about-grid{display:grid;grid-template-columns:1fr 1fr;gap:10%;margin-top:25px}.about-grid h2{max-width:450px}.about-grid p+p{margin-top:16px}.faq details{border-bottom:1px solid #c9bdb1}.faq summary{cursor:pointer;padding:20px 0;font-family:var(--serif);font-size:22px}.faq details p{max-width:850px;padding:0 0 22px}.contact{text-align:center;background:#e8ded3;max-width:none}.contact h2{margin:18px 0 30px}.instagram{display:block;font-size:14px;margin-top:25px;text-decoration:underline;text-underline-offset:5px}footer{padding:35px 6.5%;display:flex;align-items:center;justify-content:space-between;gap:30px;max-width:1500px;margin:auto}footer .brand{font-size:24px}footer p{font-size:12px;color:#61564e}

/* Original portraits retain their proportions; the layout supplies the banner shape. */
.hero{grid-template-columns:54% 35% 11%;height:auto;max-height:none;min-height:0;overflow:visible;align-items:center}
.hero-copy{padding-top:35px;padding-bottom:35px}
.hero-photo{display:block;width:100%;height:auto;max-height:none;aspect-ratio:auto;object-fit:contain;align-self:center}
.hero-values{align-self:start}.hero-values span{display:block}
.education{align-items:center}
.education>img{height:auto;aspect-ratio:1;object-fit:contain;align-self:center}
.hero-copy,.education-copy,.service,.service-copy,.fee-grid article{min-width:0}
.service{display:flex;flex-direction:column}.service-copy{display:flex;flex:1;flex-direction:column}.service-copy>p:not(.price){flex:1}
@media(max-width:1100px){
 header{padding:20px 5%}nav{gap:13px}.brand{font-size:27px}.brand span{font-size:10px}nav>a{font-size:11px}
 .hero{grid-template-columns:53% 39% 8%}.hero-values{font-size:9px;padding:28px 8px;letter-spacing:.07em}
 .hero-copy{padding:30px 9%}.hero h1{font-size:6.5vw}.hero h1 .script{font-size:7.4vw;margin-bottom:32px}
 .hero-copy .button{font-size:12px;letter-spacing:.1em;padding:13px 18px}
 .service-grid{gap:4%}.service-bottom{flex-wrap:wrap}
 .education{grid-template-columns:43% 37% 20%}.education-copy>.eyebrow{font-size:18px}.education-copy>.script{margin-bottom:25px}
 .education-copy .button{margin-top:25px}.benefits{gap:10px;padding:15px 12px 15px 0}.benefits li{font-size:9px}
}
@media(max-width:780px){
 html{scroll-padding-top:20px}
 header{position:relative;flex-wrap:wrap;padding:20px 5%;gap:16px}.brand{font-size:26px}.brand span{font-size:8px;letter-spacing:.19em}
 .menu-toggle{display:block;background:transparent;border:1px solid var(--brown);padding:10px 13px;font-size:12px;color:var(--ink);min-height:44px}
 nav{display:none;width:100%;flex-wrap:wrap;gap:8px 20px;padding:12px 0 4px}nav.open{display:flex}nav>a{font-size:13px}
 .hero{grid-template-columns:53% 47%;align-items:center}
 .hero-copy{padding:20px 9% 20px 9.5%}.hero .eyebrow{font-size:9px;letter-spacing:.18em}
 .hero h1{font-size:7.5vw;line-height:1.02;margin-top:16px}.hero h1 .script{font-size:9.2vw;margin:2px 0 23px 2%}
 .hero-copy .button{font-size:10px;letter-spacing:.1em;padding:12px 10px;min-height:44px;max-width:100%}
 .hero-photo{height:auto;max-height:none;object-fit:contain;aspect-ratio:auto}
 .hero-values{grid-column:1/-1;display:flex;justify-content:space-between;gap:10px;writing-mode:horizontal-tb;text-align:center;padding:16px 5% 8px;font-size:9px;letter-spacing:.08em;line-height:1.5}
 .hero-values br{display:none}
 .section{padding:45px 5%}.section-heading{gap:14px;margin-bottom:24px;flex-wrap:wrap}.section-heading h2{font-size:29px}.text-link{font-size:10px;letter-spacing:.1em}
 .service-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
 .service>a>img{height:auto;aspect-ratio:1.92;object-fit:cover}.service-copy{padding:13px 10px}.service h3{font-size:22px}
 .service-copy>p:not(.price){min-height:0;font-size:14px;line-height:1.4}.price{font-size:25px;margin:12px 0}
 .service-bottom{flex-direction:column;align-items:flex-start;gap:5px}.service-bottom span{font-size:10px;letter-spacing:0}.service-bottom a{font-size:10px;letter-spacing:.1em;min-height:44px;display:flex;align-items:center}
 .statement{margin-top:35px;font-size:13px;letter-spacing:.1em;line-height:1.65}.statement br{display:none}
 .mobile{padding-top:8px}.mobile-heading{grid-template-columns:1fr 1fr;gap:18px}.mobile-heading h2{font-size:30px}.mobile-heading .locations{display:none}
 .mobile-heading>.travel-title{padding-top:10px}.mobile-heading>div>.eyebrow{font-size:10px}.travel-title .eyebrow{font-size:17px}
 .fee-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin:30px 0}.fee{font-size:48px}.fee-grid h3{font-size:17px;padding-top:10px}.fee-grid article>p:last-child{font-size:15px;line-height:1.4}
 .travel-note{font-size:11px;letter-spacing:.08em;line-height:1.8}
 .education{grid-template-columns:49% 51%;margin:0;align-items:center}.education>img{height:auto;aspect-ratio:1;object-fit:contain}
 .education-copy{padding:22px 8%}.education-copy>.eyebrow{font-size:11px;margin-bottom:14px}.education-copy h2{font-size:28px;white-space:normal}
 .education-copy>.script{font-size:32px;margin:7px 0 18px}.education-copy>p:not(.eyebrow):not(.script){font-size:14px;line-height:1.5}
 .education-copy .button{font-size:10px;letter-spacing:.08em;padding:12px 10px;margin-top:20px;min-height:44px}
 .benefits{grid-column:1/-1;grid-template-columns:repeat(6,minmax(0,1fr));gap:12px;padding:24px 5% 10px}.benefits li{border-radius:50%;border:1px solid var(--line);aspect-ratio:1;font-size:9px;line-height:1.3;padding:5px}
 .about-grid{grid-template-columns:1fr 1fr;gap:25px}.about-grid h2{font-size:30px}.about-grid p{font-size:14px}
 .faq summary{font-size:19px}.faq details p{font-size:14px}.contact h2{font-size:32px}footer{flex-wrap:wrap;justify-content:center;text-align:center;gap:20px}footer p{font-size:11px}
}
@media(max-width:480px){
 header{padding:16px 5%}.brand{font-size:24px}.brand span{font-size:7px}
 .hero-copy{padding-top:12px;padding-bottom:12px}.hero h1{font-size:7.6vw}.hero h1 .script{font-size:9.5vw;margin-bottom:19px}.hero-copy .button{font-size:9px;letter-spacing:.06em;padding:10px 8px}
 .hero-values{font-size:8px;gap:5px;letter-spacing:.07em}.section{padding-top:35px;padding-bottom:35px}.section-heading h2{font-size:25px}.section-heading .text-link{font-size:9px}.section-heading .rule{min-width:10px}
 .service-grid{gap:8px}.service-copy{padding:12px 7px}.service h3{font-size:17px}.service-copy>p:not(.price){font-size:12px;line-height:1.45}.price{font-size:23px}.service-bottom span{font-size:9px}.service-bottom a{font-size:9px;letter-spacing:.08em}
 .statement{font-size:11px;letter-spacing:.08em}.mobile-heading h2{font-size:25px}.mobile-heading>div>.eyebrow{font-size:9px}.travel-title .eyebrow{font-size:15px}
 .fee-grid{gap:12px}.fee{font-size:39px}.fee-grid h3{font-size:14px}.fee-grid article>p:last-child{font-size:13px}.travel-note{font-size:10px}
 .education-copy{padding:16px 8%}.education-copy>.eyebrow{font-size:9px;margin-bottom:10px}.education-copy h2{font-size:23px}.education-copy>.script{font-size:25px;margin-bottom:12px}.education-copy>p:not(.eyebrow):not(.script){font-size:12px}.education-copy .button{font-size:9px;margin-top:15px;padding:11px 6px}
 .benefits{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;padding-top:20px}.benefits li{max-width:90px;width:100%;justify-self:center;font-size:10px}
 .about-grid{grid-template-columns:1fr;gap:20px}.about-grid h2{font-size:29px}.contact h2{font-size:29px}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.button{transition:none}}

/* Service selection keeps full sets and fills in one booking flow. */
#service-booking{width:min(620px,calc(100% - 32px));max-height:90dvh;overflow:auto;border:1px solid var(--line);background:var(--cream);color:var(--ink);padding:36px;font:inherit}
#service-booking::backdrop{background:rgba(23,20,17,.55)}
#service-booking .eyebrow{padding-right:24px;font-size:11px}
#booking-title{margin:15px 0;font-size:36px}
#booking-description{font-size:14px}
.booking-close{position:absolute;right:12px;top:8px;border:0;background:transparent;color:var(--ink);font-size:30px;width:44px;height:44px;cursor:pointer}
.booking-options{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin:24px 0}
.booking-option{border:1px solid var(--line);padding:20px;display:flex;flex-direction:column;gap:12px;font-size:13px}
.booking-option:hover{background:#e8ded3}
.booking-name{font-family:var(--serif);font-size:25px}
#full-set-price,#fill-price{font-family:var(--serif);font-size:22px}
.booking-action{margin-top:auto;padding-top:12px;font-size:11px;text-transform:uppercase;letter-spacing:.08em}
.booking-policy,.booking-fees{font-size:12px;line-height:1.6}
.booking-fees{margin-top:12px;color:#61564e}
@media(max-width:480px){#service-booking{padding:28px 20px}.booking-options{gap:10px}.booking-option{padding:15px 12px}.booking-name{font-size:22px}}

/* Searchable service details in the existing editorial design. */
.hero-location{font-size:13px;line-height:1.6;margin-top:18px;max-width:360px;color:#61564e}
.service-copy .price{font-size:21px}.service-detail-link,.content-link a{display:inline-block;text-decoration:underline;text-underline-offset:4px;font-size:13px;padding:12px 0;min-height:44px}.content-link{margin-top:18px}
.detail-hero h1{font-size:clamp(2.7rem,6vw,5rem);line-height:1.12;margin:24px 0}.detail-lead{max-width:760px;font-size:19px}.detail-image{width:100%;max-width:660px;height:auto;margin-top:35px}.detail-section{padding-top:28px;padding-bottom:35px}.detail-section h2{font-size:clamp(1.7rem,3vw,2.7rem);margin-bottom:20px}.detail-section h2:not(:first-child){margin-top:35px}.detail-section p{max-width:900px;margin-bottom:18px}.detail-options{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin:30px 0}.detail-options article{border:1px solid var(--line);padding:25px}.detail-options h3{font-size:28px}.detail-price{font-family:var(--serif);font-size:24px;margin-top:15px}.detail-links{display:flex;flex-wrap:wrap;gap:12px 24px}.detail-links a{padding:12px 0;text-decoration:underline;min-height:44px}.detail-note{font-size:13px;margin-top:20px}.table-scroll{overflow-x:auto}table{border-collapse:collapse;width:100%;max-width:800px;margin:20px 0}caption{text-align:left;font-family:var(--serif);font-size:22px;margin-bottom:15px}th,td{text-align:left;border-bottom:1px solid var(--line);padding:15px}ol{padding-left:24px}li{margin-bottom:12px}
@media(max-width:480px){.hero-location{font-size:10px;line-height:1.5;margin-top:10px}.hero .eyebrow{font-size:8px;letter-spacing:.08em}.service-copy .price{font-size:16px}.service-detail-link{font-size:10px}.detail-options{grid-template-columns:1fr}.detail-lead{font-size:16px}.detail-section{padding-top:20px}.detail-options article{padding:20px}}
