/*
 * Shared public-frontend component system.
 * Page styles control layout; reusable controls and actions belong here.
 */
/* Tourist-guide search follows the shared results and filter-card system. */
.guide-list-page .guide-list-main{box-sizing:border-box;width:min(1420px,calc(100% - 64px));padding:54px 0 90px}
.guide-list-page .guide-list-intro{width:auto;max-width:none;margin:0 0 34px;padding:0}
.guide-list-page .guide-list-intro h1{max-width:1180px;line-height:1.02}
.guide-list-page .guide-results-layout{grid-template-columns:310px minmax(0,1fr);gap:30px}
.guide-list-page .guide-filter-card{box-sizing:border-box;position:sticky;top:20px;min-width:0;padding:28px;border:1px solid #daddd4;border-radius:16px;background:#fffdf9;box-shadow:0 10px 30px rgba(24,53,39,.05)}
.guide-filter-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:22px}
.guide-list-page .guide-filter-heading h2{max-width:210px;margin:0;color:#173c2e;font-family:Georgia,serif;font-size:29px;font-weight:500;line-height:1.05}
.guide-filter-heading a{padding-top:5px;color:#8b5546;font-size:10px;font-weight:800}
.guide-list-page .guide-filter-form{gap:15px}
.guide-list-page .guide-filter-form .frontend-button{box-sizing:border-box;width:100%;margin-top:3px}
.guide-list-results{min-width:0}
.guide-result-count{margin-bottom:14px;color:#6d7972;font-size:11px}
.guide-result-count b{color:#173c2e;font-size:14px}
.guide-list-page .guide-card-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:22px}
.guide-list-page .guide-card{min-width:0;border-radius:17px;background:#fffdf9;box-shadow:0 12px 34px rgba(24,53,39,.055);transition:transform .2s,box-shadow .2s}
.guide-list-page .guide-card:hover{transform:translateY(-3px);box-shadow:0 17px 40px rgba(24,53,39,.11)}
.guide-list-page .guide-card img,.guide-list-page .guide-photo-placeholder{height:330px}
.guide-list-page .guide-card div{padding:23px 24px 25px}
.guide-list-page .guide-card p{margin:0 0 9px;color:#78972e;font-size:9px;font-weight:800;letter-spacing:.06em;text-transform:uppercase}
.guide-list-page .guide-card h2{margin:0 0 13px;color:#173c2e;font-family:Georgia,serif;font-size:30px;font-weight:500}
.guide-card-rating{display:inline-flex;padding:6px 9px;border-radius:7px;background:#eef3e3;color:#688627;font-size:10px;font-weight:800}
.guide-list-page .guide-card strong{margin-top:18px;padding-top:15px;border-top:1px solid #e2e5dc;color:#31483b;font-size:11px}
@media(max-width:980px){.guide-list-page .guide-results-layout{grid-template-columns:1fr}.guide-list-page .guide-filter-card{position:static}.guide-list-page .guide-filter-form{grid-template-columns:repeat(2,minmax(0,1fr))}.guide-list-page .guide-filter-form>.frontend-button{align-self:end}}
@media(max-width:680px){.guide-list-page .guide-list-main{width:calc(100% - 28px);padding-top:38px}.guide-list-page .guide-filter-form,.guide-list-page .guide-card-grid{grid-template-columns:1fr}.guide-list-page .guide-card img,.guide-list-page .guide-photo-placeholder{height:300px}}

/* Tourist-guide detail uses the shared public detail-page visual language. */
.guide-detail-page{background:#f4f1e8;color:#173c2e}
.guide-detail-page .guide-detail-main{box-sizing:border-box;width:min(1280px,calc(100% - 64px));padding:64px 0 96px}
.guide-detail-page .guide-profile-hero{grid-template-columns:minmax(280px,360px) minmax(0,1fr);gap:clamp(36px,5vw,72px);margin-bottom:28px;padding:24px;border:1px solid #d9ddd2;border-radius:22px;background:#fffdf9;box-shadow:0 15px 45px rgba(24,55,42,.06)}
.guide-detail-page .guide-profile-hero>img{width:100%;height:420px;border-radius:15px}
.guide-detail-page .guide-profile-hero>div{padding-right:clamp(12px,3vw,42px)}
.guide-detail-page .guide-profile-hero>div>p{margin:0 0 14px;color:#78972e;font-size:10px;font-weight:800;letter-spacing:.16em}
.guide-detail-page .guide-profile-hero h1{max-width:760px;margin:0 0 16px;color:#173c2e;font-family:Georgia,serif;font-size:clamp(48px,6vw,76px);font-weight:400;letter-spacing:-2px;line-height:.98}
.guide-detail-page .guide-profile-hero>div>span{display:block;color:#637168;font-size:14px;line-height:1.5}
.guide-detail-page .guide-language-list{margin-top:25px;padding:15px 17px;border:1px solid #dfe4d7;border-radius:11px;background:#f4f7ed;color:#4f6056;font-size:12px;line-height:1.6}
.guide-detail-page .guide-language-list b{margin-right:4px;color:#173c2e}
.guide-detail-page .guide-detail-grid{grid-template-columns:minmax(0,.82fr) minmax(0,1.18fr);gap:28px;align-items:start}
.guide-detail-page .guide-info-card,.guide-detail-page .guide-book-card{box-sizing:border-box;padding:34px;border-radius:18px;background:#fffdf9;box-shadow:0 12px 38px rgba(24,55,42,.05)}
.guide-detail-page .guide-info-card h2,.guide-detail-page .guide-book-card h2{margin:0 0 23px;color:#173c2e;font-family:Georgia,serif;font-size:34px;font-weight:400}
.guide-detail-page .guide-info-card>p{align-items:center;margin:0;padding:17px 0;color:#637168;font-size:12px}
.guide-detail-page .guide-info-card>p:first-of-type{border-top:1px solid #e2e5dc}
.guide-detail-page .guide-info-card>p b{color:#173c2e;font-size:13px;text-align:right}
.guide-detail-page .guide-book-card>p{max-width:470px;margin:0 0 20px;color:#65726a;font-size:13px;line-height:1.65}
.guide-detail-page .guide-book-card>.frontend-button{min-width:150px}
@media(max-width:900px){.guide-detail-page .guide-profile-hero{grid-template-columns:230px minmax(0,1fr);gap:30px}.guide-detail-page .guide-profile-hero>img{height:300px}.guide-detail-page .guide-detail-grid{grid-template-columns:1fr}}
@media(max-width:650px){.guide-detail-page .guide-detail-main{width:calc(100% - 28px);padding:38px 0 65px}.guide-detail-page .guide-profile-hero{grid-template-columns:1fr;padding:15px}.guide-detail-page .guide-profile-hero>img{height:360px}.guide-detail-page .guide-profile-hero>div{padding:15px 8px 10px}.guide-detail-page .guide-profile-hero h1{font-size:45px;letter-spacing:-1px}.guide-detail-page .guide-info-card,.guide-detail-page .guide-book-card{padding:25px 21px}}

:root {
    --front-control-height: 44px;
    --front-control-border: #cfd5ca;
    --front-control-text: #263c30;
    --front-accent: #789f28;
    --front-accent-dark: #173c2e;
    --front-danger: #98483a;
    --front-radius: 9px;
}

.frontend-form {
    display: grid;
    gap: 16px;
    min-width: 0;
}

.frontend-form :where(label) {
    display: grid;
    min-width: 0;
    align-content: start;
    gap: 7px;
}

.frontend-form :where(label > span, legend) {
    color: #536159;
    font-size: 11px;
    font-weight: 750;
    line-height: 1.3;
}

.frontend-form-grid {
    display: grid;
    min-width: 0;
    gap: 12px;
}

.frontend-form-grid-two {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.frontend-form :where(input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]), select, textarea) {
    box-sizing: border-box;
    width: 100%;
    min-height: var(--front-control-height);
    padding: 11px 13px;
    border: 1px solid var(--front-control-border);
    border-radius: var(--front-radius);
    background-color: #fff;
    color: var(--front-control-text);
    font: inherit;
    font-size: 12px;
}

.guide-filter-card .frontend-button {
    width: 100%;
}

.frontend-form select {
    padding-right: 42px;
    appearance: none;
    -webkit-appearance: none;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='m1 1 5 5 5-5' fill='none' stroke='%2353695d' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 14px center;
}

.frontend-form :where(input, select, textarea):focus {
    border-color: var(--front-accent);
    outline: 0;
    box-shadow: 0 0 0 3px rgba(120, 159, 40, .14);
}

.frontend-form :where(input[type="checkbox"], input[type="radio"]) {
    flex: 0 0 18px;
    width: 18px;
    height: 18px;
    margin: 0;
    accent-color: var(--front-accent);
}

.frontend-form .frontend-check {
    display: flex;
    min-height: var(--front-control-height);
    align-items: center;
    align-self: end;
    gap: 9px;
    padding: 0 4px;
    line-height: 1.35;
}

.frontend-button,
.frontend-secondary-button,
.frontend-danger-button {
    box-sizing: border-box;
    display: inline-flex;
    width: max-content;
    min-height: 42px;
    align-items: center;
    justify-content: center;
    gap: 7px;
    margin: 0;
    padding: 10px 16px;
    border-radius: var(--front-radius);
    font: inherit;
    font-size: 11px;
    font-weight: 750;
    line-height: 1.2;
    text-decoration: none;
    cursor: pointer;
}

.frontend-button {
    border: 1px solid var(--front-accent);
    background: var(--front-accent);
    color: #fff;
}

.frontend-button:hover {
    border-color: #63851f;
    background: #63851f;
}

.frontend-secondary-button {
    border: 1px solid #b9ca94;
    background: #f1f5e8;
    color: #587423;
}

.frontend-secondary-button:hover { border-color: var(--front-accent); background: #e8f0d8; }
.frontend-danger-button { border: 1px solid #d8a9a1; background: #f8e9e6; color: var(--front-danger); }
.frontend-danger-button:hover { border-color: var(--front-danger); background: var(--front-danger); color: #fff; }

.frontend-repeatable-row { box-sizing: border-box; }
.frontend-repeatable-row > .frontend-danger-button { align-self: end; }

@media (max-width: 620px) {
    .frontend-form-grid-two { grid-template-columns: 1fr; }
    .frontend-button,
    .frontend-secondary-button,
    .frontend-repeatable-row > .frontend-danger-button { width: 100%; }
}

/* Homepage organized trips */
.home-trips{box-sizing:border-box;width:min(1240px,calc(100% - 64px));margin:0 auto;padding:76px 0 88px;color:#173c2e}.home-trips-heading{display:flex;align-items:end;justify-content:space-between;gap:30px;margin-bottom:28px}.home-trips-heading p{margin:0 0 8px;color:#789f28;font-size:10px;font-weight:800;letter-spacing:.14em;text-transform:uppercase}.home-trips-heading h2{margin:0;font-family:Georgia,serif;font-size:clamp(34px,4vw,52px);font-weight:400;line-height:1}.home-trips-heading>a{padding-bottom:5px;color:#668526;font-size:12px;font-weight:800;text-decoration:none}.home-trips-heading>a span{margin-left:5px}.home-trips-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}.home-trip-card{overflow:hidden;border:1px solid #dce1d6;border-radius:17px;background:#fffdf9;box-shadow:0 14px 38px rgba(24,53,39,.07);transition:transform .2s,box-shadow .2s}.home-trip-card:hover{transform:translateY(-3px);box-shadow:0 18px 42px rgba(24,53,39,.12)}.home-trip-image{position:relative;display:block;height:225px;overflow:hidden;background:linear-gradient(135deg,#173f30,#789f28)}.home-trip-image img{width:100%;height:100%;object-fit:cover;transition:transform .35s}.home-trip-card:hover .home-trip-image img{transform:scale(1.035)}.home-trip-image.is-empty{display:grid;place-items:center;color:#d8e7c6;font-family:Georgia,serif;font-size:23px;text-decoration:none}.home-trip-image time{position:absolute;right:14px;bottom:14px;padding:8px 11px;border-radius:8px;background:rgba(12,37,27,.82);color:#fff;font-size:10px;font-weight:800;backdrop-filter:blur(8px)}.home-trip-body{padding:22px}.home-trip-body>p{margin:0 0 8px;color:#789f28;font-size:9px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.home-trip-body h3{min-height:58px;margin:0;font-family:Georgia,serif;font-size:27px;font-weight:500;line-height:1.08}.home-trip-body h3 a{color:#173c2e;text-decoration:none}.home-trip-meta{display:flex;align-items:end;justify-content:space-between;gap:15px;margin-top:22px;padding-top:16px;border-top:1px solid #e3e6dd}.home-trip-meta span{color:#6e7a73;font-size:10px}.home-trip-meta strong{font-family:Georgia,serif;font-size:19px;font-weight:500;white-space:nowrap}@media(max-width:900px){.home-trips-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.home-trip-card:last-child{grid-column:span 2}.home-trip-card:last-child .home-trip-image{height:280px}}@media(max-width:620px){.home-trips{width:calc(100% - 28px);padding:52px 0 64px}.home-trips-heading{align-items:flex-start;flex-direction:column}.home-trips-grid{grid-template-columns:1fr}.home-trip-card:last-child{grid-column:auto}.home-trip-card:last-child .home-trip-image,.home-trip-image{height:210px}.home-trip-body h3{min-height:0}}

/* Wide desktop page headings. Reading-copy widths remain deliberately narrower. */
@media (min-width: 901px) {
    .news-intro { width: 100%; max-width: none; }
    .news-intro h1,
    .property-hero h1,
    .trip-hero h1 { max-width: 1180px; }
    .results-intro > div { width: min(1050px, calc(100% - 220px)); }
    .directory-intro,
    .customer-page-title { max-width: none; }
}

/* Public trip search and filters */
.trip-list-intro{width:100%!important;max-width:none!important}.trip-list-intro h1{max-width:1180px;line-height:1.02}.trip-results-layout{grid-template-columns:310px minmax(0,1fr)!important}.trip-filter-card{box-sizing:border-box;min-width:0;padding:28px!important}.trip-filter-form,.trip-filter-form>*{min-width:0}.trip-filter-dates{grid-template-columns:repeat(2,minmax(0,1fr))!important}.trip-filter-form .frontend-button{box-sizing:border-box;width:100%;margin:4px 0 0;padding-right:14px;padding-left:14px}@media(max-width:980px){.trip-results-layout{grid-template-columns:1fr!important}}@media(max-width:680px){.trip-list-intro h1{font-size:clamp(42px,13vw,58px)}.trip-filter-card{padding:22px!important}}
.trip-list-main{box-sizing:border-box;width:min(1420px,calc(100% - 64px));margin:0 auto;padding:54px 0 90px}.trip-list-intro{width:auto;margin:0 0 34px;padding:0}.trip-ai-context{display:inline-flex;align-items:center;gap:10px;margin-top:18px;padding:9px 13px;border:1px solid #cad9ae;border-radius:10px;background:#f2f7e9;color:#45563d;font-size:11px}.trip-ai-context b{display:grid;width:27px;height:27px;place-items:center;border-radius:7px;background:#789f28;color:#fff;font-size:9px}.trip-results-layout{display:grid;grid-template-columns:280px minmax(0,1fr);gap:30px;align-items:start}.trip-filter-card{position:sticky;top:20px;padding:23px;border:1px solid #daddd4;border-radius:16px;background:#fffdf9;box-shadow:0 10px 30px rgba(24,53,39,.05)}.trip-filter-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px}.trip-filter-heading h2{margin:0;font-family:Georgia,serif;font-size:28px;font-weight:500}.trip-filter-heading a{color:#8b5546;font-size:10px;font-weight:800}.trip-filter-form{display:grid;gap:15px}.trip-filter-form label{display:grid;gap:6px}.trip-filter-form label>span{color:#5d6d64;font-size:9px;font-weight:800}.trip-filter-form input,.trip-filter-form select{box-sizing:border-box;width:100%;min-height:43px;padding:10px 11px;border:1px solid #cfd6c9;border-radius:9px;background:#fff;color:#173c2e;font:600 11px Arial,sans-serif}.trip-filter-form select{appearance:none;background-image:linear-gradient(45deg,transparent 50%,#607268 50%),linear-gradient(135deg,#607268 50%,transparent 50%);background-position:calc(100% - 16px) 18px,calc(100% - 11px) 18px;background-repeat:no-repeat;background-size:5px 5px;padding-right:30px}.trip-filter-dates{display:grid;grid-template-columns:1fr 1fr;gap:9px}.trip-price-input{position:relative}.trip-price-input input{padding-right:48px}.trip-price-input b{position:absolute;top:16px;right:11px;color:#77837c;font-size:8px}.trip-filter-form .frontend-check{display:flex;align-items:flex-start;gap:9px}.trip-filter-form .frontend-check input{width:17px;min-height:17px;margin:0;accent-color:#789f28}.trip-filter-form .frontend-check span{line-height:1.45}.trip-filter-form .frontend-button{min-height:44px;border:0;border-radius:9px;background:#789f28;color:#fff;font-size:10px;font-weight:800}.trip-list-results{min-width:0}.trip-result-count{margin-bottom:14px;color:#6d7972;font-size:11px}.trip-result-count b{color:#173c2e;font-size:14px}.trip-card-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.trip-card-grid .news-card{min-width:0}.trip-empty-results{grid-column:1/-1;padding:55px 30px;border:1px solid #daddd4;border-radius:16px;background:#fffdf9;text-align:center}.trip-empty-results h2{margin:0 0 10px;font-family:Georgia,serif;font-size:28px;font-weight:500}.trip-empty-results p{color:#6d7972;font-size:11px}.trip-empty-results a{display:inline-block;margin-top:12px;padding:11px 15px;border-radius:8px;background:#789f28;color:#fff;font-size:10px;font-weight:800;text-decoration:none}@media(max-width:980px){.trip-results-layout{grid-template-columns:1fr}.trip-filter-card{position:static}.trip-filter-form{grid-template-columns:repeat(2,minmax(0,1fr))}.trip-filter-form>.frontend-check,.trip-filter-form>.frontend-button{align-self:end}.trip-card-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:680px){.trip-list-main{width:calc(100% - 28px);padding-top:38px}.trip-filter-form,.trip-card-grid{grid-template-columns:1fr}.trip-filter-dates{grid-template-columns:1fr 1fr}.trip-results-layout{gap:22px}}
.organization-main{box-sizing:border-box;width:min(1320px,calc(100% - 64px));margin:0 auto;padding:70px 0 100px}.organization-heading{margin-bottom:36px}.organization-heading>p,.organization-pages>header>p{margin:0 0 9px;color:#78972e;font-size:10px;font-weight:800;letter-spacing:.16em;text-transform:uppercase}.organization-heading h1{max-width:1100px;margin:0;color:#173c2e;font-family:Georgia,serif;font-size:clamp(48px,6vw,78px);font-weight:400;letter-spacing:-2px;line-height:1.02}.organization-cover{display:block;width:100%;height:clamp(390px,48vw,650px);border-radius:20px 20px 0 0;object-fit:cover}.organization-contact{display:grid;grid-template-columns:minmax(250px,1.4fr) repeat(2,minmax(190px,1fr)) auto;gap:22px;align-items:center;padding:24px 28px;border:1px solid #daddd2;border-top:0;border-radius:0 0 20px 20px;background:#fffdf9;box-shadow:0 12px 35px rgba(26,54,40,.06)}.organization-contact>div{display:grid;gap:7px;min-width:0}.organization-contact small{color:#78972e;font-size:9px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.organization-contact strong,.organization-contact span{font-size:12px;line-height:1.5}.organization-contact span{display:grid;gap:3px}.organization-contact a:not(.frontend-button){overflow:hidden;color:#3e574b;text-overflow:ellipsis;text-decoration:none}.organization-contact>.frontend-button{white-space:nowrap}.organization-content{box-sizing:border-box;max-width:1080px;margin:34px auto 0;padding:44px 50px;border:1px solid #daddd2;border-radius:18px;background:#fffdf9;color:#46584e;font-size:15px;line-height:1.82;box-shadow:0 12px 35px rgba(26,54,40,.045)}.organization-content h1,.organization-content h2,.organization-content h3,.organization-content h4{margin:1.6em 0 .65em;color:#173c2e;font-family:Georgia,serif;font-weight:400;line-height:1.18}.organization-content h1:first-child,.organization-content h2:first-child,.organization-content h3:first-child{margin-top:0}.organization-content img{max-width:100%;height:auto}.organization-content a{color:#668526}.organization-pages{margin-top:64px}.organization-pages>header{margin-bottom:25px}.organization-pages>header h2,.organization-main>.content-media-gallery>h2{margin:0;color:#173c2e;font-family:Georgia,serif;font-size:clamp(34px,4vw,48px);font-weight:400}.organization-pages .news-card-image{height:245px}.organization-main>.content-media-gallery{margin-top:64px}@media(max-width:1050px){.organization-contact{grid-template-columns:repeat(2,minmax(0,1fr))}.organization-contact>.frontend-button{justify-self:start}.organization-pages .news-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:680px){.organization-main{width:calc(100% - 28px);padding-top:42px}.organization-heading h1{font-size:clamp(42px,13vw,58px);letter-spacing:-1px}.organization-cover{height:270px;border-radius:14px 14px 0 0}.organization-contact{grid-template-columns:1fr;padding:20px;border-radius:0 0 14px 14px}.organization-contact>.frontend-button{box-sizing:border-box;width:100%}.organization-content{margin-top:22px;padding:27px 22px;font-size:14px}.organization-pages{margin-top:48px}.organization-pages .news-grid{grid-template-columns:1fr}.organization-pages .news-card-image{height:220px}}
.organization-content{width:100%;max-width:none;margin-right:0;margin-left:0}
.organization-page-cover{border-radius:20px}.organization-external-action{display:flex;justify-content:flex-end;margin-top:22px}.organization-custom-page>.organization-main>.content-media-gallery{margin-top:64px}@media(max-width:680px){.organization-page-cover{border-radius:14px}.organization-external-action .frontend-button{box-sizing:border-box;width:100%}}
