/* Clear page layouts with the same readable type and action colours as Home. */
.page-section { padding:64px 0; }
.page-introduction { max-width:850px; }
.page-introduction h1 { font-size:48px; margin-bottom:22px; }
.page-introduction>p { font-size:20px; line-height:1.7; margin:0; }
.page-actions,.page-bottom-action { display:flex; flex-wrap:wrap; align-items:center; gap:20px 28px; }
.page-actions { margin-top:28px; }
.page-bottom-action { margin-top:32px; }
.page-section-heading { display:flex; align-items:center; justify-content:space-between; gap:24px; margin-bottom:28px; }
.page-section-heading h2 { margin:0; }
.about-intro { background:var(--surface); padding:48px 0; }
.about-intro-grid { display:grid; grid-template-columns:1fr 1fr; align-items:center; gap:56px; }
.about-main-photo { display:block; width:100%; height:430px; object-fit:cover; border-radius:8px; }
.craft-story-grid { display:grid; grid-template-columns:.9fr 1.1fr; gap:64px; align-items:start; }
.craft-story-photo { display:block; width:100%; height:auto; aspect-ratio:4/5; object-fit:cover; border-radius:8px; }
.craft-story h2 { max-width:600px; }
.craft-story p { margin-bottom:20px; }
.craft-promises { list-style:none; padding:0; margin:30px 0 0; }
.craft-promises li { display:flex; align-items:flex-start; gap:18px; padding:22px 0; border-top:1px solid var(--line); }
.craft-promises .ui-icon { margin-top:3px; color:var(--accent); width:26px; height:26px; flex-basis:26px; }
.craft-promises h3 { font-size:22px; margin:0 0 8px; }
.craft-promises p { margin:0; }
.about-work { background:var(--surface); }
.about-work-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; }
.about-work-grid img { width:100%; height:auto; aspect-ratio:1.2; object-fit:cover; border-radius:7px; }
.booking-intro,.contact-intro { background:var(--surface); padding-top:44px; }
.booking-heading { max-width:880px; }
.booking-grid { display:grid; grid-template-columns:1.1fr .9fr; gap:28px; margin-top:36px; align-items:stretch; }
.booking-card,.visit-card { padding:34px; border:1px solid var(--line); border-radius:8px; background:var(--paper); }
.booking-card { border-top:5px solid #c6a871; }
.booking-card h2,.visit-card h2 { font-size:29px; margin-bottom:16px; }
.large-icon { display:grid; place-items:center; width:52px; height:52px; border-radius:50%; margin-bottom:20px; }
.large-icon .ui-icon { width:28px; height:28px; }
.calendar-icon,.phone-icon { background:#f0e7d6; color:#59421b; }
.booking-main-button { margin-top:8px; }
.booking-help { border-top:1px solid var(--line); margin-top:30px; padding-top:24px; }
.booking-help>p { font-weight:600; color:var(--ink); margin:0 0 16px; }
.booking-help .page-actions { margin:0; gap:16px 22px; }
.booking-help .btn { gap:12px; }
.visit-card { background:transparent; }
.visit-row { display:flex; align-items:flex-start; gap:16px; margin:26px 0; }
.visit-row>.ui-icon { color:var(--accent); margin-top:4px; }
.visit-row address { font-style:normal; }
.visit-row p { margin:0; }
.opening-times { margin:0; }
.opening-times>div+div { margin-top:14px; }
.opening-times dt { font-weight:600; }
.opening-times dd { margin:0; color:var(--muted); }
.appointment-notice { display:flex; align-items:flex-start; gap:12px; color:var(--ink); font-weight:600; }
.appointment-notice .ui-icon { margin-top:4px; }
.booking-process-grid { display:grid; grid-template-columns:1.1fr .9fr; gap:64px; align-items:start; }
.booking-process-grid>img { width:100%; height:auto; aspect-ratio:4/5; object-fit:cover; border-radius:8px; }
.visit-steps { list-style:none; padding:0; margin:30px 0 0; }
.visit-steps li { display:flex; gap:18px; margin-bottom:26px; }
.visit-steps li>span { display:grid; place-items:center; flex:0 0 38px; height:38px; border-radius:50%; background:#f0e7d6; color:#59421b; font-weight:700; }
.visit-steps h3 { font-size:22px; margin:4px 0 8px; }
.visit-steps p { margin:0; }
.travel-section { padding:46px 0; background:var(--surface); }
.travel-section h2 { font-size:30px; margin-bottom:26px; }
.travel-options { display:grid; grid-template-columns:1fr 1fr auto; gap:30px; align-items:center; }
.travel-options p { display:flex; gap:14px; margin:0; }
.travel-options .ui-icon { margin-top:4px; color:var(--accent); }
.travel-options strong { color:var(--ink); }
.travel-options .btn { gap:10px; }
.direct-contact-grid { display:grid; grid-template-columns:1fr 1fr; gap:28px; margin-top:36px; }
.direct-contact-card { display:flex; flex-direction:column; align-items:flex-start; padding:34px; border:1px solid var(--line); border-radius:8px; background:var(--paper); }
.direct-contact-card h2 { font-size:30px; margin-bottom:14px; }
.direct-contact-card p { max-width:490px; margin-bottom:20px; }
.whatsapp-card { background:#f1fcf4; border-color:#90b89d; }
.whatsapp-icon { background:#d2f5de; color:#12602e; }
.contact-number { color:var(--ink); font-size:25px; font-weight:600; text-decoration:underline; text-underline-offset:5px; margin-top:auto; margin-bottom:24px; }
.contact-visit-grid { display:grid; grid-template-columns:1fr 1fr; gap:64px; align-items:center; }
.contact-visit-grid>img { width:100%; height:auto; aspect-ratio:1; object-fit:cover; border-radius:8px; }
.contact-visit .page-actions { gap:18px; }
.contact-socials { padding:48px 0 60px; background:var(--surface); }
.contact-socials h2 { margin-bottom:16px; }
.social-links { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px; margin-top:28px; }
.social-links>a { display:flex; align-items:center; gap:16px; padding:22px; border:1px solid var(--line); border-radius:7px; background:var(--paper); color:var(--ink); }
.social-links>a:hover { border-color:var(--accent); }
.social-links span { flex:1; min-width:0; }
.social-links strong { display:block; font-size:17px; overflow-wrap:anywhere; }
.social-links>a>.ui-icon:last-child { width:18px; height:18px; flex-basis:18px; }
[data-theme='dark'] .whatsapp-card { background:#1b2f21; border-color:#4b8a60; }
@media(max-width:1100px) {
 .about-intro-grid,.craft-story-grid,.booking-process-grid,.contact-visit-grid { gap:36px; }
 .booking-card,.visit-card,.direct-contact-card { padding:26px; }
 .booking-card h2,.visit-card h2 { font-size:27px; }
 .travel-options { grid-template-columns:1fr 1fr; }
 .travel-options>.btn { justify-self:start; }
 .social-links { gap:14px; }
 .social-links>a { padding:20px 16px; gap:10px; }
}
@media(max-width:800px) {
 .page-section { padding:44px 0; }
 .page-introduction h1 { font-size:36px; margin-bottom:18px; }
 .page-introduction>p { font-size:18px; }
 .page-section h2,.contact-socials h2 { font-size:30px; }
 .about-intro { padding:34px 0 40px; }
 .about-intro-grid,.craft-story-grid,.booking-process-grid,.contact-visit-grid,.booking-grid,.direct-contact-grid { grid-template-columns:1fr; gap:28px; }
 .about-main-photo { height:auto; aspect-ratio:1.4; }
 .craft-story-photo { aspect-ratio:1.5; }
 .craft-story-grid>img { order:2; }
 .craft-promises li:last-child { padding-bottom:0; }
 .page-section-heading { align-items:flex-start; flex-direction:column; gap:12px; }
 .about-work-grid { gap:16px; }
 .about-work-grid img { aspect-ratio:1; }
 .booking-grid,.direct-contact-grid { margin-top:28px; }
 .booking-card,.visit-card,.direct-contact-card { padding:26px; }
 .booking-process-grid>img { aspect-ratio:1.4; }
 .visit-steps li:last-child { margin-bottom:0; }
 .contact-visit-grid>img { aspect-ratio:1.3; }
 .social-links { grid-template-columns:1fr; gap:14px; }
 .social-links>a { padding:20px; }
 .social-links strong { font-size:18px; }
}
@media(max-width:480px) {
 .page-actions,.page-bottom-action { align-items:stretch; flex-direction:column; gap:14px; }
 .page-actions .text-link,.page-bottom-action .text-link { align-self:flex-start; }
 .about-work-grid { grid-template-columns:1fr; }
 .about-work-grid img { aspect-ratio:1.4; }
 .booking-card,.visit-card,.direct-contact-card { padding:22px; }
 .booking-card .btn { gap:10px; padding-inline:14px; }
 .page-section .booking-card h2,.page-section .visit-card h2 { font-size:27px; }
 .travel-options { grid-template-columns:1fr; gap:26px; }
 .travel-options>.btn { justify-self:stretch; }
 .contact-number { font-size:23px; }
 .visit-row { gap:12px; }
}
